Solid!
I'll make sure I add it in the "Concepts" section
of the DAS design book.
I'll put in a JIRA to get it moved to a general area as well.
Cheers,
- Ole
Alex Karasulu wrote:
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