[Date Prev][Date Next] [Chronological] [Thread] [Top]

RE: 2.1.17 performance issues



On Apr 23 at 3:28pm, Howard Chu wrote:

> I frequently see questions about why all of this essential configuration and
> documentation isn't integrated into OpenLDAP. I have answered this before,
> but will repeat myself this once:
> 
> The SleepyCat documentation is very well written. Any further effort on our
> part to document BDB's features would be redundant effort, and would require
> continuous redundant effort to maintain as BDB moves forward. We don't have
> time to spend doing this, but you're always welcome to submit new
> documentation for inclusion into the distribution.

I agree that what they have written they have written very well.  With 
the exception that to find what statements can be put in the DB_CONFIG 
file, you have to chase down all the DB_ENV->routine calls to see if 
it mentions there is a DB_CONFIG syntax.  I'll agree that OpenLDAP 
should not be required to document the DB_CONFIG statements since that 
is something SleepyCat should do.  I will register a complaint with 
SleepyCat on that.

> The SleepyCat configuration mechanism is also very well developed. But not
> only is it redundant for us to integrate it into slapd, it is potentially
> dangerous, and my position has been to put as little BDB-specific
> configuration into slapd as possible. The problem is this - the BDB library
> always reads the DB_CONFIG file after all other configuration is done, and
> any settings in the DB_CONFIG file override anything that was set before. So,
> if we were to provide slapd.conf keywords for all of the necessary BDB
> tunables, you may run into situations where your carefully chosen settings
> are completely ignored by the BDB library.

Not only is it dangerous, but since it is UNDOCUMENTED which DB_CONFIG 
statements override slapd configuration options, it is bound to happen 
that someone is going to use checkpoint in their slapd.conf file and 
also have it in their DB_CONFIG file.  The dbnosync option is going to 
cause a similar problem.  It will be commented out in either slapd.conf 
or DB_CONFIG but not both and someone is going to think it's off when 
they don't remember to check both places and get a rude surprise.

I think the slapd-bdb man page needs an update to indicate which of the 
configuration options have equivalent DB_CONFIG options, 
specify which DB_CONFIG options one should not be using
because doing so could cause potential problems, and include a pointer 
to the sleepycat documentation (for those of us that seem to keep 
missing it).

I would be interested to know if it makes any difference to back-bdb if 
the checkpoint or dbnosync are specified in the DB_CONFIG file and not 
used in the slapd.conf file -- in other words, does back-bdb do anything 
with those values other than make the appropriate DB_ENV routine calls?

Since I also want to know if there are any DB_ENV routine calls made 
to set configuration options that are automatic and could be clobbered 
by DB_CONFIG entries, I guess I'm going to go code diving today.

-- 
Frank Swasey                    | http://www.uvm.edu/~fcs
Systems Programmer              | Always remember: You are UNIQUE,
University of Vermont           |    just like everyone else.
                    === God Bless Us All ===