OK - Cool - So for LDAP DAS version 1.0
I'll just write the entire SDO datagraph to ADS with each
SDO object being an entry.
Also, (Just wanted to make sure I understand) are you saying that
having a RDB backend because of:
High volumes
Reliability
Replications
Marketing
Makes sense?
Emmanuel Lecharny wrote:
On 3/21/07, *Ole Ersoy* <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>> wrote:
Emmanuel,
I think my squirrel brain is starting to put together what you are
saying :-)
Let me see if I'm getting it.
ATTRIBUTES VS. ENTIRE OBJECT
Whether we pass an entire object or an individual attribute to ADS
when
updating,
performance wise there's probably no difference since it's such a
small
chunk of info.
In fact, we pass attributes and we update them in a whole object
before storing it. To be able to do that, we first have to get the
whole object out of the backend. For instance, if you want to add a
userPassord to the uid=oersoy, dc=apache, dc=com entry, you will just
pass a modifyRequest with the DN, and the userPassord attribute with
the value to add. Then the server will search for the corresponding
entry from its DN, and if found, it will read it entirely. Then it
will add the attribute into the entry, and save it into the backend.
This applies at when ADS serialized to disk and when the Application
sends data to ADS
via the directory context per the criteria that object's size is
below a
certain number of KB.
Well, the criteria must still be implemented ... It's now 2 years we
know we have to deal with such a criteria, but we didn't had time to
implement it yes... 1.5.2 maybe
So from a "Passing the Baton" point of view, it does not matter
whether
it is a attribute or
an object...since their size different is typically so small.
We can say that
Since this is the case, then the DAS implementation will be really
straight forward I think.
Well, it's pretty much done in two classes only,
AttributesSerializerUtils and AttributeSerializerUtils. Only 700 lines
of code, javadoc included :)
I'll just skip commenting on the rest of your in lined comments, if I
understand correctly,
since the rest is not really important anyways.
JUST A SIDE NOTE:
RDB Backend for ApacheDS
If we did this, then passing an attribute instead of an Object might
make sense, if I understand correctly.
yep.
From what I understand rear ends like Prevayler
are thousands of times faster than any RDB, even if the entire RDB
were
stored in main memory (Like with hsql),
so would there ever be a point in using an RDB?
There are many, including high volumes, reliability, replications,
marketing, "We already have Or*cle/I*m db*/MySql/PostGresql" (TM), ...
I mention this because Tuscany also has a DAS for RDB.
We have had discussion with Tuscany guys in Austin about including ADS
into tuscany.
So an SDO model could serve as a middle tier between RDB
persistance and
LDAP persistance.
That may be a very good idea, because then it may abstract totally the
plumbery between ADS and the backend. At the moment, this plubery is
not really satisfactory.
Applications that need an RDB rear end, could pull info out of ADS
using
the
DAS for LDAP, and store in in any RDB using DAS for RDB...
Yep.
Anyways, should probably put that in a different thread or JIRA or
something...or the ADS
design document that I need to get started...
We are seriously thinking about it for a 2.0 version of ADS. We might
discuss this in may, during ApacheCon (if the number of beers we will
absorb, not to mention the strange substances we will smoke, keep our
brain productive :)
--
Cordialement,
Emmanuel Lécharny
www.iktek.com <http://www.iktek.com>