1
A GConf backend is an adaptor to permit GConf to store configuration
2
information in some form of 'database'. The XML backend uses files
3
and a file-system directory structure to store key-value pairs,
4
schemas, and to represent the key hierarchy. The Berkeley DB
5
backend uses Sleepycat's distribution of the Berkeley DB
6
database toolkit to provide a relatively high performance GConf
9
If you decide not to build the Berkeley DB backend, simply remove
10
the reference to libgconfbackend-bdb.la in the definition of
11
backend_LTLIBRARIES in backends/Makefile.
13
See comments in bdb.h for an description of the databases and
16
Notes for this initial release:
18
- there are bound to be bugs, but the backend passes the GConf
19
test suite (extended to include some schema-usage tests)
20
- some concurrency control has been built-in, but this has not
21
been adequately tested
22
- by design there is no cache so that concurrent writers may
23
be supported, but despite this performance is good and the
24
testpersistence test (which synchronises each change individually
25
to the GConfd database) is noticably faster than with the XML backend.
26
- Previous versions of Berkeley DB have altered the database structure in
27
ways that are not backward compatible. If this occurs with future versions
28
of Berkeley DB (after version 3.1.17), the major version number of the
29
backend shared library will be incremented.
34
- The backend uses a relatively new feature of Berkeley DB, the support
35
for duplicate keys in a single database table. Currently Berkeley DB
36
produces warning messages 'Duplicate data items are not supported with
37
sorted data'. Sleepycat have said that this message is only to warn
38
developers while the duplicate-support feature is new and will be removed
41
- There is also an error that occasionally "corrupts" the key-hierarchy
42
database which prevents the directory hierarchy from being traversed.
43
Currently it is not clear if this is an error in the backend or in
44
the database toolkit. This error can be seen in the testdirlist test
45
program which initially works but after running all tests a few
46
times, testdirlist produces an error message "*** FAILED: Did not get
47
'testing' in listing of / after setting keys such as /testing/foo/bar/woo".
48
This bug is under investigation, as it prevents serious use of
49
the Berkeley DB backend, although applications which do not use the
50
gconf_all_dirs() API should not encounter this problem.
52
You can obtain the source distribution for Berkeley DB from Sleepycat
53
Software at http://www.sleepycat.com/download.html. The current
56
Colm Smyth (colm.smyth@sun.com)