(Answer) (Category) OpenLDAP Faq-O-Matic : (Category) OpenLDAP Software FAQ : (Category) Configuration : (Category) SLAPD Configuration : (Category) Backends : (Answer) What is a backend?
A backend is a storage type, i.e. the type of a database; think of a variable declaration:
    int i;
where int, the type, is the backend, and i, the name, is the database.

Configuration directives appearing after a

    backend <type>
directive refer to all instances of that backend type.

Slapd implements different types of backends; other types can be user-defined.

Backends can be roughly grouped in three distinct groups:

  • backends that actually store data
  • backends that proxy otherwise stored data
  • backends that generate data on the fly

(The following mostly refers to 2.2 and later versions)

The first group contains bdb, hdb and ldbm:

  • bdb uses Berkeley's Sleepycat (at least 4.2.52 with patches) as storage, taking advantage of specific ACID features;
  • hdb shares most of the code with bdb, but uses a hierarchical in-memory organization of the tree structure, which is not saved on disk in index files. As such, it can be much more efficient at writing, with the penalty of requiring a bit longer at startup to recreate the indices. Eventually, it will replace bdb;
  • ldbm uses a neutral storage interface which in principle could wrap dbm, ndbm, gdbm or sleepycat as underlying storage; however, only Sleepycat is considered a reliable choice, so bdb offers more interesting features (ACID). Eventually it will disappear.

The second group contains ldap, meta, relay and sql:

  • ldap: proxies a remote DSA;
  • meta: proxies a pool of remote DSAs, sharing (part of) the naming context;
  • relay: proxies a local database; is used to create virtual views of real databases.
  • sql: maps an existing RDBMS into a DSA (with limitations);

The third group contains dnssrv, monitor, null passwd, perl and shell (tcl is no longer supported):

  • dnssrv: returns referrals according to DNS SRV mappings (RFC 2782) ;
  • monitor: returns monitoring info;
  • null: compare always returns false; bind always fails; search is always successful, but returns no results; all write operations are always successful, but data is simply discarded; inspired by /dev/null.
  • passwd: maps binds, searches and compares to /etc/passwd contents;
  • perl: allows to execute a set of perl scripts to perform each operation;
  • shell: allows to execute a set of shell scripts to perform each operation;

See What is a database? and slapd-<backend> for details.

[Append to This Answer]
Next: (Answer) What is a database?
This document is: http://www.openldap.org/faq/index.cgi?file=1085
[Search] [Appearance]
This is a Faq-O-Matic 2.721.test.
© Copyright 1998-2013, OpenLDAP Foundation, info@OpenLDAP.org