diff options
author | Nalin Dahyabhai <nalin.dahyabhai@pobox.com> | 2008-04-28 12:04:49 -0400 |
---|---|---|
committer | Nalin Dahyabhai <nalin.dahyabhai@pobox.com> | 2008-04-28 12:04:49 -0400 |
commit | f8f2d51cb2002d620788d614f68e50342bb3a058 (patch) | |
tree | b97f0512fdc618d5229ae8bb09fb9392404b34da | |
parent | 961992006cb274bb2b1f21ad94a1a57ca48df1a4 (diff) | |
download | slapi-nis-f8f2d51cb2002d620788d614f68e50342bb3a058.tar.gz slapi-nis-f8f2d51cb2002d620788d614f68e50342bb3a058.tar.xz slapi-nis-f8f2d51cb2002d620788d614f68e50342bb3a058.zip |
- note why i like having the cache as an intermediate
-rw-r--r-- | doc/design.txt | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/doc/design.txt b/doc/design.txt index aa64e04..e17de42 100644 --- a/doc/design.txt +++ b/doc/design.txt @@ -66,7 +66,8 @@ above is asked for this information, it has at least these options: - This keeps clients from ever noticing that a map has changed. c) return the latest revision of any of the results which formed the contents of the map - - This could severely load a directory server. + - This could severely load a directory server if the information + needs to be generated dynamically and frequently. NIS also requires that a server be able to answer whether or not it services a specified domain, and which maps it serves for a domain that @@ -122,17 +123,26 @@ configurable via internal APIs -- the map cache itself has no forehand knowledge of domain names, map names, or formats, as it merely models data in the way that a NIS server might. +Forcing queries to use the cache provides a couple of benefits over an +alternate approach of performing an LDAP query for each NIS query: +* While the directory server is generally only case-preserving, the NIS + server can be case-sensitive, which is preferred by NIS clients and + a requirement for some customers. +* Because the query used is never used to construct an LDAP filter or + query, we don't have to worry about escaping text to avoid string injection + attacks. + == Back End == -The backend interface module sets up and maintains the map cache. At -startup time, it configures the map cache with the list of domains and -maps, and populates the maps with initial data. [Using postoperation -plugin hooks, the backend interface also notes when entries are added, -modified, renamed (modrdn'd), or deleted from the directory server. It -uses this information to create or destroy maps in the map cache, and to -add, remove, or update entries in the map cache's maps, thereby ensuring -that the map cache always reflects the current contents of the directory -server.] +The backend interface module sets up, populates, and maintains the map +cache. At startup time, it configures the map cache with the list of +domains and maps, and populates the maps with initial data. [Using +postoperation plugin hooks, the backend interface also notes when +entries are added, modified, renamed (modrdn'd), or deleted from the +directory server. It uses this information to create or destroy maps in +the map cache, and to add, remove, or update entries in the map cache's +maps, thereby ensuring that the map cache always reflects the current +contents of the directory server.] The backend interface reads the configuration it should use for the map cache from its configuration area in the directory server. Beneath the |