Switching /etc/*.db from bdb to tinycdb
Stanislav Sedov
stas at FreeBSD.org
Mon May 7 20:26:51 UTC 2012
On Wed, 2 May 2012 13:41:15 +0200
Baptiste Daroussin <bapt at FreeBSD.org> mentioned:
> Hi,
>
> I plan to work on switching all the /etc/*.db files from bdb 1.85 to cdb (using
> the tinycdb implementation)
>
> Reason for doing that:
> 1/ we use the *.db files as a constant database on recreating them using
> *_mkdb(8) commands
> 2/ bdb 1.85 database are endianness dependant which can cause problem if I want
> pkgng to be able to create users when cross installing packages (like adding
> packages in a mips eb chroot environment on an amd64 host)
> 3/ the tinycdb API is clean and easy to use (I find it easier and cleaner to
> deal with it)
> 4/ tinycdb is public domain so not problem for us to use it.
>
> On the side effects, I'm not sure this is relevant but tinycdb is also faster to
> read then bdb 1.85.
>
> How do I plan to do it.
>
> I plan to import the read part or tinycdb into libc and the write part into
> libutil (to avoid cluttering libc).
>
> Why importing to libc? to allow all the get*ent to parse the /etc/*.db files.
>
> How to implment it? slowly with backward compatibility:
> for each kind of files: try to open with cdb, if fail fall back to bdb.
>
> I plan to rewrite all the *_mkdb for make them use cdb.
>
> Link for tinycdb:
> http://www.corpit.ru/mjt/tinycdb.html
>
> Any opinion, ideas, advices on this?
Did you look at leveldb [1], btw? It seems to be very fast, better supported, and
support some advanced features that can be useful for other base applications
(like transactions, custom sorting, snapshots).
It's distributed under BSD license.
[1] http://code.google.com/p/leveldb/
--
Stanislav Sedov
ST4096-RIPE
() ascii ribbon campaign - against html e-mail
/\ www.asciiribbon.org - against proprietary attachments
More information about the freebsd-arch
mailing list