-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathmd_changelog.html
1415 lines (1415 loc) · 157 KB
/
md_changelog.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>WiredTiger: WiredTiger Change Log</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
$(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="wiredtiger.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><a href="http://wiredtiger.com/"><img alt="Logo" src="LogoFinal-header.png" alt="WiredTiger" /></a></td>
<td style="padding-left: 0.5em;">
<div id="projectname">
 <span id="projectnumber">Version 2.8.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="banner">
<a href="https://github.com/wiredtiger/wiredtiger">Fork me on GitHub</a>
<a class="last" href="http://groups.google.com/group/wiredtiger-users">Join my user group</a>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.9.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main Page</span></a></li>
<li class="current"><a href="pages.html"><span>Related Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
<li><a href="community.html"><span>Community</span></a></li>
<li><a href="license.html"><span>License</span></a></li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('md_changelog.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">WiredTiger Change Log </div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><h2>WiredTiger release 2.8.0, 2015-03-24 </h2>
<p>The WiredTiger 2.8.0 release contains new features, new supported platforms, minor API changes and bug fixes.</p>
<p>New features and API changes; refer to the API documentation for full details:</p>
<ul>
<li><a href="https://jira.mongodb.org/browse/WT-60">WT-60</a> Port WiredTiger to run on big endian platforms</li>
<li><a href="https://jira.mongodb.org/browse/WT-2287">WT-2287</a> Add a new <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#ab21ec3055cade4d2682f162783314984" title="Rebalance a table, see Rebalance. ">WT_SESSION.rebalance</a> API</li>
<li><a href="https://jira.mongodb.org/browse/WT-2333">WT-2333</a> Add a lock_wait configuration setting to <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#adf785ef53c16d9dcc77e22cc04c87b70" title="Drop (delete) an object. ">WT_SESSION.drop</a> to avoid blocking</li>
<li><a href="https://jira.mongodb.org/browse/WT-2349">WT-2349</a> Add a readonly configuration setting to wiredtiger_open</li>
<li><a href="https://jira.mongodb.org/browse/WT-2363">WT-2363</a> Remove built in support for bzip2 compression</li>
<li><a href="https://jira.mongodb.org/browse/WT-2404">WT-2404</a> Add streaming pack/unpack methods to the extension API</li>
</ul>
<p>Significant changes and bug fixes:</p>
<ul>
<li><a href="https://jira.mongodb.org/browse/WT-1801">WT-1801</a> Add a directory sync after rollback of a <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#a1d24b02549009f78b7c6463da0247614" title="Rename an object. ">WT_SESSION::rename</a> operation</li>
<li><a href="https://jira.mongodb.org/browse/WT-2130">WT-2130</a> Improve on-disk page utilization with random workloads</li>
<li><a href="https://jira.mongodb.org/browse/WT-2275">WT-2275</a> Fix a database corruption after truncate and crash</li>
<li><a href="https://jira.mongodb.org/browse/WT-2264">WT-2264</a> High update workloads can cause checkpoints to never complete</li>
<li><a href="https://jira.mongodb.org/browse/WT-2290">WT-2290</a> Improve effectiveness of <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#aafa7a12a4891a5bfdc98673a5b8f9c69" title="Compact a live row- or column-store btree or LSM tree. ">WT_SESSION.compact</a></li>
<li><a href="https://jira.mongodb.org/browse/WT-2361">WT-2361</a> Fix a bug in column-store where verify identifies out of order data</li>
<li><a href="https://jira.mongodb.org/browse/WT-2367">WT-2367</a> Fix a bug in <a class="el" href="struct_w_t___c_u_r_s_o_r.html#a0503f16bd8f3d05aa3552f229b3a8e1b" title="Return the next record. ">WT_CURSOR.next</a> that could cause out-of-order key returns</li>
<li><a href="https://jira.mongodb.org/browse/WT-2374">WT-2374</a> Fix a bug where a database was corrupted when restoring a backup</li>
<li><a href="https://jira.mongodb.org/browse/WT-2381">WT-2381</a> Fix the dump utility to include the table configuration</li>
<li><a href="https://jira.mongodb.org/browse/WT-2451">WT-2451</a> Allow the WiredTiger metadata to be evicted</li>
<li><a href="https://jira.mongodb.org/browse/WT-2490">WT-2490</a> Fix a bug in column-store where search_near() returns the wrong key</li>
</ul>
<p>Issues fixed in MongoDB:</p>
<ul>
<li><a href="https://jira.mongodb.org/browse/SERVER-21619">SERVER-21619</a> sys-perf: WT crash during core_workloads_WT execution</li>
<li><a href="https://jira.mongodb.org/browse/SERVER-21833">SERVER-21833</a> Enhance <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#aafa7a12a4891a5bfdc98673a5b8f9c69" title="Compact a live row- or column-store btree or LSM tree. ">WT_SESSION::compact</a> to more reliably release space</li>
<li><a href="https://jira.mongodb.org/browse/SERVER-21887">SERVER-21887</a> Enhance $sample to be faster on newly created collection</li>
<li><a href="https://jira.mongodb.org/browse/SERVER-22676">SERVER-22676</a> Allow WiredTiger to open databases created by 3.0.0 or 3.0.1</li>
<li><a href="https://jira.mongodb.org/browse/SERVER-22773">SERVER-22773</a> New CRC32 implementation on PowerPC</li>
<li><a href="https://jira.mongodb.org/browse/SERVER-22831">SERVER-22831</a> Low query rate with heavy cache pressure and an idle collection</li>
</ul>
<p>Other noteworthy changes since the previous release:</p>
<ul>
<li><a href="https://jira.mongodb.org/browse/WT-1517">WT-1517</a> Fix error handling around schema format edge cases</li>
<li><a href="https://jira.mongodb.org/browse/WT-2060">WT-2060</a> Simplify aggregation of statistics</li>
<li><a href="https://jira.mongodb.org/browse/WT-2073">WT-2073</a> Metadata cleanups</li>
<li><a href="https://jira.mongodb.org/browse/WT-2099">WT-2099</a> Seeing memory underflow messages</li>
<li><a href="https://jira.mongodb.org/browse/WT-2107">WT-2107</a> Add example code including an event handler</li>
<li><a href="https://jira.mongodb.org/browse/WT-2113">WT-2113</a> Truncate test occasionally fails with unexpected EBUSY</li>
<li><a href="https://jira.mongodb.org/browse/WT-2123">WT-2123</a> Don't clear allocated memory if not required</li>
<li><a href="https://jira.mongodb.org/browse/WT-2173">WT-2173</a> Fix some cases where tiny caches could get stuck full</li>
<li><a href="https://jira.mongodb.org/browse/WT-2177">WT-2177</a> Add an optional per-thread seed to random number generator</li>
<li><a href="https://jira.mongodb.org/browse/WT-2198">WT-2198</a> Bulk load and column store appends</li>
<li><a href="https://jira.mongodb.org/browse/WT-2215">WT-2215</a> WT_LSN needs to support atomic reads and updates</li>
<li><a href="https://jira.mongodb.org/browse/WT-2216">WT-2216</a> Simplify row-store search loop slightly</li>
<li><a href="https://jira.mongodb.org/browse/WT-2231">WT-2231</a> Pinned page cursor searches could check parent keys</li>
<li><a href="https://jira.mongodb.org/browse/WT-2235">WT-2235</a> Add a unicode option to WiredTiger printlog utility</li>
<li><a href="https://jira.mongodb.org/browse/WT-2242">WT-2242</a> WiredTiger treats dead trees the same as other trees in eviction</li>
<li><a href="https://jira.mongodb.org/browse/WT-2246">WT-2246</a> Improve performance for column-store append searches</li>
<li><a href="https://jira.mongodb.org/browse/WT-2247">WT-2247</a> Variable-length column-store in-memory page splits</li>
<li><a href="https://jira.mongodb.org/browse/WT-2258">WT-2258</a> Stop WiredTiger pre-loading pages when direct-IO is configured</li>
<li><a href="https://jira.mongodb.org/browse/WT-2259">WT-2259</a> Fix error handling when getting exclusive access to a btree</li>
<li><a href="https://jira.mongodb.org/browse/WT-2262">WT-2262</a> Fix random cursor next so it is not skewed by tree shape</li>
<li><a href="https://jira.mongodb.org/browse/WT-2265">WT-2265</a> WiredTiger related change in PowerPC specific code block in gcc.h</li>
<li><a href="https://jira.mongodb.org/browse/WT-2272">WT-2272</a> Fix a bug in the sweep server that triggered an assertion</li>
<li><a href="https://jira.mongodb.org/browse/WT-2276">WT-2276</a> Add a tool to decode checkpoint addr</li>
<li><a href="https://jira.mongodb.org/browse/WT-2277">WT-2277</a> Remove WT check against big-endian systems</li>
<li><a href="https://jira.mongodb.org/browse/WT-2279">WT-2279</a> Define WT_PAUSE(), WT_FULL_BARRIER(), etc when s390x is defined</li>
<li><a href="https://jira.mongodb.org/browse/WT-2280">WT-2280</a> Add CRC32 Optimized code for PowerPC</li>
<li><a href="https://jira.mongodb.org/browse/WT-2282">WT-2282</a> Error in wt_txn_update_oldest verbose message test</li>
<li><a href="https://jira.mongodb.org/browse/WT-2283">WT-2283</a> Retry in txn_update_oldest results in a hang</li>
<li><a href="https://jira.mongodb.org/browse/WT-2285">WT-2285</a> Enhance configure to set BUFFER_ALIGNMENT_DEFAULT to 4kb on Linux</li>
<li><a href="https://jira.mongodb.org/browse/WT-2289">WT-2289</a> Fix a bug in btree search when doing a fast key check</li>
<li><a href="https://jira.mongodb.org/browse/WT-2291">WT-2291</a> Random cursor walk inefficient in skip list only trees</li>
<li><a href="https://jira.mongodb.org/browse/WT-2295">WT-2295</a> <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#a358ca4141d59c345f401c58501276bbb" title="Create a table, column group, index or file. ">WT_SESSION.create</a> does a full-scan of the main table</li>
<li><a href="https://jira.mongodb.org/browse/WT-2296">WT-2296</a> Improve log algorithm for sync/flush settings</li>
<li><a href="https://jira.mongodb.org/browse/WT-2297">WT-2297</a> Fix off-by-one error in Huffman config file parsing</li>
<li><a href="https://jira.mongodb.org/browse/WT-2299">WT-2299</a> Clean up layering violation between btree and block manager code</li>
<li><a href="https://jira.mongodb.org/browse/WT-2307">WT-2307</a> Fix a bug where internal page splits can corrupt cursor iteration</li>
<li><a href="https://jira.mongodb.org/browse/WT-2308">WT-2308</a> Add support for custom extractor for ref_cursors in join cursor</li>
<li><a href="https://jira.mongodb.org/browse/WT-2311">WT-2311</a> Add support for UltraSparc platform</li>
<li><a href="https://jira.mongodb.org/browse/WT-2312">WT-2312</a> Fix a bug where re-creating a deleted column-store page can corrupt the in-memory tree</li>
<li><a href="https://jira.mongodb.org/browse/WT-2313">WT-2313</a> Fix a bug in the sweep server</li>
<li><a href="https://jira.mongodb.org/browse/WT-2314">WT-2314</a> Update page-swap error handling so that it is consistent</li>
<li><a href="https://jira.mongodb.org/browse/WT-2316">WT-2316</a> Fix a bug in <a class="el" href="struct_w_t___c_u_r_s_o_r.html#a43d6664d2f68902aa63f933864242e76" title="Return the previous record. ">WT_CURSOR.prev</a> where it could return keys out-of-order</li>
<li><a href="https://jira.mongodb.org/browse/WT-2318">WT-2318</a> Enhance condition wait implementation to use less CPU on idle databases</li>
<li><a href="https://jira.mongodb.org/browse/WT-2321">WT-2321</a> Fix a race between eviction and worker threads on the eviction queue</li>
<li><a href="https://jira.mongodb.org/browse/WT-2322">WT-2322</a> Fix a bug in read-uncommitted join cursors where using Bloom filters is unsafe</li>
<li><a href="https://jira.mongodb.org/browse/WT-2328">WT-2328</a> Update schema drop does to use the block manager interface for file removal</li>
<li><a href="https://jira.mongodb.org/browse/WT-2331">WT-2331</a> Checking of search result for reference cursors before join</li>
<li><a href="https://jira.mongodb.org/browse/WT-2332">WT-2332</a> Fix a bug in logging write-no-sync mode</li>
<li><a href="https://jira.mongodb.org/browse/WT-2335">WT-2335</a> Fix a bug where parsing an invalid configuration string could segfault</li>
<li><a href="https://jira.mongodb.org/browse/WT-2338">WT-2338</a> Disable using pre-allocated log files when a backup cursor is open</li>
<li><a href="https://jira.mongodb.org/browse/WT-2339">WT-2339</a> Fix a bug in rebalance that caused database verification failure</li>
<li><a href="https://jira.mongodb.org/browse/WT-2340">WT-2340</a> Add logging guarantee assertions</li>
<li><a href="https://jira.mongodb.org/browse/WT-2345">WT-2345</a> Avoid creating tiny pages on disk when evicting small pages from cache</li>
<li><a href="https://jira.mongodb.org/browse/WT-2346">WT-2346</a> Enhance checkpoint implementation so the schema lock is not held during I/O</li>
<li><a href="https://jira.mongodb.org/browse/WT-2347">WT-2347</a> Fix some schema format edge cases in Java API</li>
<li><a href="https://jira.mongodb.org/browse/WT-2352">WT-2352</a> Allow build and test without requiring lz4</li>
<li><a href="https://jira.mongodb.org/browse/WT-2355">WT-2355</a> Fix minor scratch buffer usage in logging</li>
<li><a href="https://jira.mongodb.org/browse/WT-2356">WT-2356</a> log scan advances to next log file on partially written record</li>
<li><a href="https://jira.mongodb.org/browse/WT-2368">WT-2368</a> Fix a bug where row-store can pass invalid keys to collator functions</li>
<li><a href="https://jira.mongodb.org/browse/WT-2369">WT-2369</a> Use C compiler to detect headers instead of C++ compiler</li>
<li><a href="https://jira.mongodb.org/browse/WT-2371">WT-2371</a> Fix a bug where parent split cannot access the page after page-index swap</li>
<li><a href="https://jira.mongodb.org/browse/WT-2372">WT-2372</a> WiredTiger windows builder fails with C4005 against the "inline" macro</li>
<li><a href="https://jira.mongodb.org/browse/WT-2375">WT-2375</a> Add tests for custom collators</li>
<li><a href="https://jira.mongodb.org/browse/WT-2378">WT-2378</a> Fix a hang in LSM when doing forced drop with the no wait option</li>
<li><a href="https://jira.mongodb.org/browse/WT-2382">WT-2382</a> Fix a bug in join cursors with custom collator for 'u' format</li>
<li><a href="https://jira.mongodb.org/browse/WT-2384">WT-2384</a> Fix a bug in join cursors where lt, le conditions for ordering could be wrong</li>
<li><a href="https://jira.mongodb.org/browse/WT-2387">WT-2387</a> Fix cursor random unit test on Windows</li>
<li><a href="https://jira.mongodb.org/browse/WT-2390">WT-2390</a> Fix the OS X build</li>
<li><a href="https://jira.mongodb.org/browse/WT-2391">WT-2391</a> Enhance eviction so that it is less likely to evict pages from indexes</li>
<li><a href="https://jira.mongodb.org/browse/WT-2394">WT-2394</a> Fix a bug in compact that meant we didn't always reclaim available space</li>
<li><a href="https://jira.mongodb.org/browse/WT-2395">WT-2395</a> Fix a recovery failure with an LSM tree</li>
<li><a href="https://jira.mongodb.org/browse/WT-2396">WT-2396</a> Fix a deadlock between table drop and checkpoint</li>
<li><a href="https://jira.mongodb.org/browse/WT-2397">WT-2397</a> Fix a bug in cursor traversal where doing a reverse walk could skip records.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2399">WT-2399</a> Add test case that verifies cursor traversal</li>
<li><a href="https://jira.mongodb.org/browse/WT-2409">WT-2409</a> Fix a minor performance regression in LSM</li>
<li><a href="https://jira.mongodb.org/browse/WT-2410">WT-2410</a> Stop casting function pointers to different types</li>
<li><a href="https://jira.mongodb.org/browse/WT-2411">WT-2411</a> Fix a hang in LSM related to dropping tables</li>
<li><a href="https://jira.mongodb.org/browse/WT-2414">WT-2414</a> Avoid extractor calls for ordering cursor in join cursor</li>
<li><a href="https://jira.mongodb.org/browse/WT-2417">WT-2417</a> Windows Jenkins task is failing</li>
<li><a href="https://jira.mongodb.org/browse/WT-2418">WT-2418</a> Fix a bug in <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#ab21ec3055cade4d2682f162783314984" title="Rebalance a table, see Rebalance. ">WT_SESSION.rebalance</a> where it could return EBUSY</li>
<li><a href="https://jira.mongodb.org/browse/WT-2420">WT-2420</a> Fix a bug in LSM where recovery from a backup could fail</li>
<li><a href="https://jira.mongodb.org/browse/WT-2423">WT-2423</a> Fix a bug in session reference counting on error handling</li>
<li><a href="https://jira.mongodb.org/browse/WT-2425">WT-2425</a> Fix a performance regression in wtperf evict-btree read workload</li>
<li><a href="https://jira.mongodb.org/browse/WT-2426">WT-2426</a> Fix a deadlock caused by recent changes to checkpoint handle locking</li>
<li><a href="https://jira.mongodb.org/browse/WT-2428">WT-2428</a> Make statistics logging compatible with MongoDB</li>
<li><a href="https://jira.mongodb.org/browse/WT-2429">WT-2429</a> Add a statistic that tracks aggressive mode in eviction</li>
<li><a href="https://jira.mongodb.org/browse/WT-2430">WT-2430</a> Add statistics for join cursor</li>
<li><a href="https://jira.mongodb.org/browse/WT-2432">WT-2432</a> Fix a performance regression on LSM and read only workloads</li>
<li><a href="https://jira.mongodb.org/browse/WT-2433">WT-2433</a> Allow read-only databases to log statistics</li>
<li><a href="https://jira.mongodb.org/browse/WT-2434">WT-2434</a> Fix a race between force-drop and sweep</li>
<li><a href="https://jira.mongodb.org/browse/WT-2436">WT-2436</a> Fix a bug in join cursors with lt, le conditions and "strategy=bloom"</li>
<li><a href="https://jira.mongodb.org/browse/WT-2438">WT-2438</a> Extend WiredTiger stat declarations to help external tools</li>
<li><a href="https://jira.mongodb.org/browse/WT-2440">WT-2440</a> Fix a bug in the PowerPC checksum implementation</li>
<li><a href="https://jira.mongodb.org/browse/WT-2443">WT-2443</a> Add statistics for all indexes used in join cursor</li>
<li><a href="https://jira.mongodb.org/browse/WT-2447">WT-2447</a> Enhance join cursor implementation to avoid reading main table where possible</li>
<li><a href="https://jira.mongodb.org/browse/WT-2448">WT-2448</a> Add no_scale flag to relevant statistics</li>
<li><a href="https://jira.mongodb.org/browse/WT-2449">WT-2449</a> Enhance configure to check for a 64-bit build</li>
<li><a href="https://jira.mongodb.org/browse/WT-2454">WT-2454</a> Fix checkpoint_sync=false behavior to prevent flushes/sync to disk</li>
<li><a href="https://jira.mongodb.org/browse/WT-2456">WT-2456</a> Fix PowerPC CRC32 Code</li>
<li><a href="https://jira.mongodb.org/browse/WT-2457">WT-2457</a> Fix a bug where dropping an LSM table can return EBUSY when no user ops are active</li>
<li><a href="https://jira.mongodb.org/browse/WT-2459">WT-2459</a> Allow configure to use the –tag option for libtool when compiling on PowerPC</li>
<li><a href="https://jira.mongodb.org/browse/WT-2460">WT-2460</a> Fix a bug where checkpoint could fail with WT_ROLLBACK</li>
<li><a href="https://jira.mongodb.org/browse/WT-2471">WT-2471</a> Update WiredTiger printf formats to be platform aware</li>
<li><a href="https://jira.mongodb.org/browse/WT-2476">WT-2476</a> Fix a race where btree->evict_lock is being accessed after being destroyed</li>
<li><a href="https://jira.mongodb.org/browse/WT-2481">WT-2481</a> Fix a recently introduced performance regression in LSM</li>
<li><a href="https://jira.mongodb.org/browse/WT-2483">WT-2483</a> Make read only testing more robust</li>
<li><a href="https://jira.mongodb.org/browse/WT-2485">WT-2485</a> Fix a test/format failure with floating point exception</li>
<li><a href="https://jira.mongodb.org/browse/WT-2492">WT-2492</a> Fix a bug in Windows where we used the different memory allocators accidentally</li>
<li><a href="https://jira.mongodb.org/browse/WT-2495">WT-2495</a> Missing memory initialization leads to crash on Windows</li>
<li><a href="https://jira.mongodb.org/browse/WT-2496">WT-2496</a> Fix a bug revealed by test/format unable to read root page</li>
<li><a href="https://jira.mongodb.org/browse/WT-2497">WT-2497</a> Enhance test/format to save a copy of backup</li>
<li><a href="https://jira.mongodb.org/browse/WT-2498">WT-2498</a> Fix a bug in LSM tree drop where it could hang when a user cursor is open</li>
<li><a href="https://jira.mongodb.org/browse/WT-2499">WT-2499</a> Fix a bug in LSM shutdown where a race condition causes a segfault</li>
<li><a href="https://jira.mongodb.org/browse/WT-2501">WT-2501</a> Fix a bug where dropping a just opened LSM tree isn't thread safe</li>
<li><a href="https://jira.mongodb.org/browse/WT-2502">WT-2502</a> Fix a memory leak in locking handles for checkpoint</li>
</ul>
<h2>WiredTiger release 2.7.0, 2015-12-08 </h2>
<p>The WiredTiger 2.7.0 release contains new features, minor API changes and bug fixes.</p>
<p>New features and API changes; refer to the API documentation for full details:</p>
<ul>
<li><a href="https://jira.mongodb.org/browse/WT-147">WT-147</a> Create indexes on non-empty tables.</li>
<li><a href="https://jira.mongodb.org/browse/WT-1315">WT-1315</a> Add an implementation of cursor joins via a new <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#ae0ab118df83d173c6a20eb1ea3f3fd84" title="Join a join cursor with a reference cursor. ">WT_SESSION::join</a> API.</li>
<li><a href="https://jira.mongodb.org/browse/WT-1350">WT-1350</a> Add a new configuration option to <a class="el" href="group__wt.html#ga9e6adae3fc6964ef837a62795c7840ed" title="Open a connection to a database. ">wiredtiger_open</a> and <a class="el" href="struct_w_t___c_o_n_n_e_c_t_i_o_n.html#a579141678af06217b22869cbc604c6d4" title="Reconfigure a connection handle. ">WT_CONNECTION::reconfigure</a> called "eviction_dirty_trigger" that causes eviction to start evicting dirty pages from cache once the given threshold has been reached.</li>
<li><a href="https://jira.mongodb.org/browse/WT-1728">WT-1728</a> Add a <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#a307800663ed211447a18c46863c28787" title="Reset the session handle. ">WT_SESSION::reset</a> method to release resources held by a session.</li>
<li><a href="https://jira.mongodb.org/browse/WT-1930">WT-1930</a> Allow setting "file_manager=(close_idle_time=0)" to <a class="el" href="group__wt.html#ga9e6adae3fc6964ef837a62795c7840ed" title="Open a connection to a database. ">wiredtiger_open</a> and <a class="el" href="struct_w_t___c_o_n_n_e_c_t_i_o_n.html#a579141678af06217b22869cbc604c6d4" title="Reconfigure a connection handle. ">WT_CONNECTION::reconfigure</a> to disable closing idle handles.</li>
<li><a href="https://jira.mongodb.org/browse/WT-1959">WT-1959</a> Change verify to distinguish between warnings and errors. Add a new strict mode to verify that causes warnings to be reported as errors. Use strict mode to match earlier behavior. See the upgrading documentation for more information.</li>
<li><a href="https://jira.mongodb.org/browse/WT-1980">WT-1980</a> Add a new "metadata:create" URI to <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#afb5b4a69c2c5cafe411b2b04fdc1c75d" title="Open a new cursor on a data source or duplicate an existing cursor. ">WT_SESSION::open_cursor</a> for metadata cursors that return strings useful for passing to <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#a358ca4141d59c345f401c58501276bbb" title="Create a table, column group, index or file. ">WT_SESSION::create</a>.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2065">WT-2065</a> Add a new configuration option to <a class="el" href="group__wt.html#ga9e6adae3fc6964ef837a62795c7840ed" title="Open a connection to a database. ">wiredtiger_open</a> and <a class="el" href="struct_w_t___c_o_n_n_e_c_t_i_o_n.html#a579141678af06217b22869cbc604c6d4" title="Reconfigure a connection handle. ">WT_CONNECTION::reconfigure</a> called "shared_cache=(quota)" that limits the amount of shared cache a participant can be assigned.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2104">WT-2104</a> Add a method to flush log files via a new <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#a1843292630960309129dcfe00e1a3817" title="Flush the log. ">WT_SESSION::log_flush</a> API. Made <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#a712226eca5ade5bd123026c624468fa2" title="Commit the current transaction. ">WT_SESSION::commit_transaction</a> configuration options match <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#a1843292630960309129dcfe00e1a3817" title="Flush the log. ">WT_SESSION::log_flush</a>. Change the default <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#a61c8c3ad80d8228172db66ca70bd90fd" title="Wait for a transaction to become synchronized. ">WT_SESSION::transaction_sync</a> timeout to 20 minutes rather than infinity.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2151">WT-2151</a> Enhance logging configuration to allow reconfiguration and add a new "log=(zero_fill)" configuration option that causes WiredTiger to zero-fill log files on creation.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2200">WT-2200</a> Add a new configuration option to <a class="el" href="group__wt.html#ga9e6adae3fc6964ef837a62795c7840ed" title="Open a connection to a database. ">wiredtiger_open</a> called "write_through" that causes WiredTiger to specify the FILE_FLAG_WRITE_THROUGH on Windows when writing files (default false, including when "direct_io" is configured).</li>
<li><a href="https://jira.mongodb.org/browse/WT-2217">WT-2217</a> After a successful call to <a class="el" href="struct_w_t___c_u_r_s_o_r.html#aac90d9fbcc031570f924db55f8a1cee3" title="Insert a record and optionally update an existing record. ">WT_CURSOR::insert</a>, the key and value will be cleared from the cursor. See the upgrading documentation for more information.</li>
<li><a href="https://jira.mongodb.org/browse/SERVER-17078">SERVER-17078</a> Add a "statistics=(size)" mode to statistics cursors, which allows for retrieving file size only.</li>
<li><a href="https://jira.mongodb.org/browse/SERVER-18356">SERVER-18356</a> Changed the handling of the "config_base" option to <a class="el" href="group__wt.html#ga9e6adae3fc6964ef837a62795c7840ed" title="Open a connection to a database. ">wiredtiger_open</a>. See upgrading documentation for more information.</li>
</ul>
<p>The following statistics were removed:</p>
<ul>
<li><a href="https://jira.mongodb.org/browse/WT-1481">WT-1481</a> connection dhandles swept.</li>
<li><a href="https://jira.mongodb.org/browse/WT-1481">WT-1481</a> connection candidate referenced.</li>
<li><a href="https://jira.mongodb.org/browse/WT-1481">WT-1481</a> failed to find a slot large enough for record.</li>
<li><a href="https://jira.mongodb.org/browse/WT-1989">WT-1989</a> log buffer size increases.</li>
<li><a href="https://jira.mongodb.org/browse/WT-1989">WT-1989</a> slots selected for switching that were unavailable.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2094">WT-2094</a> log records written directly.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2094">WT-2094</a> record size exceeded maximum.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2182">WT-2182</a> pages split during eviction.</li>
</ul>
<p>Lookaside table:</p>
<ul>
<li><a href="https://jira.mongodb.org/browse/WT-1967">WT-1967</a> Allow eviction of updates required by old readers.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2074">WT-2074</a> Fix a race between lookaside table reconciliation and checkpoints.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2149">WT-2149</a> Fix the order of creation of the lookaside table.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2190">WT-2190</a> Fix transaction visibility test that is applied to the lookaside table.</li>
<li><a href="https://jira.mongodb.org/browse/SERVER-21585">SERVER-21585</a> Don't use the lookaside file until the cache is stuck full.</li>
</ul>
<p>Issues fixed in MongoDB:</p>
<ul>
<li><a href="https://jira.mongodb.org/browse/SERVER-18829">SERVER-18829</a> Have pages start in the middle of the LRU queue for eviction.</li>
<li><a href="https://jira.mongodb.org/browse/SERVER-18838">SERVER-18838</a> During drops, don't remove files until the metadata is durable.</li>
<li><a href="https://jira.mongodb.org/browse/SERVER-18875">SERVER-18875</a> Clean up deleted pages.</li>
<li><a href="https://jira.mongodb.org/browse/SERVER-18899">SERVER-18899</a> Add unit test to simulate fsyncLock.</li>
<li><a href="https://jira.mongodb.org/browse/SERVER-19340">SERVER-19340</a> Avoid type aliasing in the random number generator.</li>
<li><a href="https://jira.mongodb.org/browse/SERVER-19445">SERVER-19445</a> Have the oldest transaction update the oldest tracked ID.</li>
<li><a href="https://jira.mongodb.org/browse/SERVER-19522">SERVER-19522</a> Try to evict internal pages with no useful child pages.</li>
<li><a href="https://jira.mongodb.org/browse/SERVER-19573">SERVER-19573</a> Change row-store inserts to avoid page locking.</li>
<li><a href="https://jira.mongodb.org/browse/SERVER-19751">SERVER-19751</a> Retry pthread_create on EAGAIN or EINTR.</li>
<li><a href="https://jira.mongodb.org/browse/SERVER-19954">SERVER-19954</a> Don't scan tracked handles during checkpoints.</li>
<li><a href="https://jira.mongodb.org/browse/SERVER-19989">SERVER-19989</a> Add a write barrier before data handles are added to shared lists.</li>
<li><a href="https://jira.mongodb.org/browse/SERVER-19990">SERVER-19990</a> Don't assert on eviction of live updates from dead trees.</li>
<li><a href="https://jira.mongodb.org/browse/SERVER-20008">SERVER-20008</a> Don't reset eviction walks when hitting a busy page.</li>
<li><a href="https://jira.mongodb.org/browse/SERVER-20159">SERVER-20159</a> Make all readers wait while the cache is full.</li>
<li><a href="https://jira.mongodb.org/browse/SERVER-20193">SERVER-20193</a> Fix obsolete transaction check.</li>
<li><a href="https://jira.mongodb.org/browse/SERVER-20303">SERVER-20303</a> Tune in-memory splits when inserting large objects.</li>
<li><a href="https://jira.mongodb.org/browse/SERVER-20385">SERVER-20385</a> Make WT_CURSOR::next(random) more random.</li>
<li><a href="https://jira.mongodb.org/browse/SERVER-21027">SERVER-21027</a> Reverse split if there are many deleted pages.</li>
<li><a href="https://jira.mongodb.org/browse/SERVER-21553">SERVER-21553</a> Enable fast-path truncate after splits.</li>
<li><a href="https://jira.mongodb.org/browse/SERVER-21619">SERVER-21619</a> Don't do internal page splits after a tree is marked DEAD.</li>
<li><a href="https://jira.mongodb.org/browse/SERVER-21691">SERVER-21691</a> Avoid insert stalls.</li>
</ul>
<p>Other note worthy changes since the previous release:</p>
<ul>
<li><a href="https://jira.mongodb.org/browse/WT-1744">WT-1744</a> Throttle worker threads based on eviction targets.</li>
<li><a href="https://jira.mongodb.org/browse/WT-1845">WT-1845</a> Allow read only transactions to commit after failure.</li>
<li><a href="https://jira.mongodb.org/browse/WT-1869">WT-1869</a> Avoid doing in memory splits while checkpointing a tree.</li>
<li><a href="https://jira.mongodb.org/browse/WT-1942">WT-1942</a> Add atomic implementations for PowerPC architecture.</li>
<li><a href="https://jira.mongodb.org/browse/WT-1962">WT-1962</a> Make the hot_backup_lock a read/write lock.</li>
<li><a href="https://jira.mongodb.org/browse/WT-1963">WT-1963</a> Fix backup cursor Java API.</li>
<li><a href="https://jira.mongodb.org/browse/WT-1964">WT-1964</a> Fix a bug in the Java API when closing handles from a different thread.</li>
<li><a href="https://jira.mongodb.org/browse/WT-1966">WT-1966</a> Change how the shared cache assigns priority to participants.</li>
<li><a href="https://jira.mongodb.org/browse/WT-1975">WT-1975</a> Ensure previous log files are complete for forced sync.</li>
<li><a href="https://jira.mongodb.org/browse/WT-1977">WT-1977</a> Improve performance of getting snapshots with many sessions.</li>
<li><a href="https://jira.mongodb.org/browse/WT-1978">WT-1978</a> Better checking and tests for index cursor comparison.</li>
<li><a href="https://jira.mongodb.org/browse/WT-1981">WT-1981</a> Fix a signed 32-bit integer unpacking bug.</li>
<li><a href="https://jira.mongodb.org/browse/WT-1982">WT-1982</a> Fix a bug where cached overflow items were freed too early.</li>
<li><a href="https://jira.mongodb.org/browse/WT-1985">WT-1985</a> Integer packing and other fixes for Python and Java.</li>
<li><a href="https://jira.mongodb.org/browse/WT-1986">WT-1986</a> Fix a race renaming temporary log files.</li>
<li><a href="https://jira.mongodb.org/browse/WT-1989">WT-1989</a> Improve scalability of log writes.</li>
<li><a href="https://jira.mongodb.org/browse/WT-1996">WT-1996</a> Fix a bug where we would free the fist update during a page rewrite on error.</li>
<li><a href="https://jira.mongodb.org/browse/WT-1998">WT-1998</a> Fixes for indexes with some rarely used key/value formats.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2002">WT-2002</a> Fix a bug in verify where it would panic when encountering a corrupted file.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2007">WT-2007</a> Statically allocate log slot buffers to a maximum size.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2008">WT-2008</a> Fix a bug in recovery where a file create went missing.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2009">WT-2009</a> Apply tracked metadata operations post-commit.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2012">WT-2012</a> Fix a bug updating the oldest ID.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2013">WT-2013</a> Add gcc asm definitions for ARM64.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2014">WT-2014</a> Fix a bug in checkpoints where files could be flushed in the wrong order.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2015">WT-2015</a> Fix a bug in error handling during block open.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2017">WT-2017</a> Once an eviction server thread is started keep it running.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2019">WT-2019</a> Fix a logic bug tracking the maximum transaction ID in clean trees.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2020">WT-2020</a> Clarify checksum error failure messages.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2021">WT-2021</a> Fix a bug moving the oldest ID forward (introduced by <a href="https://jira.mongodb.org/browse/WT-1967">WT-1967</a>).</li>
<li><a href="https://jira.mongodb.org/browse/WT-2022">WT-2022</a> Fix a bug not releasing a handle when opening a non-existent index cursor.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2023">WT-2023</a> Improve locking primitives: simplify read-write lock operations.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2029">WT-2029</a> Improve scalability of statistics.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2031">WT-2031</a> Log slot revamp.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2032">WT-2032</a> Improve next_random cursors to work with small trees.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2034">WT-2034</a> Improve shared cache balancing algorithm.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2035">WT-2035</a> For index cursors, keep track of which column groups need to be positioned.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2036">WT-2036</a> Make handle sweeps more robust.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2037">WT-2037</a> Only write a checkpoint to the log on close if it wasn't.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2038">WT-2038</a> Avoid long scans holding the handle list lock.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2039">WT-2039</a> Add error check and unit test for log records over 4 GB.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2042">WT-2042</a> Only try to evict tombstones that are visible to all readers.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2045">WT-2045</a> Don't let the eviction server do slow reconciliation, it can stall eviction.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2046">WT-2046</a> Add a statistic for search restarts.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2047">WT-2047</a> Fix a bug in the random generator code to handle an uninitialized state.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2050">WT-2050</a> Show size with memory allocation errors.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2053">WT-2053</a> Fix a bug in disk verify messages.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2056">WT-2056</a> Reorder btree cursor close so stats are maintained correctly.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2057">WT-2057</a> Remove the verbose configuration when writing the base configuration file.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2058">WT-2058</a> Fix an alignment bug in the mutex and log-slot code.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2059">WT-2059</a> Include non-aggregated stats in cursor results.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2062">WT-2062</a> Try harder to make progress on in-memory splits.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2064">WT-2064</a> Don't spin indefinitely waiting for the handle list lock in eviction.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2066">WT-2066</a> Update the oldest transaction ID from eviction.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2068">WT-2068</a> Protect discarding handles with the handle list lock.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2075">WT-2075</a> Fix a hang in logging with parallel workload.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2078">WT-2078</a> Fix a bug in error handling with statistics cursors.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2081">WT-2081</a> Make verify progress reporting less verbose.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2085">WT-2085</a> Run some of the log_server threads operations more frequently.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2086">WT-2086</a> Add a statistic to track when eviction finds a page that can be split.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2089">WT-2089</a> Relax restrictions on multiblock eviction and in-memory splits.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2090">WT-2090</a> Fix a bug in the Windows OS layer that swallowed error returns.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2092">WT-2092</a> Free log condition variables after all threads are joined.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2093">WT-2093</a> Use the C99 bool type to clarify when functions return true/false.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2094">WT-2094</a> Eliminate direct write and record unbuffered log records.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2097">WT-2097</a> Reintroduce immediate waits when forced eviction is necessary.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2100">WT-2100</a> Rename evict to evict_queue so it's easier to search for.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2101">WT-2101</a> Don't update the logging ckpt_lsn on clean shutdown.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2102">WT-2102</a> Fix a hang in log slot join when forcing log writes.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2105">WT-2105</a> Fix a bug where we could reference an invalid memory address if a file is corrupted on disk.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2108">WT-2108</a> Rework in-memory page rewrite support (WT_PM_REC_REWRITE).</li>
<li><a href="https://jira.mongodb.org/browse/WT-2114">WT-2114</a> Make application eviction fairer.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2115">WT-2115</a> Don't skip truncated pages that are part of a checkpoint.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2116">WT-2116</a> Add diagnostic checks for stuck cache and dump the state.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2119">WT-2119</a> Don't evict clean multiblock pages with overflow items during checkpoints.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2126">WT-2126</a> Clean up if there is an error during splits.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2127">WT-2127</a> Deepen the tree more regularly to avoid wide internal pages.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2128">WT-2128</a> When decoding huffman encoding during salvage it's possible to have fewer bits than the symbol length during decoding, if the value has been corrupted.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2131">WT-2131</a> Switch to using a lock to control page splits to avoid starvation.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2132">WT-2132</a> Make debug dump function more robust to errors.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2134">WT-2134</a> Flush all buffered log records in log_flush.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2135">WT-2135</a> Fix log_only setting for backup cursor. Fix initialization.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2137">WT-2137</a> Check the sync_lsn is in the correct file before moving it forward.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2139">WT-2139</a> Fix a transaction visibility bug in read-uncommitted transactions.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2146">WT-2146</a> Improve performance when searching for short keys.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2148">WT-2148</a> Fix a compiler warning in encoding functions.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2153">WT-2153</a> Fix bug. Now we always need to start the log_server thread.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2154">WT-2154</a> Make btree dump safer.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2155">WT-2155</a> Remove last use of F_CAS_ATOMIC and the associated macro.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2156">WT-2156</a> Allow eviction workers to restart.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2157">WT-2157</a> Fix a bug where a failed page split could lead to incomplete checkpoints.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2159">WT-2159</a> Don't check the config twice in one path.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2162">WT-2162</a> Add null pointer check, needed after an index is dropped.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2164">WT-2164</a> Prevent another LSM chunk checkpoint while the first is still in progress.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2165">WT-2165</a> Stop using FALLOC_FL_KEEP_SIZE flag when pre-allocating files.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2167">WT-2167</a> Switch recovery to using an internal session.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2170">WT-2170</a> Protect the turtle file with a lock.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2174">WT-2174</a> Avoid the table list lock when creating a size only statistics cursor.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2178">WT-2178</a> In-memory storage engine support.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2179">WT-2179</a> Added decorator to mark txn13 as part of the –long test suite.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2180">WT-2180</a> Remove cursor.{search,search-near,remove} key size validation.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2182">WT-2182</a> When internal pages grow large enough, split them into their parents.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2184">WT-2184</a> Fix log scan bug when final record has many trailing zeros.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2185">WT-2185</a> Don't do reverse splits when closing a file.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2187">WT-2187</a> Add flag for flushing a slot.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2189">WT-2189</a> Update flag set and clear macros to be less error prone.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2191">WT-2191</a> In-memory disk image no longer the same as saved updates.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2192">WT-2192</a> Fix the logic around checking whether internal page is evictable.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2193">WT-2193</a> Handle read-committed metadata checkpoints during snapshot transactions.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2194">WT-2194</a> Java close callbacks should handle cursors that Java code did not open.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2195">WT-2195</a> Fix a hang after giving up on a reverse split.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2196">WT-2196</a> Fix error handling in size only statistics.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2199">WT-2199</a> Fix transaction sync inconsistency.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2203">WT-2203</a> Release an allocated page on error.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2204">WT-2204</a> Don't take a local copy of page->modify until we know the page is dirty.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2206">WT-2206</a> Change cache operations from flags to an enumeration.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2207">WT-2207</a> Track whenever a session has a handle exclusive.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2210">WT-2210</a> Raw compression fails if row-store recovery precedes column-store recovery.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2212">WT-2212</a> Add a "use_environment" config to <a class="el" href="group__wt.html#ga9e6adae3fc6964ef837a62795c7840ed" title="Open a connection to a database. ">wiredtiger_open</a>.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2218">WT-2218</a> Add truncate stats.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2219">WT-2219</a> Enhancements to in-memory testing.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2220">WT-2220</a> Update time comparison macros.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2222">WT-2222</a> Add statistics for named snapshots.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2224">WT-2224</a> Track which deleted refs are discarded by a split.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2228">WT-2228</a> Avoid unnecessary raw-compression calls.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2237">WT-2237</a> Have threads publish unique transaction IDs so that updates always become visible immediately on commit.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2241">WT-2241</a> Use a lock to protect transaction ID allocation.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2243">WT-2243</a> Don't keep transaction IDs pinned for reading from checkpoints.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2244">WT-2244</a> Trigger in-memory splits sooner.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2248">WT-2248</a> <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#a96f25dfa6447034aea1f67ab02ab5698" title="Close the session handle. ">WT_SESSION::close</a> is updating WT_CONNECTION_IMPL.default_session.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2249">WT-2249</a> Keep eviction stuck until cache usage is under 100%.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2250">WT-2250</a> Minor fix. Use SET instead of increment for stat.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2251">WT-2251</a> Free addresses when we discard deleted page references.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2253">WT-2253</a> Evict pages left behind by in-memory splits.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2257">WT-2257</a> Fixes when given multiple thread workload configurations.</li>
<li><a href="https://jira.mongodb.org/browse/WT-2260">WT-2260</a> Avoid adding internal pages to the eviction queue</li>
</ul>
<h2>WiredTiger release 2.6.1, 2015-05-13 </h2>
<p>The WiredTiger 2.6.1 release contains new features, minor API changes and bug fixes.</p>
<p>New features:</p>
<ul>
<li>Move the sync configuration setting from <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#a7e26b16b26b5870498752322fad790bf" title="Start a transaction in this session. ">WT_SESSION::begin_transaction</a> to <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#a712226eca5ade5bd123026c624468fa2" title="Commit the current transaction. ">WT_SESSION::commit_transaction</a>. Change the setting from a boolean to a string. See upgrading documentation for more information. refs <a href="https://jira.mongodb.org/browse/WT-1908">WT-1908</a></li>
<li>Add the ability to flag a transaction to be flushed asynchronously on commit via a new sync=[background] configuration option. Add a new <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#a61c8c3ad80d8228172db66ca70bd90fd" title="Wait for a transaction to become synchronized. ">WT_SESSION::transaction_sync</a> API to wait for asynchronous flushes to complete. refs <a href="https://jira.mongodb.org/browse/WT-1908">WT-1908</a>, #1943</li>
<li>Add the ability to create a named in-memory snapshot via a new <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#ab15f6b5f81e6e98c9b6b41c451732873" title="Manage named snapshot transactions. ">WT_SESSION::snapshot</a> API. refs <a href="https://jira.mongodb.org/browse/WT-1839">WT-1839</a></li>
<li>Add the ability to disable write ahead logging at a per-table granularity. Accessed via log=(enabled) configuration for <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#a358ca4141d59c345f401c58501276bbb" title="Create a table, column group, index or file. ">WT_SESSION::create</a> API. Partial logging has serious implications for recovery, it should be used with caution. refs #1989</li>
</ul>
<p>Other noteworthy changes:</p>
<ul>
<li>Fix several bugs related to syncing files for checkpoint durability. refs <a href="https://jira.mongodb.org/browse/WT-1944">WT-1944</a></li>
<li>Fix a segfault during checkpoint where we could attempt to access a file that was in the process of being dropped in the background. refs <a href="https://jira.mongodb.org/browse/SERVER-18014">SERVER-18014</a></li>
<li>Fix a segfault during eviction where we could attempt to evict a page from a tree that was in the process of being dropped in the background. refs <a href="https://jira.mongodb.org/browse/SERVER-18460">SERVER-18460</a></li>
<li>Fix a bug where WiredTiger could segfault in a workload with lots of cache pressure. refs <a href="https://jira.mongodb.org/browse/WT-1937">WT-1937</a></li>
<li>Fix a performance issue with <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#aafa7a12a4891a5bfdc98673a5b8f9c69" title="Compact a live row- or column-store btree or LSM tree. ">WT_SESSION::compact</a>, where it would spend a long time compacting tables that had no space to reclaim. refs <a href="https://jira.mongodb.org/browse/WT-1953">WT-1953</a></li>
<li>Fix a bug where accessing an overflow item could return WT_NOTFOUND incorrectly. The issue was related to an invalid transaction visibility check. refs <a href="https://jira.mongodb.org/browse/WT-1745">WT-1745</a></li>
<li>Improve performance and avoid changing files on startup if no recovery is required by avoiding the creation of unnecessary checkpoints and log records for files that haven't changed. refs <a href="https://jira.mongodb.org/browse/WT-1936">WT-1936</a></li>
<li>Improve how we handle create of a table, if a file with the same name already exists (possibly from an earlier failed create). refs #1974</li>
<li>Fix compiler warnings for LZ4 implementation on Windows. refs #2006</li>
<li>Fix a bug in the WiredTiger command line utility where it could create a base configuration file for an existing database, if there had been a crash while creating the database. refs <a href="https://jira.mongodb.org/browse/WT-1943">WT-1943</a></li>
<li>Fix a build problem where recent versions of RedHat would fail to detect posix_memalign presence correctly. refs <a href="https://jira.mongodb.org/browse/WT-1951">WT-1951</a></li>
<li>Fix several problems with how we create, recover and backup databases. Related to order of creation and differences between Windows and POSIX file system semantics. refs #1993</li>
<li>Fix a bug where we could flush the log file more often than required if using auto-commit transactions. refs <a href="https://jira.mongodb.org/browse/WT-1949">WT-1949</a></li>
<li>Fix a performance problem in LSM, where trees created with an initial bulk load could choose poor merges. refs <a href="https://jira.mongodb.org/browse/WT-1947">WT-1947</a></li>
<li>Improve how we decide whether to deepen a tree during an internal split operation. Append workloads could create trees that were excessively deep.</li>
<li>Fix a bug in LSM which could lead to a hang on connection close. refs <a href="https://jira.mongodb.org/browse/WT-1935">WT-1935</a></li>
<li>Fix a bug in the internal random number generator, where concurrent calls could lead to invalid sequences. Never seen in the wild.</li>
</ul>
<h2>WiredTiger release 2.6.0, 2015-05-13 </h2>
<p>The WiredTiger 2.6.0 release contains new features, minor API changes and many bug fixes.</p>
<p>New features:</p>
<ul>
<li>Add support for "at rest" encryption of WiredTiger databases via a new encryption API. refs <a href="https://jira.mongodb.org/browse/WT-1822">WT-1822</a></li>
<li>Add support for bulk load in LSM trees (previously the bulk configuration for cursor create was ignored by LSM trees). refs <a href="https://jira.mongodb.org/browse/SERVER-18321">SERVER-18321</a>, <a href="https://jira.mongodb.org/browse/WT-1922">WT-1922</a></li>
<li>Add enhanced compression support for LZ4. Change is not compatible with tables created with LZ4 compression using earlier versions of WiredTiger. See the upgrading documentation for more information.</li>
</ul>
<p>API and behavior changes:</p>
<ul>
<li>Enhance performance of <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#adf785ef53c16d9dcc77e22cc04c87b70" title="Drop (delete) an object. ">WT_SESSION::drop</a> with force enabled (mark the table as dead and discard it in the background without writing any content to disk, rather than flushing content from the cache). refs <a href="https://jira.mongodb.org/browse/WT-1894">WT-1894</a></li>
<li>Add an API to validate configuration strings. refs <a href="https://jira.mongodb.org/browse/WT-1739">WT-1739</a></li>
<li>Disallow the cache_resident flag on LSM trees. refs <a href="https://jira.mongodb.org/browse/WT-1905">WT-1905</a></li>
<li>Enhance the controls for how aggressively idle handles are closed, update the wiredtiger_open file_manager configuration options to expose that control. refs <a href="https://jira.mongodb.org/browse/SERVER-17907">SERVER-17907</a>, <a href="https://jira.mongodb.org/browse/WT-1856">WT-1856</a></li>
</ul>
<p>Significant bug fixes and performance enhancements:</p>
<ul>
<li>Fix bugs in checkpoint: committing the checkpoint transaction before it was safe, failure to sync the metadata file before updating the turtle file. refs <a href="https://jira.mongodb.org/browse/SERVER-18316">SERVER-18316</a></li>
<li>Don't attempt to validate configuration settings for extensions (collators, compressors, encryptors, extractors). The extension may be valid but not yet loaded so it is not possible to validate.</li>
<li>Check the magic and version numbers in log files when first opening them.</li>
<li>Fix a bug with cache leaf size accounting for statistics. refs <a href="https://jira.mongodb.org/browse/WT-1885">WT-1885</a>, <a href="https://jira.mongodb.org/browse/WT-1919">WT-1919</a></li>
<li>Fix a bug where checkpoint could skip a page that was rewritten in memory. refs <a href="https://jira.mongodb.org/browse/WT-1946">WT-1946</a></li>
<li>Fix a bug in <a class="el" href="struct_w_t___c_u_r_s_o_r.html#a8068ddce20d0775f26f6dac6e5eb209c" title="Return the record matching the key if it exists, or an adjacent record. ">WT_CURSOR::search_near</a> with a random cursor where deleted records could be returned. refs <a href="https://jira.mongodb.org/browse/WT-1921">WT-1921</a>, <a href="https://jira.mongodb.org/browse/WT-1944">WT-1944</a></li>
<li>Fix a bug in handle close where we could fail to clear the open handle flag. refs <a href="https://jira.mongodb.org/browse/WT-1915">WT-1915</a></li>
<li>Fix a bug in in-memory splits, don't allow any other eviction of a page if the page is being split. refs <a href="https://jira.mongodb.org/browse/WT-1916">WT-1916</a>, <a href="https://jira.mongodb.org/browse/WT-1917">WT-1917</a></li>
<li>Fix a bug in btree open where failure while opening a checkpoint may not clean up completely. refs <a href="https://jira.mongodb.org/browse/WT-1598">WT-1598</a></li>
<li>Fix a performance problem where long running transactions could continually scan long update chains looking for obsolete entries, when there is no chance of finding any. refs <a href="https://jira.mongodb.org/browse/WT-1913">WT-1913</a></li>
<li>Fix a performance problem where many threads accessing a single page could prevent WiredTiger from evicting or splitting the page. refs <a href="https://jira.mongodb.org/browse/WT-1912">WT-1912</a></li>
<li>Fix a source of deadlock bugs by restructuring how we lock handles. Clean up the definition of when it is safe to acquire different locks. refs <a href="https://jira.mongodb.org/browse/WT-1598">WT-1598</a></li>
<li>Fix a bug where we could evict pages from a file marked as cache resident, add optimizations for cache resident files. refs <a href="https://jira.mongodb.org/browse/SERVER-18192">SERVER-18192</a></li>
<li>Fix a deadlock related to LSM (cases where closing a file with an existing checkpoint could self deadlock). refs <a href="https://jira.mongodb.org/browse/WT-716">WT-716</a></li>
<li>Only split large in-memory pages if there is a need to keep them in cache (otherwise, it is better to reconcile and evict them immediately). refs <a href="https://jira.mongodb.org/browse/WT-1890">WT-1890</a>, <a href="https://jira.mongodb.org/browse/WT-1896">WT-1896</a></li>
<li>Fix a race on shutdown where the eviction server could still have been accessing files while they were being closed. refs <a href="https://jira.mongodb.org/browse/WT-1893">WT-1893</a></li>
<li>Fix a case where we could run recovery unnecessarily if there were only non-data changing log records since the last checkpoint. refs <a href="https://jira.mongodb.org/browse/WT-1892">WT-1892</a></li>
<li>Update API documentation to explain internal session handle usage. This allows users to do specific calculations based on the session_max setting.</li>
<li>Fix a bug in LSM where updates with overwrite could be skipped incorrectly. refs BF-829</li>
<li>Fix a cursor bug where searching and traversing in different combinations could lead to data buffers being freed before they should be. refs <a href="https://jira.mongodb.org/browse/WT-1887">WT-1887</a></li>
<li>Fix a bug when closing bulk cursors, where a file could be left open.</li>
<li>Fix a bug on Windows related to truncating files (SetEndofFile does not ignore truncation requests like POSIX fallocate).</li>
<li>Fix a bug in file truncate, where we could truncate to the wrong place if there was a race extending the file at the same time. refs <a href="https://jira.mongodb.org/browse/WT-1871">WT-1871</a></li>
<li>Fix a bug in reconciliation where page boundary structures could reference freed memory. refs <a href="https://jira.mongodb.org/browse/WT-1852">WT-1852</a></li>
<li>Change the <a class="el" href="struct_w_t___c_u_r_s_o_r.html#a7e25b2ced2cf3ec68bd5429bf921c79f" title="Return the record matching the key. ">WT_CURSOR::search</a> and <a class="el" href="struct_w_t___c_u_r_s_o_r.html#a8068ddce20d0775f26f6dac6e5eb209c" title="Return the record matching the key if it exists, or an adjacent record. ">WT_CURSOR::search_near</a> API to first check any currently pinned page before starting a regular descending search.</li>
<li>Fix a bug in recovery where an error was returned if a transaction spanned an entire log file.</li>
<li>Fix a bug where recovery could be unnecessarily run during startup.</li>
<li>Enhance the Python cursor API to allow setting keys and values using array notation.</li>
<li>Fix a bug where creating a column store with large gaps in the key range would lead to poor performance. refs <a href="https://jira.mongodb.org/browse/WT-1807">WT-1807</a>.</li>
<li>Improve the performance of the core btree search routine by using low-level x86 vectorized search instructions.</li>
</ul>
<h2>WiredTiger release 2.5.3, 2015-04-22 </h2>
<p>The WiredTiger 2.5.3 release contains important bug fixes.</p>
<p>API and behavior changes:</p>
<ul>
<li>Update configuration string parsing to always be case sensitive. See upgrading documentation for more information.</li>
<li>Change the statistics cursor <a class="el" href="struct_w_t___c_u_r_s_o_r.html#afc1b42c22c9c85e1ba08ce3b34437565" title="Reset the cursor. ">WT_CURSOR::reset</a> method to re-load statistics values. See upgrading documentation for more information. refs <a href="https://jira.mongodb.org/browse/WT-1533">WT-1533</a></li>
<li>Only align buffers on Linux if direct I/O is configured. See upgrading documentation for more information.</li>
<li>Fixes to how and when idle handles are closed. refs <a href="https://jira.mongodb.org/browse/WT-1808">WT-1808</a>, <a href="https://jira.mongodb.org/browse/WT-1811">WT-1811</a>, <a href="https://jira.mongodb.org/browse/WT-1814">WT-1814</a></li>
<li>Add some new statistics related to cache usage.</li>
<li>Add new configuration strings to provide control of how often handles are are reviewed for closure, and how long a handle needs to be idle before it is closed. The option is via the wiredtiger_open API, file_manager=(close_idle_time=30,close_scan_interval=10)</li>
<li>Add support for running WiredTiger command line utilities without logging. refs <a href="https://jira.mongodb.org/browse/WT-1732">WT-1732</a></li>
<li>Update the async configuration API to allow a minimum of 1. That is change: async=(ops_max=X) so that the minimum value is now 1 the old minimum was 10.</li>
</ul>
<p>Bug fixes and other significant changes:</p>
<ul>
<li>Fixes and improvements to Windows support.</li>
<li>Fix several bugs that prevent page eviction. refs <a href="https://jira.mongodb.org/browse/SERVER-16662">SERVER-16662</a>, <a href="https://jira.mongodb.org/browse/SERVER-17382">SERVER-17382</a>, <a href="https://jira.mongodb.org/browse/WT-1777">WT-1777</a></li>
<li>Fix a race when stopping eviction workers on shutdown. refs <a href="https://jira.mongodb.org/browse/WT-1698">WT-1698</a></li>
<li>Fix a bug where if the system crashes during create the base configuration file could be left in an invalid state. refs <a href="https://jira.mongodb.org/browse/WT-1775">WT-1775</a>, <a href="https://jira.mongodb.org/browse/WT-1776">WT-1776</a>, <a href="https://jira.mongodb.org/browse/SERVER-17571">SERVER-17571</a></li>
<li>Fix cases where <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#ac2bad195e24710d52d730fe3a7c1756a" title="Truncate a file, table or cursor range. ">WT_SESSION::truncate</a> could return EBUSY when a schema level operation is running - for example a checkpoint. refs <a href="https://jira.mongodb.org/browse/WT-1404">WT-1404</a>, <a href="https://jira.mongodb.org/browse/WT-1643">WT-1643</a></li>
<li>Fix a bug in logging - where we could fail to update the end of the log when there is a gap in the log records. refs <a href="https://jira.mongodb.org/browse/WT-1766">WT-1766</a>, <a href="https://jira.mongodb.org/browse/SERVER-17569">SERVER-17569</a>, <a href="https://jira.mongodb.org/browse/SERVER-17613">SERVER-17613</a></li>
<li>Fix how we account for space used in the cache to be more accurate. refs <a href="https://jira.mongodb.org/browse/SERVER-17424">SERVER-17424</a></li>
<li>Fix a bug where we could leak memory if opening a statistics cursor failed. refs <a href="https://jira.mongodb.org/browse/WT-1760">WT-1760</a></li>
<li>Fix a bug where a single page could consume a large portion of the cache. Leading to cases where a small cache size could result in a hang. refs <a href="https://jira.mongodb.org/browse/WT-1759">WT-1759</a></li>
<li>Fix a bug in the eviction server that could cause a WT_PANIC. The issue was encountered when the number of open handles exceeded the configured number of hazard pointers. refs <a href="https://jira.mongodb.org/browse/SERVER-17551">SERVER-17551</a></li>
<li>Fix a bug parsing huffman configuration options that could lead to a segfault.</li>
<li>Fix accounting in btree statistics gathering, so page tracking is accurate. refs <a href="https://jira.mongodb.org/browse/WT-1733">WT-1733</a></li>
<li>Fix a memory leak in cache management, where a race during page split could leave a key structure allocated. refs <a href="https://jira.mongodb.org/browse/WT-1582">WT-1582</a>, <a href="https://jira.mongodb.org/browse/WT-1747">WT-1747</a></li>
<li>Enhance checkpoint tracking code to allow eviction in files once the checkpoint has finished processing them. This helps reduce the impact of checkpoints on workloads with cache pressure. refs <a href="https://jira.mongodb.org/browse/WT-1745">WT-1745</a></li>
<li>Fix when aggregation is set on statistics fields. Fixes problems with visualizing statistics via wtstats graphs. refs <a href="https://jira.mongodb.org/browse/WT-1742">WT-1742</a></li>
<li>Change how checkpoints use empty blocks in on-disk files. Use a first-fit algorithm.</li>
</ul>
<h2>WiredTiger release 2.5.2, 2015-03-23 </h2>
<p>The WiredTiger 2.5.2 release contains important bug fixes.</p>
<p>API changes:</p>
<ul>
<li>Allow memory_page_max to be at most a quarter of the cache size not half. This avoids operations getting stalled due to the cache being filled with one or two pages.</li>
</ul>
<p>Bug fixes and other important changes:</p>
<ul>
<li>When skipping a dirty page during a checkpoint, make sure the tree is marked dirty. refs SUPPORT-1248, <a href="https://jira.mongodb.org/browse/SERVER-17319">SERVER-17319</a>, <a href="https://jira.mongodb.org/browse/SERVER-17506">SERVER-17506</a>, #1404, #1643, #1721, #1735</li>
<li>Fix a bug in range truncate where we could remove the wrong records. refs <a href="https://jira.mongodb.org/browse/SERVER-17345">SERVER-17345</a></li>
<li>Fix a bug in LSM management where we could let the cache get full - leading to a operations being blocked. refs #1720</li>
<li>Fix several bugs in the checkpoint implementation that could lead to a tree being marked clean when it had updates in memory. If shutdown occurred at a specific time those updates would be discarded without being written. refs SUPPORT-1248</li>
<li>Fix some bugs in logging - where system crashes could leave empty files that would stop recovery working on re-start. refs #1717, #1719, <a href="https://jira.mongodb.org/browse/SERVER-17451">SERVER-17451</a></li>
<li>Fix a bug in recovery. Force recovery instead of returning an error if the LSN given doesn't exist. refs #1700, #1704</li>
<li>Move writing into log worker thread to avoid latency in application threads. refs #1683</li>
<li>Fix a bug in the reconfigure API related to adhering to shared cache quotas. refs #1712, #1713</li>
<li>Fix a bug in WiredTiger statistics where we weren't recording overflow record statistics. refs #1520, #1703, #1711</li>
<li>Several enhancements to eviction of large pages including:<ul>
<li>Don't do forced eviction of a page if it is the current walk point.</li>
<li>Don't update the read generation on page in if it's set to oldest.</li>
<li>Clear the walk positions before the eviction server sleeps.</li>
<li>Reverse the direction of the LRU walk regularly.</li>
<li>Add all pages that would block to the eviction queue.</li>
<li>If evicting dirty pages use the worker threads not the server. refs #1706</li>
</ul>
</li>
<li>Use raw mode when dumping indices. refs #1709</li>
<li>Fix a bug where we could race opening files while a <a class="el" href="struct_w_t___c_o_n_n_e_c_t_i_o_n.html#af535c517df851eeac8ebf3594d40b545" title="Close a connection. ">WT_CONNECTION::close</a> is in progress. refs <a href="https://jira.mongodb.org/browse/SERVER-17319">SERVER-17319</a></li>
<li>Fix a bug in LSM where snapshot transaction updates could have the wrong visibility check applied. Leading to invalid updates. refs #1641, #1701, #1702</li>
<li>Fix a bug in checkpoint where it could get an EBUSY return unnecessarily. refs #1404, #1589, #1705</li>
<li>Fix a bug when writing a page from memory to disk (reconciling). We could overwrite the end of a temporary buffer in some cases. refs #1697, #1699</li>
<li>Sometimes we would choose a sub-optimal layout for on disk pages when writing them out from memory. refs #1699</li>
<li>Improve the performance of in-memory lookups by making the content of the page structure more cache friendly.</li>
</ul>
<h2>WiredTiger release 2.5.1, 2015-03-07 </h2>
<p>The WiredTiger 2.5.1 release contains new features, minor API changes and many bug fixes.</p>
<p>New features and API changes:</p>
<ul>
<li>Add a new "log=(recover=on)" option to <a class="el" href="group__wt.html#ga9e6adae3fc6964ef837a62795c7840ed" title="Open a connection to a database. ">wiredtiger_open</a>. The default value is "on", if set to "error", recovery won't be run on startup. An error will be returned if recovery is needed but disabled. This option is mainly to support the WiredTiger command line utility. refs #1651</li>
<li>Add a new <a class="el" href="struct_w_t___c_u_r_s_o_r.html#a6736da9b394239a201ba97761b7b941b" title="Return the ordering relationship between two cursors, testing only for equality: both cursors must ha...">WT_CURSOR::equals</a> method that returns when the cursors are equal, intended as a fast-path for cursor comparison.</li>
<li>Change how statistics work when there are checkpoints for an object. We used to aggregate statistics for all open checkpoints and the current handle. We now only return statistics for the object being queried. See upgrading documentation for further information.</li>
<li>Add a mode to LSM that allows us to limit the size of a tree by dropping old chunks. Enabled via "lsm=(chunk_count_limit=0)", default to 0 which disables the functionality. Note that enabling this feature discards old data automatically. refs #1652</li>
<li>Update the WiredTiger printlog command line utility to generate JSON that can be parsed by third party tools. refs #1438</li>
<li>Change how we track memory allocation overhead. We used to apply a fixed size for each allocation (which was difficult to track). The overhead can be specified via a new configuration option to <a class="el" href="group__wt.html#ga9e6adae3fc6964ef837a62795c7840ed" title="Open a connection to a database. ">wiredtiger_open</a> using "cache_overhead=8". The value is a percentage and the default is 8. refs #1564 #1565</li>
<li>Major enhancements to the wtstats.py tool that translates WiredTiger statistics into an HTML graph. The tool now generates interactive graphs and no longer requires third party Python libraries to be installed.</li>
<li>Add a new <a class="el" href="struct_w_t___c_u_r_s_o_r.html#ad6a97a309e2c1ada7ca32a422c46612a" title="Reconfigure the cursor. ">WT_CURSOR::reconfigure</a> method for cursor configuration. See API documentation for more information. refs #1381</li>
<li>Add a new <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#abe03ccb716e097ed1bb4d42eb733c1f9" title="Return information about an error as a string. ">WT_SESSION::strerror</a> method, a thread-safe alternative to <a class="el" href="group__wt.html#gae8bf720ddb4a7a7390b70424594c40fd" title="Return information about a WiredTiger error as a string (see WT_SESSION::strerror for a thread-safe A...">wiredtiger_strerror</a>. refs #1516</li>
</ul>
<p>Bug fixes for bugs that could cause data inconsistency:</p>
<ul>
<li>Fix a bug in recovery where we could lose track of file identifiers and apply updates to the wrong file. refs <a href="https://jira.mongodb.org/browse/SERVER-17142">SERVER-17142</a> <a href="https://jira.mongodb.org/browse/SERVER-17131">SERVER-17131</a></li>
<li>Fix several bugs in data consistency that could cause corruption when restarting after a hard crash, including:<ul>
<li>A bug in table create that could cause recovery to fail. refs <a href="https://jira.mongodb.org/browse/SERVER-17204">SERVER-17204</a></li>
</ul>
</li>
</ul>
<p>Other significant changes:</p>
<ul>
<li>Significant tuning enhancements for the WiredTiger cache, including:<ul>
<li>Avoiding stalls due to evicting large pages</li>
<li>Better algorithms for getting application threads to help with cache management without interfering with operation latencies.</li>
<li>Better algorithms for maintaining the cache when there are a few very hot pages (e.g: append workloads). <a href="https://jira.mongodb.org/browse/SERVER-17344">SERVER-17344</a></li>
<li>Freeing obsolete references more aggressively, which saves space and reduces traversal overhead when there are lots of updates or deletes. refs <a href="https://jira.mongodb.org/browse/SERVER-17195">SERVER-17195</a>, #1647</li>
<li>Fix a bug that could cause a data loss if we split a large page into multiple smaller pages and attempted to evict the page at the same time. refs #1583 #1563 <a href="https://jira.mongodb.org/browse/SERVER-16868">SERVER-16868</a></li>
</ul>
</li>
<li>Significant improvements to the cursor truncate implementation, especially for workloads that periodically truncate from the start of the file. refs <a href="https://jira.mongodb.org/browse/SERVER-17141">SERVER-17141</a></li>
<li>Fix a bug in eviction where reconfiguring the number of eviction threads could result in a segfault. refs <a href="https://jira.mongodb.org/browse/SERVER-17293">SERVER-17293</a></li>
<li>Significant bug fixes and performance enhancements to the logging subsystem including:<ul>
<li>Avoid yielding excessively to avoid CPU overhead when there are many active sessions. refs #1610</li>
<li>The log close thread needs to wait for outstanding writes. #1571</li>
<li>Create a new utility thread to close and fsync log files. #1560</li>
<li>Ensure that log files are closed in sequence. #1555</li>
<li>Ensure that log file create appears atomic. #1482</li>
<li>Fix a race between connection close and switching log files that could lead to a new log file being in an undefined state. #1480</li>
</ul>
</li>
<li>Added support for advanced options to the WiredTiger verify command line tool.</li>
<li>Fix a bug in our conflict detection algorithm, where we were failing to detect some write-write conflicts in no-overwrite cursors. refs <a href="https://jira.mongodb.org/browse/SERVER-16351">SERVER-16351</a></li>
<li>Significant bug fixes when writing pages to disk, including:<ul>
<li>Stop double count the on-disk header when choosing split points. refs #1655</li>
<li>Fill the first and second pages as much as possible when splitting. refs #1282</li>
<li>Improve the algorithm for fitting large items onto pages when splitting. refs #1630 #1631</li>
<li>Fix a bug when using raw compression where we could overflow allocated memory. refs <a href="https://jira.mongodb.org/browse/SERVER-16664">SERVER-16664</a></li>
</ul>
</li>
<li>Fix several cases where <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#a0334da4c85fe8af4197c9a7de27467d3" title="Verify a file or table. ">WT_SESSION::verify</a> and <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#ab3399430e474f7005bd5ea20e6ec7a8e" title="Salvage a file or table. ">WT_SESSION::salvage</a> could return EBUSY unnecessarily. refs #1404 <a href="https://jira.mongodb.org/browse/SERVER-16457">SERVER-16457</a></li>
<li>Fix a bug where racing between discarding and updating a tree returned an error to the application. refs #1618 <a href="https://jira.mongodb.org/browse/SERVER-17048">SERVER-17048</a></li>
<li>Fix a bug where opening a statistics cursor in parallel with a checkpoint could lead to a deadlock. refs #1575 <a href="https://jira.mongodb.org/browse/SERVER-16738">SERVER-16738</a></li>
<li>Change the shared cache implementation to use cache read pressure rather than write pressure to determine how best to share memory (as checkpoints skew write pressure as a metric). refs #1569</li>
<li>Fix a bug where a deadlock could occur if a checkpoint starts in parallel to compact operations. refs #1589 <a href="https://jira.mongodb.org/browse/SERVER-16967">SERVER-16967</a></li>
<li>Fix a bug in how we parse Huffman-encoding configuration settings during <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#a358ca4141d59c345f401c58501276bbb" title="Create a table, column group, index or file. ">WT_SESSION::create</a>. refs #1417 #1536</li>
<li>Fix a bug where the custom extractor terminate callback was being made twice. refs #1503</li>
<li>Add a new mode to the eviction server where it writes out some pages even though the eviction triggers have not yet been reached.</li>
<li>Fix several issues reported by COVERITY static analysis tool.</li>
</ul>
<h2>WiredTiger release 2.5.0, 2014-12-24 </h2>
<p>The WiredTiger 2.5.0 release contains significant new features, API changes and many bug fixes.</p>
<p>Now that WiredTiger is part of MongoDB, we are tracking issues related to MongoDB usage of WiredTiger in the MongoDB JIRA system. Some entries in the changelog now reference JIRA tickets that can be found at:</p>
<p><a href="http://jira.mongodb.org">http://jira.mongodb.org</a></p>
<p>New features and API changes:</p>
<ul>
<li>Add support for storing large values on-page in a btree rather than in an overflow item. This is useful for workloads that want to keep large items in cache - since WiredTiger overflow items are never cached. It is configured via new <code>leaf_value_max</code> configuration setting. This enhancement led to the deprecation of internal_item_max and leaf_item_max configuration settings, see upgrading documentation for further information. [#1282]</li>
<li>Add support for compressing log files. When configured each compressible log record will be compressed. This is configure with the <code>log=(compressor=X)</code> configuration setting. See upgrading documentation for further information. [#1359]</li>
<li>No longer return EBUSY when opening a bulk cursor, verifying or salvaging a database if a checkpoint is currently running. This allows applications to do these exclusive operations without shutting down the checkpoint server thread. [#1397] [#1404] <a href="https://jira.mongodb.org/browse/SERVER-16236">SERVER-16236</a> <a href="https://jira.mongodb.org/browse/SERVER-16457">SERVER-16457</a></li>
<li>Add support for immutable indexes. [#1344]</li>
<li>Added several new statistics, improved accuracy for some statistics tracking and simplified mechanism for querying a particular statistic. [#1505]</li>
<li>Have the eviction server write out unnecessary pages prior to the cache reaching the configured eviction trigger size. This can reduce the amount of eviction application threads do when configured with a large cache.</li>
<li>Several enhancements to managing how long we keep files open</li>
<li>Revert a change in the 2.4.1 release that caused the WT_ROLLBACK (and deprecated WT_DEADLOCK) error return to map to different numeric values. Applications should ensure they are compiling against the same version of the wiredtiger.h header file as the library they link against, otherwise odd behavior will be experienced.</li>
<li>Support setting configuration strings to "none" as being equivalent to an empty string in most cases. [#1417]</li>
<li>Enhance the hot backup implementation to allow recovery to be run between incremental backups. [#1183]</li>
</ul>
<p>Other significant changes:</p>
<ul>
<li>Improve performance of cursor open when there are many tables in a database. [#1391] [#1443]</li>
<li>Reduce the impact checkpoints have on concurrent operations. This was done by changing how we lock tables. [#1391] [#1392]</li>
<li>Improve performance when scanning a table that has many deleted items. <a href="https://jira.mongodb.org/browse/SERVER-16247">SERVER-16247</a></li>
<li>Fix a bug in checkpoint, where the metadata (turtle) file wasn't being synced on checkpoint. [#1383]</li>
<li>Fix a bug where WiredTiger could accumulate memory during page splits and never free it. <a href="https://jira.mongodb.org/browse/SERVER-16546">SERVER-16546</a></li>
<li>Many enhancements and bug fixes for Windows.</li>
<li>Fix a bug where a custom extractor terminate was being called twice. [#1503]</li>
<li>Fix a bug where a race between closing a handle and checkpointing could lead to errors. [#1495] [#1497]</li>
<li>Validate the block header checksum before we clear it - if the checksum field had been corrupted, we didn't notice. <a href="https://jira.mongodb.org/browse/SERVER-16457">SERVER-16457</a></li>
<li>Fix a bug in write conflict detection. Cursors configured with no-overwrite could sometimes not see update conflicts for deleted records. <a href="https://jira.mongodb.org/browse/SERVER-16351">SERVER-16351</a></li>
<li>Several bug fixes and performance improvements in LSM including:<ul>
<li>Add support for custom collators in LSM trees. [#1361]</li>
<li>Fix a bug in LSM search_near, where it returned a deleted item. BF-694, BF-700</li>
<li>Improve background maintenance operations so that the cache does not get full unnecessarily.</li>
<li>Fix a bug that could lead to updates being written into old chunks. [#1432] [#1418]</li>
<li>Fix a bug in background merge that could skip updates. <a href="https://jira.mongodb.org/browse/SERVER-16123">SERVER-16123</a></li>
</ul>
</li>
<li>Fix a bug when maintaining the cache, that could cause checkpoints to skip writing an update that should have been included. [#1419] <a href="https://jira.mongodb.org/browse/SERVER-16336">SERVER-16336</a></li>
<li>Fix a bug in <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#adf785ef53c16d9dcc77e22cc04c87b70" title="Drop (delete) an object. ">WT_SESSION::drop</a>, where failures generated error output even when force was specified. [#1436]</li>
<li>Fix a bug in WiredTiger integer packing code when figuring out how much space is required for a value (it can shrink as numbers grow). <a href="https://jira.mongodb.org/browse/SERVER-16118">SERVER-16118</a></li>
<li>Several enhancements to the wtstats.py tool that generates graphs from standard WiredTiger statistics logs. [#1365]</li>
<li>Fix a bug on OS X where fsync isn't sufficient to flush a file, use fcntl(F_FULLFSYNC) instead.</li>
<li>Work around a bug in clang 3.5.0 compare and swap primitive. The __sync_bool_compare_and_swap version of the API in clang produces bad code for us with -O3 optimization enabled.</li>
</ul>
<h2>WiredTiger release 2.4.1, 2014-11-06 </h2>
<p>The WiredTiger 2.4.1 release contains several new features, many bug fixes and performance enhancements.</p>
<p>New features and API changes:</p>
<ul>
<li>Add new custom extractor functionality to WiredTiger indexes. Allowing an application to define mutated and/or multiple keys for indexes. [#1199]</li>
<li>Add a new <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#a1d108fab498cfddbb09ee23e3321a88d" title="Return the transaction ID range pinned by the session handle. ">WT_SESSION::transaction_pinned_range</a> method that allows users to identify when a session is keeping a transaction ID pinned for a long time. [#1314]</li>
<li>Enhance statistics output so that keys are more clearly categorized. [#1313]</li>
<li>Rename WT_DEADLOCK error return to WT_ROLLBACK. WiredTiger uses the return in cases other than traditional application deadlock. The old value is retained as an alias to maintain backward compatibility. [#1204]</li>
<li>Increase the maximum configurable cache size to 100GB.</li>
</ul>
<p>Other significant changes:</p>
<ul>
<li>Improve support for building on Windows platforms. [#1342]</li>
<li>Fix a bug where WiredTiger could race closing handles. [#1336]</li>
<li>Enhance performance when hot pages in cache are growing rapidly. [#1317]</li>
<li>Fix a bug in recovery, where log files that are zero extended could result in some log records being skipped. [#1334]</li>
<li>Updates to the Java API to improve documentation and exception handling. [#1295]</li>
<li>Improve support for building on Oracle Solaris platform [#1329]</li>
<li>Fix a bug where closing a handle could leave the tree in an inconsistent state on failure. [#1316]</li>
<li>Several bug fixes and improvements to LSM including:<ul>
<li>Improving algorithm for switching the in-memory chunk.</li>
<li>Fixing a bug related to dropping obsolete chunks. [#1304]</li>
</ul>
</li>
<li>Fix a bug in schema level operations (table create, drop, etc). If there was an explicit transaction running when the operation was performed that was subsequently rolled back the object could be left in an inconsistent state.</li>
<li>Several enhancements to cache management when there are long running transactions present.</li>
</ul>
<h2>WiredTiger release 2.4.0, 2014-10-15 </h2>
<p>The WiredTiger 2.4.0 release contains significant new features, API changes and many bug fixes.</p>
<p>New features and API changes:</p>
<ul>
<li>Cursors keep their position across transaction boundaries. That is <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#a7e26b16b26b5870498752322fad790bf" title="Start a transaction in this session. ">WT_SESSION::begin_transaction</a> and <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#a712226eca5ade5bd123026c624468fa2" title="Commit the current transaction. ">WT_SESSION::commit_transaction</a> no longer reset cursors. [#1181]</li>
<li>Change cursor behavior so that when an operation returns WT_NOTFOUND, the cursor is now left pointing to the original key/value pair. [#1209]</li>
<li>Initial support for building WiredTiger on Windows.</li>
<li>Add ability to customize a collator for specific data sources or with application managed metadata. See upgrading documentation for more information. [#1165]</li>
<li>Enhance extension mechanism in WiredTiger to support loading extensions from the application binary - not just a separate library. [#1174]</li>
<li>Replace <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#a358ca4141d59c345f401c58501276bbb" title="Create a table, column group, index or file. ">WT_SESSION::create</a> "lsm=(merge_threads)" configuration option with <a class="el" href="group__wt.html#ga9e6adae3fc6964ef837a62795c7840ed" title="Open a connection to a database. ">wiredtiger_open</a> "lsm_manager=(worker_thread_max)". See upgrading documentation for more information.</li>
<li>Enhancements to the WiredTiger Python API build process. [#1188]</li>
<li>Add ability to dump and load WiredTiger databases in JSON format. [#1154]</li>
<li>Add ability to automatically checkpoint based on the volume of log records generated since the last checkpoint. This is enabled using the <a class="el" href="group__wt.html#ga9e6adae3fc6964ef837a62795c7840ed" title="Open a connection to a database. ">wiredtiger_open</a> configuration option "checkpoint=(log_size=size)" [#1170]</li>
<li>Enhance functionality allowing users to write content into the WiredTiger transaction log. [#1171][#1175]</li>
<li>Enhance the WiredTiger HyperLevelDB implementation to support log replay. [#1106][#1155]</li>
</ul>
<p>Other significant changes:</p>
<ul>
<li>Fix several bugs in the shared cache implementation. [#1180][#1176]</li>
<li>Fix a bug where the public URI field in a cursor did not match the string passed to <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#afb5b4a69c2c5cafe411b2b04fdc1c75d" title="Open a new cursor on a data source or duplicate an existing cursor. ">WT_SESSION::open_cursor</a>. [#1235]</li>
<li>Fix several bugs in salvage. [#1222][#1169]</li>
<li>Several bug fixes and enhancements for <a class="el" href="struct_w_t___c_o_n_n_e_c_t_i_o_n.html#a579141678af06217b22869cbc604c6d4" title="Reconfigure a connection handle. ">WT_CONNECTION::reconfigure</a>. [#1214][#1172]</li>
<li>Fix several bugs in raw compression implementation, particularly for data that compresses extremely well. [#1191]</li>
<li>Several bug fixes and enhancements to WiredTiger LevelDB interface.</li>
<li>Switch default build from using adaptive pthread mutexes to default pthread mutexes.</li>
</ul>
<h2>WiredTiger release 2.3.1, 2014-08-14 </h2>
<p>The WiredTiger 2.3.1 release contains mainly performance enhancements and bug fixes.</p>
<p>Changes to the WiredTiger API:</p>
<ul>
<li>Fix a bug in <a class="el" href="struct_w_t___c_u_r_s_o_r.html#a27f7cbd0cd3e561f6a145704813ad64c" title="Set the value for the next operation. ">WT_CURSOR::set_value</a> that could lead to undefined behavior with some value formats.</li>
<li>Make the asynchronous API generally available [#1139]</li>
<li>Add log cursors for replay and verification. Make generated log record and operation types public. [#1106]</li>
<li>Allow eviction worker threads to be started and stopped dynamically. Applications that use the <code>eviction_workers</code> configuration should see the upgrading documentation on how to use this feature. [#1116, #1143, #1158]</li>
</ul>
<p>Other significant changes:</p>
<ul>
<li>Improve performance and reduce latency during checkpoints and LSM merges. Remove uses of the checkpoint lock other than serializing checkpoints: compact holds the schema lock, so it doesn't need to hold the checkpoint lock, the new WT_BTREE handle close lock prevents checkpoints from colliding with handle close, so LSM doesn't need the checkpoint lock either.</li>
<li>Some minor cleanups, setting the internal session's name in a few places. [#1073]</li>
<li>Grab the live lock when loading a checkpoint in diagnostic mode: that could race with a read. [#1102]</li>
<li>Instead of keeping a list of file URIs for checkpoint to flush, open a handle and stash it. [#1114]</li>
<li>Add a new OS-layer function __wt_fsync_async to flush a file without waiting for the results, call it from the Btree flush-leaves code so pages start flushing while we're working the rest of the checkpoint. [#1136, #1152]</li>
<li>Wait for the handle flush lock when writing the leaf pages instead of returning EBUSY. [#1136]</li>
<li>Add a wtperf page to the documentation, describe how to simulate workloads and view statistics. [#1147]</li>
<li>Flag new structures not listed in PREDEFINE. [#1148]</li>
<li>Return EBUSY if no async handles available and fix ex_async to look for it. [#1153]</li>
<li>Fix some problems with navigation in the reference guide.</li>
<li>Bump the number of slots for internal sessions: we have a lot more than 2 now. Add a test for <code>session_max</code> settings, make sure we add enough to account for at least the default internal sessions.</li>
<li>Remove tcbench: we're no longer maintaining it.</li>
</ul>
<h2>WiredTiger release 2.3.0, 2014-07-29 </h2>
<p>The WiredTiger 2.3.0 release contains significant new features, performance enhancements and bug fixes. Significant changes are described below.</p>
<p>Changes to the WiredTiger API (see upgrading documentation for details):</p>
<ul>
<li>Add a LevelDB API implementation for WiredTiger. This includes support for stock LevelDB as well as Basho, HyperLevelDB and RocksDB versions of the API. To build the LevelDB API include –enable-leveldb in the configure command, to specify compatibility with an alternative LevelDB API use –enable-leveldb=[basho,hyper,rocksdb]. [#1028]</li>
<li>Add ability to build some common extensions into the WiredTiger library. This means that the libraries for those extensions don't need to be dynamically loaded at runtime. Currently supported extensions are Snappy compression and zlib compression. The option can be enabled by passing –with-builtins=[snappy,zlib] to the configure command line.</li>
<li>Add a new configuration to wiredtiger_open: statistics_log=(on_close=true), that causes a set of statistics to be logged on <a class="el" href="struct_w_t___c_o_n_n_e_c_t_i_o_n.html#af535c517df851eeac8ebf3594d40b545" title="Close a connection. ">WT_CONNECTION::close</a>. [#1086]</li>
<li>Add a new configuration to wiredtiger_open: exclusive, that causes the open to fail if the database already exists.</li>
</ul>
<p>Other significant changes:</p>
<ul>
<li>Performance improvement for high throughput workloads using multiple eviction threads. Performance of some workloads improves by over 15% [#1087]</li>
<li>Significant performance optimizations for queries, giving up to 20% throughput improvement for in-memory query workloads. <a href="https://github.com/wiredtiger/wiredtiger/wiki/Query-throughput">https://github.com/wiredtiger/wiredtiger/wiki/Query-throughput</a></li>
<li>Fix an off-by-one bug that could lead to ENOMEM during commit with logging. [#1104][#1121]</li>
<li>Allow bulk loads to multiple files to complete in parallel. [#1114][#1126]</li>
</ul>
<h2>WiredTiger release 2.2.1, 2014-06-24 </h2>
<p>The WiredTiger 2.2.1 release contains mainly performance enhancements and bug fixes. Significant changes are described below.</p>
<p>Changes to the WiredTiger API (see upgrading documentation for details):</p>
<ul>
<li>Change the order in which configuration setting mechanisms are applied by wiredtiger_open. [#1010][#1034]</li>
<li>Split the global transaction_sync configuration into two parts: a sync method (dsync, fsync or none), and an enabled flag (false by default). [#1074]</li>
<li>Add ability to sync with per transaction granularity. [#1074]</li>
<li>Update WiredTiger Java API to throw WiredTigerException consistently. [#1011]</li>
<li>Add ability to dump and load databases using JSON format. [#740][#1049]</li>
</ul>
<p>Other significant changes:</p>
<ul>
<li>Various performance improvements to the main cursor search routine including reductions in how often we need to copy data and profiling based optimizations for tight search loops. [#1050][#1070]</li>
<li>Fix a bug in recovery with missing files (e.g., after a hotbackup that raced with file creation). [#1042][#1045]</li>
<li>Several bug fixes and performance enhancements related to LSM trees and snapshot isolation transactions. [#1057][#1060][#1075]</li>
<li>Several performance tuning enhancements to LSM trees around locking, throttling and switching chunks. [#1051]</li>
<li>Algorithmic improvements to LSM tree compact operation. It is now faster and more reliable. [#1063]</li>
<li>Create a separate thread to manage open file handles - which means that:<ul>
<li>Application threads are less likely to be responsible for closing handles</li>
<li>Multi threaded workloads don't open/close handles more often than necessary [#1018]</li>
</ul>
</li>
</ul>
<h2>WiredTiger release 2.2.0, 2014-05-21 </h2>
<p>The WiredTiger 2.2.0 release contains new features, performance enhancements and bug fixes. Significant changes include:</p>
<p>Changes relevant for upgrading applications:</p>
<p>Update the table create API to disable prefix compression by default. Applications generally see better performance without prefix compression, choosing space saving over performance is up to the application. [#981]</p>
<p>Change the default leaf_page_max setting from 1MB to 32KB. Choosing a large default leaf_page_max led to poor performance in out of cache workloads.</p>
<p>Remove the <code>--enable-debug</code> option to configure. It is more standard to set <code>CFLAGS="-g"</code> variable instead.</p>
<p>Save the wiredtiger_open configuration when a database is created, so that settings like cache size, extensions and logging are set consistently by all subsequent users of the database.</p>
<p>Add an <code>--enable-verbose</code> option to configure. In order to access the verbose message functionality available as part of the wiredtiger_open and <a class="el" href="struct_w_t___c_o_n_n_e_c_t_i_o_n.html#a579141678af06217b22869cbc604c6d4" title="Reconfigure a connection handle. ">WT_CONNECTION::reconfigure</a> APIs, it is necessary to pass the <code>--enable-verbose</code> option to configure.</p>
<p>Enhance the metadata cursor implementation (i.e: cursors created with a "metadata:" prefix) so that they can be used to inspect metadata for internal tables and now support altering the metadata. Add a new "read_only" flag to cursor configuration that defaults to false for metadata cursors.</p>
<p>Fix several bugs in raw compression, including one that could cause data corruption and some that triggered poor performance. [#984][#991][#1007][#1008][#1013]</p>
<p>Improve the performance of recovery - we no longer need to scan all log files looking for the last checkpoint.</p>
<p>Improve performance of read-only transactions, by deferring the allocation of transaction IDs. [#978]</p>
<p>Several bug fixes in hot backup related to log files, including:</p><ul>
<li>Always choose the right metadata version in the backup [#972]</li>
<li>Don't require that hot backup copies log files in order [#976]</li>
<li>Always copy log files before data files [#976]</li>
<li>Fix a bug where recovery returned an error if the last log record was incomplete [#994]</li>
</ul>
<p>Speed up checkpoints by doing a better job of skipping pages that can't contain changes that need to be included. [#954][#963][#1001]</p>
<p>Add ability to store zero length data items into LSM trees. [#540]</p>
<p>Add an asynchronous data access/manipulation API to WiredTiger. [#933]</p>
<p>Add the ability to configure multiple eviction server threads, to help with keeping space available in the cache. [#918]</p>
<p>Add the ability to reconfigure the checkpoint and statistics log servers. [#997][#1004]</p>
<p>Improve the performance of retrieving data for in cache workloads. [#970]</p>
<p>Improve the structure of the in-memory tree we are generating, by allowing internal pages to be split. This significantly improves query performance in some workloads. [#876]</p>
<p>Work around a bug in posix_fallocate on Linux, where it could corrupt already written data.</p>
<p>Add the ability to leak memory on connection close via new leak_memory option to <a class="el" href="struct_w_t___c_o_n_n_e_c_t_i_o_n.html#af535c517df851eeac8ebf3594d40b545" title="Close a connection. ">WT_CONNECTION::close</a> API. This allows for faster shutdown if a process is going to exit when the WiredTiger connection is closing.</p>
<p>Allow salvage to run on any table type.</p>
<h2>WiredTiger release 2.1.2, 2014-03-27 </h2>
<p>The WiredTiger 2.1.2 release contains performance enhancements and bug fixes. Significant changes include:</p>
<p>Update the configuration settings for shared_cache to make the distinction between cache_size and shared_cache less confusing. See upgrading documentation for more information.</p>
<p>Various performance enhancements to improve the performance of checkpoints.</p>
<p>Fix a bug that could cause a hang with small caches under heavy load. [#894]</p>
<h2>WiredTiger release 2.1.1, 2014-03-04 </h2>
<p>The WiredTiger 2.1.1 release contains new features, performance enhancements and bug fixes. Significant changes include:</p>
<p>Fix a bug where a page could be marked clean when it contained uncommitted changes. This bug could cause undefined behavior in transaction rollback under load.</p>
<p>Fix a bug with shared caches when rebalancing between connections.</p>
<p>Add a new public API to WiredTiger that provides the ability to parse WiredTiger compatible configuration strings. See the upgrading documentation for further information. [#873]</p>
<p>A number of performance enhancements to the LSM implementation, particularly for long running workloads.</p>
<p>A number of performance enhancements and bug fixes to cache eviction code.</p>
<p>Add an option to use direct I/O when reading from checkpoints. To enabled the functionality add "direct_io=[checkpoint]" to your wiredtiger_open configuration string. [#847]</p>
<h2>WiredTiger release 2.1.0, 2014-02-04 </h2>
<p>The WiredTiger 2.1.0 release contains new features, performance enhancements and bug fixes. Significant changes include:</p>
<p>The <a class="el" href="group__wt.html#struct_w_t___i_t_e_m" title="A raw item of data to be managed, including a pointer to the data and a length. ">WT_ITEM</a> structure was changed so that the size field is a size_t rather than a uint32_t. See upgrading documentation for details.</p>
<p>A change to the compress_raw interface around repeating the call with more records. See upgrading documentation for details.</p>
<p>In LSM trees, the memory_page_max setting is ignored. The effective setting is double the chunk size. [#861][#859]</p>
<p>Add support for zlib compression. [#855] [#865]</p>
<p>Various enhancements to how WiredTiger generates tree structures in memory to help maintain consistent performance as table size grows. [#851]</p>
<p>Add support for Levyx Inc Helium as an external data source in WiredTiger [#849][#850]</p>
<p>Improve insert performance when a table contains many identical overflow items.</p>
<p>Various performance enhancements to btree searches. [#838][#839][#840]</p>
<p>Add support for newer versions of autoconf up to 1.14. [#599][#841]</p>
<p>Improve multi-threaded throughput of durable log writes, including changing the default wiredtiger_open transaction_sync configuration from dsync to fsync, see the upgrading documentation for further information. [#831][#832]</p>
<p>In the Python and Java APIs, automatically close handles to prevent invalid accesses by applications. [#649][#800][#830]</p>
<p>Various enhancements to the LSM merge algorithm, including improvements to how files are selected for merging, and throttling based on whether merges are keeping up (to limit write amplification). Made the minimum number of chunks chosen to merge configurable. [#817][#819][#822]</p>
<h2>WiredTiger release 2.0.1, 2013-12-12 </h2>
<p>The WiredTiger 2.0.1 release contains major new features, numerous performance enhancements and bug fixes.</p>
<p>Significant changes include:</p>
<ul>
<li>WiredTiger now supports fine-grained durability via Write Ahead Logging (WAL). Logging is enabled with the "log=(enabled)" configuration string to wiredtiger_open. If the connection is not shut down cleanly and logging is enabled, WiredTiger will automatically run recovery the next time it is opened, rolling forward changes in the log until the last commit. [#605]</li>
<li>Many enhancements to the LSM implementation to improve the throughput and reduce maximum operation latency including:<ul>
<li>Algorithmic improvements when multiple merge threads are configured.</li>
<li>Improvements to bloom filter lookup speed.</li>
<li>Enhancements to internal cursor management, to reduce search overhead.</li>
<li>Prioritize switching to a new level 0 chunk in utility threads, to avoid application thread pauses.</li>
<li>More advanced logic in choosing when to create bloom filters.</li>
</ul>
</li>
<li>LSM specific <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#a358ca4141d59c345f401c58501276bbb" title="Create a table, column group, index or file. ">WT_SESSION::create</a> configuration option enhancements. Including:<ul>
<li>Move existing options into their own group, and strip leading lsm_ prefix.</li>
<li>Add a new merge_max configuration option.</li>
<li>Update the default chunk_size to be 10MB.</li>
<li>Increase the default bloom filter bit and hash counts.</li>
<li>Clean up files left after interrupted merges. See the upgrading documentation for details. [#784, #785, #786, #802]</li>
</ul>
</li>
<li><a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#aafa7a12a4891a5bfdc98673a5b8f9c69" title="Compact a live row- or column-store btree or LSM tree. ">WT_SESSION::compact</a> can now be used to merge LSM trees into a small number of chunks on disk. [#792]</li>
<li>Enhanced the Java API, so that when WiredTiger automatically closes a handle, the handle is automatically invalidated for the Java application. [#485]</li>
<li>Add a script that can create an interactive web page to view statistics from a WiredTiger statistics log. Based on D3: <a href="http://d3js.org/">http://d3js.org/</a></li>
<li>Enhancements to the wtperf performance testing tool to add new features</li>
</ul>
<h2>WiredTiger release 1.6.6, 2013-11-19 </h2>
<p>The WiredTiger 1.6.6 release is a bugfix and performance tuning release.</p>
<p>This release of WiredTiger contains a database format change. Database files from previous releases will need to be upgraded.</p>
<p>A special note: the WiredTiger code base is now being regularly reviewed using the Coverity Static Analysis Verification Engine. We'd like to thank Coverity for their on-going support of Open Source projects like WiredTiger!</p>
<p>Significant changes include:</p>
<ul>
<li>Performance changes include: limiting operations done inside update serialization primitives, removing unnecessary memory barriers, replacing spinlocks with atomic instructions, padding structures to avoid false cache sharing, switching from per-file mutexes to per-page mutexes, pre-allocating structures to avoid memory allocation while holding mutexes, and using adaptive mutexes where available. [#707, #718, #719]</li>
<li>A number of LSM stability and performance improvements: changes include better merge algorithms, reduced locking, and higher concurrency.</li>
<li>A number of table compaction performance improvements, including changes allowing compaction to no longer read unnecessary file blocks into the cache, requires fewer passes over the file and support concurrent checkpoints and eviction. This change required an underlying file format change, see the upgrading documentation for details. [#756, #761]</li>
<li><p class="startli">WiredTiger statistics have been significantly improved:</p>
<p class="startli">Statistics logging has been changed to aggregate information from all open handles. [#709, #717]</p>
<p class="startli">For performance reasons, statistics are now disabled by default, see the upgrading documentation for details. [#715]</p>
<p class="startli">Statistics configuration has been changed so the connection and cursor configuration are consistent, with matching changes to the "wt stat" command-line utility; see the upgrading documentation for details.</p>
</li>
<li><p class="startli">Update <a class="el" href="struct_w_t___e_v_e_n_t___h_a_n_d_l_e_r.html" title="The interface implemented by applications to handle error, informational and progress messages...">WT_EVENT_HANDLER</a> interface to contain a new "handle close" interface and to pass a <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html" title="All data operations are performed in the context of a WT_SESSION. ">WT_SESSION</a> handle into all callbacks, see the upgrading documentation for details. [#649]</p>
<p class="startli">Add timestamp, process ID and thread ID to messages generated via <a class="el" href="struct_w_t___e_v_e_n_t___h_a_n_d_l_e_r.html" title="The interface implemented by applications to handle error, informational and progress messages...">WT_EVENT_HANDLER</a> interface. [#753]</p>
</li>
<li>WiredTiger eviction improvements, supporting larger data-to-cache size ratios. [#754]</li>
<li>Various fixes for handling overflow records. [#726, #743]</li>
<li>Overflow records are no longer tracked during bulk-loads, significantly increasing bulk-load performance for some data sets.</li>
</ul>
<h2>WiredTiger release 1.6.5, 2013-10-09 </h2>
<p>This is primarily a bugfix and performance tuning release. The main changes are:</p>
<ul>
<li>Change the default statistics_fast configuration from false to true.</li>
<li>Change <a class="el" href="struct_w_t___c_u_r_s_o_r.html#aac90d9fbcc031570f924db55f8a1cee3" title="Insert a record and optionally update an existing record. ">WT_CURSOR::insert</a> to not hold a position. [#673]</li>
<li>Disallow <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#aafa7a12a4891a5bfdc98673a5b8f9c69" title="Compact a live row- or column-store btree or LSM tree. ">WT_SESSION::compact</a> operations on LSM trees.</li>
<li>The 'sync' setting to wiredtiger_open has been renamed 'checkpoint_sync'.</li>
<li>Add a "metadata:" cursor type. [#660]</li>
<li>Fix race in the cache's dirty byte tracking. [#635, #699]</li>
<li>Fix a bug scanning through a memory-mapped file with overflow items. [#701]</li>
<li>Use hardware checksum instructions when available. [#582, #702]</li>
<li>Several bug fixes related to tracking active transaction IDs and detection of obsolete updates with high concurrency workloads. [#639, #643, #657, #683]</li>
<li>Fix several bugs in LSM including races on shutdown and Bloom filter creation. [#686, #687, #688].</li>
<li>Fix a bug in LSM where we were not including Bloom filter files in backups. [#684]</li>
<li>Optimize the LSM throttle and merge algorithms. [#676]</li>
<li>Make hot backups work concurrently with files being bulk-loaded. [#570, #653]</li>
<li>Add full support for snapshot isolation to LSM: only switch LSM chunks if all changes are globally visible and detect conflicts between transactions across file switches. [#629]</li>
</ul>
<h2>WiredTiger release 1.6.4, 2013-08-20 </h2>
<p>This is primarily a bugfix and performance tuning release. The main changes are:</p>
<ul>
<li>Make prefix compression of keys conditional on the amount of space saved. A database format change was required for this enhancement. See upgrading documentation for details. [#624]</li>
<li>The default behavior of the wt utility's load command has been changed to overwrite existing data.</li>
<li>Add a <a class="el" href="struct_w_t___s_e_s_s_i_o_n.html#a358ca4141d59c345f401c58501276bbb" title="Create a table, column group, index or file. ">WT_SESSION::create</a> prefix_compression_min configuration option with a default value of 4. [#624] and [#624]</li>
<li>Fix "make install" of Python API. [#598]</li>
<li>Require platform support for atomic read/write of 64 bit values. [#553]</li>
<li>Support transaction semantics for custom data source implementations. Enhance Memrata data source to support transactions.</li>
<li>Changes to the wtperf testing tool related to how configuration options are specified.</li>
<li>Enhance cursor key/value memory management to be more efficient, consistent, and have stricter checking of inputs and outputs.</li>
<li>Increase the likelihood of being able to evict hot pages. [#604]</li>
<li>Reference on-page keys instead of copying them to allocated memory. This saves space in the cache and overhead when reading pages into cache. [#592] and [#600]</li>
<li>Add a btree search optimization that skips matching prefixes. [#595]</li>
<li>Turn off Huffman encoding for keys on row-store internal pages. [#592]</li>
<li>Add concurrent logging infrastructure that will be used to support write ahead logging in a future release.</li>
</ul>
<h2>WiredTiger release 1.6.3, 2013-07-12 </h2>
<p>This is a bugfix and performance tuning release. The main changes are:</p>
<ul>
<li>Change the default cursor overwrite configuration so that it is consistent across all data sources. This change may alter the behavior of existing applications without triggering any compilation or runtime warnings. See the upgrade documentation for details. [#512]</li>
<li>Require platform support for 64 bit atomic operations. [#553]</li>
</ul>
<h2>WiredTiger release 1.6.2, 2013-06-18 </h2>
<p>This is a bugfix and performance tuning release. The main changes are:</p>
<ul>
<li>Fix a race in the WiredTiger pseudo random number generator that was leading to poor distribution of numbers.</li>
<li>Change the default compression configuration to "uncompressed".</li>
<li>Fix a race between checkpoints and LSM that could result in a crash. [#543]</li>
<li>Add an option to output version information at runtime. Configure by including "verbose=[version]" in the wiredtiger_open connection configuration string. [#564]</li>
<li>Add a configurable prefix to error messages. [#527]</li>
<li>Add two new extension APIs, one to return a transaction ID, one to return if a transaction ID is visible to the current transaction.</li>
<li>Add standard metadata functions to the extension API and make extension data sources responsible for their own metadata entries.</li>
<li>Add a new extension function __wt_ext_config_strget that returns the configuration value from a single string.</li>
</ul>
<h2>WiredTiger release 1.6.1, 2013-05-31 </h2>
<p>This is a bugfix and performance tuning release. The main changes are:</p>
<ul>
<li>Fix the compress_raw API so that it uses platform independent types. See the upgrade guide for further information. [#561]</li>
<li>Add an explicit enable setting to shared_cache configuration. See the upgrade guide for further information.</li>
<li>Fix several bugs in hot backup, including race conditions between backup and table drop (and other schema level operations). [#556] [#557]</li>
<li>Allow any data source type for indices as well as column groups. [#545]</li>
<li>Preload btree internal pages into file system cache when opening a table.</li>
<li>Change the default allocation size to 4KB so that DIRECT_IO with 4KB blocks works. [#547]</li>
<li>Fix some bugs related to tracking the oldest active transaction. [#552]</li>
<li>Fix a bug in the extension API when using multiple databases.</li>
<li>Disallow named checkpoints on LSM trees - they aren't supported. [#546]</li>
<li>Fix support for custom collators with LSM trees. [#544]</li>
<li>Build fixes for gcc 4.1.2.</li>
</ul>
<p>See the upgrade documentation for details of API changes that may require altering existing applications.</p>
<h2>WiredTiger release 1.6.0, 2013-05-16 </h2>
<p>This release contains new features, bug fixes and performance improvements. The significant changes are highlighted below:</p>
<ul>
<li>Fix a bug where configuring direct I/O could cause checksum errors at runtime. NOTE: database file format change. [#526]</li>
<li>Fix a race that allowed checkpoints to be deleted while hot backups are running. [#515]</li>
<li>Scale to events per second in graphs generated from statistics log output. [#518]</li>
<li>Changes to reduce the latency of LSM operations.</li>
<li>Add a new terminate callback to extension interfaces that is called when the WiredTiger connection is closed. [#530]</li>
<li>Various optimizations and bug fixes to cache management and eviction code.</li>
<li>Update various statistics.</li>
<li>Fix a bug where using a combination of read-committed and snapshot transactions could result in inconsistent values being returned. [#539]</li>
<li>Fix a bug where using LSM trees with compression enabled could result in an invalid system call. [#535]</li>
<li>Enhance statistics logging so that it can dump "lsm:" statistics.</li>
</ul>
<p>See the upgrade documentation for information about database format changes in this release.</p>
<h2>WiredTiger release 1.5.3, 2013-04-26 </h2>
<p>This release contains some major new features along with numerous bug fixes and performance improvements. The significant changes are highlighted below:</p>
<ul>
<li>Enhance the extension data source API to facilitate implementation of new data stores in WiredTiger.</li>
<li>Add support for the STEC / Memrata KVS data source.</li>
<li>Add a Berkeley DB data source via the WiredTiger extension API.</li>
<li>Various enhancements to cache eviction management. Mostly to avoid stalls in application threads.</li>
<li>Fixes to shared cache pool implementation, so resources are more aggressively reallocated.</li>
<li>Add new statistics.</li>
<li>Implement automatic insert throttling in LSM - enabled by default.</li>
<li>Configuration strings are now case sensitive.</li>
<li>Enhance LSM merge algorithms to be more efficient as trees grow very large.</li>
</ul>
<p>See the upgrade documentation for details of API changes that may require altering existing applications.</p>
<h2>WiredTiger release 1.5.2, 2013-03-28 </h2>
<p>This is a bugfix release. The main changes are:</p>
<p>[#493] Fix get_key/value in the Java API for complex cursors.</p>
<ul>
<li>Fix a leak in eviction detected by valgrind.</li>
<li>Stop trying to cache the oldest reader: we only use it for eviction and only update it when required.</li>
<li>Track cursor creation in the statistics (creating a cursor per operation isn't a good idea).</li>
</ul>
<h2>WiredTiger release 1.5.1, 2013-03-25 </h2>
<p>This is a bugfix and performance tuning release. The main changes are:</p>