On Thu, Nov 07, 2013 at 07:34:05PM +0800, PCMan wrote:
> Crashes are not a real issue. We only need to choose a more reliable and
> robust db.

Having in mind the goal of keeping Lxde small I would suggest
considering a compact one without any redundant features.

> Samba tdb and sqlite are quite robust ones. Samba tdb is used in
> samba and thunar. Sqlite is widely used everywhere, even in firefox. It's
> well-tested and robust enough for this trivial task.

Sqlite is a PITA as it assumes certain things about the file system
and creates huge files (which are being regularly updated).
(A distributed file system doing consistent caching of whole files
gets a _lot_ of unnecessary work to do)

I can hardly tell anything about robustness or other virtues of tdb.

I have on the other side used rwcdb for many years, it is used for
Coda file system account database, i.e. an extremely critical piece
of infrastructure.

AFAICT all the needed functionality of key-value management
is present there in rwcdb. It is also highly portable.

coda-6.9.5/lib-src/rwcdb$ ls -l *.o
-rw-r--r-- 1 x x 2752 2013-04-26 13:54 rwcdb_file.o
-rw-r--r-- 1 x x 8276 2013-04-26 13:54 rwcdb.o

compare to:

tdb-1.2.12/bin/default$ ls -l libtdb.so 
-rwxr-xr-x 1 x x 89697 2013-11-07 13:40 libtdb.so

which means about 10-fold difference.

--------------------------- README.rwcdb
This library was written based on the design of Dan Bernstein's CDB
database (see cdb.txt and reading.txt).

The main difference is that rwcdb allows for (infrequent) updates to the
database. This implementation has been tested to read and write
compatible CDB databases as generated with the cdb tools from Dan
Bernstein.
 ...
  int rwcdb_sync(struct rwcdb *c);

    Used as a synchronization point. For read-only databases this checks
    whether there is a new version of the database available.

    For readwrite or write-only databases, it flushes the pending
    modifications to a temporary file and if everything is successful,
    moves the new database file in place of the old database.
 ...
---------------------------

It was written by Jan Harkes at CMU and released under LGPLv2.
It is distributed as part of a regular Coda source package, e.g.
  http://www.coda.cs.cmu.edu/pub/coda/src/coda-6.9.5.tar.gz
  as coda-6.9.5/lib-src/rwcdb
but totally independent of Coda otherwise.

Regards,
Rune


------------------------------------------------------------------------------
November Webinars for C, C++, Fortran Developers
Accelerate application performance with scalable programming models. Explore
techniques for threading, error checking, porting, and tuning. Get the most 
from the latest Intel processors and coprocessors. See abstracts and register
http://pubads.g.doubleclick.net/gampad/clk?id=60136231&iu=/4140/ostg.clktrk
_______________________________________________
Lxde-list mailing list
Lxde-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lxde-list

Reply via email to