[Xapian-discuss] binary db compatibility between versions

Olly Betts olly at survex.com
Thu Apr 2 09:22:24 BST 2009


On Wed, Apr 01, 2009 at 03:38:59PM +0200, Henry wrote:
> Quoting "Olly Betts" <olly at survex.com>:
> > ... Note that cases
> > which aren't compatible will throw DatabaseVersionError, so just trying
> > it is the simplest way to check.
> 
> I ran into this a few days ago (r12236, I think), requiring a re-index  
> on my test data (using chert) :)

Yeah, for the development backend (chert currently) the rules are much
looser.  Essentially we'll bump the format version when the format
changes (so you'll get an exception), and we'll try to group changes
which bump the format version.

> > ... but I'm interested to hear feedback from users about what sort  
> > of compatibility promises they find useful.
> 
> How about always bumping the minor version number when the index  
> format changes?

The problem with forcing a minor version bump here is that we already
have the deprecation policy expressed in terms of minor versions, and
documentation, ticket, and the wiki refer to things happening in future
versions.

So we'd need to have a different way to refer to future versions in a
minor version independent way, somehow.  Or else we'd need to go through
and update all such references whenever the stable database format
changed.  Deciding to make 1.1 a development release has required doing
pretty much this, and it was rather a pain.

> That way it's obvious (at a glance) that a significant change has  
> occurred, triggering (hopefully) a closer inspection of the changelog  
> by the user.

I think this would work if approached the other way - no format changes
except when we change the minor version anyway.

Cheers,
    Olly



More information about the Xapian-discuss mailing list