You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by Alex Karasulu <ak...@apache.org> on 2007/04/04 20:57:02 UTC

[ApacheDS] Definition of a partition

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

Re: [ApacheDS] Definition of a partition

Posted by Alex Karasulu <ak...@apache.org>.
Thanks a bunch Christine.  Sorry for being lazy - I should have added it
myself.  This release is taking me forever this time though.  I guess I am
loosing my touch.

Alex

On 4/5/07, Christine Koppelt <ch...@googlemail.com> wrote:
>
> I expanded the first section a bit and added it to the "Architectural
> Overview" page of the AUG
> (http://directory.apache.org/apacheds/1.0/architectural-overview.html).
> Further comments or contributions are welcome :-)
>
> Christine
>
>
> 2007/4/5, Trustin Lee <tr...@gmail.com>:
> > Sounds very good!
> >
> > Trustin
> >
> > On 4/5/07, Alex Karasulu <ak...@apache.org> 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
> > >
> > >
> >
> >
> > --
> > what we call human nature is actually human habit
> > --
> > http://gleamynode.net/
> > --
> > PGP Key ID: 0x0255ECA6
> >
>

Re: [ApacheDS] Definition of a partition

Posted by Christine Koppelt <ch...@googlemail.com>.
I expanded the first section a bit and added it to the "Architectural
Overview" page of the AUG
(http://directory.apache.org/apacheds/1.0/architectural-overview.html).
Further comments or contributions are welcome :-)

Christine


2007/4/5, Trustin Lee <tr...@gmail.com>:
> Sounds very good!
>
> Trustin
>
> On 4/5/07, Alex Karasulu <ak...@apache.org> 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
> >
> >
>
>
> --
> what we call human nature is actually human habit
> --
> http://gleamynode.net/
> --
> PGP Key ID: 0x0255ECA6
>

Re: [ApacheDS] Definition of a partition

Posted by Trustin Lee <tr...@gmail.com>.
Sounds very good!

Trustin

On 4/5/07, Alex Karasulu <ak...@apache.org> 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
>
>


-- 
what we call human nature is actually human habit
--
http://gleamynode.net/
--
PGP Key ID: 0x0255ECA6

Re: [ApacheDS] Definition of a partition

Posted by Ole Ersoy <ol...@gmail.com>.
Yeah - I think once it's in a general area,
all "partition" occurrences should be linked with the
concept.

I plan on writing a tool for doing those types
of links for the Eclipse Documentation Plugin books,
but that's a little ways off :-)

I think we need a concepts
link right up front, that is
further subdivided...for instance
I think the partition concept
belongs in "Core Concepts"....

Cheers,
- Ole




Alex Karasulu wrote:
> Cool thanks!  How about adding it to the website too?
>  
> Alex
> 
>  
> On 4/4/07, *Ole Ersoy* <ole.ersoy@gmail.com 
> <ma...@gmail.com>> wrote:
> 
>     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
>      >
> 
> 

Re: [ApacheDS] Definition of a partition

Posted by Alex Karasulu <ak...@apache.org>.
Cool thanks!  How about adding it to the website too?

Alex


On 4/4/07, Ole Ersoy <ol...@gmail.com> wrote:
>
> 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
> >
>

Re: [ApacheDS] Definition of a partition

Posted by Ole Ersoy <ol...@gmail.com>.
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
>