为zodb打包一个无历史记录的postgresql relstorage。

relstorage_packer的Python项目详细描述


重新存储打包机

将zodb打包到 无历史记录的 postgresql relstorage中,blob位于 文件系统。

概述

这个脚本也适用于非常大的relstorage zodbs,它有几百万个 物体。原始的pack脚本花费了几天时间,消耗了大量的ram。 因此需要加快包装过程。

此脚本不消耗相关数量的RAM,运行速度比 原创。过去只花了3.5天来分析,现在大约需要6天 小时。在随后的运行中,它只处理上次运行后的更改:它 只考虑比上一个处理的事务更新的事务 运行.< /P>

在编写时,处理4400万个对象最初大约需要3-6小时 取决于PostgreSQL的硬件和配置。

脚本将创建一个反向对象图,这只需要在db中占用很少的额外空间。

限制

在开发时,关键的生产环境是postgresql 数据库运行relstorage,blob存储在文件服务器上,无历史记录 模式。这样就实现了。

我相信在mysql和oracle上也很容易实现。 当然也可以考虑数据库中的blob。

我不确定这种清理方式对于非历史自由模式是否有意义。AT 至少,重构和 工具。

欢迎投稿!

用法

创建配置文件。这和经典的包脚本是一样的 与relstorage一起部署:

<relstorage>
    create-schema false
    keep-history false
    shared-blob-dir true
    blob-dir var/blobstorage
    commit-lock-timeout 600
    <postgresql>
        dsn dbname='test_site' host='127.0.0.1' user='zodb' password='secret'
    </postgresql>
</relstorage>

安装后,可以使用脚本relstorage_pack

Usage: relstorage_pack config_file

Fast ZODB Relstorage Packer for history free PostgreSQL

Options:
  -h, --help     show this help message and exit
  -i, --init     Removes all reference counts and starts from scratch.
  -v, --verbose  More verbose output, includes debug messages.

当第一次以数据库pass作为参数运行时。这个 放下并重新创建包装台。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java关闭应用程序按钮Listener   Java中的多线程同步在Java示例中的思考   java如何查看Tomcat正在使用/访问的JAR?   java My代码在调用垃圾收集器后不会终止   多线程Java连接线程池和connectionfactory?   java在运行时修改JAR文件   java Android:使用光标时引发IllegaleException   在Netbeans中测试不可执行库的java?   泛型在参数上强制子类Java类型   spring Java:继承与依赖注入“自动连线”   javascript如何解析这个xml元素   java打印特定序列中的数组   带有ProcessingTimeSessionWindow的java Apache Flink自定义触发器   java如何配置消息驱动的Bean应用程序和Glassfish来使用来自远程MessageBroker的消息?