1<!--$Id: 4.0.14.html,v 1.5 2007/05/17 18:17:18 bostic Exp $--> 2<html> 3<head> 4<title>The Berkeley DB Package: DB 4.0.14 Change Log</title> 5<meta name="description" content="Berkeley DB: A database programmatic toolkit."> 6<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods"> 7</head> 8<body bgcolor=white> 9 10<h3 align=center>Berkeley DB 4.0.14 Change Log</h3> 11 12<h3>Major New Features:</h3> 13<ol> 14 15<li>Group commit. [#42] 16<li>Single-master replication. [#44] 17<li>Support for VxWorks AE; Vxworks support certified by WindRiver Systems 18Inc. [#4401] 19 20</ol> 21 22<h3>General Environment Changes:</h3> 23<ol> 24 25<li>The db_env_set_pageyield interface has been replaced by a new flag 26(DB_YIELDCPU) for the DB_ENV->set_flags interface. 27<li>The db_env_set_panicstate interface has been replaced by a new flag 28(DB_PANIC_STATE) for the DB_ENV->set_flags interface. 29<li>The db_env_set_region_init interface has been replaced by a new flag 30(DB_REGION_INIT) for the DB_ENV->set_flags interface. 31<li>The db_env_set_tas_spins interface has been replaced by the 32DB_ENV->set_tas_spins method. 33<li>The DB_ENV->set_mutexlocks interface has been replaced by a new 34flag (DB_NOLOCKING) for the DB_ENV->set_flags interface. 35<li>Fix a bug where input values from the DB_CONFIG file could overflow. 36<li>The C API lock, log, memory pool and transaction interfaces have 37been converted to method based interfaces; see the Upgrade documentation 38for specific details. [#920] 39<li>Fix a bug in which some DB_ENV configuration information could be lost 40by a failed DB_ENV->open command. [#4608] 41<li>Fix a bug where Berkeley DB could fail if the application 42attempted to allocate new database pages while the system was 43unable to write new log file buffers. [#4928] 44 45</ol> 46<h3>General Access Method Changes:</h3> 47<ol> 48 49<li>Add a new flag (DB_GET_BOTH_RANGE) that adds support for range 50searches within sorted duplicate data sets. [#3378] 51<li>Fix a bug in which the DB->get or DB->pget methods, when used with 52secondary indices, could incorrectly leave an internally-created 53database cursor open. [#4465] 54<li>The DB->set_alloc method can no longer be called when the 55database is part of a database environment. [#4599] 56 57</ol> 58<h3>Btree Access Method Changes:</h3> 59<ol> 60 61<li>Fix a bug where a lock could be leaked when a thread calling DB->stat 62on a Btree database was selected to resolve a deadlock. [#4509] 63 64</ol> 65<h3>Hash Access Method Changes:</h3> 66<ol> 67 68<li>Fix a bug where bulk return using the MULTIPLE_KEY flag on a 69Hash database would only return entries from a single bucket. [#4313] 70 71</ol> 72<h3>Queue Access Method Changes:</h3> 73<ol> 74 75<li>Delete extent files whenever the leading record is deleted, instead 76of only when a DB_CONSUME operation was performed. [#4307] 77 78</ol> 79<h3>Recno Access Method Changes:</h3> 80<ol> 81<li>Fix a bug where the delete of a record in a Recno database 82could leak a lock in non-transactional applications. [#4351] 83<li>Fix a bug where the DB_THREAD flag combined with a backing 84source file could cause an infinite loop. [#4581] 85 86</ol> 87<h3>C++ API Changes:</h3> 88 89<blockquote>None.</blockquote> 90 91<h3>Java API Changes:</h3> 92<ol> 93 94<li> 95Added implementation of DbEnv.lock_vec for Java. [#4094] 96Added some minimal protection so that the same Java Dbt 97cannot be used twice in the same API call, this will 98often catch multithreading programming errors with Dbts. [#4094] 99<li> 100Fix a bug in which a Db.put call with the Db.DB_APPEND would fail 101to correctly return the newly put record's record number. [#4527] 102<li>Fixed problems occurring in multithreaded java apps that use 103callbacks. [#4467] 104</ol> 105<h3>Tcl API Changes:</h3> 106<ol> 107 108<li>Fix a bug in which large integers could be handled incorrectly 109by the Tcl interface on 64-bit machines. [#4371] 110 111</ol> 112<h3>RPC Client/Server Changes:</h3> 113<ol> 114 115<li>The DB_ENV->set_server interface has been removed. 116 117 118</ol> 119<h3>XA Resource Manager Changes:</h3> 120 121<blockquote>None.</blockquote> 122 123<h3>Locking Subsystem Changes:</h3> 124<ol> 125 126<li>The C++ (Java) API DbLock::put (DbLock.put) method has been changed 127to be a method off the DbEnv handle rather than the DbLock handle. 128<li>Locker IDs may now wrap-around. [#864] 129<li>Explicitly allocated locker IDs must now be freed. [#864] 130<li>Add per-environment, per-lock and per-transaction interfaces to 131support timeout based lock requests and "deadlock" detection. [#1855] 132<li>Add support for interrupting a waiting locker. [#1976] 133<li>Implemented DbEnv.lock_vec for Java. [#4094] 134 135</ol> 136<h3>Logging Subsystem Changes:</h3> 137<ol> 138 139<li>Fix a bug where the size of a log file could not be set to 140the default value. [#4567] 141<li>Fix a bug where specifying a non-default log file size could 142cause other processes to be unable to join the environment and 143read its log files. [#4567] 144<li>Fix a bug where Berkeley DB could keep open file descriptors 145to log files returned by the DB_ENV->log_archive method (or the 146db_archive utility), making it impossible to move or remove them 147on Windows systems. [#3969] 148<li>Replace the log_get interface with a cursor into the 149log file. [#0043] 150 151</ol> 152<h3>Memory Pool Subsystem Changes:</h3> 153<ol> 154 155<li>Add the DB_ODDFILESIZE flag to the DB_MPOOLFILE->open method 156supporting files not a multiple of the underlying page size in length. 157<li>Convert memp_XXX functional interfaces to a set of methods, either 158base methods off the DB_ENV handle or methods off of a DB_MPOOLFILE 159handle. [#920] 160<li>Add the DB_ODDFILESIZE flag to the DB_MPOOLFILE->open method 161supporting files not a multiple of the underlying page size in length. 162<li>Fix a bug where threads of control could deadlock opening a 163database environment with multiple memory pool caches. [#4696] 164<li>Fix a bug where the space needed for per-file memory 165pool statistics was incorrectly calculated. [#4772] 166</ol> 167<h3>Transaction Subsystem Changes:</h3> 168<ol> 169 170<li>Transaction IDs may now wrap-around. [#864] 171<li>Release read locks before performing logging operations at commit. [#4219] 172 173</ol> 174<h3>Utility Changes:</h3> 175<ol> 176 177<li> Fix a bug in which the db_dump utility would incorrectly attach to 178transaction, locking, or logging regions when salvaging, and thus 179could not be used to salvage databases in environments where these 180regions were present. [#4305] 181<li>Fix a bug in which the DB salvager could produce incorrectly 182formatted output for certain classes of corrupt database. [#4305] 183<li>Fix a bug in which the DB salvager could incorrectly salvage 184files containing multiple databases. [#4305] 185<li>Fix a bug where unprintable characters in subdatabase names could 186cause a dump of a database that could not then be loaded. [#4688] 187<li>Increase the size of the cache created by the db_stat and db_verify 188utilities to avoid failure on large databases. [#4688] [#4787] 189<li>Fix a bug in which a database verification performed with the 190DB_ORDERCHKONLY flag could fail incorrectly. [#4757] 191<li>Fix a bug which caused db_stat to display incorrect information about 192GB size caches. [#4812] 193</ol> 194<h3>Database or Log File On-Disk Format Changes:</h3> 195<ol> 196 197<li>The on-disk log format changed. 198 199</ol> 200<h3>Configuration, Documentation, Portability and Build Changes:</h3> 201<ol> 202 203<li>Fix a bug where Win9X systems region names could collide. 204<li>Fix a bug where configuring Berkeley DB to build the C++ API 205without also configuring for a shared library build would fail 206to build the C++ library. [#4343] 207<li>Change Berkeley DB installation to not strip binaries if 208--enable-debug was specified as a configuration option. [#4318] 209<li>Add the -pthread flag to AIX, FreeBSD and OSF/1 library loads. [#4350] 210<li>Fix a bug where the Berkeley DB 1.85 compatibility API 211failed to load in the 3.3.11 release. [#4368] 212<li>Port the Berkeley DB utility programs to the VxWorks environment. [#4378] 213<li>Made change to configuration so that dynamic libraries link 214correctly when C++ is used on AIX. [#4381] 215<li> Fix a variety of problems that prevented the Berkeley DB source tree 216from building on systems without ANSI C compiler support (for example, 217SunOS 4.X). [#4398] 218<li>Added missing DbMultiple*Iterator Java files to Makefile.in. [#4404] 219<li>Fix a bug that could prevent the db_dump185 utility from dumping 220Berkeley DB version 1.86 hash databases. [#4418] 221<li>Reduce the number of calls setting the errno value, to 222improve performance on Windows/NT in MT environments. [#4432] 223<li>Fix for Darwin (and probably some other) OS's that were getting 224'yes' or other garbage in generated makefiles in place of 225a shared library name. [#4453] 226<li>C++: Remove inlining for constructor of tmpString internal class. 227This fixes warnings on Solaris profiling builds. [#4473] 228<li>DB now restarts system calls that are interrupted by signals. [#4480] 229<li>Fixed warnings for compiling Java native code on Solaris and OSF/1. [#4571] 230<li>Added better configuration for Java on Tru64 (OSF/1), Solaris, 231Mac OS/X, BSD/OS. [#3778] 232<li> Java files are now built as jar files. Berkeley DB classes are put 233into db.jar (which is an installed file on UNIX) and examples are put 234into dbexamples.jar. The classes directory is now a subdirectory of 235the build directory, rather than in java/classes. [#4575] 236<li>Support Cygwin installation process. [#4611] 237<li>Correct the Java secondary_key_create method signature. [#4777] 238<li>Export additional Berkeley DB interfaces on Windows to 239support application-specific logging and recovery. [#4827] 240<li>Always complain when using version 2.96 of the gcc compiler. [#4878] 241<li>Add compile and load-time flags to configure for threads on 242UnixWare and OpenUNIX. [#4552] [#4950] 243</ol> 244 245</body> 246</html> 247