Re: State of BDB FS backend
Branko Čibej <[email protected]> Fri, 24 Jul 2026 14:06:01 +0200
| Newsgroups | gmane.comp.version-control.subversion.devel |
|---|---|
| Organization | The Apache Software Foundation |
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format. --------------22GHdU23spjLQ062crLaw839 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 24. 7. 2026 13:57, Daniel Sahlberg wrote: > Den fre 24 juli 2026 kl 13:30 skrev Branko Čibej <[email protected]>: > > On 24. 7. 2026 13:23, Branko Čibej wrote: >> On 24. 7. 2026 13:20, Ivan Zhakov wrote: >>> On Sat, 18 Jul 2026 at 18:27, Nathan Hartman >>> <[email protected]> wrote: >>> > I'm glad there's a good bit of housecleaning going on around here. >>> > We've accumulated so much cruft over the years, it makes my >>> > head spin. +1 to axe the ctypes bindings. >>> >>> Speaking of cleanups, another candidate comes to mind: the BDB >>> FS backend. I think now would be an appropriate time to remove it: >> >> >> We can't remove it before 2.0. It doesn't matter that it's >> deprecated, it's part of the published 1.0 feature set. > > > Just to be clear: the existence of the BDB back-end is equivalent > to a public API. We have many deprecated public APIs that we can't > remove for the same reason. > > -- Brane > > > This was discussed previously [1] and we even received a bug report > from FreeBSD that it doesn't work [2]. In the first link Yasuhito > Futatsuki was of the opposite opinion: the FS type is not a public > API. I tend to side with him but I could be convinced otherwise. > > As Yasuhito point out, SVN_FS_TYPE_BDB is a public API which we need > to keep. I didn't study details but I assume the code in > libsvn_fs_base only implement a filesystem API reachable via the fs > loader (this is way over my paygrade so please educate me if I > misunderstand something!). In that case, we won't break anyone's code > so anything that compiles under 1.14 will still compile under 1.16, > but it it would not be able to load the BDB FS backend (just as if you > didn't compile it in the first place). > > Of course - we would force anyone using a BDB backend to do a > dump-and-reload cycle as part of their upgrade. > > Provided my understanding above is correct, I'm in favour of removing BDB. What do we do with older clients that link with libsvn_fs_base when a library upgrade makes that go away? At the very least we'd have to keep a stub that implements all exported functions, or we break the ABI. In other words, even if we decide that removing BDB support isn't an API violation, we can't do this in 1.15 because it's not a trivial change of removing a directory and a couple lines from build.conf. -- Brane --------------22GHdU23spjLQ062crLaw839 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <div class="moz-cite-prefix">On 24. 7. 2026 13:57, Daniel Sahlberg wrote:<br> </div> <blockquote type="cite" cite="mid:CAMHy98NbSyzzA7kAYMaEUYdJCu+s3b1zNyuBsNfQ04MXh4YBGA@mail.gmail.com"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <div dir="ltr"> <div dir="ltr"><span style="background-color:transparent">Den fre 24 juli 2026 kl 13:30 skrev Branko Čibej <<a href="mailto:[email protected]" moz-do-not-send="true" class="moz-txt-link-freetext">[email protected]</a>>:</span></div> <div class="gmail_quote gmail_quote_container"> <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> <div> <div>On 24. 7. 2026 13:23, Branko Čibej wrote:<br> </div> <blockquote type="cite"> <div>On 24. 7. 2026 13:20, Ivan Zhakov wrote:<br> </div> <blockquote type="cite"> <div dir="ltr">On Sat, 18 Jul 2026 at 18:27, Nathan Hartman <<a href="mailto:[email protected]" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">[email protected]</a>> wrote: <br> > I'm glad there's a good bit of housecleaning going on around here.<br> > We've accumulated so much cruft over the years, it makes my<br> > head spin. +1 to axe the ctypes bindings.<br> <br> Speaking of cleanups, another candidate comes to mind: the BDB FS backend. I think now would be an appropriate time to remove it:<br> </div> </blockquote> <br> <br> We can't remove it before 2.0. It doesn't matter that it's deprecated, it's part of the published 1.0 feature set.<br> </blockquote> <br> <br> Just to be clear: the existence of the BDB back-end is equivalent to a public API. We have many deprecated public APIs that we can't remove for the same reason.<br> <br> -- Brane</div> </blockquote> <div><br> </div> <div>This was discussed previously [1] and we even received a bug report from FreeBSD that it doesn't work [2]. In the first link Yasuhito Futatsuki was of the opposite opinion: the FS type is not a public API. I tend to side with him but I could be convinced otherwise.</div> <div><br> </div> <div>As Yasuhito point out, <span style="color:rgb(34,34,51);font-family:Selawk,Hack;font-size:13.3px;white-space:pre-line">SVN_FS_TYPE_BDB </span>is a public API which we need to keep. I didn't study details but I assume the code in libsvn_fs_base only implement a filesystem API reachable via the fs loader (this is way over my paygrade so please educate me if I misunderstand something!). <span style="background-color:transparent">In that case, we won't break anyone's code so anything that compiles under 1.14 will still compile under 1.16, but it it would not be able to load the BDB FS backend (just as if you didn't compile it in the first place).</span></div> <div><span style="background-color:transparent"><br> </span></div> <div><span style="background-color:transparent">Of course - we would force anyone using a BDB backend to do a dump-and-reload cycle as part of their upgrade.</span></div> <div><br> </div> <div>Provided my understanding above is correct, I'm in favour of removing BDB.</div> </div> </div> </blockquote> <br> <br> What do we do with older clients that link with libsvn_fs_base when a library upgrade makes that go away? At the very least we'd have to keep a stub that implements all exported functions, or we break the ABI.<br> <br> In other words, even if we decide that removing BDB support isn't an API violation, we can't do this in 1.15 because it's not a trivial change of removing a directory and a couple lines from build.conf.<br> <br> -- Brane<br> <br> </body> </html> --------------22GHdU23spjLQ062crLaw839--