问题标签 [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.
ubuntu - Feasibility of rsyncing the whole Plone production server running Ubuntu once in a day
Has anyone experience of doing full VM snapshot or rsync back-ups with Plone? We have a server running several separate Zope application server worth of around 10-20 GB ZODB data and blobs.
- Would it be possible to duplicate the server by rsynching the whole server filesystem to a replicate machine once in a day?
This would provide "barebone high availability" where in the case of server breakage one could just switch the production IP to the back-up server.
The issues here are
Can rsync delta algorithm cleverly copy append-only Data.fs files or does it copy the whole Data.fs every time? Data.fs and blobs are the only data changing on the server running Plone sites.
Is rsync fast enough for calculating deltas for the whole server file system once in a day
Does rsync cause too much stress to the system when it is running
Do one need to run something more advanced over rsync to speed up the process (e.g. Duplicity)
Does Ubuntu system partition has something which must be excluded from rsync
As far as I know live ZODB Data.fs copies are ok due to their append-only nature.
The benefits of such replication method would
- Very simple to set-up: No advanced replication knowledge beyond normal Linux sysadmin knowledge needed
The data in our case is not that critical. We are fine if we can restore 1-2 old back-ups as long as the replication takes over within one day.
The server is running Ubuntu 12.04.
plone - Plone 网站的每周 ZODB 打包
定期(例如每周)打包 Plone ZODB 数据库的最佳做法是什么?
Plone ZEO 集群和单进程 Zope 实例有何不同?
使用 zeopack + cron
使用 wget + 一些 URL + cron + 特殊 Zope 用户
其他方法?
ZClockServer 与 cron?
我发现如果命令在 cron 中运行,有时 zeopack 实际上不会打包数据库。然而,调试这个问题没有什么问题,因为 zeopack 和 ZODB 都没有报告太多关于它们自己的信息。任何想法可能导致这种情况?
python - Conflict resolution in ZODB
I do run parallel write requests on my ZODB. I do have multiple BTree
instances inside my ZODB. Once the server accesses the same objects inside such a BTree
, I get a ConflictError
for the IOBucket
class. For all my Django bases classes I do have _p_resolveconflict
set up, but can't implement it for IOBucket
'cause its a C based class.
I did a deeper analysis, but still don't understand why it complains about the IOBucket
class and what it writes into it. Additionally, what would be the right strategy to resolve it?
Thousand thanks for any help!
python - pickle/zodb:如何处理带有类定义的移动 .py 文件?
ZODB
据我了解,我正在使用它pickle
来存储类实例。我正在做一些重构,我想将我的models.py
文件分成几个文件。但是,如果我这样做,我认为pickle
将无法找到类定义,因此将无法加载我已经存储在数据库中的对象。处理这个问题的最佳方法是什么?
django - Can I rerun a Django request?
I'm using a key-value store for Django. To manage conflict errors for concurrent processes accessing the same objects, I need to rerun whole Django requests if the final commit fails.
How do I do this? Can I somehow initiate the rerun inside a middleware.process_response
?
python - ZODB 中具有可变属性的对象的一致索引
我有一个 ZODB 安装,我必须在其中组织几百万种不同类型的对象。我有一个通用容器类Table
,它包含 BTrees 来按属性或这些属性的组合索引对象。数据一致性非常重要,因此我想强制执行,当我写入索引覆盖的任何属性时,索引会自动更新。所以一个简单的obj.a = x
应该足以计算所有新的依赖索引条目,检查是否有任何冲突,最后写入索引和值。
一般来说,我很乐意为此使用库,所以我查看了repoze.catalog和IndexedCatalog,但对此并不满意。IndexedCatalog 似乎已经死了很长一段时间,并且没有为对象的更改提供那种一致性。据我所知, repoze.catalog 似乎更常用和更活跃,但也没有提供这种一致性。如果我在这里错过了什么,我很想听听它,并且更喜欢重用而不是重新发明。
所以,除了试图为问题找到一个库之外,我如何看待它,我必须拦截对具有描述符的数据对象属性的写访问,并让Table
类执行更改索引的魔法。为此,描述符实例必须知道Table
它们必须与哪些实例通信。当前的实现是这样的:
生成这些DatabaseElement
类时,尚未创建数据库和其中的对象。因此,正如在这个不错的答案中提到的,我可能必须创建一些单例查找机制来查找Table
对象,而不是将它们Property
作为实例化参数。有没有更优雅的方式?保留描述符本身?欢迎任何建议和最佳实践示例!
windows - 用于 64 位窗口的 ZODB 3
我尝试使用 pip 为 64 位 Python 2.7 安装 ZODB3。此安装需要本地编译器来编译 BTrees 扩展。因为我没有安装所需的 MS 编译器:
- Python 2.7 上是否有用于 ZODB 的二进制 64 位 Windows 安装程序?我使用谷歌但没有成功
- 是否真的需要 BTrees 或者我可以在没有 BTrees 的情况下安装 ZODB3 吗?
欢呼,乌维。
python - 如何将持久对象的基本类型属性排除在持久对象之外?
例如,如果类型是对象的 int 或 str 属性,您将如何将其排除在对象的类中。是不是必须在属性之前声明一个装饰器,那是什么?
python - ZODB / repoze.catalog - 将对象和目录保存在同一个数据库中?
我以为我明白这一点,但我开始怀疑!
如果您考虑repoze.catalog 文档示例:
这向您展示了如何为 Content 类的两个实例生成目录条目,但实际保存对象的正确机制是什么?
我一开始有一个完全独立的 ZODB 数据库,我在其中存储了在 docid 上键入的对象,该 docid 用于在 repoze.catalog 下对它们进行编目,但是当涉及事务时,这不太令人满意,因为在添加对象时我必须发出提交用于存储对象的目录和 ZODB 数据库。
我曾假设我能够访问 repoze.catalog 结构中的 ZODB 目录并使用它来存储实际对象,但我很难找到如何做到这一点。
python - 从两个进程访问 ZODB
我有一个站点,每次在服务器运行时尝试打开数据库时,它都会显示一个错误,即数据库已由不同的进程打开。
问题是我有一些脚本可以用 cron 安排来检查数据库,甚至只是pshell
在服务器运行时使用。
到目前为止,似乎不可能从不同的进程打开数据库,而文档实际上说可以有多个连接到数据库。
这个问题迫使我一次只运行一个脚本/进程,包括服务器。