You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by "C. Michael Pilato" <cm...@collab.net> on 2007/09/13 18:30:38 UTC

Add Berkeley DB 4.6 support to Subversion?

Oracle has released version 4.6.19 of its Berkeley DB library.  According to
my interpretation of the "Upgrading application to 4.6.x"[1] documentation,
I don't think there's anything especially difficult for us to do in
Subversion to make the claim that we support 4.6.x.  Some macros for cursor
function name differences here, an examination of how we toggle verbose
error output there.  (Most of the 4.6 changes seem to be focused around
replication, which is -- and has been -- the latest hot topic for BDB.)

Should we "go there" for Subversion 1.5?

[1]
http://www.oracle.com/technology/documentation/berkeley-db/db/ref/upgrade.4.6/toc.html

-- 
C. Michael Pilato <cm...@collab.net>
CollabNet   <>   www.collab.net   <>   Distributed Development On Demand


Re: Add Berkeley DB 4.6 support to Subversion?

Posted by Daniel Rall <dl...@finemaltcoding.com>.
On Sep 13, 2007, at 11:57 AM, Blair Zajac wrote:

> C. Michael Pilato wrote:
>> Blair Zajac wrote:
>>> C. Michael Pilato wrote:
>>>> Oracle has released version 4.6.19 of its Berkeley DB library.  
>>>> According to
>>>> my interpretation of the "Upgrading application to 4.6.x"[1]
>>>> documentation,
>>>> I don't think there's anything especially difficult for us to do in
>>>> Subversion to make the claim that we support 4.6.x.  Some macros  
>>>> for
>>>> cursor
>>>> function name differences here, an examination of how we toggle  
>>>> verbose
>>>> error output there.  (Most of the 4.6 changes seem to be focused  
>>>> around
>>>> replication, which is -- and has been -- the latest hot topic  
>>>> for BDB.)
>>>>
>>>> Should we "go there" for Subversion 1.5?
>>>>
>>>> [1]
>>>> http://www.oracle.com/technology/documentation/berkeley-db/db/ 
>>>> ref/upgrade.4.6/toc.html
>>>>
>>> +1.
>>>
>>> Using BDB's replication to replicate Subversion repositories  
>>> would be
>>> pretty sweet.  Presumably, this would also allow us to replicate
>>> uncommitted transactions, which would be cool (well, cool for my
>>> project, where I expect long-lived transactions).
>> Well, BDB has had replication for some time now -- it's not new to  
>> 4.6.x.
>> In fact, back when 4.4 was released, Keith Bostic asked me if I  
>> knew of any
>> monster-sized Subversion datasets.  He was wanting to do a proof  
>> of concept
>> using replicated Subversion repositories!
>
> Good to know.

FWIW, this would not currently handle replication of the SQLite  
mergeinfo.db which sits in the REPOS/db/ directory next to the other  
BDB data.

The APIs which access this merge history index are abstracted with an  
eye towards being storage-agnostic, so if someone later wanted to put  
all the information in BDB (or some other backend FS implementation),  
this would be possible.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Add Berkeley DB 4.6 support to Subversion?

Posted by Daniel Rall <dl...@finemaltcoding.com>.
On Sep 13, 2007, at 11:59 AM, C. Michael Pilato wrote:

> Blair Zajac wrote:
>> But yes, +1 on supporting 4.6 in 1.5.  1.5 is going to be out a long
>> time before 1.6, so we will want to support 4.6 for new distributions
>> that may go to 4.6 quickly.
>
> Okay.

+1

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Add Berkeley DB 4.6 support to Subversion?

Posted by "C. Michael Pilato" <cm...@collab.net>.
Blair Zajac wrote:
> But yes, +1 on supporting 4.6 in 1.5.  1.5 is going to be out a long
> time before 1.6, so we will want to support 4.6 for new distributions
> that may go to 4.6 quickly.

Okay.

> This change also looks interesting:
> 
> "The format of Hash database pages was changed in the Berkeley DB 4.6
> release, and items are now stored in sorted order. The format changes
> are entirely backward-compatible, and no database upgrades are needed.
> However, upgrading existing databases can offer significant performance
> improvements."
> 
> I wonder how much faster svn performance we would see with 4.6 versus 4.5.

IIRC, we don't use Hash databases -- we only use Btree's and Recno's.

-- 
C. Michael Pilato <cm...@collab.net>
CollabNet   <>   www.collab.net   <>   Distributed Development On Demand


Re: Add Berkeley DB 4.6 support to Subversion?

