我们有一个非常大的SVN存储库(50 GB,超过100000个版本)。使用它非常慢,我的猜测是,原因是db / revs和db / revprops中的平面目录结构(其中每个修订版本是一个文件)。
我们将FSFS格式与SVN 1.5(在Linux服务器上)一起使用,但是repo是使用较旧的SVN版本创建的。现在我读到SVN 1.5支持“分片”,我知道这个功能将修订版本分发到多个目录中,因此单个目录不包含这么多文件。这听起来非常有用,但不幸的是,这个功能看起来只适用于使用SVN 1.5新创建的存储库。
如何将现有的大型线性仓库转换为分片仓库?手册提到了工具“fsfs-reshard.py”,但是这个脚本说“这个脚本未完成,不准备用于实时数据。相信我们。”。所以我绝对不想用它。还有其他选择吗?
svnadmin upgrade
和svnadmin dump
会这样做吗? svnadmin load
由于转储/恢复过程需要大量磁盘空间和处理时间,因此我发布了(2010年)http://subversion.apache.org/faq.html#dumpload的改进版本,其中包括对Subversion 1.6 FSFS格式5的支持:fsfs-reshard.py
它支持在线性到分片布局之间切换,在需要时解压缩分片。由于分片统计计算,您可以预期打包的修订版大小选择适当的分片大小。
当然它必须是https://github.com/ymartin59/svn-fsfs-reshard: