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)
commit4c185a6077322ba64231d23dda25a6b6d44d0b12
tree3414d157ac362907b5c3693b569d5696c58a690c
parentad3bed14f180c48e8d1ba57e7316398d81cc7d6b
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
(This used to be commit e9d7484ca246cfca4a1fd23be35edc2783136ebe)
source3/Makefile.in
source3/include/dbwrap.h [new file with mode: 0644]
source3/include/includes.h
source3/lib/dbwrap.c [new file with mode: 0644]
source3/lib/dbwrap_file.c [new file with mode: 0644]
source3/lib/dbwrap_tdb.c [new file with mode: 0644]