Posted by Blair Zajac <bl...@orcaware.com>.
C. Michael Pilato wrote:
> Blair Zajac wrote:
>> C. Michael Pilato wrote:
>>> Oracle has released version 4.6.19 of its Berkeley DB library. 
>>> According to
>>> my interpretation of the "Upgrading application to 4.6.x"[1]
>>> documentation,
>>> I don't think there's anything especially difficult for us to do in
>>> Subversion to make the claim that we support 4.6.x.  Some macros for
>>> cursor
>>> function name differences here, an examination of how we toggle verbose
>>> error output there.  (Most of the 4.6 changes seem to be focused around
>>> replication, which is -- and has been -- the latest hot topic for BDB.)
>>>
>>> Should we "go there" for Subversion 1.5?
>>>
>>> [1]
>>> http://www.oracle.com/technology/documentation/berkeley-db/db/ref/upgrade.4.6/toc.html
>>>
>> +1.
>>
>> Using BDB's replication to replicate Subversion repositories would be
>> pretty sweet.  Presumably, this would also allow us to replicate
>> uncommitted transactions, which would be cool (well, cool for my
>> project, where I expect long-lived transactions).
> 
> Well, BDB has had replication for some time now -- it's not new to 4.6.x.
> In fact, back when 4.4 was released, Keith Bostic asked me if I knew of any
> monster-sized Subversion datasets.  He was wanting to do a proof of concept
> using replicated Subversion repositories!

Good to know.

> 
> Anyway, my question was *absolutely not* "Should we try to expose BDB
> replication in Subversion 1.5?"  It was simply "Should we try to make
> Subversion's code compile and work against BDB 4.6.x?"

Agreed, definitely not expose BDB replication through svn.

> Are you still +1?

But yes, +1 on supporting 4.6 in 1.5.  1.5 is going to be out a long time before 
1.6, so we will want to support 4.6 for new distributions that may go to 4.6 
quickly.

This change also looks interesting:

"The format of Hash database pages was changed in the Berkeley DB 4.6 release, 
and items are now stored in sorted order. The format changes are entirely 
backward-compatible, and no database upgrades are needed. However, upgrading 
existing databases can offer significant performance improvements."

I wonder how much faster svn performance we would see with 4.6 versus 4.5.

Regards,
Blair

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Add Berkeley DB 4.6 support to Subversion?

Posted by "C. Michael Pilato" <cm...@collab.net>.
Blair Zajac wrote:
> C. Michael Pilato wrote:
>> Oracle has released version 4.6.19 of its Berkeley DB library. 
>> According to
>> my interpretation of the "Upgrading application to 4.6.x"[1]
>> documentation,
>> I don't think there's anything especially difficult for us to do in
>> Subversion to make the claim that we support 4.6.x.  Some macros for
>> cursor
>> function name differences here, an examination of how we toggle verbose
>> error output there.  (Most of the 4.6 changes seem to be focused around
>> replication, which is -- and has been -- the latest hot topic for BDB.)
>>
>> Should we "go there" for Subversion 1.5?
>>
>> [1]
>> http://www.oracle.com/technology/documentation/berkeley-db/db/ref/upgrade.4.6/toc.html
>>
> 
> +1.
> 
> Using BDB's replication to replicate Subversion repositories would be
> pretty sweet.  Presumably, this would also allow us to replicate
> uncommitted transactions, which would be cool (well, cool for my
> project, where I expect long-lived transactions).

Well, BDB has had replication for some time now -- it's not new to 4.6.x.
In fact, back when 4.4 was released, Keith Bostic asked me if I knew of any
monster-sized Subversion datasets.  He was wanting to do a proof of concept
using replicated Subversion repositories!

Anyway, my question was *absolutely not* "Should we try to expose BDB
replication in Subversion 1.5?"  It was simply "Should we try to make
Subversion's code compile and work against BDB 4.6.x?"

Are you still +1?

-- 
C. Michael Pilato <cm...@collab.net>
CollabNet   <>   www.collab.net   <>   Distributed Development On Demand


Re: Add Berkeley DB 4.6 support to Subversion?

Posted by Blair Zajac <bl...@orcaware.com>.
C. Michael Pilato wrote:
> Oracle has released version 4.6.19 of its Berkeley DB library.  According to
> my interpretation of the "Upgrading application to 4.6.x"[1] documentation,
> I don't think there's anything especially difficult for us to do in
> Subversion to make the claim that we support 4.6.x.  Some macros for cursor
> function name differences here, an examination of how we toggle verbose
> error output there.  (Most of the 4.6 changes seem to be focused around
> replication, which is -- and has been -- the latest hot topic for BDB.)
> 
> Should we "go there" for Subversion 1.5?
> 
> [1]
> http://www.oracle.com/technology/documentation/berkeley-db/db/ref/upgrade.4.6/toc.html

+1.

Using BDB's replication to replicate Subversion repositories would be pretty 
sweet.  Presumably, this would also allow us to replicate uncommitted 
transactions, which would be cool (well, cool for my project, where I expect 
long-lived transactions).

Blair

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Add Berkeley DB 4.6 support to Subversion?

Posted by "C. Michael Pilato" <cm...@collab.net>.
Max Bowsher wrote:
>> The only open
>> question I have is about the change to error reporting being verbose by
>> default now.  We may or may not care -- I don't recall how we interact with
>> BDB in this way.
> 
> It's been a *looong* time since I looked at the code, but I think we
> already explicitly configure the error reporting with DB->set_errcall so
> a change to the implicit default will not affect us.

