* Added support for verifying named in-memory dbs.
* Added an integer key comparison function to improve performance through the
SQL API.
* Support build on the platforms where pthread_t is a struct.
* Added an API call so the user can specify the size of the region in a heap db.
* Improved Replication Manager's ability to recover from the (perhaps rare)
phenomenon of two sites trying to connect to each other simultaneously, which
used to result in loss of both connections, requiring a retry after the
CONNECTION_RETRY timeout period.
* Enhanced the interface for copying databases for a hot backup. Added configure
support for --enable-atomicfileread.
* Enhaced the log reading routine to detect that a log file is missing rather
than returning that a zero length record was found.
* Added pragma bdbsql_shared_resources to set or report the maximum amount of
memory to be used by shared structures in the main environment region and
bdbsql_lock_tablesize to set or report the number of buckets in the lock
object hash table. These are advanced tuning features for applications with
large number of tables or needs to reduce locking on concurrent long running
transactions.
* Added set_metadata_dir() and get_metadata_dir() to enable storage of
persistent metadata files in a location other than the environment home
directory.
* Improved the error handling through the SQL API. Errors can be sent to a file
with the use of the BDBSQL_ERROR_FILE pragma.
* Database handles can now be configured to give exclusive access to the
database.
* XA transactions will now use transaction snapshots if the XA databases they
operate on were configured with DB_MULTIVERSION.
* Added additional stats fields into the C# API
* Added pragma bdbsql_single_process to keep the Berkeley DB environment
information on the heap instead of in shared memory. This option cannot be
used if the database is accessed from multiple processes.
* Improved the ability of DB->compact to move DB_HASH database pages to the
begining of the file.
data. The software is distributed in source code form, and developers can
compile and link the source code into a single library for inclusion
directly in their applications.
Developers may choose to store data in any of several different storage
structures to satisfy the requirements of a particular application. In
database terminology, these storage structures and the code that operates on
them are called access methods. The library includes support for the
following access methods:
* B+tree: Stores keys in sorted order, using either a programmer-supplied
ordering function or a default function that does lexicographical
ordering of keys. Applications may perform equality or range searches.
* Hashing: Stores records in a hash table for fast searches based on
strict equality. Extended Linear Hashing modifies the hash function
used by the table as new records are inserted, in order to keep buckets
underfull in the steady state.
* Fixed and Variable-Length Records: Stores fixed- or variable-length
records in sequential order. Record numbers may be immutable or
mutable, i.e., permitting new records to be inserted between existing
records or requiring that new records be added only at the end of the
database.