]> git.sur5r.net Git - openldap/log
openldap
22 years agoAdded optional 3rd parameter, to make the script display the slapd pid
Howard Chu [Sat, 22 Sep 2001 05:34:22 +0000 (05:34 +0000)]
Added optional 3rd parameter, to make the script display the slapd pid
and wait. User must hit <NewLine> to continue. This gives the opportunity
to attach a debugger to the slapd before proceeding with the test.

22 years agoFix previous idl_find patch. Cannot test <=0 with unsigned ints, duh...
Howard Chu [Sat, 22 Sep 2001 04:10:03 +0000 (04:10 +0000)]
Fix previous idl_find patch. Cannot test <=0 with unsigned ints, duh...

22 years agoFix an off by one bug which could cause a realloced buffer to be
Kurt Zeilenga [Sat, 22 Sep 2001 03:18:02 +0000 (03:18 +0000)]
Fix an off by one bug which could cause a realloced buffer to be
too small.  Changed extra size algorithm to use a much simplier
approach and detailed non-optimized version.

22 years agoAdd idl_find binary search routine, used by idl_insert and idl_split_block
Howard Chu [Fri, 21 Sep 2001 20:30:27 +0000 (20:30 +0000)]
Add idl_find binary search routine, used by idl_insert and idl_split_block
instead of linear search.

22 years agoCheck debug level before invoking debug routine, slight optimization
Howard Chu [Fri, 21 Sep 2001 17:53:16 +0000 (17:53 +0000)]
Check debug level before invoking debug routine, slight optimization

22 years agobump MAXARGS to 500
Kurt Zeilenga [Fri, 21 Sep 2001 00:48:47 +0000 (00:48 +0000)]
bump MAXARGS to 500

22 years agoBump MAXARGS to 500.
Kurt Zeilenga [Fri, 21 Sep 2001 00:48:00 +0000 (00:48 +0000)]
Bump MAXARGS to 500.

22 years agoFinished the integerMatch matching rule and the integer syntax.
Mark Adamson [Thu, 20 Sep 2001 15:50:49 +0000 (15:50 +0000)]
Finished the integerMatch matching rule and the integer syntax.

22 years agoSection 3 man pages for ldap_first_reference(), ldap_next_reference() and
Stig Venaas [Wed, 19 Sep 2001 16:13:14 +0000 (16:13 +0000)]
Section 3 man pages for ldap_first_reference(), ldap_next_reference() and
ldap_count_references()

22 years agoSection 3 man pages for ldap_first_message(), ldap_next_message() and
Stig Venaas [Wed, 19 Sep 2001 14:34:59 +0000 (14:34 +0000)]
Section 3 man pages for ldap_first_message(), ldap_next_message() and
ldap_count_messages()