Yeah, we use DB_ENV->set_errcall(), but not DB->set_errcall().  I wasn't
able to quickly tell from reading the docs, but I would assume that calling
DB_ENV->set_errcall() would be something like calling DB->set_errcall() for
all the databases.

-- 
C. Michael Pilato <cm...@collab.net>
CollabNet   <>   www.collab.net   <>   Distributed Development On Demand


Re: Add Berkeley DB 4.6 support to Subversion?

Posted by Max Bowsher <ma...@ukf.net>.
C. Michael Pilato wrote:
> Hyrum K. Wright wrote:
>> C. Michael Pilato wrote:
>>> Oracle has released version 4.6.19 of its Berkeley DB library.  According to
>>> my interpretation of the "Upgrading application to 4.6.x"[1] documentation,
>>> I don't think there's anything especially difficult for us to do in
>>> Subversion to make the claim that we support 4.6.x.  Some macros for cursor
>>> function name differences here, an examination of how we toggle verbose
>>> error output there.  (Most of the 4.6 changes seem to be focused around
>>> replication, which is -- and has been -- the latest hot topic for BDB.)
>>> Should we "go there" for Subversion 1.5?
>>> [1]
>>> http://www.oracle.com/technology/documentation/berkeley-db/db/ref/upgrade.4.6/toc.html
>> I don't know much about Berkeley DB, but I did download 4.6 and build
>> Subversion trunk against it.  FWIW, the tests all passed, and I couldn't
>> notice any problems.  If distributions will be shipping 4.6, it would
>> make sense for us to attempt to support it also.
> 
> Yeah, they've only *deprecated* some interfaces that we use, so we
> technically don't *need* to do anything there at all.  The only open
> question I have is about the change to error reporting being verbose by
> default now.  We may or may not care -- I don't recall how we interact with
> BDB in this way.

It's been a *looong* time since I looked at the code, but I think we
already explicitly configure the error reporting with DB->set_errcall so
a change to the implicit default will not affect us.

Max.




Re: Add Berkeley DB 4.6 support to Subversion?

Posted by "C. Michael Pilato" <cm...@collab.net>.
Hyrum K. Wright wrote:
> C. Michael Pilato wrote:
>> Oracle has released version 4.6.19 of its Berkeley DB library.  According to
>> my interpretation of the "Upgrading application to 4.6.x"[1] documentation,
>> I don't think there's anything especially difficult for us to do in
>> Subversion to make the claim that we support 4.6.x.  Some macros for cursor
>> function name differences here, an examination of how we toggle verbose
>> error output there.  (Most of the 4.6 changes seem to be focused around
>> replication, which is -- and has been -- the latest hot topic for BDB.)
> 
>> Should we "go there" for Subversion 1.5?
> 
>> [1]
>> http://www.oracle.com/technology/documentation/berkeley-db/db/ref/upgrade.4.6/toc.html
> 
> I don't know much about Berkeley DB, but I did download 4.6 and build
> Subversion trunk against it.  FWIW, the tests all passed, and I couldn't
> notice any problems.  If distributions will be shipping 4.6, it would
> make sense for us to attempt to support it also.

Yeah, they've only *deprecated* some interfaces that we use, so we
technically don't *need* to do anything there at all.  The only open
question I have is about the change to error reporting being verbose by
default now.  We may or may not care -- I don't recall how we interact with
BDB in this way.

-- 
C. Michael Pilato <cm...@collab.net>
CollabNet   <>   www.collab.net   <>   Distributed Development On Demand


Re: Add Berkeley DB 4.6 support to Subversion?

Posted by "Hyrum K. Wright" <hy...@mail.utexas.edu>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

C. Michael Pilato wrote:
> Oracle has released version 4.6.19 of its Berkeley DB library.  According to
> my interpretation of the "Upgrading application to 4.6.x"[1] documentation,
> I don't think there's anything especially difficult for us to do in
> Subversion to make the claim that we support 4.6.x.  Some macros for cursor
> function name differences here, an examination of how we toggle verbose
> error output there.  (Most of the 4.6 changes seem to be focused around
> replication, which is -- and has been -- the latest hot topic for BDB.)
> 
> Should we "go there" for Subversion 1.5?
> 
> [1]
> http://www.oracle.com/technology/documentation/berkeley-db/db/ref/upgrade.4.6/toc.html

I don't know much about Berkeley DB, but I did download 4.6 and build
Subversion trunk against it.  FWIW, the tests all passed, and I couldn't
notice any problems.  If distributions will be shipping 4.6, it would
make sense for us to attempt to support it also.

- -Hyrum

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFG6YT1CwOubk4kUXwRAiVEAJ9PYSvQ9iwjJTg9LclDZcOHOGHOBwCglSlZ
sNt7HVvyAPab+bu3Wyv9QM8=
=N3VK
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org