directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alex Karasulu" <akaras...@apache.org>
Subject [ApacheDS] Definition of a partition
Date Wed, 04 Apr 2007 18:57:02 GMT
To clarify from previous threads ...

Definition
-------------

A partition is a physically distinct store for a subset of the entries
contained within a DSA (Directory Server/Service Agent A.K.A the LDAP
server).  The entries of a partition all share the same suffix which is the
distinguished name of the namingContext from which the stored entries in the
partition are hung from the DIT.  A partition can be implemented using any
storage mechanism or can even be backed in memory.  A partition simply has
to implement the Partition (1.5) interface and by doing so can be mounted in
the server at it's suffix/namingContext.

The server can have any number of partitions (with any implementation)
attached to various namingContexts which are published by the RootDSE (empty
string dn "") using the namingContexts operational attribute.  So if you
want to see the partitions served by the server you can query the RootDSE
for this information.

Motivation For Terminology
------------------------------------

I decided to use the term Partition to denote this structure in the server
rather than use the term backend.  Why?  Well to me the backend is
everything after the protocol which is basically all of the core.  The
frontend is the MINA based LDAP protocol service provider.  Another reason
for this choice was the fact that a partition is a separate physical store
that separates a subset of the entries.  It partitions the DIT, the
namespace hence the term "partition" made sense to me.

Another crazy reason for this comes from my days as a Linux system developer
while writing device drivers (ahhh those were the days).  Anyways I really
like to parallel the concepts of the Linux file system terminology since it
is almost exactly the same concept but in another domain.  Basically file
system partitions which can be backed by any kind of random access store can
be mounted at mount points on the file system.  To me the mount point is
analogous to the namingContext used to hang the entries stored therein off
the DIT (here I'm relating entries to files).   Note this analogy does
breakdown in some places but over all it's a descent analogy which warranted
using the name Partition rather than Backend.

Alex

Mime
View raw message