mirror of
https://github.com/berkeleydb/libdb.git
synced 2024-11-16 09:06:25 +00:00
318 lines
12 KiB
Text
318 lines
12 KiB
Text
= Berkeley DB 5.3 Changelog =
|
|
|
|
== Changes between 11.2.5.3.15 and 11.2.5.3.21 ==
|
|
|
|
Fixed incompatibility problems of Java DPL with JDK7, so DPL will now
|
|
work with JDK7. [#20586]
|
|
|
|
Added a flag to allow database locking to be disabled from the SQL
|
|
API. [#20928]
|
|
|
|
Fixed a bug that could allocate a heap data page in a region after the
|
|
region creation has been undone. [#20939]
|
|
|
|
Redundant whitespaces are now ignored in DB_CONFIG lines pertaining to
|
|
directories, e.g. set_data_dir. [#20158]
|
|
|
|
Fixed a bug that caused DB_ENV->backup to stop early if DB_BACKUP_FILES was
|
|
not set and a non-DB file was in the data directory. [#21076]
|
|
|
|
Fixed a rare race condition that could cause a crash if two processes opened
|
|
the same database at the same time. [#21041]
|
|
|
|
Fixed missing cross compiling capability for the JDBC driver. [#21101]
|
|
|
|
Allow the same system/machine to host both a master and a replica
|
|
database through the use of relative pathnames. [#21105]
|
|
|
|
Fixed a bug in the Java API where EnvironmentConfig.setCreateDir would fail
|
|
to configure the environment. [#21127]
|
|
|
|
Fixed an assert failure in btreeCompare when allocating memory
|
|
in the wrong thread was causing a memory leak. [#21232]
|
|
|
|
Fixed a bug in the Java API where concurrent operations that change the
|
|
database schema could lead to a hang. [#21265]
|
|
|
|
Added JDBC code to the code base and updated the windows build files
|
|
to include the JDBC solution. [#21294]
|
|
|
|
Fixed a bug where the heap's region size was not getting swapped correctly
|
|
in mixed-endian environments. [#21295]
|
|
|
|
Fixed a bug in the db_sql_jdbc project file for vs2010 that was preventing
|
|
it from building correctly. [#21332]
|
|
|
|
== Database or Log File On-Disk Format Changes ==
|
|
|
|
Existing database file formats were unchanged in library version 11.2.5.3.
|
|
|
|
The log file format changed in library version 11.2.5.3.
|
|
|
|
== New Features ==
|
|
|
|
Added support for verifying named in-memory dbs. [#16941]
|
|
|
|
Added an integer key comparison function to improve performance through
|
|
the SQL API. [#19609]
|
|
|
|
Support build on the platforms where pthread_t is a struct. [#19876]
|
|
|
|
Added an API call so the user can specify the size of the region in a
|
|
heap db. [#19914]
|
|
|
|
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. [#19980]
|
|
|
|
Enhanced the interface for copying databases for a hot backup. Added configure
|
|
support for --enable-atomicfileread. [#20129]
|
|
|
|
Enhaced the log reading routine to detect that a log file is missing rather
|
|
than returning that a zero length record was found. [#20130]
|
|
|
|
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. [#20156]
|
|
|
|
Added set_metadata_dir() and get_metadata_dir() to enable storage of
|
|
persistent metadata files in a location other than the environment
|
|
home directory. [#20174]
|
|
|
|
Improved the error handling through the SQL API. Errors can be sent to a
|
|
file with the use of the BDBSQL_ERROR_FILE pragma. [#20213]
|
|
|
|
Database handles can now be configured to give exclusive access to
|
|
the database. [#20331]
|
|
|
|
XA transactions will now use transaction snapshots if the XA databases
|
|
they operate on were configured with DB_MULTIVERSION. [#20332]
|
|
|
|
Added additional stats fields into the C# API [#20693]
|
|
|
|
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. [#20789]
|
|
|
|
Improved the ability of DB->compact to move DB_HASH database pages to the
|
|
begining of the file. [#20815]
|
|
|
|
== Database Environment Changes ==
|
|
|
|
Fixed a bug that could cause a segmentation violation when closing
|
|
an environment handle which has open database handles on partition
|
|
databases. [#20281]
|
|
|
|
Fixed a bug that could cause a segmentation violation if a region was
|
|
extended leaving a very small fragment at the end. [#20414]
|
|
|
|
Changed the behavior of the DB_REGISTER | DB_RECOVER flag combination, so
|
|
that recovery is always run if the environment panic bit is set. [#20767]
|
|
|
|
== Access Method Changes ==
|
|
|
|
Fixed a bug were database configuration settings could be lost when the
|
|
database was opened if the open operation was blocked for any amount
|
|
of time. [#20860]
|
|
|
|
Fixed a bug that bulk update operations did not work correctly on
|
|
compressed databases. [#19017]
|
|
|
|
Improved the log flushing performance when ftruncate() is not available
|
|
on a system. [#19725]
|
|
|
|
When performing partial puts in a heap database, empty pieces will no longer
|
|
be left in a split record chain. [#20052]
|
|
|
|
Fixed a bug where, on systems without FTRUNCATE, db_verify will return an
|
|
error for truncated heap databases. [#20195]
|
|
|
|
Fixed a bug where BDB could run out of mutexes when many databases are
|
|
renamed. [#20228]
|
|
|
|
Fixed a bug where the metadata page in hash databases would not be flushed
|
|
to disk. [#20265]
|
|
|
|
Fixed a bug that could leave deleted pages from a HEAP database in the
|
|
buffer cache. [#20309]
|
|
|
|
Fixed a bug where the library would fail to put records with overflow keys
|
|
into hash duplicate database. [#20329]
|
|
|
|
Fixed a bug in DB->compact of btrees that could cause a bad pointer
|
|
reference. [#20360]
|
|
|
|
Fixed a bug that could cause the last page number stored on the metadata
|
|
page to be wrong after rolling forward a db->compact operation that freed
|
|
more pages than will fit in a single log record. [#20646]
|
|
|
|
Fixed a bug that could cause DB->stat to block on a mutex while holding a
|
|
lock on the metadata page. [#20770]
|
|
|
|
Fixed a bug that could cause DB->compact of a DB_HASH database to fail to
|
|
mark a page it updated as dirty. [#20778]
|
|
|
|
Fixed a bug where internal HEAP structures were not rebuilt during database
|
|
handle refresh. [#20821]
|
|
|
|
Fixed a bug with secondary indices, off-page duplicates and
|
|
DB_READ_COMMITTED which could erroneously release the lock on the page
|
|
holding a returned record. [#20853]
|
|
|
|
Fixed a bug that could cause a hang or improperly report an empty queue when
|
|
the queue record numbers wrapped around at 2^32. [#20956]
|
|
|
|
Fixed a bug on Linux or Windows that could generate a checksum error
|
|
if a database file was being opened while the meta data page happened
|
|
to be flushed from the cache. [#20996]
|
|
|
|
== SQL API Changes ==
|
|
|
|
Fixed several memory leaks in the Online Backup API. [#19850]
|
|
|
|
Fixed a bug in the SQL API when using large blob items and multiple concurrent
|
|
connections. [#19945]
|
|
|
|
To avoid a race condition that could cause a snapshot reader to see a wrong
|
|
version it is now not permitted to open a DB handle specifying DB_MULTIVERSION
|
|
if that database is currently opened by a handle which did not specify
|
|
DB_MULTIVERSION. [#19940]
|
|
|
|
Pragma replication=on can now enable replication on an existing database.
|
|
Turning replication off is now permanent. [#20180]
|
|
|
|
Fixed a bug in the SQL API where it was possible for a schema update to be
|
|
ignored when accessing a database from multiple processes. [#20319]
|
|
|
|
Fixed a bug where aborting an exclusive transaction followed by an
|
|
auto-commit read operation causes an assert failure. [#20567]
|
|
|
|
Fixed a bug in the SQL API where using the journal_mode pragma could cause a
|
|
crash when used as the first operation in a connection on an existing
|
|
database. [#20620]
|
|
|
|
Turn off the DBSQL encryption option on Windows/WinCE by default to match the
|
|
behavior on the other platforms. [#20671]
|
|
|
|
Renamed the BDBSQL_OMIT_SHARING preprocessor flag to
|
|
BDBSQL_SINGLE_PROCESS. [#20789]
|
|
|
|
Fixed a bug dealing with handle lock modes not reflecting the correct state
|
|
which was causing a deadlock in the SQL API. [#20862]
|
|
|
|
== Java-specific API changes ==
|
|
|
|
Added ReplicationManagerConnectionStatus class and
|
|
ReplicationManagerSiteInfo.getConnectionStatus(). Deprecated
|
|
ReplicationManagerSiteInfo.isConnected(). [#18068]
|
|
|
|
Updated EID_MASTER to be "public static final" so that it would be exposed
|
|
in Java docs. [#20184]
|
|
|
|
Fixed a bug where calls that return Stat objects could cause a
|
|
segfault. [#20377]
|
|
|
|
== Replication Changes ==
|
|
|
|
Fixed quorum computation when most sites are unelectable. [#15251]
|
|
|
|
Made Replication more resilient to random input on its port. [#15712]
|
|
|
|
Fixed a bug where the datadir structure was not maintained during an
|
|
internal init. [#19041]
|
|
|
|
Fixed a repmgr memory leak when using DB_PRIVATE. [#19363]
|
|
|
|
Fixed a minor bug to handle ENOMEM when using an in-memory
|
|
temp database. [#20197]
|
|
|
|
Fixed a bug where multiple long running transactions across
|
|
checkpoints could cause Log Sequence errors on client systems. [#20421]
|
|
|
|
Fixed a bug where multiple Replication Manager processes would sometimes
|
|
not all conform to replication-group-aware log archiving. [#20342]
|
|
|
|
== Locking Subsystem Changes ==
|
|
|
|
Fixed a bug that could cause an early lock timeout if a previous error
|
|
left a lock timeout value set. [#19973]
|
|
|
|
== Logging Subsystem Changes ==
|
|
|
|
Fixed a bug which could cause an incompletely written log record to be
|
|
recognized as valid, resulting in recovery failing with the message "Illegal
|
|
record type <integer, usually 0> in log". [#17851]
|
|
|
|
Fixed a bug where printlog would fail on in-memory heap databases. [#20269]
|
|
|
|
== Memory Pool Subsystem Changes ==
|
|
|
|
Fixed a bug which overstated the number of clean and dirty pages evicted from
|
|
the cache. [#20410]
|
|
|
|
Fixed a bug that left a small fragment at the end of a region when
|
|
extending. [#20414]
|
|
|
|
Fixed a bug where the file bucket was always zero when creating a mpoolfile
|
|
using the mpool API. [#20468]
|
|
|
|
Fixed a bug with multiversion concurrency control which could cause
|
|
versions of pages to remain in the cache even though they are no longer
|
|
needed. [#20570]
|
|
|
|
The memory pool allocator will now start freezing MVCC versions of buffers
|
|
if it sees more than 1/4 of the available buffers are taken up by
|
|
versions. [#20836]
|
|
|
|
== Mutex Subsystem Changes ==
|
|
|
|
Fixed a bug in which DB_ENV->mutex_set_align() could cause
|
|
DB_ENV->mutex_stat_print(dbenv, DB_STAT_ALL) to display only the
|
|
first mutex. [#20522]
|
|
|
|
Fixed a bug with DB_ENV->mutex_stat_print() in which the information on
|
|
some mutexes would not be displayed, if any mutex had been freed and not
|
|
yet reallocated. [#20533]
|
|
|
|
== Transaction Subsystem Changes ==
|
|
|
|
Fixed a bug where a malloc failure could result in a segfault
|
|
when doing a put on a database with secondaries. [#20641]
|
|
|
|
== Utility Changes ==
|
|
|
|
Fixed a bug that would cause verify to call the wrong compare function if
|
|
there are user defined compare functions used and the database has multilevel
|
|
off page sorted duplicate trees. [#20284]
|
|
|
|
Fixed a bug that could cause recovery to fail if DB->compact moved the meta
|
|
data page of a HASH subdatabase. [#20708]
|
|
|
|
Fixed two problems with db_hotbackup's handling of transaction logs. A hotbackup
|
|
would always try to open the logs in the environment home, even if a log
|
|
directory had been specified. The second fix corrected an error path, in which
|
|
the memory was freed by the wrong function, possibly causing a guard byte error.
|
|
[#21313]
|
|
|
|
== Configuration, Documentation, Sample Apps, Portability and Build Changes ==
|
|
|
|
The DB_CONFIG configuration commands which specify directory pathnames
|
|
("set_data_dir", "set_lg_dir", and "set_tmp_dir") now accept names containing
|
|
whitespace characters. [#20158]
|
|
|
|
== Known Bugs ==
|
|
|
|
If two SQL processes are concurrently altering the schema of the same tables
|
|
in a database, there is a race condition that can cause the application
|
|
to hang. [#20513]
|
|
|
|
Replication groups including machines of different endianness do
|
|
not support the heap access method. [#21016]
|
|
|
|
If a txn that is attempting to remove a region page from a heap database is
|
|
aborted and another txn is trying to update that same page then it can
|
|
cause the original txn to abort. This is timing dependant. [#20939]
|