跳转到主要内容

ZODB分布式垃圾回收

项目描述

ZODB分布式GC

此包提供了两个脚本,用于多数据库垃圾回收和数据库验证。

这些脚本要求提供的数据库使用64位对象ID。垃圾回收脚本还假设数据库支持从数据库末尾附近的事务中有效迭代。

multi-zodb-gc

multi-zodb-gc脚本接受一个或两个配置文件。如果提供一个配置文件,则对配置文件中指定的数据库执行垃圾回收。如果找到垃圾,则将删除记录写入数据库。当数据库随后在写入删除记录之后的时间打包时,垃圾对象将被删除。

如果提供了第二个配置文件,则将使用第二个配置文件中指定的数据库来查找垃圾。删除的记录仍然会被写入第一个配置文件中指定的数据库。在使用复制数据库技术时,可以使用次要存储进行分析,这些存储通常负载较轻。这很有帮助,因为查找垃圾会在数据库上产生很大的负载。

如果你的数据库使用文件存储,那么除了指定第二个配置文件外,还可以使用-f选项来指定用于查找垃圾的文件存储迭代器。使用文件存储迭代器比使用ZEO连接快得多,并且比在文件上打开只读文件存储更快、更节省内存。

一些数据库记录的尾部天数(默认为1天)被认为是好的,这意味着这些记录引用的对象不是垃圾。这允许垃圾回收算法更有效地工作,并避免应用程序(不正确地)执行导致对象暂时未引用的操作(例如在两次事务中移动对象)时出现的问题。

可以使用选项来控制被视为非垃圾的尾部数据的天数,并指定日志级别。使用--help选项获取详细信息。

multi-zodb-check-refs

multi-zodb-check-refs脚本通过从它们的根开始遍历数据库,以验证数据库集合,确保所有引用的对象都是可到达的。任何不可到达的对象都会被报告。如果任何数据库配置为不允许隐式跨数据库引用,则还会报告无效引用。还会检查Blob记录,以确保它们的Blob文件可以加载。

可选地,可以生成引用信息的数据库。这个数据库允许你找到在数据库中引用给定对象ID的对象。这可以非常有助于调试丢失的对象。生成引用数据库会显著增加分析时间。引用数据库可能会变得相当大,通常占被分析数据库大小的相当大比例。通常,你会在没有引用数据库的情况下进行初始分析,只有当发现问题时才在后续运行中创建引用文件。

你可以使用--help选项来获取使用信息。

变更历史

1.1.0 (2020-09-21)

  • 添加对Python 3.5、3.6、3.7、3.8和3.9的支持。

  • 取消对Python 2.6、3.2、3.3和3.4的支持。

  • 需要ZODB 5.1或更高版本。参见问题14

1.0.1 (2015-09-23)

  • 修复#6:添加对弱引用的支持。

  • 修复:如果一个对象的唯一引用在其主数据库之外,它会被错误地回收,从而破坏跨数据库引用。

1.0.0 (2015-08-28)

  • 添加对PyPy、Python 2.7和Python 3的支持。这需要在Python 2.6上添加zodbpickle依赖项。

  • 修复了使用最新版本的persistent修复的--days参数。

  • 为了与Python 3兼容,内部实现函数gcgc_command的返回值和参数已更改。这不会影响文档中的脚本的用户,此处仅对开发者进行说明。

0.6.1 (2012-10-08)

  • 修复:GC在某些特殊情况下可能会因为NameError而失败。

0.6.0 (2010-05-27)

  • 添加了对转换(例如压缩)数据记录的存储的支持。

0.5.0 (2009-11-10)

  • 修复了延迟节流中的错误,该错误导致对象删除速度过慢。

0.4.0 (2009-09-08)

  • 上一个版本一次删除了过多的对象,这可能会给负载很重的存储服务器带来太大的负载。

    • 在删除一系列数据后,添加睡眠或允许存储休眠。睡眠时间应为执行删除时间的两倍。

    • 调整删除批次大小,使每个批次的删除大约需要0.5秒,但每次至少删除10个。

0.3.0 (2009-09-03)

  • 通过使用临时文件来存储对象引用,而不是在需要时从分析数据库中加载,优化了垃圾回收。

  • 添加了-f选项,可直接指定文件存储文件。与ZEO连接相比,迭代文件存储的速度要快得多。使用此选项使用文件迭代器而不是以只读模式打开文件存储,从而避免了扫描数据库以构建索引,并避免了文件存储索引的内存开销。

0.2.0 (2009-06-15)

  • 添加了忽略某些数据库引用的选项。

  • 修复了处理日志级别选项的bug。

0.1.0 (2009-06-11)

初始版本

下载

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

zc.zodbdgc-1.1.0.tar.gz (22.6 kB 查看哈希)

上传时间

构建分布

zc.zodbdgc-1.1.0-py2.py3-none-any.whl (20.6 kB 查看哈希)

上传时间 Python 2 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面