On Sat, Jan 5, 2013 at 2:34 AM, Branko Čibej <br...@wandisco.com> wrote:
> For the following reasons > > - FSFS has been the default filesystem backend for almost 7 years, > since 1.2. > > That only makes it feasible but is not a reason in itself to not support other backends as well. > > - > - Looking at commit history, I've not seen a single (functional or > performance) improvement, beyond a few bug fixes, in the BDB backend in at > least two years. The last significant change that I'm aware of was released > in 1.4 (support for BDB 4.4. and DB_REGISTER) back in 2006. In effect, BDB > is in "barely maintained" mode whereas interesting things are happening to > FSFS all the time. > > The last part is the relevant one, IMO. It implies that fundamental changes like FSv2 will introduce unknown stability issues with BDB and may require significant additional maintenance efforts. > > - > - I cannot remember seeing a BDB-related bug report in a month of > Sundays (meaning that it's either rock-solid, or not used). > > So, we can passively support it for a while from now on and even properly maintain it (bug fixes) without the expectation of that being too costly. > > - > - The BDB backend is an order of magnitude slower on trunk than FSFS > - timing parallel "make check" on my 4x4-core i7+ssd mac: > - FSFS: real 7m33.213s, user 19m8.075s, sys 10m54.739s > - BDB: real 35m17.766s, user 15m28.395s, sys 11m58.824s > > Not promising anything here, but I could run a few standard ops (export, log, dump) in 1.8 with a larger repo and see what happens. Question: What if BDB turns out to be faster? > > > I propose that we: > > - Declare the BDB backend deprecated in 1.8, adding appropriate > warnings when it's used or manipulated (to svnadmin?) > > +1. > > - > - Stop supporting it (including bug fixes) in 1.9 > > -0. We should not forbid us from making critical fixes. Given the track record, there will be very few of them. > > - > - Completely remove the BDB-related code in 1.10 (I'm making an > assumption that we'll have the FSv2 API and releated refactoring of FSFS by > then, and at least a draft experimental FSv2 implementation). > > > 1.9 will be supported until 1.11 gets released. IOW, any user still running BDB will get another 3 .. 5 years of official support for those repositories. Given that people like to make changes to their SW infrastructure only if they replace the machines anyway, this would be just the right time frame. > I realize I'm raising this question at a time when we should be focusing > on branching 1.8. On the other hand, this release may be a good opportunity > to deprecate the Berkeley DB filesystem. > I think it is the perfect time for such a decision: We haven't done any coding with the expectation of deprecating BDB, yet. Also, 1.9 will probably not exclusively rely on FSv2 but it could be the defining feature in 1.10. Your proposal is a perfect fit in that scenario. -- Stefan^2. -- Certified & Supported Apache Subversion Downloads: * http://www.wandisco.com/subversion/download *