问题标签 [zodb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
plone - 如何以及为什么设置 plone.app.blob 的布局类型(草坪诉丛生)
我有一个要迁移到 plone.app.blob 的 Plone 3.3.5 站点。我刚刚运行了一个测试迁移,并注意到所有 blob 文件都存储在 var/blobstorage 的同一目录中。
在列表服务器上,我听说它提到可以在两种布局之间进行选择:“草坪”和“浓密”。Lawn 似乎是默认设置,所有文件都在一个单一的平面目录中,而“bushy”将它们组织到子文件夹中。
是否有一个可以打开浓密布局的扩展选项?(我找不到任何这样的例子。)
每个布局选项的优势是什么?
python - ZODB 无法提交
我第一次使用 ZODB。只是尝试使用 FileStorage 提交数据。但是当我第二次执行相同的脚本时,我无法提交新对象。这是我的脚本
当我再次重复代码时,只需更改 idroot['layer']['2c']
并从 python 中出来,第二次对象没有被提交。我只有第一个对象。可能是什么原因。
blob - 集体.xsendfile、ZODB blob 和 UNIX 文件权限
我目前正在尝试配置collective.xsendfile、Apache mod_xsendfile 和Plone 4。
显然 Apache 进程在文件系统上看不到 blobstrage 文件,因为它们包含权限:
ls -lh var/blobstorage/0x00/0x00/0x00/0x00/0x00/0x18/0xd5/0x19/0x038ea09d0eddc611.blob -r-------- 1 plone plone 1006K 5 月 28 日 15:30 var/blobstorage/0x00 /0x00/0x00/0x00/0x00/0x18/0xd5/0x19/0x038ea09d0eddc611.blob
如何配置 blobstorage 以提供额外的权限,以便 Apache 可以访问这些文件?
plone - 打包后是否需要保留data.fs.old?
我的 data.fs 是 500 MB,所以我打包然后备份它,结果是 100 MB。
我的主机帐户只有 500 MB,所以我想知道删除 data.fs.old (500 MB) 是否安全?
python - 在 relstorage zodb 包期间,“sys.excepthook 中的错误启动的线程中出现未处理的异常”
我们有一个相当大的 Plone 实例在它自己的挂载点上运行。ZMI界面列出数据库大小为7101.4M。我们使用 Relstorage zodbpack.py 脚本每周运行一次数据库包,删除超过 7 天的对象。过去两周,运行包的 cron 作业输出以下内容:
第一行和最后一行由 cron 作业运行的 shell 脚本输出。
打包后数据库大小减小,因此看起来它正在做某事。对于如何进一步调试此错误,我有点茫然。
很长一段时间,包运行正常。然后,我们更改了数据库的连接参数,但忘记在 cron 作业中更新它们,因此包在 11 周内没有运行。在出现此错误之前它成功运行了两次 - 长时间没有运行包可能与错误有关吗?
任何帮助将非常感激。
我们正在运行:
- 克隆 3.3.5
- 佐普 2.10.11
- 再存储 1.4.1
- ZODB 3.8.4-轮询
python - 对象数据库的索引方法
我正在使用对象数据库 (ZODB) 来存储许多对象之间的复杂关系,但遇到了性能问题。因此,我开始构建索引以加快对象检索和插入。这是我的故事,希望对你有所帮助。
最初,当我将一个对象添加到数据库中时,我会将其插入专用于该对象类型的分支中。为了防止多个对象代表同一个实体,我添加了一个方法,该方法将遍历分支中的现有对象以查找重复项。这起初是可行的,但随着数据库规模的增长,将每个对象加载到内存中并检查属性所花费的时间呈指数增长,令人无法接受。
为了解决这个问题,我开始根据对象中的属性创建索引,以便在添加对象时将其保存在类型分支以及属性值索引分支中。例如,假设我正在保存一个具有属性 firstName = 'John' 和 lastName = 'Smith' 的人员对象,该对象将被附加到人员对象类型分支,并且还将被附加到属性索引分支内的列表中,带有键'约翰”和“史密斯”。
这节省了大量重复检查的时间,因为可以分析新对象并且只需要检查与属性索引相交的对象集。
但是,我很快遇到了另一个关于更新对象时的处理问题。索引需要更新以反映它们可能不再准确的事实。这需要记住旧值以便可以直接访问它们并删除对象,或者迭代属性类型的所有值以便找到然后删除对象。无论哪种方式,性能都很快开始再次下降,我无法找到解决它的方法。
你以前有过这样的问题吗?你做了什么解决它,或者这只是我在使用 OODBMS 时必须处理的事情?
提前感谢您的帮助。
python - ZODB 事务提交多次调用 __getstate__
我正在使用 ZODB 创建一个缓存系统。我放入数据库的对象要求我使用__getstate__
和__setstate__
方法,因为它们包含我转换为字符串并存储在 Blob 中的图像。
我没有找到任何有类似问题的人,所以我假设我在做一些愚蠢的事情。通过运行以下测试代码可以看到我遇到的问题:
结果是:
正如您从输出中看到的那样,每笔交易都会为之前的每笔交易调用 getstate 方法。这应该发生/我错过了什么?我完全误解了事务的使用吗?像这样使用 PersistentMappings 可以吗?
我正在使用 ZODB 3.10.3 和 Python 2.6.3。
PS 我知道通常你会在完成所有操作后进行提交,但是循环表示“缓存”对象中的一系列可能的方法调用,每个方法调用都可以从 ZODB 添加或检索数据。
感谢您提供的任何帮助或理解。
plone - 如何从 .fsz 文件恢复 zope 数据库?
我有一个测试环境,我正在尝试将我的数据恢复到其中。我使用 repozo 备份了我的实时站点,但是 zope 文档在他们的新站点上消失了。
这是我正在尝试的命令:
此命令完成且没有任何失败消息,但数据未出现在 plone (3) 中。
是否有任何提示或文章可以帮助我做到这一点?
plone - 在 Plone 中清理阁楼
我有一些带有 Data.fs 的旧网站,它经过了漫长的岁月,积累了足以与一码普通二手车经销商相媲美的垃圾。
即使在手动删除文件夹并打包数据库之后,Data.fs 似乎也占用了太多空间。
在 Data.fs 中寻找和回收这个“丢失的空间”的过程是什么?就像打印出对象树和文件夹的相对大小(递归)。
plone - ZODB 内存后端?
我目前正在从事一个童话般的大型项目(活跃成员约为数百 K),并且非常倾向于 Plone 解决方案。
从非常有经验的 Plonistas(以及活跃的 stackoverflowers)那里得到了一些回复。对此,我真的非常感激。人们一直说 Plone 不能很好地扩展到那么大,大部分原因是因为 ZODB。
然后我想到了 ZODB 的内存后端。RAM现在真的很便宜!您只需约 3000 美元即可获得 128GB,是普通 300 美元 128GB SSD 的十倍,与约 300MB 的 SSD 相比,实现约 30GB 的 IO 带宽。
内存中后端 + Blob 用于二进制 + 10 秒磁盘日志记录用于备份 + 除了最后 10 秒之外的所有撤消都将是实例终止!他们应该抽 RDBMs 并提供完整的 ACID + Transaction + Object Mapping 与这样的沙发 */redis 等相比。
技术可行吗?有什么实施吗?是否值得实施(在您看来)?