1<!--"$Id: 2.3.16.html,v 1.3 2007/05/17 18:17:18 bostic Exp $ (Sleepycat) $Date: 2007/05/17 18:17:18 $"--> 2<html> 3<head> 4<title>The Berkeley DB Package: DB 2.3.16 Change Log</title> 5<meta name="description" content="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 2.3.16 Change Log</h3> 11 12<h3>Interface Changes Introduced in DB 2.3.16:</h3> 13 14<ol> 15 16<li> 17The interface to <b>db_jump_set</b>(3) for the DB_FUNC_IOINFO value 18has changed in order to avoid passing <b>off_t</b> types as interface 19arguments. 20Any software that uses this interface must be updated to use the new 21arguments. 22See 23db_internal(3) 24for more information. 25<font color=red> 26This change is NOT transparent to applications. 27</font> 28 29<p><li> 30The output of <b>log_stat</b>(3) has been enhanced to include the 31current log file number and offset within that file. 32See 33db_log(3) 34for more information. 35 36<p><li> 37A new option, <b>-T</b>, has been added to the <b>db_load</b>(1) utility. 38This option simplifies using non-DB applications (or scripts) to create 39DB databases. 40See 41db_load(1) 42for more information. 43 44<p><li> 45Applications wanting to us the dbm, ndbm or hsearch interfaces to 46the DB library must now specify a numeric value when they #define 47DB_DBM_HSEARCH. For example, instead of using: 48<p> 49<ul><code> 50#define DB_DBM_HSEARCH 51<br> 52#include "db.h" 53</code></ul> 54<p> 55in the application, they must now use: 56<p> 57<ul><code> 58#define DB_DBM_HSEARCH 1 59<br> 60#include "db.h" 61</code></ul> 62<p> 63<font color=red> 64This change is NOT transparent to applications. 65</font> 66 67<p><li> 68DB no longer intrudes on the historic <b>dbm</b>(3), <b>ndbm</b>(3) or 69<b>hsearch</b>(3) namespaces. This change permits applications to load 70the DB library and still load the <b>dbm</b>, <b>ndbm</b> or 71<b>hsearch</b> functions from another library. 72 73<p><li> 74The <b>dbm</b>(3) functions are no longer exported in the Win32 75environment. The <b>db_jump_set</b>(3), <b>db_value_set</b>(3) and 76<b>log_stat</b>(3) interfaces are now exported in the Win32 environment. 77 78<p><li> 79In the Java DB API, Dbt's used to retrieve data must specify 80Db.DB_DBT_MALLOC or Db.DB_DBT_USERMEM in the Dbt flags. 81If Db.DB_DBT_USERMEM is used, the data field of the Dbt must 82be set to an appropriately sized byte array. 83 84</ol> 85 86<h3>Bug Fixes:</h3> 87 88<ol> 89 90<p><li> 91When transaction undo was performed during recovery, the Btree access 92method could incorrectly recover pages that were never created because 93of the system or application failure. 94 95<p><li> 96When the last log file did not contain a checkpoint, recovery could 97potentially fail. 98 99<p><li> 100When files were opened and closed between checkpoints, catastrophic 101recovery could potentially fail. 102 103<p><li> 104When log file #2 existed but log file #1 did not, recovery would fail. 105 106<p><li> 107Shared memory regions were not being explicitly initialized in the Win95 108environment, potentially resulting in unexpected behavior. 109 110<p><li> 111An incorrect shared memory region offset was being specified in the shared 112memory buffer cache support for systems using <b>fcntl</b>(2) locking 113(rather than spinlock mutexes). This could potentially lead to incorrect 114locking behavior in that subsystem. 115 116<p><li> 117The shared memory buffer cache had a deadlock situation when a buffer 118writer and a thread or process syncing the pool attempted to write the 119same buffer at the same time, potentially leading to thread/process 120starvation. 121 122<p><li> 123The Java DB API did not correctly interact with the Db.DB_DBT_MALLOC 124and Db.DB_DBT_USERMEM flags, and a number of memory leaks have been 125eliminated. 126 127</ol> 128 129<h3>Additional Changes:</h3> 130 131<ol> 132 133<li> 134There are a large number of source changes to the DB 2.3.16 release, 135intended to clean up compiler warnings that could appear when various 136debugging and warning options were specified to the gcc and Solaris 137compilers. 138 139<p><li> 140DB 2.3.16 has been modified to never pass as arguments or store on disk 141variables of type off_t. This change is intended to increase DB's 142portability to compiler/architecture combinations where the DB library 143and the application may not have been compiled with the same size off_t. 144 145<p><li> 146DB now uses the -O2 compiler optimization flag when building on Linux 147systems. 148 149<p><li> 150The shared memory buffer cache subsystem has been enhanced to no longer 151hold mutex locks across calls to <b>fsync</b>(2). 152 153<p><li> 154The shared memory buffer cache subsystem now explicitly yields the 155processor when waiting on a buffer for which I/O was being performed, 156enhancing overall throughput. 157 158<p><li> 159The test suite has been enhanced to better test recovery and to increase 160dbm/ndbm interface coverage. 161 162</ol> 163 164</body> 165</html> 166