我目前正在做一个非常大的项目(活跃的成员大约有几百K),并且强烈倾向于Plone解决方案。
从非常有经验的Plonistas (以及活跃的stackoverflowers )那里得到了一些回复。我真的很感激。人们一直在说Plone不能很好地扩展到那么大的规模,大部分原因都是因为ZODB。
然后我想到了ZODB的内存后端。RAM现在真的很便宜!只需大约3k美元,您就可以获得128 of,是普通的300美元128 of固态硬盘的十倍,并且与大约300MB的固态硬盘相比,可以达到大约30 of的IO带宽。
内存后端+二进制Blob + 10s磁盘日志备份+除最后10s以外的所有撤消操作将是实例终止!它们应该冒烟RDBMs,并提供完整的ACID +事务+对象映射,而不是像这样的couch*/redis等。
这在技术上可行吗?有什么实现吗?它是否值得实现(在您看来)?
发布于 2011-10-14 05:52:16
RelStorage有一个memcache选项,当你需要使用速度很慢的数据库时,它会很有帮助,但实际上你应该把这种缓存留给你的操作系统,并确保你的数据库服务器有足够的内存。(如果RAM足够大,那么文件系统缓存应该已经存储了大部分数据。)
SSD将显著减少对文件系统缓存中尚未存在的数据进行随机访问的最坏情况下的读取延迟。现在不使用它们似乎很愚蠢,特别是Intel330SSD如此便宜,而且有一个相当于电池后备raid控制器的电容器(使写入速度也非常快)。
all in RAM解决方案永远不能被认为是酸的,因为它不会持久。
正如我在你的另一篇文章中提到的那样,这里的问题不是ZODB,而是Plone对单个竞争portal_catalog的同步使用。
发布于 2011-10-14 01:44:36
您可以将portal_catalog挂载到单独的挂载点并将其保存在内存中,而不是将整个ZODB保存在内存中。我已经看到过这样的配置,对于使用标准硬件(2个服务器+1个zeo服务器)的大约8k用户来说,它工作得很流畅。它可能足以满足您的需求,也许可以使用更高性能的硬件。
https://stackoverflow.com/questions/7757965
复制相似问题