December 05LDAP is not relationalTrackbacks
Trackback specific URI for this entry
No Trackbacks
Comments
Display comments as
(Linear | Threaded)
Executive summary: "LDAP is not relational" - duh.
Directories are hierarchical. Obviously they don't have the same fundamental properties of a matrix. Primary key instability - I guess you've never heard of the entryUUID attribute (a unique and immutable identifier for every entry in a directory). Partitioning by range - there is no such restriction inherent in the directory data model (X.500). OpenLDAP back-meta supports partitioning along arbitrary boundaries. Data duplication - there is nothing inherent in the relational algebra that allows for stored procedures, that is purely an implementation decision. Storing procedures in LDAP is also simply a matter of implementation. Also, indiscriminate use of stored procedures doesn't scale. If you have thousands of clients requesting the same forms of data over and over, it's more efficient to generate those forms once and return them statically, than to continue to generate them on the fly. For your particular example of hashed forms of passwords, servers like OpenLDAP just let you configure a list of hash types and automatically generates all of them whenever a PasswordModify request is received. Weak query language - Actually, poor thinking leads to query-in-a-loop coding. Again, it's a scaling tradeoff - if you have thousands of clients, it makes more sense to perform the query optimization in the client than in the server. "no synthetic attributes" - again, there is nothing inherent in the X.500 data model that allows or prevents this. There are many runtime synthesized attributes in OpenLDAP, and it's trivial to code them. No Join - again, this is an implementation decision. For example, OpenLDAP's dynlist module provides exactly this feature. Many replicas - again, this depends on the quality of the implementation. OpenLDAP can typically handle 10x as much load as other commonly available LDAP servers, which means it requires an order of magnitude less hardware/resources. Of course, poorly written applications that don't leverage the hierarchical nature of the data model can generate ridiculous numbers of queries (e.g. Sendmail's LDAP client which generates hundreds of LDAP lookups per email. http://groups.google.com/group/comp.mail.sendmail/browse_thread/thread/9cb347d9820c8b17/dcf454078c1d15cf?lnk=gst) Killing reads with memory - again, there's nothing inherent in the X.500 model that makes this more or less true than for any other data management method. "Completely broken from the POV of the relational model" is like saying a Triangle is completely broken from the POV of a Square model. Duh. The problem in question - obviously simply trying to retarget an existing code base that was designed from a Square POV isn't going to fit well on a Triangle model. I think the more general point was that you could develop a blog package that used an LDAP store and it would perform very well. JOINs may be crucial to a relational implementation simply because they are the most relevant operator in that model, but that doesn't mean the lack of JOINs will be a weakness in a system that uses a completely different model.
I never implied that the existing s9y code would be bent to fit a Directory Server backend, but admit I haven't even looked to see if it's abstracted enough for a new data model to be used, much like an MVC framework etc.
I think as Howard says, "you could develop a blog package that used an LDAP store and it would perform very well." Gavin. |
QuicksearchComments about An InnoDB tutorial Mon, 21.07.2008 11:13 I have a problem in deleting t he child table row from my app lication using unique id. when I am using the command [...] about Nermalisation Sat, 05.07.2008 16:08 The point is that you have the option to not do, but then yo u'll be in a world of pain. Th e point is also to show [...] about Nermalisation Fri, 04.07.2008 15:40 Nice little article, and I lik e how you've used cats in your examples :) I am a little unclear what the point h [...] about Salmiakki - the official MySQL Drink Sun, 08.06.2008 11:34 150g of liquorice are enough t o get the original Salmiakki t aste.... you can add some more , anyway about phpvikinger.org: Things that have no name Sun, 11.05.2008 06:34 In reply to "stuff with no nam es":very informative and succi nct. I am retired and need to learn to build a website [...] about What is the difference between MySQL and Postgres? Wed, 30.04.2008 14:08 what is the difference between MySql and PostgreSql? about Fortune Cookie Wed, 09.04.2008 21:46 What a random fortune, who kno ws what it means. My favorite random fortune cookie note rea ds "you will make a good [...] Categories
Blog AdministrationDisclaimerAll examples, code-snippets, advice, trivia, etc. are supplied in the hope that they are useful, but no warranty of any kind is given. Use of trademarks is not intended as a challenge to them.
ImpressumCopyright 2005-2007 bei den jeweiligen Autorinnen der Beiträge. Die Infrastruktur von MySQL-dump wird betrieben von:
Azundris, Immanuelkirchstraße 18, 710405 Berlin, Germany
|