[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: [RFC] Deprecate Berkelety DB filesystem backend

From: Stefan Fuhrmann <stefan.fuhrmann_at_wandisco.com>
Date: Sat, 5 Jan 2013 16:10:44 +0100

On Sat, Jan 5, 2013 at 2:34 AM, Branko Čibej <brane_at_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

-- Stefan^2.

Certified & Supported Apache Subversion Downloads:
Received on 2013-01-05 16:11:17 CET

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.