r22775: For the cluster code I've developed a wrapper around tdb to put different
authorVolker Lendecke <vlendec@samba.org>
Thu, 10 May 2007 10:42:13 +0000 (10:42 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:21:56 +0000 (12:21 -0500)
commite9d7484ca246cfca4a1fd23be35edc2783136ebe
treeb5fd52ed06315d0a8da688525c48f208bc1706d3
parent44365130ce794e442f52ec7cf3fc51065f713c5f
r22775: For the cluster code I've developed a wrapper around tdb to put different
database backends in place dynamically.

The main abstractions are db_context and db_record, it should be mainly
self-describing, see include/dbwrap.h.  You open the db just as you would open
a tdb, this time with db_open(). If you want to fetch a record, just do the
db->fetch() call, if you want to do operations on it, you need to get it with
fetch_locked().

I added dbwrap_file.c (not heavily tested lately) as an example for what can
be done with that abstraction, uses a file per key. So if anybody is willing
to shape that up, we might have a chance on reiserfs again.... :-)

This abstraction works fine for brlock.tdb, locking.tdb, connections.tdb and
sessionid.tdb. It should work fine for the others as well, I just did not yet
get around to convert them.

If nobody loudly screams NO, then I will import the code that uses this soon.

Volker
source/Makefile.in
source/include/dbwrap.h [new file with mode: 0644]
source/include/includes.h
source/lib/dbwrap.c [new file with mode: 0644]
source/lib/dbwrap_file.c [new file with mode: 0644]
source/lib/dbwrap_tdb.c [new file with mode: 0644]