This section is from the "Version Control with Subversion" book, by Ben Collins-Sussman, Brian W. Fitzpatrick and C. Michael Pilato. Also available from Amazon: Version Control with Subversion.
A Berkeley DB environment is an encapsulation of one or more databases, log files, region files and configuration files. The Berkeley DB environment has its own set of default configuration values for things like the number of database locks allowed to be taken out at any given time, or the maximum size of the journaling log files, etc. Subversion's filesystem logic additionally chooses default values for some of the Berkeley DB configuration options. However, sometimes your particular repository, with its unique collection of data and access patterns, might require a different set of configuration option values.
The producers of Berkeley DB understand that different
applications and database environments have different
requirements, and so they have provided a mechanism for
overriding at runtime many of the configuration values for the
Berkeley DB environment: BDB checks for the presence of
a file named DB_CONFIG
in the environment
directory (namely, the repository's
db
subdirectory), and parses the options found in that file . Subversion itself creates
this file when it creates the rest of the repository. The
file initially contains some default options, as well as
pointers to the Berkeley DB online documentation so you can
read about what those options do. Of course, you are free to
add any of the supported Berkeley DB options to your
DB_CONFIG
file. Just be aware that while
Subversion never attempts to read or interpret the contents of
the file, and makes no direct use of the option settings in
it, you'll want to avoid any configuration changes that may
cause Berkeley DB to behave in a fashion that is at odds with
what Subversion might expect. Also, changes made to
DB_CONFIG
won't take effect until you
recover the database environment (using svnadmin
recover).