Berkeley DB Java Edition 1.5.3 Change Log
Changes since Release 1.5.1.
For additional details, please see the documentation and Release
Notes included in your download package or on our website.
Log File On-Disk Format Changes:
None
New Features:
None
General Environment Changes:
- Fix a bug where eviction is eventually unable to make
progress when there are large numbers of internal node splits.
[#10395]
- Fix a bug where checkpoints occurred less frequently than
the configured byte interval. [#10395]
- Fix a bug where the compressor thread was unnecessarily
reading internal nodes and could become back logged. [#10395]
- Fix a bug where the evictor would cause writes to the log
when the environment is opened read-only. [#10554]
- Fix a bug where databases on read-only media or in read-only
directories would fail because of the use of the ".lck" file.
FileManager now checks if the environment is a read-only dir/media
and will assert that it is being opened read-only and open the
environment without a ".lck" file. [#10632]
- Fix a bug where Tree.insert() would sporadically loop when
DupCountLN had a count of -1. [#10665]
- Fix a bug that would cause eviction to not function correctly
due to an inconsistency in the equals method on the
Evictor.INGenerationComparator class. [#10693]
- Improved performance and reliability of DbStat and DbVerify on
large databases. [#10697]
- Fix a bug where out of disk space conditions were not handled
gracefully. [#10741]
- Fix a bug that caused an internal exception under certain
conditions, when inserting a key that was previously deleted.
[#10747]
- Change checkpoints to delete cleaned files, rather than waiting
for the cleaner to finish. Cleaned files are deleted when more than
five files have been cleaned at the time a checkpoint starts. The
new property je.cleaner.minFilesToDelete can be used to override the
default of five files. [#10756]
- Improve recovery performance for opening an existing
environment for databases that do not support duplicates.
[#10781]
- Improve compatibility between our custom serialization
(StoredClassCatalog) and applications that use custom class loaders.
[#10827]
API Changes:
- Change Transaction.getId() to be a public method. It can be
useful when correlating transaction statistics to particular
transactions. [#10657]
- Fix an inconsistency in exception handling. Previously,
DeadlockException and LockNotGrantedException were independent
exceptions. With this change, an application can chose whether to
catch the more specific LockNotGrantedException, or simply handle it
as generic deadlock. [#10672]
- Fix a bug where records larger than 5K were handled
inefficiently during operations like environment open and log
cleaning because the default read buffer size was too small. The
default read buffer size is now 8K and will grow if larger records
are encountered. Added methods
EnvironmentStats.getNRepeatIteratorReads() and
EnvironmentStats.getNRepeatFaultReads() and a property,
je.log.iteratorMaxSize that can be used to fine tune the efficiency
of the read buffer. [#10749]
Utility Changes:
- The DbDump format was changed for compatibility with the DB
core product. The boolean values are now printed as 1/0 instead of
true/false and the database name is no longer output. The old
(incorrect) format is still supported by the JE DbLoad. [#10861]
Configuration, Documentation, and Build Changes:
- Add a property, je.log.iteratorMaxSize that can be used to
set the maximum size of the read buffer. [#10749]
- Add a property, je.cleaner.minFilesToDelete that can be used to
override the default of five files. [#10756]