1<!--"$Id: 2.6.4.html,v 1.4 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.6.4 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 2.6.4 Change Log</h3> 11 12<h3>Interface Additions in Berkeley DB 2.6.4:</h3> 13 14<ol> 15 16<p><li> 17Berkeley DB now supports a new mode of operation: Concurrent Access Methods. 18This configuration supports multiple-reader, single-writer access without 19requiring deadlock detection and transaction protection. The new interface 20is specified by using the DB_INIT_CDB flag to the db_appinit() function. 21<p> 22In addition, the DB->cursor interface has been modified to take a fourth 23argument, a <b>flags</b> argument. This change will require that all 24applications using the DB->cursor interface be modified and recompiled. 25(The necessary modification is trivial, simply add a final argument of 26<b>0</b> to the DB->cursor call.) 27<p><font color=red> 28This change is NOT transparent to applications. 29</font> 30 31<p><li> 32In previous Berkeley DB releases, cursors in Recno databases with mutable 33record numbers had to be re-positioned each time they were used to delete 34a record. This is no longer the case, and all of the records in the 35database logically at and above the cursor may now be deleted by 36repeatedly calling the delete function after positioning the cursor once. 37This change causes Berkeley DB practice to conform to the documentation 38found in previous releases. 39<p><font color=red> 40This change is NOT transparent to applications. 41</font> 42 43<p><li> 44Berkeley DB no longer permits applications to specify database page sizes 45that are not powers-of-two. This change fixes a bug which could cause 46application failure, as page alignments were not necessarily correct when 47files with page sizes other than powers-of-two were mapped into process 48memory. 49<p><font color=red> 50This change is NOT transparent to applications. 51</font> 52 53</ol> 54 55<h3>B+tree Access Method Bug Fixes:</h3> 56 57<ol> 58 59<p><li> 60Fix a bug which could cause application failure or corrupted data when 61database operations would split a Btree page and then subsequently fail 62or attempt to physically delete records after being restarted. 63 64<p><li> 65Fix a bug which could cause application failure when deleting records 66failed due to a deadlock. 67 68<p><li> 69Fix a bug which could cause a NULL pointer dereference when the relinking 70of duplicate data item pages failed due to deadlock. 71 72<p><li> 73Fix a memory leak where an internal cursor could be left open when 74databases were opened. 75 76<p><li> 77Fix a single-byte memory leak when the standard DB->del() interface was 78used to delete key/data pairs with duplicate data items. 79 80</ol> 81 82<h3>Hash Access Method Bug Fixes:</h3> 83 84<ol> 85 86<p><li> 87Fix a bug which could cause application failure or data corruption when 88deleting on-page duplicate items. 89 90<p><li> 91Fix a memory leak when closing cursors. 92 93</ol> 94 95<h3>Recno Access Method Bug Fixes:</h3> 96 97<ol> 98 99<p><li> 100Cursors that referenced deleted records were not correctly updated when 101the record was overwritten with new data, and would continue to return 102that the record was still in a "deleted" state. 103 104<p><li> 105Fix a bug where application specified read-modify-write semantics were 106ignored. 107 108<p><li> 109Remove lock-coupling behavior in tiny databases to avoid perpetual 110deadlock. 111 112<p><li> 113Fix a bug where root pages were not always correctly write-locked. 114 115</ol> 116 117<h3>Java API Changes and Bug Fixes</h3> 118 119<ol> 120 121<p><li> 122Fix compile include directory ordering, which could cause Java to be 123compiled using the wrong db.h include file. 124 125</ol> 126 127<h3>General Access Method Bug Fixes:</h3> 128 129<ol> 130 131<p><li> 132Fix a bug which left the read-modify-write semantics in place after the 133operation for which the application specified it completed. 134 135<p><li> 136Fix a bug which caused application failure if a NULL key argument was 137specified for the DB_AFTER, DB_BEFORE or DB_CURRENT flags to the 138DBcursor->get() interface. 139 140<p><li> 141Change the initial mutex timer back-off from 10ms to 1ms. 142 143</ol> 144 145<h3>Shared Memory Buffer Pool Subsystem Bug Fixes:</h3> 146 147<ol> 148 149<p><li> 150Fix a bug in large database files (>4Gb), which could potentially cause 151data corruption when a database was closed, reopened and new pages were 152then allocated. 153 154<p><li> 155Modify the memp_sync() interface code to no longer hold Berkeley DB region 156locks across memory allocation calls (for example, malloc(3)). This 157change significantly increases throughput in applications checkpointing 158large memory caches. 159 160<p><li> 161Modify the memory pool qsort(3) comparison function to work when called 162by badly written qsort(3) functions. 163 164</ol> 165 166<h3>Additional Bug Fixes:</h3> 167 168<ol> 169 170<p><li> 171Fix a bug in the Berkeley DB error functions where variable numbers of 172arguments were not correctly accessed on some architectures, for 173example, the PowerPC. 174 175</ol> 176 177<h3>System Porting and Build Procedure Changes:</h3> 178 179<ol> 180 181<p><li> 182Support installation into prefix directories for which multiple directory 183components do not yet exist. 184 185<p><li> 186Support installation into different system directories on a per-type 187basis, for example, all the binaries to one directory, and include files to 188another. 189 190<p><li> 191Fix a bug where the supplied portability routine memcpy() was not 192correctly compiled. 193 194<p><li> 195Modify auto-configuration to refuse to configure in the top-level 196distribution directory. 197 198</ol> 199 200</body> 201</html> 202