为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文件   java我可以分配变量,然后马上引用它们吗?   即使listview获取了一个项目,java Textview仍然可见   执行命令行时发生java ECLIPSE异常   java使用1个微调器动态更改2个带有if函数和notifyDataSetChanged的微调器?   java css选择器,用于在selenium webdriver中选择表中的特定行和列   unix Java在AIX中不工作   java为什么要输出映射键,需要在forEach之前使用map(map.Entry::getKey),而forEach内部的getKey()不会给出相同的结果?   java我想修剪一个被XML解析的输出   maven以编程方式将工件部署到Nexus的快速方法(Java)   java如何使用特定的javac二进制版本?   java HstSiteConfigurer:组件管理器初始化失败   当切换到选项卡布局/片段时,java Android应用程序崩溃   java JComboBox是一种原始类型。对泛型类型JComboBox<E>的引用应该参数化   为什么浏览器不能用BDD eclipse读取Java中的ID,而其他网站却用相同的代码读取   Netbeans Derby连接上不存在java表视图异常   oop找不到符号:Java