• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/ap/gpl/timemachine/db-4.7.25.NC/docs_src/ref/changelog/
1<!--$Id: 4.6.html,v 1.38 2007/09/27 15:30:04 bostic Exp $-->
2<html>
3<head>
4<title>The Berkeley DB Package: DB 4.6.21 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.6.21 Change Log</h3>
11<h4>Patches:</h4>
12<ol>
13
14<li>Fix a bug where mutex contention in database environments configured
15for hybrid mutex support could result in performance degradation.
16[#15646]
17<li>Fix a bug where closing a database handle after aborting a
18transaction which included a failed open of that database handle could
19result in application failure. [#15650]
20<li>Fix multiple MVCC bugs including a race which <b>could result in
21incorrect data being returned</b> to the application. [#15653]
22<li>Fix a bug where a database store into a Hash database could
23self-deadlock in a database environment configured for the Berkeley DB
24Concurrent Data Store product and with a free-threaded DB_ENV or DB
25handle. [#15718]
26<li>Fix an installation bug where Berkeley DB's PHP header file was not
27installed in the correct place.
28
29</ol>
30<h3 align=center>Berkeley DB 4.6.19 Change Log</h3>
31<h4>Patches:</h4>
32<ol>
33
34<li>Fix a bug where a client in a two-site replication group could
35become master, after failure of the existing master, even if the client
36had priority 0. [#15388]
37<li>Fix a bug where 32-bit builds on 64-bit machines could immediately
38core dump because of a misaligned access. [#15643]
39<li>Fix a bug where attempts to configure a database for MVCC in the
40Java API were silently ignored. [#15644]
41<li>Fix a bug where database environments configured for replication and
42verbose output could drop core. [#15651]
43
44</ol>
45<h3 align=center>Berkeley DB 4.6.18 Change Log</h3>
46
47<h4>Database or Log File On-Disk Format Changes:</h4>
48<ol>
49
50<li>The on-disk log format has changed.
51<li>The format of Hash database pages was changed in the Berkeley DB 4.6
52release, and items are now stored in sorted order.
53<b>The format changes are entirely backward-compatible, and no database
54upgrades are needed.</b>
55However, upgrading existing databases can offer significant performance
56improvements. Note that databases created using the 4.6 release may not
57be usable with earlier Berkeley DB releases.
58
59</ol>
60<h4>New Features:</h4>
61<ol>
62
63<li>Add support for a cursor DB_PREV_DUP flag, which moves the cursor
64to the previous key/data pair if it's a duplicate of the current
65key/data pair. [#4801]
66<li>Add the ability to set cache page priority on a database or cursor
67handle. [#11886]
68<li>Add verbose output tracing for filesystem operations. [#13760]
69<li>Port Berkeley DB to Qualcomm's Binary Runtime Environment for
70Wireless (BREW). [#14562]
71<li>Port Berkeley DB to WinCE. [#15312]
72<li>Port Berkeley DB to S60. [#15371]
73<li>Add a key_exists method to the DB handle. [#15374]
74<li>Applications may now begin processing new transactions while previously
75prepared, but unresolved, transactions are still pending.  [#14754]
76<li>Significant performance improvements in the Hash access method. [#15017]
77
78</ol>
79<h4>Database Environment Changes:</h4>
80<ol>
81
82<li>Add support to close open file handles in the case of catastrophic
83database environment failure so applications that do not exit and
84restart on failure won't leak file handles. [#6538]
85<li>Replace the Berkeley DB shared memory allocator with a new
86implementation, intended to decrease the performance drop-off seen in
87database environments having working sets that are larger than the
88cache, especially database environments with multiple cache page sizes.
89[#13122]
90<li>Fix a bug that would incorrectly cause a thread to appear to be
91in the Berkeley DB API after a call to db_create. [#14562]
92<li>Allow database close prior to resolving all transactions updating
93the database. [#14785]
94<li>Fix a bug where the db_stat utility -Z flag and the statistics
95method's DB_STAT_CLEAR flag could clear mutex statistics too quickly,
96leading to incorrect values being displayed. [#15032]
97<li>Fix a bug where removal of a file after and open/close pair spanning
98the most recent checkpoint log-sequence-numbers made recovery fail.
99[#15092]
100<li>Fix a bug that could leave an environment unrecoverable if FTRUNCATE
101was not set and a roll-forward to a timestamp was interrupted between the
102truncation of the log and the recording of aborted allocations. [#15108]
103<li> Fix a bug where recovery of a rename operation could fail if the
104rename occurred in a directory that no longer existed. [#15119]
105<li>Fix a bug that could cause recovery to report a "File exists"
106error if a committed create was partially recovered by a previously
107failed recovery operation. [#15151]
108<li>Fix a bug where the DbEnv.get_thread_count method implementation was
109missing from the Berkeley DB 4.5 release. [#15201]
110<li>Fix a bug where replication operations were not reported properly
111when the DbEnv.failchk method was called. [#15094]
112<li> Fixed a bug that caused SEQ-&gt;remove not to use a transaction
113if the sequence was opened on a transactional database handle but no
114transaction was specified on the call. [#15235]
115<li>Fix a bug where accesses to the database environment reference count
116could race, causing the DB_ENV-&gt;remove method to incorrectly remove
117or not remove a database environment. [#15240]
118<li>Fix a bug that could cause a recovery failure if a partial record
119was written near the end of a log file before a crash and then never
120overwritten after recovery runs and before a log file switch occurs.
121[#15302]
122<li>Fix a bug that could fire a diagnostic assertion if an error occurred
123during a database environment open. [#15309]
124<li> Fix a bug where memp_trickle attempts to flush an infinite number
125of buffers. [#15342]
126<li>Cause application updates of the DB_ENV-&gt;set_mp_max_write values
127to affect already running cache flush operations. [#15342]
128<li>Fix a bug which could cause system hang if a checkpoint happened at
129the same time as a database file create or rename. [#15346]
130<li>Fix a bug which could cause application failure if the open of a
131subdatabase failed while other database opens were happening. [#15346]
132<li>Fix a bug that could cause recovery to not process a transaction
133properly if the transaction was started before the transaction IDs were
134reset but did not put its first record into the log until after the
135txn_recycle record. [#15400]
136<li>Fix a bug that could cause a thread in cache allocation to loop
137infinitely. [#15406]
138<li>Fix a bug that could cause recovery to report a Log Sequence Error
139on systems without the ftruncate system call where a page allocation
140occurred and the database metadata page was forced out of cache without
141being marked dirty and then had to be recovered. [#15441]
142<li>Fix a bug on systems lacking the ftruncate system call, where a page
143may be improperly linked into the free list if archive recovery was done
144in multiple steps, that is, applying additional logs to the same
145databases.  [#15557]
146
147</ol>
148<h4>Concurrent Data Store Changes:</h4>
149
150None.
151
152<h4>General Access Method Changes:</h4>
153<ol>
154
155<li>Add a feature where applications can specify a custom comparison
156function for the Hash access method [#4109]
157<li>Open, create, close and removal of non-transactional databases is
158are longer logged in transactional database environments unless debug
159logging is enabled. [#8037]
160<li>Add the ability to set cache page priority on a database or cursor
161handle. [#11886]
162<li>fix a bug where the DB_ENV-&gt;fileid_reset method failed when
163called on on encrypted or check-summed databases. [#13990]
164<li>Fix a bug where the DB-&gt;fd method failed when called on
165in-memory databases. [#14157]
166<li>Fix a bug where an attempt to open a Recno database with a backing
167file that does not exist could report an error because it couldn't
168remove a temporary file. [#14160]
169<li>Reverse a change found in previous releases which disallowed setting
170"partial" flags on key DBTs for DB and DbCursor put method calls.  [#14520]
171<li>Fix a bug where transactional file operations, such as remove or
172rename, could leak file handles. [#15222]
173<li>Fix a bug that could cause the in-memory sorted freelist used by the
174DB-&gt;compact method not to be freed if transaction or lock timeouts
175were set in the environment. [#15292]
176<li>Add the DB-&gt;get_multiple method, which returns if the DB handle
177references a "master" database in the physical file. [#15352]
178<li>Fix a bug that could cause an DB_INORDER, DB-&gt;get method
179DB_CONSUME operation to loop if the Queue database was missing a record
180due to a rollback by a writer or a non-queue insert in the queue.
181[#15452]
182<li>Fix a bug preventing database removal after application or system
183failure in a database environment configured for in-memory logging.
184[#15459]
185
186</ol>
187<h4>Btree Access Method Changes:</h4>
188
189None.
190
191<h4>Hash Access Method Changes:</h4>
192<ol>
193
194<li>Change the internal format of Hash database pages, storing items in
195sorted order.  There are no externally visible changes, and hash
196databases using historic on-page formats do not require an explicit
197upgrade.  (However, upgrading existing databases can offer significant
198performance improvements.) [#15017]
199<li>Fix a bug preventing LSNs from being reset on hash databases when
200the databases were configured with a non-standard hash function.
201[#15567]
202
203</ol>
204<h4>Queue Access Method Changes:</h4>
205<ol>
206
207<li>Fix a bug which could cause a Queue extent file to be incorrectly
208removed if an empty extent file was being closed by one thread and being
209updated by another thread (which was using random access operations).
210[#9101]
211
212</ol>
213<h4>Recno Access Method Changes:</h4>
214
215None.
216
217<h4>C++-specific API Changes:</h4>
218
219None.
220
221<h4>Java-specific API Changes:</h4>
222<ol>
223
224<li>Add a feature where an exception is thrown by the Java API, the
225Berkeley DB error message is now included in the exception object.
226[#11870]
227<li>Fix a bug which can cause a JVM crash when doing a partial get
228operation. [#15143]
229<li>Fix a bug which prevented the use of Berkeley DB sequences from
230Java.  [#15220]
231<li>Fix multiple bugs where DBTs were not being copied correctly in the
232Java replication APIs. [#15223]
233<li>Add transaction.commitWriteNoSync to the Java API. [#15376]
234
235</ol>
236<h4>Java collections and bind API Changes:</h4>
237<ol>
238
239<li>Change SerialBinding to use the current thread's context class
240loader when loading application classes.  This allows the JE jar file
241to be deployed in application servers and other containers as a shared
242library rather than as an application jar. [#15447]
243<li>Tuple bindings now support the java.math.BigInteger type. Like other
244tuple binding values, BigInteger values are sorted in natural integer
245order by default, without using a custom comparator. For details please
246see the Javadoc for: com.sleepycat.bind.tuple.TupleInput.readBigInteger
247com.sleepycat.bind.tuple.TupleOutput.writeBigInteger
248com.sleepycat.bind.tuple.BigIntegerBinding [#15244]
249<li>Add tuple binding methods for reading and writing packed int and
250long values.  Packed integer values take less space, but take slightly
251more processing time to read and write. See: TupleInput.readPackedInt
252TupleInput.getPackedIntByteLength TupleInput.readPackedLong
253TupleInput.getPackedLongByteLength TupleOutput.writePackedInt
254TupleOutput.writePackedLong PackedInteger [#15422]
255<li>The Collections API has been enhanced so that auto-commit works for
256the standard Java Iterator.remove(), set() and add() methods. Previously
257it was necessary to explicitly begin and commit a transaction in order
258to call these methods, when the underlying Database was transactional.
259Note that starting a transaction is still necessary when calling these
260methods if the StoredCollection.storedIterator method is used. [#15401]
261<li>Fix a bug that causes a memory leak for applications where both of
262the following are true: many Environment objects are opened and closed,
263and the CurrentTransaction or TransactionRunner class is used.  [#15444]
264
265</ol>
266<h4>Tcl-specific API Changes:</h4>
267
268None.
269
270<h4>RPC-specific Client/Server Changes:</h4>
271
272None.
273
274<h4>Replication Changes:</h4>
275<ol>
276
277<li>Fix a bug where transactions could be rolled-back if an existing
278replication group master was partitioned and unable to participate in
279an election. [#14752]
280<li>Add a new event when a replication manager framework master fails
281to send and confirm receipt by clients of a "permanent" message.
282[#14775]
283<li>Fix a race where multiple threads might attempt to process a
284LOGREADY condition. [#14902]
285<li>Change the DB_VERB_REPLICATION flag to no longer require the
286Berkeley DB library be built with the --enable-diagnostic configuration
287option to output additional replication logging information. [#14991]
288<li>Fix a bug with elections occurring during internal init of a
289replication client site. [#15057]
290<li>Fix lockout code to lockout message threads and API separately.
291Send indication that log requests is for internal init. [#15067]
292<li>Replication manager changed to retry host-name look-up failures,
293since they could be caused by transient name server outage.
294[#15081]
295<li>Fix a bug which led to memory corruption when the sending of a bulk
296buffer resulted in an error. [#15100]
297<li>A throttling limit of 10 megabytes is now set by default in a newly
298created database environment (see the DbEnv.rep_set_limit method).
299[#15115]
300<li>Fix a bug in ALL_REQ handling where master could get a DB_NOTFOUND.
301[#15116]
302<li>Fix a bug which could lead to client sites repeatedly but unproductively
303calling for an election, when a master site already exists. [#15128]
304<li>Modify gap processing algorithms so XXX_MORE messages ask for data
305beyond what it just processed, not an earlier gap that might exist.
306[#15136]
307<li>Fixed a bug in the ex_rep example application which could cause the
308last few transactions to disappear when shutting down the sites of the
309replication group gracefully. [#15162]
310<li>Fix a bug where if a client crashed during internal init, its
311database environment would be left in a confused state, making it
312impossible to synchronize again with the master. [#15177]
313<li>Fix a bug where election flags are not cleared atomically with the
314setting of the new master ID. [#15186]
315<li>Fix a bug which would cause Berkeley DB to crash if an internal init
316happened when there were no database files at the master. [#15227]
317<li>It is now guaranteed that the DB_EVENT_REP_STARTUPDONE event will
318be presented to the application after the corresponding
319DB_EVENT_REP_NEWMASTER event, even in the face of extreme scheduling
320anomalies. [#15265]
321<li>Fix minor memory leaks in the replication manager. [#15239] [#15256]
322<li>Fix a bug which caused the replication manager to lose track of a
323failed connection, resulting in the inability to accept a replacement
324connection. [#15311]
325<li>Fix a bug where a client starting an election when the rest of the
326replication group already had an established master could confuse
327replication management at the other client sites, leading to failure to
328properly acknowledge PERM transactions from the master. [#15428]
329<li>Add support for reporting Replication Manager statistics. [#15430]
330<li>Fix a bug where a send failure during processing of a request
331message from a client could erroneously appear to the application as an
332EPERM system error. [#15436]
333<li>Client now sets STARTUPDONE at the end of the synchronization phase
334when it has caught up to the end of the master's transaction log, without
335requiring ongoing transactions at the master.  [#15542]
336<li>Fix a bug in sleep-time calculation which could cause a Replication
337Manager failure. [#15552]
338
339</ol>
340<h4>XA Resource Manager Changes:</h4>
341
342None.
343
344<h4>Locking Subsystem Changes:</h4>
345<ol>
346
347<li>Change the DB_ENV-&gt;lock_detect method to return the number of
348transactions timed out in addition to those were rejected due to
349deadlock. [#15281]
350
351</ol>
352<h4>Logging Subsystem Changes:</h4>
353
354None.
355
356<h4>Memory Pool Subsystem Changes:</h4>
357<ol>
358
359<li>Fix a bug that could cause a checkpoint to hang if a database was
360closed while the checkpoint was forcing that file to disk and all the
361pages for that database were replaced in the cache. [#15135]
362<li>Fix a bug where a system error in closing a file could result in a
363core dump. [#15137]
364<li>Fix MVCC statistics counts for private database environments. [#15218]
365
366</ol>
367<h4>Transaction Subsystem Changes:</h4>
368<ol>
369
370<li>Fix a bug where creating a database with the DB_TXN_NOTDURABLE flag
371set would still write a log record. [#15386]
372<li>Change transaction checkpoint to wait only for pages being updated
373during the checkpoint. [#14710]
374
375</ol>
376<h4>Utility Changes:</h4>
377<ol>
378
379<li>Fix a bug that prevented db_load from handling subdatabase names
380that were of zero length. [#8204]
381<li>Fix a bug where the db_hotbackup utility did not clean out and record
382the log file numbers in the backup directory when both the -u and -D flags
383were specified.  [#15395]
384
385</ol>
386<h4>Configuration, Documentation, Portability and Build Changes:</h4>
387<ol>
388
389<li>Berkeley DB no longer supports process-shared database environments
390on Windows 9X platforms; the DB_PRIVATE flag must always be specified
391to the DB_ENV-&gt;open method. [#13766]
392<li>Port Berkeley DB to Qualcomm's Binary Runtime Environment for
393Wireless (BREW). [#14562]
394<li>Compile SWIG-generated code with the -fno-strict-aliasing flag when
395using the GNU gcc compiler.  [#14953]
396<li>Changed include files so ENOENT is resolved on Windows. [#15078]
397<li>Port Berkeley DB to WinCE. [#15312]
398<li>Port Berkeley DB to S60. [#15371]
399<li>Add the db_hotbackup executable to the Windows MSI installer. [#15372]
400<li>Change the db_hotbackup utility to use the Berkeley DB library
401portability layer. [#15415]
402<li>Re-write the GNU gcc mutex implementation on the x86 platform to
403avoid compiler errors.  [#15461]
404<li>Fix a bug with non-HFS filesystems under OS X which could affect
405data durability. [#15501]
406
407</ol>
408</body>
409</html>
410