forked from wiredtiger/wiredtiger
-
Notifications
You must be signed in to change notification settings - Fork 0
/
NEWS
3430 lines (2542 loc) · 147 KB
/
NEWS
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
Ticket reference tags refer to tickets in the MongoDB JIRA tracking system:
https://jira.mongodb.org
WiredTiger release 3.2.0, 2019-05-09
------------------------------------
See the upgrading documentation for details of API and behavior changes.
Significant changes:
* WT-3968 Use compression ratio to tune page sizes
* WT-4156 Add a new salvage API option to wiredtiger_open
* WT-4192 Remove support for raw compression in WiredTiger
* WT-4426 Change WiredTiger data format to optionally include timestamps in cells
* WT-4447 Add a quota like system to manage I/O per subsystem
* WT-4670 Remove support for LevelDB APIs in WiredTiger
* WT-4765 Remove support for Helium/Levyx data sources in WiredTiger
See JIRA changelog for a full listing:
https://jira.mongodb.org/projects/WT/versions/21117
WiredTiger release 3.1.0, 2018-07-12
------------------------------------
See the upgrading documentation for details of API and behavior changes.
See JIRA changelog for a full listing:
https://jira.mongodb.org/projects/WT/versions/19708
WiredTiger release 3.0.0, 2018-01-08
------------------------------------
See the upgrading documentation for details of API and behavior changes.
Significant changes:
* WT-3039 Change the log file format to record a previous LSN record
* WT-3181 Add support for application defined transaction IDs via a mechanism called timestamps.
* WT-3310 Add support to WT_SESSION::alter to change table log setting
* WT-3389 Restructure page split code to hold a split generation for the entire operation.
* WT-3406 Fix a bug in reconciliation so that it ignores concurrent updates.
* WT-3418 Fix a block manager race in tree close/open
* WT-3435 Improvements to the cache overflow mechanism aka lookaside
* WT-3437 Improvements to auto tuning of number of eviction workers
* WT-3440 Add a log record when starting a checkpoint.
* WT-3461 Avoid hangs when system clocks move backwards by using CLOCK_MONOTONIC for pthread_cond_timedwait if possible.
* WT-3490 Fix a bug in WT_CURSOR.modify unaligned size_t access.
* WT-3495 Fix a bug so we don't ftruncate if log cursors are open
* WT-3497 Improve logging message when hitting the configured session limits
* WT-3537 Split pages in memory when nothing can be written
* WT-3556 Remove wtstats support
* WT-3681 Change recovery so that it doesn't truncate the last log file
* WT-3683 Allow eviction of clean pages with history when cache is stuck
* WT-3710 Get a page-level lock to ensure page splits are single threaded
* WT-3752 Allow trimming of obsolete modify updates.
See JIRA changelog for a full listing:
https://jira.mongodb.org/projects/WT/versions/18401
WiredTiger release 2.9.3, 2017-06-27
------------------------------------
See the upgrading documentation for details of API and behavior changes.
Significant changes:
* WT-2972 Add an interface allowing partial updates to existing values
* WT-3063 Add an interface allowing reservation of records for read-modify-write
* WT-3142 Add a workload generator application
* WT-3160 Improve eviction of internal pages from idle trees
* WT-3245 Avoid hangs on shutdown when a utility thread encounters an error
* WT-3258 Improve visibility into thread wait time due to pages exceeding memory_page_max
* WT-3263 Allow archive on restart/recovery if clean shutdown
* WT-3287 Review WiredTiger internal panic checks
* WT-3292 Review/cleanup full-barrier calls in WiredTiger
* WT-3296 LAS table fixes/improvements
* WT-3327 Checkpoints can hang if time runs backward
* WT-3345 Improve rwlock scaling
* WT-3373 Access violation due to a bug in internal page splitting
* WT-3379 Change when pages can be split to avoid excessively slowing some operations
See JIRA changelog for a full listing:
https://jira.mongodb.org/browse/WT/fixforversion/18291
WiredTiger release 2.9.2, 2017-05-25
------------------------------------
See the upgrading documentation for details of API and behavior changes.
Significant changes:
* SERVER-16796 Increase logging activity for journal recovery operations
* SERVER-28168 Cannot start or repair MongoDB after unexpected shutdown.
* SERVER-28194 Fix a bug where a missing WiredTiger.turtle file can result in data loss
* WT-98 Update the current cursor value without a search
* WT-2439 Enhance reconciliation page layout
* WT-2898 Improve performance of eviction-heavy workloads by dynamically controlling the number of eviction threads
* WT-3097 Race on reconfigure or shutdown can lead to waiting for statistics log server
* WT-3106 Add truncate support to command line wt utility
* WT-3114 Avoid archiving log files immediately after recovery
* WT-3115 Change the dhandle lock to a read/write lock
* WT-3127 Fix a bug with CPU yield calls don't necessarily imply memory barriers
* WT-3135 Fix a bug with search_near() for index with custom collator
* WT-3137 Fix a hang in __log_slot_join/__log_slot_switch_internal
* WT-3144 Fix a bug where random cursor returns not-found when descending to an empty page
* WT-3148 Improve eviction efficiency with many small trees
* WT-3149 Change eviction to start new walks from a random place in the tree
* WT-3150 Reduce impact of checkpoints on eviction server
* WT-3152 Convert table lock from a spinlock to a read write lock
* WT-3157 Fix a bug in checkpoint/transaction integrity issue when writes fail.
* WT-3158 Fix structure packing on Windows.
* WT-3188 Fix error handling in logging where fatal errors could lead to a hang
* WT-3193 Close a race between verify opening a handle and eviction visiting it
* WT-3206 Fix a bug where core dump happened on NULL page index
* WT-3218 Fix a bug that could lead to unexpected checkpoint ordering failures
* WT-3243 Reorder log slot release so joins don't wait on IO
* WT-3262 Stop making schema operations wait for cache
See JIRA changelog for a full listing:
https://jira.mongodb.org/browse/WT/fixforversion/17874
WiredTiger release 2.9.1, 2016-12-22
------------------------------------
New features and API changes; refer to the API documentation for full details:
* SERVER-26545 Remove fixed-size limitation on WiredTiger hazard pointers. See the upgrading documentation for details
* WT-283 Add a new WT_SESSION::alter method that can be used to reconfigure table metadata
* WT-2670 Change the default file system access pattern advice for data files from random to no advice. Add access_pattern_hint configuration option for WT_SESSION::create API that can be used to advise the file system of expected access semantics. See the upgrading documentation for details.
* WT-3034 Add support for including updates when reading from named snapshots
Significant changes and bug fixes:
* WT-2960 Reduce likelihood of using the lookaside file, especially when inserting multi-megabyte values
* WT-3056 Allow projected table and join cursors to use primary keys
* WT-3070 Fix a bug in search_near on indexes
Other noteworthy changes since the previous release:
* WT-2336 Add a test validating schema operations via file system call monitoring
* WT-2402 Pad structures to avoid cache line sharing
* WT-2771 Add a statistic to track per-btree dirty cache usage
* WT-2833 Add projections to wt dump utility
* WT-2969 Possible snapshot corruption during compaction
* WT-3014 Add GCC/clang support for ELF symbol visibility
* WT-3021 Fixes for java log example, raw mode in java, and raw mode in log cursors
* WT-3025 Fix error path in log_force_sync
* WT-3028 Don't check for blocked eviction with in-memory workloads
* WT-3030 Fix a race between scans and splits reading the index hint
* WT-3037 Clean up some log slot comments
* WT-3048 WiredTiger maximum size warning uses the wrong format
* WT-3051 Remove external __wt_hex symbol
* WT-3052 Improve search if index hint is wrong
* WT-3053 Make Python use internal memory allocation again
* WT-3054 Make a PackOutputStream constructor that is compatible with the previous interface.
* WT-3055 When an AsyncOp is created, cache the whether the cursor is "raw"
* WT-3057 WiredTiger hazard pointers should use the WT_REF, not the WT_PAGE
* WT-3061 Syscall testing should support pwrite64 on Linux
* WT-3064 Minor tree cleanups: .gitignore, NEWS misspelling
* WT-3066 Minor code cleanups
* WT-3068 Copy artifacts of test runs in wtperf_run script
* WT-3068 Have Jenkins include specific files for copy rather than exclude
* WT-3069 Fix LevelDB APIs build failures
* WT-3071 Fixed sign-conversion compiler errors in Java and Python SWIG code
* WT-3075 Document and enforce that WiredTiger now depends on Python 2.7
* WT-3078 Test reconfiguration hang in the statlog server
* WT-3080 Python test suite: add elapsed time for tests
* WT-3082 Python test suite: shorten default run to avoid timeouts
* WT-3084 Fix Coverity resource leak complaint
* WT-3091 Add stats to test_perf001 test, so we can investigate what happened when it failed
WiredTiger release 2.9.0, 2016-09-06
------------------------------------
New features and API changes; refer to the API documentation for full details:
* WT-2360 Add nesting and disjunction functionality to cursor joins
* WT-2552 Add a public API to allow custom filesystem implementations
* WT-2738 Remove the ability to change the default checkpoint name. See the upgrading documentation for details.
* WT-2711 Change the statistics log configuration options. Restrict where statistics log files can be created to remove security vulnerability. See upgrading documentation for details.
* WT-2764 Enhance the checkpoint implementation, which led to a change in default eviction settings. See the upgrading documentation for details.
* WT-2880 Add Zstandard compression support
* See the upgrading documentation for information about renamed and removed statistics.
Significant changes and bug fixes:
* WT-2026 Fix a bug where in-memory pages were allowed to grow too large
* WT-2343 Ensure we cannot rename/drop when a backup cursor is open
* WT-2520 Ensure WT_SESSION::verify does not alter tables
* WT-2576 Ensure variable-length column-store cannot out-of-order return
* WT-2664 Change eviction so any eviction thread can find candidates
* WT-2702 Resolve an issue where under high thread load, WiredTiger exceeds cache size
* WT-2731 Resolve an issue where raw compression can create pages that are larger than expected
* WT-2737 Allow reconciliation to scrub dirty pages rather than evicting them
* WT-2757 Fix a bug in column stores where it was not possible to retrieve the new record number after an append
* WT-2816 Improve eviction performance
Issues fixed in MongoDB:
* SERVER-23504 Resolve a resource leak
* SERVER-23588 Stop using _open_osfhandle on Windows
* SERVER-23659 Improve log error message at startup
* SERVER-23661 Fix an issue where $sample takes disproportionately long time on newly created collection
* SERVER-24306 Fix stall in log_flush switching to new files
* SERVER-24580 Add more eviction stats to track efficiency
* SERVER-24580 Enhance eviction when application threads are contributing
* SERVER-24971 Don't cache buffers after application eviction
* SERVER-25843 Remove a redundant test
* SERVER-25845 Resolve an explicit null dereferenced
* SERVER-25846 Resolve a dereference after null with a check
* SERVER-26753 Don't spin on a read-lock in a tight loop
Other noteworthy changes since the previous release:
* WT-2103 Add incremental backup testing to test/format
* WT-2330 Ensure In-memory configurations do not create on-disk collection files
* WT-2450 Resolve an issue where salvage releases pages, then explicitly evicts them. Which can race with the eviction server
* WT-2453 Add multiple eviction queues
* WT-2504 Remove READONLY conditional for base config
* WT-2505 Resolve clang analyzer warnings
* WT-2508 Ensure test programs should remove test directories on the "clean" target
* WT-2512 Change how wtperf throttle values per thread are calculated
* WT-2513 Fix a type conversion warning
* WT-2517 Resolve incorrect uses of setvbuf on Windows
* WT-2518 Optimization of LSM checkpoint handle acquisition
* WT-2522 Resolve incorrect format code in message
* WT-2525 Miscellaneous cleanups of In-memory configurations
* WT-2526 Prevent mixing and matching readonly file-handles and read/write data-handles
* WT-2528 Fix a style error in WiredTiger build
* WT-2529 Be less aggressive asserting in readonly connections
* WT-2531 Resolve a case where in-memory tables are wasting space in truncation
* WT-2532 Change the WT_STREAM_APPEND and WT_STREAM_LINE_BUFFER flags as they overlap
* WT-2533 Don't let in-memory tables return a zero size
* WT-2534 Use atomic add when allocating transaction IDs
* WT-2535 Extend test/format to test for transactions reading their writes
* WT-2537 Check for an old and new uninitialized LSN for recovery
* WT-2539 Make streams a separate handle type from files
* WT-2540 Separate stream and file handle methods
* WT-2542 Resolve fixed-length column store reconciliation overwriting original values
* WT-2544 Fix eviction stats when clear is used
* WT-2546 Change evict server to be smarter when it decides whether or not to evict pages
* WT-2547 Add eviction testing configurations for 1 thread
* WT-2548 Cap the amount of data handed to raw compression
* WT-2550 Add support for raw mode cursors in java
* WT-2553 Add some In-memory documentation and stress testing
* WT-2556 Fix a typo in the Java example code
* WT-2557 Ensure that we truncate logs before closing backup cursor
* WT-2558 Reorganize WT_PAGE structure
* WT-2559 Resolve a potential segfault in Windows logging code
* WT-2560 Add a rwlock to protect transaction state, don't spin on this lock
* WT-2562 Add sleep loop to adapt for slow machines like PPC
* WT-2565 Further limit the amount of data passed to raw compression
* WT-2566 Add explicit memory barriers to Lock/unlock operations
* WT-2567 Add a check to see if logging is enabled for truncate rather than assuming it is
* WT-2568 Add a backward compatible constructor for PackInputStream
* WT-2569 Ensure __win_handle_read is followed by a call to GetLastError()
* WT-2570 Minor lint and cleanups to code
* WT-2571 Join code clean up
* WT-2572 Ensure test/format doesn't select an incompatible set of options for in-memory options configured
* WT-2573 Resolve a potential case where a double free can occur
* WT-2574 Ensure test/format frees all allocated configure memory
* WT-2576 Ensure variable-length column-store cannot out-of-order return
* WT-2577 Resolve a potential double-free following an in-memory split
* WT-2579 Change so diagnostic only code can use file streams directly
* WT-2580 Fix potential SWIG naming conflict in Java
* WT-2581 Resolve a case where we fail to track saved updates during a page split
* WT-2582 Fix a case where eviction can return WT_RESTART when running in-memory
* WT-2584 Change to not use periods at the end of error messages
* WT-2586 Fix examples/ex_config
* WT-2589 Ensure we clear the cursor statistics for LAS when 'clear' is set
* WT-2592 Fix joins for the non-recno, non-raw case
* WT-2593 Free the dirlist at the end of the function
* WT-2595 Fix compiler warning in packing test
* WT-2598 Change so that in-memory has faster lookup on file names
* WT-2599 Split out the checksum code from the support directory
* WT-2600 Clean up test program includes
* WT-2602 In LSM, use the chunk size to set maximum page size in memory
* WT-2605 Add C tests used in testing joins
* WT-2609 Resolve incorrect "skips API_END call" error
* WT-2610 Reduce hazard pointer array size
* WT-2611 Modify wtperf to handle escaped quotes
* WT-2612 Ensure the dist/s_prototypes script does not create a debugging file
* WT-2613 Add WT_UNUSED to a variable to fix Windows compilation
* WT-2615 Enabling checkpoints in test/format leads to reduced concurrency
* WT-2616 Fix a deadlock with in-memory size lookups
* WT-2617 Don't use u_int in the example code. It's not Windows native
* WT-2621 Fix missing parentheses on call to __wt_errno
* WT-2622 Clear old position for all random lookups
* WT-2624 Fix example program build with MSVC 2013
* WT-2626 Fix MSVC 2015 snprintf redefinition
* WT-2627 Resolve Coverity complaints
* WT-2628 Ensure reconciliation doesn't return without unlocking the page lock
* WT-2629 Ensure stacks are not executable in assembly source
* WT-2630 Rename pluggable filesystem methods to avoid reserved names
* WT-2631 Ensure nullptr is not passed for parameters marked with attribute non-null
* WT-2632 Tolerate EBUSY when a checkpoint cursor is open
* WT-2637 Update file-extension documentation to cover not-supported cases
* WT-2638 Add extension to the Windows file system implementation
* WT-2644 Fix 'wt load -r' (rename) with LSM
* WT-2645 Move the complexity of dump from the dump utility to the metadata cursor
* WT-2646 Add checkpoint_wait configuration option to drop
* WT-2648 Change cache-line alignment for new ports
* WT-2651 Fix a Coverity found resource leak
* WT-2652 Remove unnecessary wt_ftruncate call
* WT-2653 Add display of device configuration to custom file-system example
* WT-2656 Fix GCC 4.7 compiler warnings
* WT-2658 Ensure we only include PPC-specific files in PPC builds
* WT-2659 Assorted lint and cleanup to csuite tests
* WT-2660 Fix a hang between eviction and connection close
* WT-2662 For spell check, strip out double quote literals, they confuse aspell
* WT-2664 Add ability for eviction workers to populate eviction queues
* WT-2665 Limit allocator fragmentation from the WiredTiger cache
* WT-2667 Add fops to Evergreen testing for Windows and Linux
* WT-2668 Create join statistics that are useful and are easy to understand
* WT-2671 Dump more information about the file layout in verify debug mode
* WT-2672 Handle system calls that don't set errno
* WT-2673 Stop automatically increasing memory page max
* WT-2674 Simplify metadata file check
* WT-2676 Don't use key size in column store in-memory splits
* WT-2677 Fix JSON output so only printable ASCII is produced
* WT-2678 Fix cases where metadata implies that an empty value is true
* WT-2682 Add option to configure WiredTiger with strict compiler flags
* WT-2683 Allow in memory storage engine to report zero disk usage
* WT-2685 Fix clear walk hazard pointer failure
* WT-2686 Report an error any time we fail to scan the log
* WT-2687 Provide ability for test suite to verify the exit status of the wt utility
* WT-2688 Improve build error messages when SWIG is unavailable
* WT-2689 Fix heap-use-after-free on cursor error path
* WT-2691 Use wrappers for ctype functions to avoid sign extension errors
* WT-2692 Fix race in file system example
* WT-2693 Ensure open_cursor error paths have consistent error handling
* WT-2695 Integrate s390x accelerated crc32c support
* WT-2696 Wait if we find an unbuffered flag without the size set yet
* WT-2698 Change flag into atomically manipulated field to avoid deadlock
* WT-2702 Block operations when the cache is 100% full
* WT-2704 Fix bug in diagnostic code tracking duration of stuck cache
* WT-2706 Fix lost log writes when switching files
* WT-2707 Add stricter checks in dist/s_label, and add some WT_ERR calls
* WT-2708 Fix a split child-update race with reconciliation/eviction
* WT-2709 Resolve a connection reconfigure segfault in __wt_conn_cache_pool_destroy
* WT-2710 WT_FILE_HANDLE_INMEM no longer needs an off field
* WT-2713 Document WT_PANIC so pluggable filesystems can panic
* WT-2715 Resolve random abort test failure with partial write
* WT-2719 Allow make check without verbose configured
* WT-2719 Fix memory leak in reconfig test
* WT-2720 Change the return codes in run.py to error on failures
* WT-2722 Escape regular expression meta-character so egrep works on all systems
* WT-2724 Pass in session address, not pointer to it
* WT-2728 Only verify the log file header during recovery
* WT-2729 Focus eviction on the largest trees in cache
* WT-2730 Btree can incorrectly match key slots on new pages
* WT-2731 Finer adjustment for page size with raw compression
* WT-2732 Coverity analysis defect 99665, Remove redundant test
* WT-2734 Improve documentation of eviction configuration settings
* WT-2739 pluggable file systems documentation cleanups
* WT-2743 Fixup new I/O thread count statistics
* WT-2744 Detect and ignore partial line
* WT-2746 Add a new statistic tracking I/O for checkpoints
* WT-2751 column-store statistics incorrectly calculates the number of entries
* WT-2752 Fix errors in wtperf config
* WT-2755 Fix for cases where tools treats size_t as 4B type
* WT-2756 Upgrade the autoconf archive package to check for swig 3.0
* WT-2757 Column tables behave differently when column names are provided
* WT-2759 Releasing the hot-backup lock doesn't require the schema lock
* WT-2760 Fix a bug in backup related to directory sync. Change the filesystem API to make durable the default
* WT-2762 Handle 'Y' as an options from wtperf monitor file
* WT-2763 Change test ID's in test_intpack to fix OS X test errors
* WT-2764 Fix a bug calculating the dirty percentage of cache
* WT-2765 Ensure indices are shown in the dump output
* WT-2766 Don't sweep LAS cache when aren't making progress in eviction
* WT-2767 In test/suite/run.py, add -s N option to run an individual scenario
* WT-2769 Update documentation to reflect correct limits of memory_page_max
* WT-2770 Add statistics tracking schema operations
* WT-2772 Adjust log.wtperf config. Remove unneeded config entries
* WT-2773 Ensure that search_near in an index finds exact matches
* WT-2774 Minor cleanups/improvements
* WT-2778 Enhance output formatting when running Python test suite
* WT-2779 Fix large pages getting generated with raw compression
* WT-2781 Don't take checkpoint lock if checkpoint_wait=0 for bulk cursor open
* WT-2782 Minor text changes for file system functions
* WT-2783 Clean up wtperf configuration object management
* WT-2785 Scrub dirty pages rather than evicting them single-page reconciliation
* WT-2787 Include src/include/wiredtiger_ext.h is problematic
* WT-2788 Do not touch memory already freed during a close API call
* WT-2791 Have evergreen upload artifacts for each build. Rename current artifacts to "Binaries"
* WT-2793 Enhance statistics related to overflow values
* WT-2795 Update documentation about read-only mode
* WT-2796 Fix a memory leak when using the lookaside table
* WT-2798 Fix data consistency bug with table creates during a checkpoint
* WT-2800 Fix incorrect error message
* WT-2801 Prevent eviction of metadata updates by a running checkpoint
* WT-2802 Copy values during commit before releasing snapshot
* WT-2803 Add VERBOSE=1 to all make check jobs
* WT-2804 Don't read values in a tree without a snapshot
* WT-2805 Avoid infinite recursion on error stream failure
* WT-2806 Fix an off-by-one allocation in wtperf
* WT-2807 Change the memory allocator for wtperf performance tests
* WT-2811 The checkpoint session should not ignore it's own transaction ID
* WT-2812 Verify cache_size before dividing to avoid division by 0
* WT-2813 Configure eviction dirty settings explicitly for LSM in test/format
* WT-2814 Add new single op truncate mode to wtperf
* WT-2816 General improvements to WiredTiger eviction performance
* WT-2817 Add wtperf conf to stress test checkpoints with updates
* WT-2818 Change the page visibility check when queuing pages for eviction
* WT-2820 Add gcc warn_unused_result attribute
* WT-2822 Simplify error handling by using a panic mutex in functions that cannot fail
* WT-2823 Support file handles without a truncate method
* WT-2824 Fix double concatenation the config strings
* WT-2826 Fix a clang38 false positive on uninitialized variable
* WT-2827 Set a reasonable minimum for log_size
* WT-2828 Change wtperf long tests to better match MongoDB workloads
* WT-2829 Fix missing define for BerkeleyDB
* WT-2831 Skip checkpointing if there have been no modifications
* WT-2832 Python test uses hard-coded temporary directory
* WT-2834 Fix sign-change warning with auto conversion from uint to int
* WT-2834 Shared bloom filters allow only a partial shortcut
* WT-2835 Stop WT_CONNECTION.leak-memory skipping memory map and cache cleanup
* WT-2838 Don't free session handles on close if leak memory is configured
* WT-2839 Remove cases ignoring return value of function
* WT-2840 Fix garbage values found with clang analysis
* WT-2841 Initialize verbose checkpoint timer at start of checkpoint
* WT-2842 Add explicit include in wtperf to resolve build warning
* WT-2843 If there is no truncate available, manually zero the log file
* WT-2846 Ensure that all resources are released when destroying a thread group
* WT-2846 Fixes for new thread group code
* WT-2847 Merge fair locks into read/write locks
* WT-2850 Fix clang 4.1 attribute warnings
* WT-2853 Don't force eviction if multiple cursors are pinning the page
* WT-2857 POSIX ftruncate calls should be use HAVE_FTRUNCATE define
* WT-2858 Rename wtperf's CONFIG structure
* WT-2859 Restructure statistics gathering macros
* WT-2863 Support UTF-8 paths on Windows
* WT-2864 Update reconfigure test to detect hangs
* WT-2865 Fix a bug where the eviction server could panic after a WT_NOTFOUND
* WT-2866 Don't set eviction stuck unless the cache is full
* WT-2867 Review and fix barrier usage in __lsm_tree_close
* WT-2868 Add sample_interval to checkpoint-stress.wtperf
* WT-2869 Fix a performance regression on secondaries
* WT-2870 Rename wtperf jobs for consistency
* WT-2871 Make verbose formats and argument types match
* WT-2872 Ensure tests with tiny caches don't get stuck due to the dirty trigger
* WT-2873 Refactor CRC32 code
* WT-2874 Change test_compact01 to avoid eviction
* WT-2875 Add environment variable to disable long csuite tests
* WT-2876 Add an oplog-like ability to wtperf utility
* WT-2878 Fix an issue where verbose changes affected performance
* WT-2881 Add -Wpedantic to clang compiler warning flags
* WT-2883 Remove potentially recursive call for verbose handleops
* WT-2885 Lint __wt_checkpoint_signal function
* WT-2886 Ignore dirty eviction settings when in_memory is true
* WT-2888 Switch functions to return void where possible
* WT-2892 Fix case where hot backup can race with block truncate
* WT-2894 Add wtperf stress workload that tries to induce negative scaling
* WT-2895 Reduce the runtime of make check testing with disable long
* WT-2896 Fix a resource leak
* WT-2897 Fix an issue where checkpoints can become corrupted on failure
* WT-2900 Add ARM8 build support to WiredTiger and fix ARM CRC assembler tags
* WT-2901 Make checkpoint scrubbing configurable
* WT-2902 Track per-tree the efficiency of eviction walks
* WT-2903 Change the eviction_scrub_target default to 15%
* WT-2904 Fix a bug where the reported checkpoint size could be many times data size
* WT-2904 Revert overly strong assertion
* WT-2905 Remove dead code
* WT-2907 Fixed java concurrent close test to have both insert threads and scan threads
* WT-2908 Add a dry-run option to python suite
* WT-2910 When running in-memory, only evict dirty pages
* WT-2911 Add support for gcc6
* WT-2912 Make --enable-strict run on the zseries test box
* WT-2913 Re-sort eviction queues if we find no new candidates
* WT-2914 In test/csuite program, added explicit call to wiredtiger_open to satisfy some linkers
* WT-2916 Fix and simplify s_whitespace
* WT-2917 Split wtperf's configuration into per-database and per-run parts
* WT-2918 The dist scripts create C files s_whitespace complains about
* WT-2919 Don't mask error returns from style checking scripts
* WT-2920 New eviction statistics
* WT-2921 Reset the count when the last hazard pointer is cleared
* WT-2923 Fix heap-use-after-free on address in compaction
* WT-2924 Ensure we are doing eviction when threads are waiting for it
* WT-2925 Change where the WT_THREAD_PANIC_FAIL flag lives
* WT-2926 WT_CONNECTION.reconfigure can attempt unlock of not-locked lock
* WT-2928 Don't give up when the urgent queue is half empty
* WT-2928 Eviction failing to switch queues can lead to starvation
* WT-2931 Enforce limits on dirty data for in-memory
* WT-2932 Add a configuration option allowing tables to ignore cache limits
* WT-2933 Fix a race between named snapshots and checkpoints
* WT-2937 Only do an eviction walk after a page has been taken from the current queue
* WT-2938 Change assembly file extensions from .S to .sx
* WT-2941 Improve test/format to use faster key-generation functions
* WT-2942 Verbose messages should not have newlines
* WT-2945 Occasional hang running reconfigure fuzz test
* WT-2946 Fix dist/s_docs being incompatible with OS X Xcode installation
* WT-2947 Replace test suite populate functions with *DataSet classes
* WT-2948 Simplify error handling by making __wt_epoch return never fail
* WT-2949 Add option to skip closing the connection after test runs
* WT-2950 Free all reconciliation memory between calls to eviction
* WT-2953 Only test for checkpoint/LAS collision if LAS was used
* WT-2954 Evict pages that exceed memory_page_max even if the transaction ID is stuck
* WT-2955 Add statistics tracking the amount of time threads spend waiting for high level locks
* WT-2959 Ensure WT_SESSION_IMPL is never used before it's initialized
* WT-2961 Add a version drop-down to the web version of the docs
* WT-2962 Allow configuration of builtin extensions
* WT-2963 Fix a race bounding eviction in small caches
* WT-2964 Alter evict walk to not fill all its slots with internal pages when running in aggressive mode
* WT-2965 Remove sleep and retry loop from __evict_exclusive
* WT-2968 Don't open file handles on backup
* WT-2971 Add details on raw-compression into WT documentation
* WT-2975 Fix a leak of statistics data when reopening handles
* WT-2976 Add a statistic tracking how long app threads spend reading and writing
* WT-2977 Remove stash and check code from LSM test
* WT-2984 Keep sufficient history in the metadata for queries
* WT-2985 Fix a race during checkpoint that can cause a core dump
* WT-2987 Fix a bug where opening a cursor on an incomplete table drops core
* WT-2988 Fix __wt_epoch potentially returning garbage values
* WT-2991 Fix Coverity REVERSE_INULL
* WT-2998 Add error messages to error returns that might be confusing
* WT-2999 Added contributed test case that demonstrated the leak
* WT-3000 Wait for previous writes on first write to new log file
* WT-3001 Fix WT_EXTENSION_API references that are named inconsistently
* WT-3002 Allow applications to exempt threads from eviction
* WT-3003 Don't generate log record and op types
* WT-3003 Fix doxygen comment blocks
* WT-3004 Lint, declare functions that don't return a value as void
* WT-3005 Add top-level .gitignore file
* WT-3008 Move wtperf stress jobs to new stress runner folder
* WT-3009 Remove the eviction_dirty_target from test/format runs with less than 20MB cache
* WT-3011 Fix __wt_curjoin_open() saving the wrong URI in the cursor
* WT-3012 Check a btree is LSM primary before switching
* WT-3012 Don't track the LSM Primary as part of dirty bytes in cache
* WT-3015 Change when we will evict internal pages
* WT-3016 Change how file size is determined during compact tests to allow
* WT-3017 Don't set NULL hazard pointers
* WT-3020 Always make LSM chunks evictable when they are switched out
* WT-3022 Change lsm_tree flags to fields to prevent race conditions
* WT-3023 Don't treat splits as eviction making progress
* WT-3024 Fix a hang on close caused by leaving a transaction ID pinned
WiredTiger release 2.8.0, 2015-03-24
------------------------------------
The WiredTiger 2.8.0 release contains new features, new supported platforms,
minor API changes and bug fixes.
New features and API changes; refer to the API documentation for full details:
* WT-60 Port WiredTiger to run on big endian platforms
* WT-2287 Add a new WT_SESSION.rebalance API
* WT-2333 Add a lock_wait configuration setting to WT_SESSION.drop to avoid blocking
* WT-2349 Add a readonly configuration setting to wiredtiger_open
* WT-2363 Remove built in support for bzip2 compression
* WT-2404 Add streaming pack/unpack methods to the extension API
Significant changes and bug fixes:
* WT-1801 Add a directory sync after rollback of a WT_SESSION::rename operation
* WT-2130 Improve on-disk page utilization with random workloads
* WT-2275 Fix a database corruption after truncate and crash
* WT-2264 High update workloads can cause checkpoints to never complete
* WT-2290 Improve effectiveness of WT_SESSION.compact
* WT-2361 Fix a bug in column-store where verify identifies out of order data
* WT-2367 Fix a bug in WT_CURSOR.next that could cause out-of-order key returns
* WT-2374 Fix a bug where a database was corrupted when restoring a backup
* WT-2381 Fix the dump utility to include the table configuration
* WT-2451 Allow the WiredTiger metadata to be evicted
* WT-2490 Fix a bug in column-store where search_near() returns the wrong key
Issues fixed in MongoDB:
* SERVER-21619 sys-perf: WT crash during core_workloads_WT execution
* SERVER-21833 Enhance WT_SESSION::compact to more reliably release space
* SERVER-21887 Enhance $sample to be faster on newly created collection
* SERVER-22676 Allow WiredTiger to open databases created by 3.0.0 or 3.0.1
* SERVER-22773 New CRC32 implementation on PowerPC
* SERVER-22831 Low query rate with heavy cache pressure and an idle collection
Other noteworthy changes since the previous release:
* WT-1517 Fix error handling around schema format edge cases
* WT-2060 Simplify aggregation of statistics
* WT-2073 Metadata cleanups
* WT-2099 Seeing memory underflow messages
* WT-2107 Add example code including an event handler
* WT-2113 Truncate test occasionally fails with unexpected EBUSY
* WT-2123 Don't clear allocated memory if not required
* WT-2173 Fix some cases where tiny caches could get stuck full
* WT-2177 Add an optional per-thread seed to random number generator
* WT-2198 Bulk load and column store appends
* WT-2215 WT_LSN needs to support atomic reads and updates
* WT-2216 Simplify row-store search loop slightly
* WT-2231 Pinned page cursor searches could check parent keys
* WT-2235 Add a unicode option to WiredTiger printlog utility
* WT-2242 WiredTiger treats dead trees the same as other trees in eviction
* WT-2246 Improve performance for column-store append searches
* WT-2247 Variable-length column-store in-memory page splits
* WT-2258 Stop WiredTiger pre-loading pages when direct-IO is configured
* WT-2259 Fix error handling when getting exclusive access to a btree
* WT-2262 Fix random cursor next so it is not skewed by tree shape
* WT-2265 WiredTiger related change in PowerPC specific code block in gcc.h
* WT-2272 Fix a bug in the sweep server that triggered an assertion
* WT-2276 Add a tool to decode checkpoint addr
* WT-2277 Remove WT check against big-endian systems
* WT-2279 Define WT_PAUSE(), WT_FULL_BARRIER(), etc when s390x is defined
* WT-2280 Add CRC32 Optimized code for PowerPC
* WT-2282 Error in wt_txn_update_oldest verbose message test
* WT-2283 Retry in txn_update_oldest results in a hang
* WT-2285 Enhance configure to set BUFFER_ALIGNMENT_DEFAULT to 4kb on Linux
* WT-2289 Fix a bug in btree search when doing a fast key check
* WT-2291 Random cursor walk inefficient in skip list only trees
* WT-2295 WT_SESSION.create does a full-scan of the main table
* WT-2296 Improve log algorithm for sync/flush settings
* WT-2297 Fix off-by-one error in Huffman config file parsing
* WT-2299 Clean up layering violation between btree and block manager code
* WT-2307 Fix a bug where internal page splits can corrupt cursor iteration
* WT-2308 Add support for custom extractor for ref_cursors in join cursor
* WT-2311 Add support for UltraSparc platform
* WT-2312 Fix a bug where re-creating a deleted column-store page can corrupt the in-memory tree
* WT-2313 Fix a bug in the sweep server
* WT-2314 Update page-swap error handling so that it is consistent
* WT-2316 Fix a bug in WT_CURSOR.prev where it could return keys out-of-order
* WT-2318 Enhance condition wait implementation to use less CPU on idle databases
* WT-2321 Fix a race between eviction and worker threads on the eviction queue
* WT-2322 Fix a bug in read-uncommitted join cursors where using Bloom filters is unsafe
* WT-2328 Update schema drop does to use the block manager interface for file removal
* WT-2331 Checking of search result for reference cursors before join
* WT-2332 Fix a bug in logging write-no-sync mode
* WT-2335 Fix a bug where parsing an invalid configuration string could segfault
* WT-2338 Disable using pre-allocated log files when a backup cursor is open
* WT-2339 Fix a bug in rebalance that caused database verification failure
* WT-2340 Add logging guarantee assertions
* WT-2345 Avoid creating tiny pages on disk when evicting small pages from cache
* WT-2346 Enhance checkpoint implementation so the schema lock is not held during I/O
* WT-2347 Fix some schema format edge cases in Java API
* WT-2352 Allow build and test without requiring lz4
* WT-2355 Fix minor scratch buffer usage in logging
* WT-2356 log scan advances to next log file on partially written record
* WT-2368 Fix a bug where row-store can pass invalid keys to collator functions
* WT-2369 Use C compiler to detect headers instead of C++ compiler
* WT-2371 Fix a bug where parent split cannot access the page after page-index swap
* WT-2372 WiredTiger windows builder fails with C4005 against the "inline" macro
* WT-2375 Add tests for custom collators
* WT-2378 Fix a hang in LSM when doing forced drop with the no wait option
* WT-2382 Fix a bug in join cursors with custom collator for 'u' format
* WT-2384 Fix a bug in join cursors where lt, le conditions for ordering could be wrong
* WT-2387 Fix cursor random unit test on Windows
* WT-2390 Fix the OS X build
* WT-2391 Enhance eviction so that it is less likely to evict pages from indexes
* WT-2394 Fix a bug in compact that meant we didn't always reclaim available space
* WT-2395 Fix a recovery failure with an LSM tree
* WT-2396 Fix a deadlock between table drop and checkpoint
* WT-2397 Fix a bug in cursor traversal where doing a reverse walk could skip records.
* WT-2399 Add test case that verifies cursor traversal
* WT-2409 Fix a minor performance regression in LSM
* WT-2410 Stop casting function pointers to different types
* WT-2411 Fix a hang in LSM related to dropping tables
* WT-2414 Avoid extractor calls for ordering cursor in join cursor
* WT-2417 Windows Jenkins task is failing
* WT-2418 Fix a bug in WT_SESSION.rebalance where it could return EBUSY
* WT-2420 Fix a bug in LSM where recovery from a backup could fail
* WT-2423 Fix a bug in session reference counting on error handling
* WT-2425 Fix a performance regression in wtperf evict-btree read workload
* WT-2426 Fix a deadlock caused by recent changes to checkpoint handle locking
* WT-2428 Make statistics logging compatible with MongoDB
* WT-2429 Add a statistic that tracks aggressive mode in eviction
* WT-2430 Add statistics for join cursor
* WT-2432 Fix a performance regression on LSM and read only workloads
* WT-2433 Allow read-only databases to log statistics
* WT-2434 Fix a race between force-drop and sweep
* WT-2436 Fix a bug in join cursors with lt, le conditions and "strategy=bloom"
* WT-2438 Extend WiredTiger stat declarations to help external tools
* WT-2440 Fix a bug in the PowerPC checksum implementation
* WT-2443 Add statistics for all indexes used in join cursor
* WT-2447 Enhance join cursor implementation to avoid reading main table where possible
* WT-2448 Add no_scale flag to relevant statistics
* WT-2449 Enhance configure to check for a 64-bit build
* WT-2454 Fix checkpoint_sync=false behavior to prevent flushes/sync to disk
* WT-2456 Fix PowerPC CRC32 Code
* WT-2457 Fix a bug where dropping an LSM table can return EBUSY when no user ops are active
* WT-2459 Allow configure to use the --tag option for libtool when compiling on PowerPC
* WT-2460 Fix a bug where checkpoint could fail with WT_ROLLBACK
* WT-2471 Update WiredTiger printf formats to be platform aware
* WT-2476 Fix a race where btree->evict_lock is being accessed after being destroyed
* WT-2481 Fix a recently introduced performance regression in LSM
* WT-2483 Make read only testing more robust
* WT-2485 Fix a test/format failure with floating point exception
* WT-2492 Fix a bug in Windows where we used the different memory allocators accidentally
* WT-2495 Missing memory initialization leads to crash on Windows
* WT-2496 Fix a bug revealed by test/format unable to read root page
* WT-2497 Enhance test/format to save a copy of backup
* WT-2498 Fix a bug in LSM tree drop where it could hang when a user cursor is open
* WT-2499 Fix a bug in LSM shutdown where a race condition causes a segfault
* WT-2501 Fix a bug where dropping a just opened LSM tree isn't thread safe
* WT-2502 Fix a memory leak in locking handles for checkpoint
WiredTiger release 2.7.0, 2015-12-08
------------------------------------
The WiredTiger 2.7.0 release contains new features, minor API changes and bug
fixes.
New features and API changes; refer to the API documentation for full details:
* WT-147 Create indexes on non-empty tables.
* WT-1315 Add an implementation of cursor joins via a new WT_SESSION::join API.
* WT-1350 Add a new configuration option to ::wiredtiger_open and
WT_CONNECTION::reconfigure called "eviction_dirty_trigger" that causes eviction to start
evicting dirty pages from cache once the given threshold has been reached.
* WT-1728 Add a WT_SESSION::reset method to release resources held by a session.
* WT-1930 Allow setting "file_manager=(close_idle_time=0)" to ::wiredtiger_open and
WT_CONNECTION::reconfigure to disable closing idle handles.
* WT-1959 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.
* WT-1980 Add a new "metadata:create" URI to WT_SESSION::open_cursor for metadata cursors
that return strings useful for passing to WT_SESSION::create.
* WT-2065 Add a new configuration option to ::wiredtiger_open and
WT_CONNECTION::reconfigure called "shared_cache=(quota)" that limits the amount of shared
cache a participant can be assigned.
* WT-2104 Add a method to flush log files via a new WT_SESSION::log_flush API. Made
WT_SESSION::commit_transaction configuration options match WT_SESSION::log_flush. Change
the default WT_SESSION::transaction_sync timeout to 20 minutes rather than infinity.
* WT-2151 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.
* WT-2200 Add a new configuration option to ::wiredtiger_open 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).
* WT-2217 After a successful call to WT_CURSOR::insert, the key and value will be
cleared from the cursor. See the upgrading documentation for more information.
* SERVER-17078 Add a "statistics=(size)" mode to statistics cursors, which allows for
retrieving file size only.
* SERVER-18356 Changed the handling of the "config_base" option to ::wiredtiger_open. See
upgrading documentation for more information.
The following statistics were removed:
* WT-1481 connection dhandles swept.
* WT-1481 connection candidate referenced.
* WT-1481 failed to find a slot large enough for record.
* WT-1989 log buffer size increases.
* WT-1989 slots selected for switching that were unavailable.
* WT-2094 log records written directly.
* WT-2094 record size exceeded maximum.
* WT-2182 pages split during eviction.
Lookaside table:
* WT-1967 Allow eviction of updates required by old readers.
* WT-2074 Fix a race between lookaside table reconciliation and checkpoints.
* WT-2149 Fix the order of creation of the lookaside table.
* WT-2190 Fix transaction visibility test that is applied to the lookaside table.
* SERVER-21585 Don't use the lookaside file until the cache is stuck full.
Issues fixed in MongoDB:
* SERVER-18829 Have pages start in the middle of the LRU queue for eviction.
* SERVER-18838 During drops, don't remove files until the metadata is durable.
* SERVER-18875 Clean up deleted pages.
* SERVER-18899 Add unit test to simulate fsyncLock.
* SERVER-19340 Avoid type aliasing in the random number generator.
* SERVER-19445 Have the oldest transaction update the oldest tracked ID.
* SERVER-19522 Try to evict internal pages with no useful child pages.
* SERVER-19573 Change row-store inserts to avoid page locking.
* SERVER-19751 Retry pthread_create on EAGAIN or EINTR.
* SERVER-19954 Don't scan tracked handles during checkpoints.
* SERVER-19989 Add a write barrier before data handles are added to shared lists.
* SERVER-19990 Don't assert on eviction of live updates from dead trees.
* SERVER-20008 Don't reset eviction walks when hitting a busy page.
* SERVER-20159 Make all readers wait while the cache is full.
* SERVER-20193 Fix obsolete transaction check.
* SERVER-20303 Tune in-memory splits when inserting large objects.
* SERVER-20385 Make WT_CURSOR::next(random) more random.
* SERVER-21027 Reverse split if there are many deleted pages.
* SERVER-21553 Enable fast-path truncate after splits.
* SERVER-21619 Don't do internal page splits after a tree is marked DEAD.
* SERVER-21691 Avoid insert stalls.
Other note worthy changes since the previous release:
* WT-1744 Throttle worker threads based on eviction targets.
* WT-1845 Allow read only transactions to commit after failure.
* WT-1869 Avoid doing in memory splits while checkpointing a tree.
* WT-1942 Add atomic implementations for PowerPC architecture.
* WT-1962 Make the hot_backup_lock a read/write lock.
* WT-1963 Fix backup cursor Java API.
* WT-1964 Fix a bug in the Java API when closing handles from a different thread.
* WT-1966 Change how the shared cache assigns priority to participants.
* WT-1975 Ensure previous log files are complete for forced sync.
* WT-1977 Improve performance of getting snapshots with many sessions.
* WT-1978 Better checking and tests for index cursor comparison.
* WT-1981 Fix a signed 32-bit integer unpacking bug.
* WT-1982 Fix a bug where cached overflow items were freed too early.
* WT-1985 Integer packing and other fixes for Python and Java.
* WT-1986 Fix a race renaming temporary log files.
* WT-1989 Improve scalability of log writes.
* WT-1996 Fix a bug where we would free the fist update during a page rewrite on error.
* WT-1998 Fixes for indexes with some rarely used key/value formats.
* WT-2002 Fix a bug in verify where it would panic when encountering a corrupted file.
* WT-2007 Statically allocate log slot buffers to a maximum size.
* WT-2008 Fix a bug in recovery where a file create went missing.
* WT-2009 Apply tracked metadata operations post-commit.
* WT-2012 Fix a bug updating the oldest ID.
* WT-2013 Add gcc asm definitions for ARM64.
* WT-2014 Fix a bug in checkpoints where files could be flushed in the wrong order.
* WT-2015 Fix a bug in error handling during block open.
* WT-2017 Once an eviction server thread is started keep it running.
* WT-2019 Fix a logic bug tracking the maximum transaction ID in clean trees.
* WT-2020 Clarify checksum error failure messages.
* WT-2021 Fix a bug moving the oldest ID forward (introduced by WT-1967).
* WT-2022 Fix a bug not releasing a handle when opening a non-existent index cursor.
* WT-2023 Improve locking primitives: simplify read-write lock operations.
* WT-2029 Improve scalability of statistics.
* WT-2031 Log slot revamp.
* WT-2032 Improve next_random cursors to work with small trees.
* WT-2034 Improve shared cache balancing algorithm.
* WT-2035 For index cursors, keep track of which column groups need to be positioned.
* WT-2036 Make handle sweeps more robust.
* WT-2037 Only write a checkpoint to the log on close if it wasn't.
* WT-2038 Avoid long scans holding the handle list lock.
* WT-2039 Add error check and unit test for log records over 4 GB.
* WT-2042 Only try to evict tombstones that are visible to all readers.
* WT-2045 Don't let the eviction server do slow reconciliation, it can stall eviction.
* WT-2046 Add a statistic for search restarts.
* WT-2047 Fix a bug in the random generator code to handle an uninitialized state.
* WT-2050 Show size with memory allocation errors.
* WT-2053 Fix a bug in disk verify messages.
* WT-2056 Reorder btree cursor close so stats are maintained correctly.
* WT-2057 Remove the verbose configuration when writing the base configuration file.
* WT-2058 Fix an alignment bug in the mutex and log-slot code.
* WT-2059 Include non-aggregated stats in cursor results.
* WT-2062 Try harder to make progress on in-memory splits.
* WT-2064 Don't spin indefinitely waiting for the handle list lock in eviction.
* WT-2066 Update the oldest transaction ID from eviction.
* WT-2068 Protect discarding handles with the handle list lock.
* WT-2075 Fix a hang in logging with parallel workload.
* WT-2078 Fix a bug in error handling with statistics cursors.
* WT-2081 Make verify progress reporting less verbose.
* WT-2085 Run some of the log_server threads operations more frequently.
* WT-2086 Add a statistic to track when eviction finds a page that can be split.
* WT-2089 Relax restrictions on multiblock eviction and in-memory splits.
* WT-2090 Fix a bug in the Windows OS layer that swallowed error returns.
* WT-2092 Free log condition variables after all threads are joined.
* WT-2093 Use the C99 bool type to clarify when functions return true/false.
* WT-2094 Eliminate direct write and record unbuffered log records.
* WT-2097 Reintroduce immediate waits when forced eviction is necessary.
* WT-2100 Rename evict to evict_queue so it's easier to search for.
* WT-2101 Don't update the logging ckpt_lsn on clean shutdown.
* WT-2102 Fix a hang in log slot join when forcing log writes.
* WT-2105 Fix a bug where we could reference an invalid memory address if a file is corrupted on disk.
* WT-2108 Rework in-memory page rewrite support (WT_PM_REC_REWRITE).
* WT-2114 Make application eviction fairer.
* WT-2115 Don't skip truncated pages that are part of a checkpoint.
* WT-2116 Add diagnostic checks for stuck cache and dump the state.
* WT-2119 Don't evict clean multiblock pages with overflow items during checkpoints.
* WT-2126 Clean up if there is an error during splits.
* WT-2127 Deepen the tree more regularly to avoid wide internal pages.
* WT-2128 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.
* WT-2131 Switch to using a lock to control page splits to avoid starvation.
* WT-2132 Make debug dump function more robust to errors.
* WT-2134 Flush all buffered log records in log_flush.
* WT-2135 Fix log_only setting for backup cursor. Fix initialization.
* WT-2137 Check the sync_lsn is in the correct file before moving it forward.
* WT-2139 Fix a transaction visibility bug in read-uncommitted transactions.
* WT-2146 Improve performance when searching for short keys.
* WT-2148 Fix a compiler warning in encoding functions.
* WT-2153 Fix bug. Now we always need to start the log_server thread.
* WT-2154 Make btree dump safer.
* WT-2155 Remove last use of F_CAS_ATOMIC and the associated macro.
* WT-2156 Allow eviction workers to restart.
* WT-2157 Fix a bug where a failed page split could lead to incomplete checkpoints.
* WT-2159 Don't check the config twice in one path.
* WT-2162 Add null pointer check, needed after an index is dropped.
* WT-2164 Prevent another LSM chunk checkpoint while the first is still in progress.
* WT-2165 Stop using FALLOC_FL_KEEP_SIZE flag when pre-allocating files.
* WT-2167 Switch recovery to using an internal session.
* WT-2170 Protect the turtle file with a lock.
* WT-2174 Avoid the table list lock when creating a size only statistics cursor.
* WT-2178 In-memory storage engine support.
* WT-2179 Added decorator to mark txn13 as part of the --long test suite.
* WT-2180 Remove cursor.{search,search-near,remove} key size validation.
* WT-2182 When internal pages grow large enough, split them into their parents.
* WT-2184 Fix log scan bug when final record has many trailing zeros.
* WT-2185 Don't do reverse splits when closing a file.
* WT-2187 Add flag for flushing a slot.
* WT-2189 Update flag set and clear macros to be less error prone.
* WT-2191 In-memory disk image no longer the same as saved updates.
* WT-2192 Fix the logic around checking whether internal page is evictable.
* WT-2193 Handle read-committed metadata checkpoints during snapshot transactions.
* WT-2194 Java close callbacks should handle cursors that Java code did not open.
* WT-2195 Fix a hang after giving up on a reverse split.
* WT-2196 Fix error handling in size only statistics.
* WT-2199 Fix transaction sync inconsistency.
* WT-2203 Release an allocated page on error.
* WT-2204 Don't take a local copy of page->modify until we know the page is dirty.
* WT-2206 Change cache operations from flags to an enumeration.
* WT-2207 Track whenever a session has a handle exclusive.
* WT-2210 Raw compression fails if row-store recovery precedes column-store recovery.
* WT-2212 Add a "use_environment" config to ::wiredtiger_open.
* WT-2218 Add truncate stats.
* WT-2219 Enhancements to in-memory testing.
* WT-2220 Update time comparison macros.
* WT-2222 Add statistics for named snapshots.
* WT-2224 Track which deleted refs are discarded by a split.
* WT-2228 Avoid unnecessary raw-compression calls.
* WT-2237 Have threads publish unique transaction IDs so that updates always become visible
immediately on commit.
* WT-2241 Use a lock to protect transaction ID allocation.
* WT-2243 Don't keep transaction IDs pinned for reading from checkpoints.
* WT-2244 Trigger in-memory splits sooner.
* WT-2248 WT_SESSION::close is updating WT_CONNECTION_IMPL.default_session.
* WT-2249 Keep eviction stuck until cache usage is under 100%.
* WT-2250 Minor fix. Use SET instead of increment for stat.
* WT-2251 Free addresses when we discard deleted page references.
* WT-2253 Evict pages left behind by in-memory splits.
* WT-2257 Fixes when given multiple thread workload configurations.
* WT-2260 Avoid adding internal pages to the eviction queue
WiredTiger release 2.6.1, 2015-05-13
------------------------------------
The WiredTiger 2.6.1 release contains new features, minor API changes and bug
fixes.
New features:
* Move the sync configuration setting from WT_SESSION::begin_transaction to
WT_SESSION::commit_transaction. Change the setting from a boolean to a
string. See upgrading documentation for more information.
refs WT-1908
* Add the ability to flag a transaction to be flushed asynchronously on
commit via a new sync=[background] configuration option. Add a new
WT_SESSION::transaction_sync API to wait for asynchronous flushes to
complete.
refs WT-1908, #1943
* Add the ability to create a named in-memory snapshot via a new
WT_SESSION::snapshot API.
refs WT-1839
* Add the ability to disable write ahead logging at a per-table granularity.
Accessed via log=(enabled) configuration for WT_SESSION::create API.
Partial logging has serious implications for recovery, it should be used
with caution.
refs #1989
Other noteworthy changes:
* Fix several bugs related to syncing files for checkpoint durability.
refs WT-1944
* 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 SERVER-18014
* 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 SERVER-18460
* Fix a bug where WiredTiger could segfault in a workload with lots of cache
pressure.
refs WT-1937
* Fix a performance issue with WT_SESSION::compact, where it would spend a
long time compacting tables that had no space to reclaim.
refs WT-1953
* Fix a bug where accessing an overflow item could return WT_NOTFOUND
incorrectly. The issue was related to an invalid transaction visibility
check.
refs WT-1745
* 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 WT-1936
* 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
* Fix compiler warnings for LZ4 implementation on Windows.
refs #2006
* 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 WT-1943
* Fix a build problem where recent versions of RedHat would fail to detect
posix_memalign presence correctly.
refs WT-1951
* 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
* Fix a bug where we could flush the log file more often than required if
using auto-commit transactions.
refs WT-1949
* Fix a performance problem in LSM, where trees created with an initial bulk