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

Re: backend databases

From: Greg Stein <gstein_at_lyra.org>
Date: 2002-02-06 22:46:33 CET

On Wed, Feb 06, 2002 at 09:21:36AM -0500, Mark C. Chu-Carroll wrote:
> On Tue, 2002-02-05 at 21:07, Greg Stein wrote:
> > All that said: Subversion 2.0 will have SQL backend support, if at all
> > possible. I don't think anybody disagrees with the notion, but nobody is
> > immediately jumping at the bit to do it immediately :-)
> I'd also encourage people to wait a bit on doing a SQL backend. For
> Stellation (the project formerly known as Synedra or Coven), we built
> our backend using SQL (with PostgreSQL as our primary target.... Anyone
> who is considering using MySQL for a reliable storage backend is simply
> nuts. Without solid transactionality, which MySQL doesn't really support
> yet, it's just not trustworthy enough...)

MySQL has data *integrity*. Its operations on the underlying data store (the
filesystem) is transacted. What it lacks are SQL-level transactions.
However, Subversion does not require SQL-level transactions. Each SVN-level
transaction is used by a single thread/client, and all revision trees are
immutable. Thus, the only point where a problem occurs is promoting an
SVN-level transaction tree into a revision tree. And that is simply an
INSERT statement into a table mapping revision numbers to root nodes.
Individual SQL statements are always transacted, so we'd be quite fine
without a SQL-level transaction capability.

[ more specifically, we'd do something like:

    INSERT into revisions values (expected-rev, root-node-id)

  if somebody beat us to expected-rev, then the statement errors due to a
  unique key constraint, so we re-merge and try again with the next revision

> There are huge advantages to a
> SQL backend vs BDB, but it's far from trivial to get it right. Our code

We've got some good database people on this list (Bill Tutt comes to mind).
I'm actually not too worried about our database design.

> will be going open shortly (if the damned lawyers would just get out of
> our way), and we've got a well-tested SQL storage backend that would
> be, at the very least, highly instructional for anyone building a SQL
> backend for SubVersion. (There's a good chance that design could be
> lifted; since we're in Java, code can be adapted, but not directly
> copied.)

But this would definitely be helpful. Thanks :-)


Greg Stein, http://www.lyra.org/
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Oct 21 14:37:05 2006

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.