多次修改后的SVN性能 [英] SVN performance after many revisions

查看:58
本文介绍了多次修改后的SVN性能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的项目目前正在使用一个 svn 存储库,每天都会获得数百个新修订.存储库驻留在 Win2k3 服务器上,并通过 Apache/mod_dav_svn 提供服务.

My project is currently using a svn repository which gains several hundred new revisions per day. The repository resides on a Win2k3-server and is served through Apache/mod_dav_svn.

我现在担心随着时间的推移,性能会因为修改太多而下降.
这种恐惧合理吗?
我们已经计划升级到 1.5,因此从长远来看,在一个目录中包含数千个文件不会成为问题.

I now fear that over time the performance will degrade due to too many revisions.
Is this fear reasonable?
We are already planning to upgrade to 1.5, so having thousands of files in one directory will not be a problem in the long term.

Subversion on 存储 2 个修订版之间的增量(差异),因此这有助于节省大量空间,特别是如果您只提交代码(文本)而不提交二进制文件(图像和文档).

Subversion on stores the delta (differences), between 2 revisions, so this helps saving a LOT of space, specially if you only commit code (text) and no binaries (images and docs).

这是否意味着为了检查文件 foo.baz 的修订版 10,svn 将采用修订版 1,然后应用 deltas 2-10?

Does that mean that in order to check out the revision 10 of the file foo.baz, svn will take revision 1 and then apply the deltas 2-10?

推荐答案

你有什么类型的 repo?FSFS 还是 BDB?

What type of repo do you have? FSFS or BDB?

(我们暂时假设 FSFS,因为这是默认设置.)

(Let's assume FSFS for now, since that's the default.)

在 FSFS 的情况下,每个修订版本都存储为与前一个版本的差异.所以,你会认为是的,经过多次修改,它会很慢.

In the case of FSFS, each revision is stored as a diff against the previous. So, you would think that yes, after many revisions, it would be very slow.

然而,事实并非如此.FSFS 使用所谓的跳过增量"来避免对以前的版本进行过多的查找.

However, this isn't the case. FSFS uses what are called "skip deltas" to avoid having to do too many lookups on previous revs.

(因此,如果您使用的是 FSFS 存储库,Brad Wilson 的回答是错误的.)

(So, if you are using an FSFS repo, Brad Wilson's answer is wrong.)

在 BDB 存储库的情况下,HEAD(最新)修订版是全文,但较早的修订版是作为一系列针对头部的差异构建的.这意味着每次提交后都必须重新计算之前的转速.

In the case of a BDB repo, the HEAD (latest) revision is full-text, but the earlier revisions are built as a series of diffs against the head. This means the previous revs have to be re-calculated after each commit.

更多信息:http://svn.apache.org/repos/asf/subversion/trunk/notes/skip-deltas

附言我们的 repo 大约 20GB,大约有 35,000 次修订,我们没有发现任何性能下降.

P.S. Our repo is about 20GB, with about 35,000 revisions, and we have not noticed any performance degradation.

这篇关于多次修改后的SVN性能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