问题标签 [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.

0 投票
3 回答
1215 浏览

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。

0 投票
1 回答
7253 浏览

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-轮询
0 投票
1 回答
362 浏览

postgresql - Restorage zodbpack 错误

每当我尝试运行 zobbpack 时,我都会生成错误:

psycopg2.IntegrityError:“zoid”列中的空值违反非空约束

任何想法是什么导致了这个以及如何解决它?

relstorage 1.5.1,postgres 8,plone 4.2.1.1

0 投票
2 回答
447 浏览

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 后,我从客户端收到此错误:

不幸的是,我不知道问题可能出在哪里。有人建议吗?谢谢!

0 投票
1 回答
366 浏览

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
0 投票
2 回答
389 浏览

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,2None:

    (在我的情况下rows = 6cols = 7

  • 主循环:

    packing 也需要很多时间,但这不是主要问题;我可以在程序完成后打包数据库)

  • dbroot在(内部)上运行的代码ReinforcementPlayer

    (名称为mirror的功能只是反转列(动作)。这样做是因为Connect 4个板,它们是彼此垂直反射的等效。)


550000 场比赛后len(dbroot.actions_values)是 6018450。


根据iotopIO操作需要90%的时间。

0 投票
0 回答
221 浏览

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

我错过了什么?

0 投票
1 回答
111 浏览

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 的最佳版本组合。

0 投票
0 回答
120 浏览

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

我该怎么做?

0 投票
1 回答
158 浏览

python - 如何在 RelStorage 包中删除 blob?

这个问题与如何使用 Plone 和 RelStorage 打包 blobstorage 有关

使用带有RelStorage和 sqlite 的zodb数据库作为其后端,我正在尝试删除未使用的 blob。目前db.pack不会从光盘中删除 blob。下面的最小工作示例演示了这种行为:

上面的示例执行以下操作:

  1. 删除当前目录中的任何以前的数据库以及 blob 目录。
  2. 从头开始创建一个数据库/存储,添加两个对象(root 和 child),而 child 由 root 引用并执行事务。
  3. 删除从根到子的链接并执行事务。
  4. 关闭数据库/存储
  5. 打开数据库/存储并db.pack在未来执行一秒钟。

最小工作示例的输出如下:

如您所见db.pack,确实删除了 3 个对象“将删除 3 个对象”,但文件系统中的 blob 没有改变。

在 RelStorage 的单元测试中,它们似乎确实测试了是否从文件系统中删除了 blob(请参见此处),但在上面的脚本中它不起作用。

我究竟做错了什么?任何提示/链接/帮助表示赞赏。