问题标签 [relstorage]
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.
python - python 路径问题:调用 zodbconvert 时出现 ImportError (FreeBSD 8.1)
我猜这是一个 python 路径问题(在 FreeBSD 8.1 上)。
我正在尝试使用 zodbconvert 将 Data.fs 转换为 Postgresql。我已经下载了 RelStorage-1.5.0b2 并且正在运行:
, 使用 Plone 运行的版本。
我得到的错误:
版本:
- 克隆 4.0.5 (python 2.6)
- PostgreSQL 9.0.3
- FreeBSD 8.1
- python26-2.6.6_1
- python27-2.7.1_1
PS 默认“python --version”为 2.7.1
谢谢。尼古拉·G。
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-轮询
postgresql - Restorage zodbpack 错误
每当我尝试运行 zobbpack 时,我都会生成错误:
psycopg2.IntegrityError:“zoid”列中的空值违反非空约束
任何想法是什么导致了这个以及如何解决它?
relstorage 1.5.1,postgres 8,plone 4.2.1.1
mysql - 配置 Plone 以使用 Relstorage 作为 blobstorage
我在一个站点上安装了 Plone 4.3.3。首先,将构建配置为使用 var/filestorage 中的 Data.fs 文件和 var/blobstorage 中的共享 blob 存储。然后我在 buildout 中添加了一个 Relstorage,并将 Data.fs 文件的内容转换为底层 MySQL 数据库。现在 Plone 使用 Relstorage 而不是 Data.fs。
但现在我也想使用 Relstorage 而不是 blobstorage。因为我对 Plone 尤其是 Relstorage 比较陌生,所以我的想法是首先设置一个新的空 Plone。然后我将 buildout.cfg 和 base.cfg 从第一个复制到新的。然后我创建了一个新数据库 userZodb 并更改了 base.cfg 以使用新数据库,我还更改了 zeoserver 和客户端的端口。下一步是重新配置 relstorage 以不使用基于文件的 blobstorage。
然后我运行了构建。一切构建成功。启动 zeoserver 后,我从客户端收到此错误:
不幸的是,我不知道问题可能出在哪里。有人建议吗?谢谢!
postgresql - 在 Plone 站点上调整 PostgreSQL 的 RelStorage 和参数
我多次收到 POSKeyError 错误。我认为我们设置的 PostgreSQL 参数不够。因为系统将存储从 MySQL 转换为 PostgreSQL。在 chenging 之前,我多次收到错误。
请让我知道具体设置或任何要点。
使用版本:
- 克隆 4.3.1
- 在 RDS、AWS 上使用 PostgreSQL 的 RelStorage 1.5.1
- shared-blob-dir true(存储在文件系统上)
- 克隆快速上传 1.8.2
python - 如何提高处理大量数据的脚本的性能?
我的机器学习脚本会产生大量数据(BTree
一个根中包含数百万个 s BTree
)并将其存储在 ZODB 中FileStorage
,主要是因为所有这些数据都不适合 RAM。脚本还经常修改以前添加的数据。
当我增加了问题的复杂性,因此需要存储更多数据时,我注意到了性能问题 - 脚本现在计算数据的速度平均慢了 2 倍甚至 10 倍(唯一改变的是要存储的数据量后来检索到要更改)。
我尝试设置cache_size
为 1000 到 50000 之间的各种值。老实说,速度上的差异可以忽略不计。
我想过切换到,RelStorage
但不幸的是,在文档中他们只提到了如何配置 Zope 或 Plone 等框架。我只使用 ZODB。
我想知道RelStorage
在我的情况下是否会更快。
这是我当前设置 ZODB 连接的方式:
我很清楚 ZODB 目前是我脚本的瓶颈。我正在寻找有关如何解决此问题的建议。
我选择 ZODB 是因为我认为 NoSQL 数据库更适合我的情况,而且我喜欢类似于 Python 的dict
.
代码和数据结构:
根数据结构:
actions_values
在概念上构建如下:state
是一个表示游戏板的简单二维数组。它的字段的可能值是1
,2
或None
:(在我的情况下
rows = 6
和cols = 7
)主循环:
(
pack
ing 也需要很多时间,但这不是主要问题;我可以在程序完成后打包数据库)dbroot
在(内部)上运行的代码ReinforcementPlayer
:(名称为mirror的功能只是反转列(动作)。这样做是因为Connect 4个板,它们是彼此垂直反射的等效。)
550000 场比赛后len(dbroot.actions_values)
是 6018450。
根据iotop
IO操作需要90%的时间。
postgresql - 如何使用 Plone 和 RelStorage 打包 blobstorage
我在本地构建上运行了 zodbpack,并显着减少了我的 data.fs 和 blobstorage(比如 <50%)。
当我在测试服务器上运行 zodbpack 时,postgres 'zodb' 数据库会打包并缩小大小,但 blobstorage 的大小并没有改变。
我试过用每一个组合来运行它
blob 目录 /mnt/drbd/blobstorage
我能想到,但它没有让步。
可以打包吗?
相对存储 = 1.5.1
我正在考虑将 RelStorage 升级到 1.6.0,不确定这是否会有所帮助。
更新:
现在在本地运行 relstorage,我也看到了相同的行为......数据库包,blob 没有清理。
$ bin/zodbpack -d 7 zodbpack-conf.xml
zodbpack-conf.xml
我错过了什么?
plone - RelStorage for Plone 5.x 哪个好版本组合
我尝试安装 Plone5.1RC1 / RelStorage2.x / psycopg2.7x,但出现错误。然后我尝试安装 Plone5.0x / RelStorage1.6x-2.x / psycopg2.7x,但出现错误。
请告诉我,RelStorage for Plone 5.0.x 和 Plone 5.1 的最佳版本组合。
postgresql - 如何通过 psycopg2 使用 AWS RDS 只读副本修复错误 Plone RelStorage
我们想通过 psycopg2 使用 AWS RDS 只读副本,但出现错误。
我们的环境:
- 克隆 5
- 相对存储 1.6.3
- psycopg2 2.7.3.2
- AWS RDS PostgreSQL(只读副本)
- buildout.conf:
rel-storage = read-only true
错误:
psycopg2.NotSupportedError: cannot use serializable mode in a hot standby
HINT: You can use REPEATABLE READ instead.
我们设置:
default_transaction_isolation repeatable read
我该怎么做?
python - 如何在 RelStorage 包中删除 blob?
这个问题与如何使用 Plone 和 RelStorage 打包 blobstorage 有关
使用带有RelStorage和 sqlite 的zodb数据库作为其后端,我正在尝试删除未使用的 blob。目前db.pack不会从光盘中删除 blob。下面的最小工作示例演示了这种行为:
上面的示例执行以下操作:
- 删除当前目录中的任何以前的数据库以及 blob 目录。
- 从头开始创建一个数据库/存储,添加两个对象(root 和 child),而 child 由 root 引用并执行事务。
- 删除从根到子的链接并执行事务。
- 关闭数据库/存储
- 打开数据库/存储并
db.pack
在未来执行一秒钟。
最小工作示例的输出如下:
如您所见db.pack
,确实删除了 3 个对象“将删除 3 个对象”,但文件系统中的 blob 没有改变。
在 RelStorage 的单元测试中,它们似乎确实测试了是否从文件系统中删除了 blob(请参见此处),但在上面的脚本中它不起作用。
我究竟做错了什么?任何提示/链接/帮助表示赞赏。