22 years agologs changes even if no appropriate replica (or none at all) is defined (ITS#1335)
Pierangelo Masarati [Wed, 19 Sep 2001 09:09:51 +0000 (09:09 +0000)]
logs changes even if no appropriate replica (or none at all) is defined (ITS#1335)

22 years agoMisc. updates to release templates
Kurt Zeilenga [Wed, 19 Sep 2001 01:26:24 +0000 (01:26 +0000)]
Misc. updates to release templates

22 years agoRebuild
Kurt Zeilenga [Tue, 18 Sep 2001 19:38:44 +0000 (19:38 +0000)]
Rebuild

22 years agoMinor cleanup
Kurt Zeilenga [Tue, 18 Sep 2001 18:44:16 +0000 (18:44 +0000)]
Minor cleanup

22 years agoMinor cleanup of last commit
Kurt Zeilenga [Tue, 18 Sep 2001 18:24:47 +0000 (18:24 +0000)]
Minor cleanup of last commit

22 years agocomment out inetLocalMailReciepent as it has no assigned OID
Kurt Zeilenga [Tue, 18 Sep 2001 17:52:43 +0000 (17:52 +0000)]
comment out inetLocalMailReciepent as it has no assigned OID

22 years agoMinor cleanup
Kurt Zeilenga [Tue, 18 Sep 2001 17:35:47 +0000 (17:35 +0000)]
Minor cleanup

22 years agoFix for ITS#1258 - even if we're accepting various malformed definitions,
Howard Chu [Tue, 18 Sep 2001 12:21:33 +0000 (12:21 +0000)]
Fix for ITS#1258 - even if we're accepting various malformed definitions,
don't allow OIDs that are a mix of numeric and non-numeric fields.

22 years agoFix previous patch, didn't take handle syntax/noidlen properly
Howard Chu [Tue, 18 Sep 2001 12:03:20 +0000 (12:03 +0000)]
Fix previous patch, didn't take handle syntax/noidlen properly

22 years agoFix ITS#1213, OID macro parsing in attributetypes
Howard Chu [Tue, 18 Sep 2001 11:30:00 +0000 (11:30 +0000)]
Fix ITS#1213, OID macro parsing in attributetypes

22 years agoPatch for SASL EXTERNAL. Needs to be tested with other mechanisms.
Kurt Zeilenga [Tue, 18 Sep 2001 07:44:18 +0000 (07:44 +0000)]
Patch for SASL EXTERNAL.  Needs to be tested with other mechanisms.

22 years agoSilence some typecast warnings
Howard Chu [Tue, 18 Sep 2001 05:22:53 +0000 (05:22 +0000)]
Silence some typecast warnings

22 years agoDon't pass NULL hostname to ldap_pvt_tls_check_hostname, use "localhost"
Howard Chu [Tue, 18 Sep 2001 05:19:55 +0000 (05:19 +0000)]
Don't pass NULL hostname to ldap_pvt_tls_check_hostname, use "localhost"

22 years agoFix crashes for SASL/EXTERNAL binds:
Howard Chu [Tue, 18 Sep 2001 03:10:05 +0000 (03:10 +0000)]
Fix crashes for SASL/EXTERNAL binds:
  in slap_sasl_getdn, test id, not dn. dn is still NULL
  also, don't check for trailing slash
  in slap_sasl_bind, initialize reslen to 0

22 years agoFix declaration mismatch when CYRUS is not present
Howard Chu [Tue, 18 Sep 2001 00:37:56 +0000 (00:37 +0000)]
Fix declaration mismatch when CYRUS is not present

22 years agoClean up include logging
Kurt Zeilenga [Mon, 17 Sep 2001 22:38:52 +0000 (22:38 +0000)]
Clean up include logging

22 years agoFix typo in winsock detection
Kurt Zeilenga [Sun, 16 Sep 2001 22:20:29 +0000 (22:20 +0000)]
Fix typo in winsock detection

22 years agoBack out ManageDsaIt change.
Kurt Zeilenga [Sun, 16 Sep 2001 22:03:38 +0000 (22:03 +0000)]
Back out ManageDsaIt change.

22 years agoMinor cleanup
Kurt Zeilenga [Sun, 16 Sep 2001 22:02:50 +0000 (22:02 +0000)]
Minor cleanup

22 years agoRemove lint
Kurt Zeilenga [Sun, 16 Sep 2001 22:00:53 +0000 (22:00 +0000)]
Remove lint

22 years agocleanup and cast of logs
Pierangelo Masarati [Thu, 13 Sep 2001 21:30:44 +0000 (21:30 +0000)]
cleanup and cast of logs

22 years agoUse time_t not char * to represent timestamps.
Kurt Zeilenga [Sun, 9 Sep 2001 21:16:17 +0000 (21:16 +0000)]
Use time_t not char * to represent timestamps.
Fixes billionth second since epoch bug.

22 years agoClean up asserts, should assert desc != NULL instead of attr != NULL
Kurt Zeilenga [Sun, 9 Sep 2001 18:58:54 +0000 (18:58 +0000)]
Clean up asserts, should assert desc != NULL instead of attr != NULL

22 years agoRemove dead code
Kurt Zeilenga [Sun, 9 Sep 2001 04:47:03 +0000 (04:47 +0000)]
Remove dead code

22 years agoAdd root DSE supportedFeatures support.
Kurt Zeilenga [Sun, 9 Sep 2001 04:01:07 +0000 (04:01 +0000)]
Add root DSE supportedFeatures support.

22 years agoBlindly fix TLS/SASL external interaction.
Kurt Zeilenga [Sun, 9 Sep 2001 03:42:26 +0000 (03:42 +0000)]
Blindly fix TLS/SASL external interaction.

22 years agoMinor cleanup of ldap_perror()
Kurt Zeilenga [Sun, 9 Sep 2001 03:02:54 +0000 (03:02 +0000)]
Minor cleanup of ldap_perror()

22 years agoUpdate to latest
Kurt Zeilenga [Sat, 8 Sep 2001 04:33:29 +0000 (04:33 +0000)]
Update to latest

22 years agoCorrect typo
Kurt Zeilenga [Sat, 8 Sep 2001 04:32:08 +0000 (04:32 +0000)]
Correct typo

22 years agoUpdate to 2.7
Kurt Zeilenga [Sat, 8 Sep 2001 04:30:14 +0000 (04:30 +0000)]
Update to 2.7

22 years agoUpdate from DRAFT to 2.7
Kurt Zeilenga [Sat, 8 Sep 2001 04:29:45 +0000 (04:29 +0000)]
Update from DRAFT to 2.7

22 years agoRevert
Kurt Zeilenga [Sat, 8 Sep 2001 04:28:39 +0000 (04:28 +0000)]
Revert

22 years agoUpdate 'invalid data' error message.
Kurt Zeilenga [Sat, 8 Sep 2001 03:55:41 +0000 (03:55 +0000)]
Update 'invalid data' error message.

22 years agoForced commit to correct last log message.
Kurt Zeilenga [Sat, 8 Sep 2001 02:42:08 +0000 (02:42 +0000)]
Forced commit to correct last log message.
patch was provided by craig.rawlins@qld.gov.au (ITS#1289)

22 years agoAdd referral scope checks (ITS#1289) from dshriver@sharemedia.com
Kurt Zeilenga [Sat, 8 Sep 2001 02:37:02 +0000 (02:37 +0000)]
Add referral scope checks (ITS#1289) from dshriver@sharemedia.com

22 years agoAdd IDL debugging code from SuSE.
Kurt Zeilenga [Fri, 7 Sep 2001 21:58:31 +0000 (21:58 +0000)]
Add IDL debugging code from SuSE.

22 years agofinish the prefious fixes... it is really hard to commit a truly good patch without...
Dmitry Kovalev [Fri, 7 Sep 2001 18:50:52 +0000 (18:50 +0000)]
finish the prefious fixes... it is really hard to commit a truly good patch without even a chance to check if it is compilable ;)

22 years agoadded empty() method to the list classes. (Patch was provided by Dan
Ralf Haferkamp [Fri, 7 Sep 2001 17:43:55 +0000 (17:43 +0000)]
added empty() method to the list classes. (Patch was provided by Dan
Gohman)

22 years agosome cosmetics and minor problems fixed, pointed out by Mei-Hui Su (c++-style comment...
Dmitry Kovalev [Fri, 7 Sep 2001 13:04:11 +0000 (13:04 +0000)]
some cosmetics and minor problems fixed, pointed out by Mei-Hui Su (c++-style comments, newlines etc.)

22 years agoAdd <limits.h>
Kurt Zeilenga [Fri, 7 Sep 2001 02:08:32 +0000 (02:08 +0000)]
Add <limits.h>

22 years agoFix TLS ldap.conf issues
Kurt Zeilenga [Wed, 5 Sep 2001 21:22:41 +0000 (21:22 +0000)]
Fix TLS ldap.conf issues

22 years agoAnother draft
Kurt Zeilenga [Wed, 5 Sep 2001 20:41:51 +0000 (20:41 +0000)]
Another draft

22 years agoadd some additional projects
Kurt Zeilenga [Wed, 5 Sep 2001 04:37:12 +0000 (04:37 +0000)]
add some additional projects

22 years agoUpdated COPYRIGHT/LICENSE to be even less restrictive.
Kurt Zeilenga [Wed, 5 Sep 2001 02:42:18 +0000 (02:42 +0000)]
Updated COPYRIGHT/LICENSE to be even less restrictive.

22 years agoRemove extensible filter #ifdef
Kurt Zeilenga [Tue, 4 Sep 2001 18:45:05 +0000 (18:45 +0000)]
Remove extensible filter #ifdef

22 years agoDon't ignore attribute list when -S is specified.
Kurt Zeilenga [Tue, 4 Sep 2001 06:06:44 +0000 (06:06 +0000)]
Don't ignore attribute list when -S is specified.

22 years agoClean up DNs and remove extraneous files
Kurt Zeilenga [Tue, 4 Sep 2001 02:47:25 +0000 (02:47 +0000)]
Clean up DNs and remove extraneous files

22 years agoUse RFC 2253 DNs
Kurt Zeilenga [Tue, 4 Sep 2001 02:41:53 +0000 (02:41 +0000)]
Use RFC 2253 DNs

22 years agoDo version checks for BDB 3 or greater
Kurt Zeilenga [Mon, 3 Sep 2001 19:23:05 +0000 (19:23 +0000)]
Do version checks for BDB 3 or greater

22 years agoImport backwards compatibility for BDB 3.0.x
Kurt Zeilenga [Mon, 3 Sep 2001 19:01:09 +0000 (19:01 +0000)]
Import backwards compatibility for BDB 3.0.x

22 years agoUpdate URL
Kurt Zeilenga [Sun, 2 Sep 2001 22:30:58 +0000 (22:30 +0000)]
Update URL

22 years agoFix ldap_int_tls_start to set its error codes in ld->ld_errno.
Howard Chu [Sun, 2 Sep 2001 12:06:41 +0000 (12:06 +0000)]
Fix ldap_int_tls_start to set its error codes in ld->ld_errno.

22 years agoFull implementation of server identity checking per RFC2830 section 3.6
Howard Chu [Sun, 2 Sep 2001 11:23:28 +0000 (11:23 +0000)]
Full implementation of server identity checking per RFC2830 section 3.6

22 years agoAdd some EINTR logic to back-shell. Assumes fgets() handles
Kurt Zeilenga [Sun, 2 Sep 2001 00:10:57 +0000 (00:10 +0000)]
Add some EINTR logic to back-shell.  Assumes fgets() handles
such errors in a particular manner.

22 years agoMinor fixes including those from ITS#1283
Kurt Zeilenga [Sat, 1 Sep 2001 17:49:27 +0000 (17:49 +0000)]
Minor fixes including those from ITS#1283

22 years agoAdd general extensible matching support and integerBitAndMatch
Kurt Zeilenga [Sat, 1 Sep 2001 17:10:43 +0000 (17:10 +0000)]
Add general extensible matching support and integerBitAndMatch
and integerBitOrMatch enhancement (ITS#1302 + minor changes)
from Luke Howard <lukeh@padl.com>.

22 years agoAllow dn.base=""
Kurt Zeilenga [Sat, 1 Sep 2001 05:01:31 +0000 (05:01 +0000)]
Allow dn.base=""

22 years agoOpen databases using WRCREAT not READER.
Kurt Zeilenga [Sat, 1 Sep 2001 05:00:27 +0000 (05:00 +0000)]
Open databases using WRCREAT not READER.

22 years agoThere is no TLSProtocol option.
Kurt Zeilenga [Fri, 31 Aug 2001 16:48:30 +0000 (16:48 +0000)]
There is no TLSProtocol option.

22 years agoMove Cyrus SASL initializing forward
Kurt Zeilenga [Fri, 31 Aug 2001 00:14:04 +0000 (00:14 +0000)]
Move Cyrus SASL initializing forward

22 years agoMore updates.
Kurt Zeilenga [Thu, 30 Aug 2001 04:54:59 +0000 (04:54 +0000)]
More updates.

22 years agoAdd additional types to lber-types.
Kurt Zeilenga [Thu, 30 Aug 2001 03:02:36 +0000 (03:02 +0000)]
Add additional types to lber-types.

22 years agoMisc Update
Kurt Zeilenga [Thu, 30 Aug 2001 02:33:13 +0000 (02:33 +0000)]
Misc Update

22 years agoSkip over the "dn:" prefix when passing a DN to dn_normalize().
Mark Adamson [Wed, 29 Aug 2001 23:01:24 +0000 (23:01 +0000)]
Skip over the "dn:" prefix when passing a DN to dn_normalize().

22 years agoRemove redundant call of SSL_set_info_callback, to allow users
Howard Chu [Wed, 29 Aug 2001 20:28:08 +0000 (20:28 +0000)]
Remove redundant call of SSL_set_info_callback, to allow users
to override it in the SSL_CTX.

22 years agoFix NEW_LGGING typo
Kurt Zeilenga [Wed, 29 Aug 2001 19:49:05 +0000 (19:49 +0000)]
Fix NEW_LGGING typo

22 years agoPassword-hash doesn't support UNIX, KERBEROS, SASL schemes.
Kurt Zeilenga [Wed, 29 Aug 2001 19:37:32 +0000 (19:37 +0000)]
Password-hash doesn't support UNIX, KERBEROS, SASL schemes.

22 years agoMinor cleanup
Kurt Zeilenga [Wed, 29 Aug 2001 17:08:22 +0000 (17:08 +0000)]
Minor cleanup

22 years agoAdd dnnolocking warning
Kurt Zeilenga [Wed, 29 Aug 2001 17:08:01 +0000 (17:08 +0000)]
Add dnnolocking warning

22 years agoRemove -r
Kurt Zeilenga [Wed, 29 Aug 2001 17:03:53 +0000 (17:03 +0000)]
Remove -r

22 years agoMinor rework of *text = textbuf fix
Kurt Zeilenga [Tue, 28 Aug 2001 21:43:00 +0000 (21:43 +0000)]
Minor rework of *text = textbuf fix

22 years agoApply ACLs to front end objects (root DSE, subschema) consistently
Kurt Zeilenga [Tue, 28 Aug 2001 20:28:34 +0000 (20:28 +0000)]
Apply ACLs to front end objects (root DSE, subschema) consistently

22 years agoUse parens for clarity
Kurt Zeilenga [Tue, 28 Aug 2001 00:35:34 +0000 (00:35 +0000)]
Use parens for clarity

22 years agoAdd DB 3.3 support...
Kurt Zeilenga [Mon, 27 Aug 2001 22:06:07 +0000 (22:06 +0000)]
Add DB 3.3 support...
  likely needs work on NT4 (but so did old code)

22 years agoFix -H ldaps:// crashes due to rework of TLS code
Kurt Zeilenga [Mon, 27 Aug 2001 20:22:28 +0000 (20:22 +0000)]
Fix -H ldaps:// crashes due to rework of TLS code

22 years agoChanged get_listener_addresses() to not use getaddrinfo() for PF_LOCAL
Stig Venaas [Sun, 26 Aug 2001 11:03:27 +0000 (11:03 +0000)]
Changed get_listener_addresses() to not use getaddrinfo() for PF_LOCAL

22 years agofix bug in '%' escaping in substitution pattern compile
Pierangelo Masarati [Sat, 25 Aug 2001 15:20:16 +0000 (15:20 +0000)]
fix bug in '%' escaping in substitution pattern compile

22 years agoFix db1 error and add kerberos comment
Kurt Zeilenga [Fri, 24 Aug 2001 20:20:34 +0000 (20:20 +0000)]
Fix db1 error and add kerberos comment

22 years agoUpdate kerberos flags
Kurt Zeilenga [Fri, 24 Aug 2001 20:17:23 +0000 (20:17 +0000)]
Update kerberos flags

22 years agoNeed to set error text pointer sooner in entry_schema_check(), or Debug() will SEGV
Mark Adamson [Wed, 15 Aug 2001 15:27:26 +0000 (15:27 +0000)]
Need to set error text pointer sooner in entry_schema_check(), or Debug() will SEGV

22 years agofix malformed test
Pierangelo Masarati [Sat, 4 Aug 2001 16:46:03 +0000 (16:46 +0000)]
fix malformed test

22 years agofix a reference to volative memory in back-ldbm/passwd.c that caused garbage messages...
Pierangelo Masarati [Sat, 4 Aug 2001 15:46:08 +0000 (15:46 +0000)]
fix a reference to volative memory in back-ldbm/passwd.c that caused garbage messages to be returned to ldappasswd

22 years agoadd limits stuff to back-ldap
Pierangelo Masarati [Sat, 4 Aug 2001 11:10:35 +0000 (11:10 +0000)]
add limits stuff to back-ldap

22 years agocleanup limits stuff in back-meta
Pierangelo Masarati [Sat, 4 Aug 2001 11:10:08 +0000 (11:10 +0000)]
cleanup limits stuff in back-meta

22 years agoallow multiple limits setting on one global/per backend config line
Pierangelo Masarati [Sat, 4 Aug 2001 11:09:25 +0000 (11:09 +0000)]
allow multiple limits setting on one global/per backend config line

22 years agomore intuitive special limits configuration
Pierangelo Masarati [Fri, 3 Aug 2001 17:25:39 +0000 (17:25 +0000)]
more intuitive special limits configuration

22 years agoenforces detailed search limits
Pierangelo Masarati [Fri, 3 Aug 2001 17:15:14 +0000 (17:15 +0000)]
enforces detailed search limits

22 years agoA big bunch of improvements, contributed by Sam Drake and Raj Damani.
Dmitry Kovalev [Thu, 2 Aug 2001 17:28:59 +0000 (17:28 +0000)]
A big bunch of improvements, contributed by Sam Drake and Raj Damani.
Summary of changes is cited below.
The patch still needs some cosmetic changes to be made, but is ready for testing.

-----Original Message-----
From: Sam Drake [mailto:drake@timesten.com]
Sent: Saturday, April 07, 2001 10:40 PM
To: 'mitya@seismic.ru'
Cc: openldap-devel@OpenLDAP.org
Subject: RE: Slapd frontend performance issues

FYI, here is a short description of the changes I made.  I'll package up the
changes asap, but it may take a couple of days.

The performance numbers quoted in this report were seen at my location with
a 100,000 object database ... the slower numbers I mentioned earlier were
reported by a customer with a 1,000,000 object database.

I also can't explain the very poor performance I saw with OpenLDAP and LDBM
with a 100,000 object database.

...Sam Drake / TimesTen Performance Software

----------

Work Performed

OpenLDAP 2.0.9, including back-sql, was built successfully on Solaris
8 using gcc.  The LDAP server itself, slapd, passed all tests bundled
with OpenLDAP.  OpenLDAP was built using Sleepycat LDBM release 3.1.17
as the "native" storage manager.

The experimental back-sql facility in slapd was also built
successfully.  It was built using Oracle release 8.1.7 and the Oracle
ODBC driver and ODBC Driver Manager from Merant.  Rudimentary testing
was performed with the data and examples provided with back-sql, and
back-sql was found to be functional.

Slapd and back-sql were then tested with TimesTen, using TimesTen
4.1.1.  Back-sql was not immediately functional with TimesTen due to a
number of SQL limitations in the TimesTen product.

Functional issues encountered were:

1. Back-sql issued SELECT statements including the construct,
   "UPPER(?)".  While TimesTen supports UPPER, it does not support the
   use of parameters as input to builtin functions.  Back-sql was
   modified to convert the parameter to upper case prior to giving it
   to the underlying database ... a change that is appropriate for all
   databases.

2. Back-sql issued SELECT statements using the SQL CONCAT function.
   TimesTen does not support this function.  Back-sql was modified to
   concatentate the necessary strings itself (in "C" code) prior to
   passing the parameters to SQL.  This change is also appropriate for
   all databases, not just TimesTen.

Once these two issues were resolved, back-sql could successfully
process LDAP searches using the sample data and examples provided with
back-sql.

While performance was not measured at this point, numerous serious
performance problems were observed with the back-sql code and the
generated SQL.  In particular:

1. In the process of implementing an LDAP search, back-sql will
   generate and execute a SQL query for all object classes stored in
   back-sql.  During the source of generating each SQL query, it is
   common for back-sql to determine that a particular object class can
   not possibly have any members satisfying the search.  For example,
   this can occur if the query searches an attribute of the LDAP
   object that does not exist in the SQL schema.  In this case,
   back-sql would generate and issue the SQL query anyway, including a
   clause such as "WHERE 1=0" in the generated SELECT.  The overhead
   of parsing, optimizing and executing the query is non-trivial, and
   the answer (the empty set) is known in advance. Solution: Back-sql
   was modified to stop executing a SQL query when it can be
   predetermined that the query will return no rows.

2. Searches in LDAP are fundamentally case-insensitive ("abc" is equal
   to "aBc").  However, in SQL this is not normally the case.
   Back-sql thus generated SQL SELECT statements including clauses of
   the form, "WHERE UPPER(attribute) = 'JOE'".  Even if an index is
   defined on the attribute in the relational database, the index can
   not be used to satisfy the query, as the index is case sensitive.
   The relational database then is forced to scan all rows in the
   table in order to satisfy the query ... an expensive and
   non-scalable proposition.  Solution: Back-sql was modified to allow
   the schema designer to add additional "upper cased" columns to the
   SQL schema.  These columns, if present, contain an upper cased
   version of the "standard" field, and will be used preferentially
   for searching.  Such columns can be provided for all searchable
   columns, some columns, or no columns.  An application using
   database "triggers" or similar mechanisms can automatically
   maintain these upper cased columns when the standard column is
   changed.

3. In order to implement the hierarchical nature of LDAP object
   hierarchies, OpenLDAP uses suffix searches in SQL.  For example, to
   find all objects in the subtree "o=TimesTen,c=us", a SQL SELECT
   statement of the form, "WHERE UPPER(dn) LIKE '%O=TIMESTEN,C=US'"
   would be employed.  Aside from the UPPER issue discussed above, a
   second performance problem in this query is the use of suffix
   search.  In TimesTen (and most relational databases), indexes can
   be used to optimize exact-match searches and prefix searches.
   However, suffix searches must be performed by scanning every row in
   the table ... an expensive and non-scalable proposition.  Solution:
   Back-sql was modified to optionally add a new "dn_ru" column to the
   ldap_entries table.  This additional column, if present, contains a
   byte-reversed and upper cased version of the DN.  This allows
   back-sql to generate indexable prefix searches.  This column is
   also easily maintained automatically through the use of triggers.

Results

A simple database schema was generated holding the LDAP objects and
attributes specified by our customer.  An application was written to
generate test databases.  Both TimesTen and Oracle 8.1.7 were
populated with 100,000 entry databases.

Load Times

Using "slapadd" followed by "slapindex", loading and indexing 100,000
entries in an LDBM database ran for 19 minutes 10 seconds.

Using a C++ application that used ODBC, loading 100,000 entries into
a disk based RDBMS took 17 minutes 53 seconds.

Using a C++ application that used ODBC, loading 100,000 entries into
TimesTen took 1 minute 40 seconds.

Search Times

The command, "timex timesearch.sh '(cn=fname210100*)'" was used to
test search times.  This command issues the same LDAP search 4000
times over a single LDAP connection.  Both the client and server
(slapd) were run on the same machine.

With TimesTen as the database, 4000 queries took 14.93 seconds, for a
rate of 267.9 per second.

With a disk based RDBMS as the database, 4000 queries took 77.79 seconds,
for a
rate of 51.42 per second.

With LDBM as the database, 1 query takes 76 seconds, or 0.076 per
second.  Something is clearly broken.

22 years agoFix bug introduced during TLS rework
Kurt Zeilenga [Thu, 2 Aug 2001 04:20:11 +0000 (04:20 +0000)]
Fix bug introduced during TLS rework

22 years agoAdd some addl. logging
Kurt Zeilenga [Thu, 2 Aug 2001 03:37:20 +0000 (03:37 +0000)]
Add some addl. logging