forked from cruppstahl/upscaledb
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog
2049 lines (1574 loc) · 84.7 KB
/
ChangeLog
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
Jun 04, 2017 - chris ---------------------------------------------------
release of upscaledb-2.2.1
- New API for bulk inserts
- Fixed several bugs
- Fixed compilation for C++11
- Fixed crc32 failure when reusing deleted blobs spanning multiple pages
- Fixed a bug when recovering duplicates that were inserted with one of the
UPS_DUPLICATE_INSERT_* flags
- Minor improvements for the journalling performance
- Fixed compilation issues w/ gcc 6.2.1 (Thanks, Roel Brook)
- Improved performance of duplicate keys
- Performance improvements when appending keys at the end of the database
- The flags UPS_HINT_APPEND and UPS_HINT_PREPEND are now deprecated
- Removed the libuv dependency; switched to boost::asio instead
- Performance improvements when using many duplicate keys (with a
duplicate table spanning multiple pages)
- Committed transactions are now batched before they are flushed to disk
- The integer compression codecs UPS_COMPRESSOR_UINT32_GROUPVARINT and
UPS_COMPRESSOR_UINT32_STREAMVBYTE are now deprecated
- The integer compression codec UPS_COMPRESSOR_UINT32_MASKEDVBYTE is now a
synonym for UPS_COMPRESSOR_UINT32_VARBYTE, but uses the MaskedVbyte
library under the hood.
- Added Mingw compiler support (thanks, topilski)
- License is now Apache Public License 2.0
Jan 05, 2017 - chris ---------------------------------------------------
o Added .NET wrappers for bulk operations (thanks, mjmckp)
Dec 28, 2017 - chris ---------------------------------------------------
o Fixed compilation issues w/ gcc 6.2.1 (Thanks, Roel Brook)
Oct 31, 2017 - chris ---------------------------------------------------
o Added Mingw compiler support (thanks, topilski)
Oct 05, 2016 - chris ---------------------------------------------------
o Performance improvement: Moved the "MaxKeyCache" from upscaledb-mysql to
the upscaledb core
o The flags UPS_HINT_APPEND and UPS_HINT_PREPEND are now deprecated
Sep 01, 2016 - chris ---------------------------------------------------
o Fixed compiler error related to inline assembly on gcc 4.8.x
Aug 10, 2016 - chris ---------------------------------------------------
o Added Java support for ups_db_bulk_operations
Aug 08, 2016 - chris ---------------------------------------------------
o Added a new API function for bulk operations (ups_db_bulk_operations in
ups/upscaledb_int.h)
Jul 13, 2016 - chris ---------------------------------------------------
o Fixed bug when ups_cursor_overwrite would overwrite a transactional record
instead of the (correct) btree record
Jun 17, 2016 - chris ---------------------------------------------------
o Removed the libuv dependency; switched to boost::asio instead
Jun 3, 2016 - chris ---------------------------------------------------
o Performance improvements when using many duplicate keys (with a
duplicate table spanning multiple pages)
Jun 2, 2016 - chris ---------------------------------------------------
o Fixed another bug in the duplicate key consolidation
Jun 1, 2016 - chris ---------------------------------------------------
o Fixed a bug in the duplicate key consolidation
May 29, 2016 - chris ---------------------------------------------------
o issue #80: fixed streamvbyte compilation for c++11
May 26, 2016 - chris ---------------------------------------------------
o Committed transactions are now batched before they are flushed to disk
May 04, 2016 - chris ---------------------------------------------------
o issue #79: fixed crc32 failure when reusing deleted blobs spanning
multiple pages
Apr 27, 2016 - chris ---------------------------------------------------
o Fixed a bug when recovering duplicates that were inserted with one of the
UPS_DUPLICATE_INSERT_* flags
Apr 26, 2016 - chris ---------------------------------------------------
o The integer compression codecs UPS_COMPRESSOR_UINT32_GROUPVARINT and
UPS_COMPRESSOR_UINT32_STREAMVBYTE are now deprecated
o The integer compression codec UPS_COMPRESSOR_UINT32_MASKEDVBYTE is now a
synonym for UPS_COMPRESSOR_UINT32_VARBYTE, but uses the MaskedVbyte
library under the hood.
Apr 19, 2016 - chris ---------------------------------------------------
o Improved the journalling performance
Mar 20 2016 - chris ---------------------------------------------------
release of upscaledb-2.2.0
Mar 17, 2016 - chris ---------------------------------------------------
o issue #75: fixed compilation for platforms w/o SSE (thanks, MrApe)
Mar 14, 2016 - chris ---------------------------------------------------
o issue #74: fixed ups_import for databases with record numbers
(thanks, mjmckp)
Mar 01 2016 - chris ---------------------------------------------------
o ups_cursor_get_record_size: size is now uint32_t* instead of uint64_t*
Feb 29 2016 - chris ---------------------------------------------------
o issue #71: fixed growing journal file (thanks, Hitoshi Yonemichi)
Feb 26 2016 - chris ---------------------------------------------------
o Removed UPS_PARTIAL and all related functionality
o Removed UPS_FLUSH_TXN_IMMEDIATELY - it was deprecated and not used
o UPS_DIRECT_ACCESS is now deprecated and only used internally
o ups_info, ups_dump and ups_export now work for UPS_TYPE_CUSTOM databases
Feb 25 2016 - chris ---------------------------------------------------
o Added ups_at_exit cleanup function to release statically allocated
resources
Feb 23 2016 - chris ---------------------------------------------------
o Replaced (old) UQI functions with uqi_select and uqi_select_range, and a
SQL-ish query function
o Records are now typed, see UPS_PARAM_RECORD_TYPE
Feb 06 2016 - chris ---------------------------------------------------
release of upscaledb-2.1.13
Jan 28, 2016 - chris ---------------------------------------------------
o Deprecated the flag UPS_FLUSH_WHEN_COMMITTED
Jan 26, 2016 - chris ---------------------------------------------------
o Removed a bad assert and fixed a bug in ups_cursor_move (thanks, Rafal
Czaja)
Jan 21, 2016 - chris ---------------------------------------------------
o issue #47: fixed bad assert in ups_cursor_move
Jan 21, 2016 - chris ---------------------------------------------------
o issue #62: ups_info prints wrong value for "max record size"
Jan 21, 2016 - chris ---------------------------------------------------
o issue #66: return with error if a database is modified by a committed
transaction which was not yet flushed to disk (thanks, Balazs Bamer)
Jan 21, 2016 - chris ---------------------------------------------------
o issue #67: fixed broken installation path and other "ham"/"hamsterdb"
references (thanks, Wouter Hager)
Jan 18, 2016 - chris ---------------------------------------------------
o Changed the .NET/C# delegate interface for custom compare functions; the
delegate has to perform the marshalling now (see unittests for a
sample)
Jan 13, 2016 - chris ---------------------------------------------------
o issue #64: fixed segfault when recovering a database with a custom
compare function; deprecated ups_db_set_compare_func, use
ups_register_compare/UPS_PARAM_CUSTOM_COMPARE_NAME instead
Dec 16, 2015 - chris ---------------------------------------------------
o Fixed bug when deleting duplicates from fixed length records
Dec 04, 2015 - chris ---------------------------------------------------
o Fixed compilation if libcrypto is not installed
Dec 03, 2015 - chris ---------------------------------------------------
o issue #59: configure now finds correct boost_major_version for boost 1.58
(thanks, Rainmaker52)
Nov 13, 2015 - chris ---------------------------------------------------
o Now restoring the "active blob page" after recovery to reduce the
file size.
Nov 09, 2015 - chris ---------------------------------------------------
o UPS_ENABLE_RECOVERY is now an alias for UPS_ENABLE_TRANSACTIONS
Nov 06, 2015 - chris ---------------------------------------------------
o issue #55: correctly handling error condition if mmap fails
Nov 05, 2015 - chris ---------------------------------------------------
o issue #60: files are now truncated after a database was deleted with
ups_env_erase_db (thanks, vevova)
Oct 17, 2015 - chris ---------------------------------------------------
release of upscaledb-2.1.12
Oct 05, 2015 - chris ---------------------------------------------------
o Removed support for MSVC 2010
Oct 02, 2015 - chris ---------------------------------------------------
o Enabled use of integer compression for duplicate keys
o Removed lzo compression
o Removed configure option --disable-compression; compression is now
always enabled
o UPS_ENABLE_RECOVERY/HAM_ENABLE_RECOVERY is now deprecated, use
UPS_ENABLE_TRANSACTIONS instead
Oct 01, 2015 - chris ---------------------------------------------------
o Remote URL identifier ham:// was changed to ups://
Sep 29, 2015 - chris ---------------------------------------------------
o Removed ups_key_get_approximate_match_type
o Renamed ups_db_get_key_count to ups_db_count
Sep 23, 2015 - chris ---------------------------------------------------
o Merging the functionality of hamsterdb pro
o Changed license to GPL 3.0
o Removed ham_is_pro, ham_is_pro_evaluation
o Rebranding: renamed namespace prefix "ham_" to "ups_", "HAM_" to "UPS_"
o Renamed ham_set_errhandler to ups_set_error_handler
o Removed the flag UPS_FIND_NEAR_MATCH
o Renamed the flag UPS_FIND_EXACT_MATCH to UPS_FIND_EQ_MATCH
o Removed ups_db_get_error
Aug 26, 2015 - chris ---------------------------------------------------
o issue #58 (.NET) - fixed crash in ham_strerror
Jun 19, 2015 - chris ---------------------------------------------------
o Fixing a bug during recovery where modified pages were not recreated
o Reducing ftruncate() system calls
Jun 04, 2015 - chris ---------------------------------------------------
o Fixing compilation with --disable-remote
Jun 03, 2015 - chris ---------------------------------------------------
o Make sure that journal is correctly cleared after recovery
May 26, 2015 - chris ---------------------------------------------------
o Make sure that errors are not ignored when creating remote cursors
(thanks, Ciprian Niculescu)
May 07, 2015 - chris ---------------------------------------------------
release of hamsterdb-2.1.11
May 06, 2015 - chris ---------------------------------------------------
o C++ API no longer throws exceptions in destructors (thanks, Michael Möllney)
o issue #49: fixed approx. matching issue with remote server
May 04, 2015 - chris ---------------------------------------------------
o issue #53: fixed race condition on Win32
Apr 06, 2015 - chris ---------------------------------------------------
o issue #52: fixed cursor iteration w/ txns and approx matching
o issue #50: removing problematic debug checks
Apr 04, 2015 - chris ---------------------------------------------------
o Add InsertRecNo method to hamsterdb-dotnet (thanks, mjmckp)
Mar 06, 2015 - chris ---------------------------------------------------
release of hamsterdb-2.1.10
Feb 18, 2015 - chris ---------------------------------------------------
o When reading records from mmapped storage, a pointer into the storage
is returned and the record data is no longer copied
Feb 16, 2015 - chris ---------------------------------------------------
o The page cache eviction was moved to a background thread
Feb 03, 2015 - chris ---------------------------------------------------
o Default compilation flag is now -O3
Jan 23, 2015 - chris ---------------------------------------------------
o Fixed FreeBSD compilation errors (thanks, Heping Wen)
Jan 22, 2015 - chris ---------------------------------------------------
o Added Cursor.TryFind to hamsterdb-dotnet
(thanks, mjmckp <[email protected]>)
Jan 12, 2015 - chris ---------------------------------------------------
o issue #46: fixed segfault in approx. matching (thanks, Joel
Jacobson)
Jan 09, 2015 - chris ---------------------------------------------------
o issue #45: fixed segfault in Journal recovery (thanks, Michael
Moellney)
Jan 02, 2015 - chris ---------------------------------------------------
o issue #44: approx. matching returned the wrong key (thanks, Joel
Jacobson)
Dec 30, 2014 - chris ---------------------------------------------------
o issue #43: fixed segfault when flushing transactions (thanks, Joel
Jacobson)
Dec 15, 2014 - chris ---------------------------------------------------
o Implemented ham_cursor_get_record_size() for remote access
Dec 12, 2014 - chris ---------------------------------------------------
o Deprecated HAM_RECORD_NUMBER (use HAM_RECORD_NUMBER64 instead);
introduced a new flag HAM_RECORD_NUMBER32 for 32bit record numbers
Dec 05, 2014 - chris ---------------------------------------------------
o Added a new parameter HAM_PARAM_POSIX_FADVISE (thanks, Thomas Fähnle)
Nov 28, 2014 - chris ---------------------------------------------------
o Fixed large file support on linux (thanks, Thomas Fähnle)
Nov 27, 2014 - chris ---------------------------------------------------
o Removed dependency to malloc.h
o issue #42: ham_cursor_find returned wrong key w/ approx. matching and
transactions
Nov 21, 2014 - chris ---------------------------------------------------
o Fixed compilation error on OSX (thanks, Daniel Lemire)
Nov 20, 2014 - chris ---------------------------------------------------
o Fixed compilation error on debian Wheezy, gcc 4.7.2, 32bit (thanks,
Thomas Fähnle)
Nov 17, 2014 - chris ---------------------------------------------------
o The macro HAM_API_REVISION is now deprecated; use HAM_VERSION_* instead
Nov 16, 2014 - chris ---------------------------------------------------
o The github wiki is now linked into documentation/wiki
Nov 08, 2014 - chris ---------------------------------------------------
release of hamsterdb-2.1.9
Nov 08, 2014 - chris ---------------------------------------------------
o C# API now supports approx. matching
o C# auto-cleanup of resources no longer can cause segmentation faults
Nov 01, 2014 - chris ---------------------------------------------------
o Removed outdated project files of MSVC2008, added MSVC2013
Oct 15, 2014 - chris ---------------------------------------------------
o Removed custom ham_* typedefs; now using types from stdint.h
Oct 14, 2014 - chris ---------------------------------------------------
o Fixed a failing test from the erlang package
Oct 10, 2014 - chris ---------------------------------------------------
o Unused pages are now freed with madvice; minor performance improvements
when large files are mmapped
Oct 06, 2014 - chris ---------------------------------------------------
o Improved record storage and reduced size for fixed length records
o Minor performance improvements for hola_sum
o ABI change: removed deprecated fields from ham_record_t
Sep 22, 2014 - chris ---------------------------------------------------
o Fixed an assert when resizing lists with an UpfrontIndex (nodes with keys
of variable lengths or duplicate records)
Sep 18, 2014 - chris ---------------------------------------------------
o Major rewrite of the recovery logic; increased test coverage
o Added new parameter HAM_PARAM_JOURNAL_SWITCH_THRESHOLD to control
the size of the journal files
Sep 11, 2014 - chris ---------------------------------------------------
o issue #39: recovery can fail with IO_ERROR if journal file is incomplete;
fixed (thanks, Michael Moellney)
o issue #38: temporary transactions and recovery (w/o transactions)
created huge logfiles; fixed (thanks, Michael Moellney)
Sep 10, 2014 - chris ---------------------------------------------------
o issue #34: some names violated reserved identifiers, fixed (thanks,
Markus Elfring)
Aug 28, 2014 - chris ---------------------------------------------------
o Bugfix: fixed-length records were sometimes not inserted correctly
with HAM_DUPLICATE_INSERT_FIRST
Aug 26, 2014 - chris ---------------------------------------------------
o Introduced two new makros to initialize ham_key_t and ham_record_t
structures
o The file structure has been completely reorganized. It is described
in documentation/source/structure.txt.
o Splitting unittests/cursor.cpp in two files to avoid out-of-memory
errors during compilation on weak VM's
Aug 21, 2014 - chris ---------------------------------------------------
o Fixed segfault when opening a file with HAM_ENABLE_RECOVERY (and
without HAM_ENABLE_TRANSACTIONS)
Jul 15, 2014 - chris ---------------------------------------------------
o hamserver now also compiles against libuv 0.10.25 (in addition to 0.11.*)
Jul 14, 2014 - chris ---------------------------------------------------
o Added new parameter to set a file size limit - HAM_PARAM_FILE_SIZE_LIMIT
Jul 10, 2014 - chris ---------------------------------------------------
release of hamsterdb-2.1.8
Jul 01, 2014 - chris ---------------------------------------------------
o The database format no longer tries to be endian agnostic; the database
is now stored in host endian format. The endian agnostic code was broken
anyway, and I had no hardware to test it.
Jun 30, 2014 - chris ---------------------------------------------------
o Added a Python API
o PageManager state now also persists the page id with (likely) gaps
for new blobs
o Added new API ham_cursor_get_duplicate_position
o ham_db_get_error is now deprecated
o header files no longer include winsock.h to avoid conflicts with winsock2.h
on Windows platforms
Jun 30, 2014 - chris ---------------------------------------------------
o Both btree layouts have been completely rewritten; PAX KeyLists
can now be used in combination with duplicate RecordLists, and variable
length KeyLists can now be used in combination with PAX RecordLists
May 13, 2014 - chris ---------------------------------------------------
o Adding the new "hola" API - hamsterdb analytical functions for COUNT,
SUM, AVERAGE etc. See ham/hamsterdb_ola.h for the declarations
May 06, 2014 - chris ---------------------------------------------------
o Avoiding Btree splits if keys are appended (HAM_HINT_APPEND)
May 02, 2014 - chris ---------------------------------------------------
o The internal communication with the remote server now uses a different
protocol which is faster than google's protobuffer
Apr 25, 2014 - chris ---------------------------------------------------
o Fixing a performance regression in 2.1.7 - large fixed-length keys
created too many page splits, even if they were stored as extended
keys
Apr 08, 2014 - chris ---------------------------------------------------
o PAX layout now uses linear search for small ranges; this improves search
performance by 5-10%
Apr 05, 2014 - chris ---------------------------------------------------
o Removed the ham_get_license API (and serial.h)
Apr 04, 2014 - chris ---------------------------------------------------
o issue #33: upgraded to libuv 0.11.22
o Removed the API ham_get_license
Mar 26, 2014 - chris ---------------------------------------------------
release of hamsterdb-2.1.7
Mar 24, 2014 - chris ---------------------------------------------------
o Switched from GPL license to Apache Public License 2.0
Mar 23, 2014 - chris ---------------------------------------------------
o Added a unittest for issue #32
o Removed AES encryption; will be available as a commercial add-on.
Mar 21, 2014 - chris ---------------------------------------------------
o Fixed a journalling bug; partial records were not logged correctly
Mar 10, 2014 - chris ---------------------------------------------------
o Added flag HAM_DISABLE_RECOVERY; disables recovery/journal when used in
combination with HAM_ENABLE_TRANSACTIONS
Mar 09, 2014 - chris ---------------------------------------------------
o Committed Transactions are no longer flushed immediately, but can be
buffered and flushed together with other committed Transactions
Mar 04, 2014 - chris ---------------------------------------------------
o Removed the txn parameter from ham_db_check_integrity()
Feb 26, 2014 - chris ---------------------------------------------------
o Fixed a freelist bug; the persistent freelist state was sometimes not
correctly initialized
Feb 25, 2014 - chris ---------------------------------------------------
o ham_db_check_integrity() has an additional parameter for flags; currently
supported is HAM_PRINT_GRAPH, which prints a btree to a graph file for
"dot". Only if HAM_DEBUG is enabled.
Feb 21, 2014 - chris ---------------------------------------------------
o The Btree SMOs were completely rewritten. Insert SMOs (splits) now happen
on the "way down" instead of returning. Erase SMOs no longer shift but
merge only; this reduced 90% of the erase complexity.
Feb 21, 2014 - chris ---------------------------------------------------
release of hamsterdb-2.1.6
Feb 21, 2014 - chris ---------------------------------------------------
o issue #30: very small cache sizes cause file size explosion
Feb 20, 2014 - chris ---------------------------------------------------
o The log was merged with the journal; the journal now stores
redo-information for physical changes. To improve performance, the journal
buffers its data before flushing to disk.
Feb 08, 2014 - chris ---------------------------------------------------
release of hamsterdb-2.1.5
Feb 06, 2014 - chris ---------------------------------------------------
o Bugfix: cache purges always purged one page only; now purges as many as
required
Feb 05, 2014 - chris ---------------------------------------------------
o Fixed several regressions that crept in when 2.1.4 was released
Feb 04, 2014 - chris ---------------------------------------------------
o Bugfix: if a Database is closed in an in-memory Environment, the Database
name was still occupied and the Database could not be re-created.
Jan 28, 2014 - chris ---------------------------------------------------
o The freelist was replaced and scales much better now
o Removed the parameter HAM_PARAM_MAX_DATABASES - the number of databases
is now always set to the maximum limit.
Jan 08, 2014 - chris ---------------------------------------------------
o Removed HAM_CACHE_STRICT, HAM_CACHE_FULL and the related functionalities
Jan 05, 2014 - chris ---------------------------------------------------
release of hamsterdb-2.1.4
Jan 01, 2014 - chris ---------------------------------------------------
o Default Btree node layout now also stores duplicate keys inline, even
if they're > 8 bytes (previous versions stored duplicate keys in a
separate blob, which required lots of additional I/O)
Nov 23, 2013 - chris ---------------------------------------------------
o Default Btree node layout for variable length keys can now store
fixed length records inline if they're small enough (and if duplicate
keys are disabled)
Nov 22, 2013 - chris ---------------------------------------------------
o Default Btree node layout for variable length keys and duplicate keys
was completely rewritten and now uses an up-front index in the
node
o C++ API: Can now specify HAM_RECORD_USER_ALLOC when retrieving keys
with ham_db_find
Nov 05, 2013 - chris ---------------------------------------------------
o Removed HAM_DISABLE_VARIABLE_KEYS, HAM_ENABLE_EXTENDED_KEYS; they're no
longer required. Introduced HAM_KEY_SIZE_UNLIMITED for unlimited/variable
length keys (the default)
Oct 31, 2013 - chris ---------------------------------------------------
o ham_bench now can generate keys from /usr/share/dict/words
Oct 25, 2013 - chris ---------------------------------------------------
o Added HAM_PARAM_RECORD_SIZE to specify a fixed record size; if it's small
enough, the records are stored in the leaf and not in a separately
allocated blob
Oct 22, 2013 - chris ---------------------------------------------------
release of hamsterdb-2.1.3
Oct 18, 2013 - chris ---------------------------------------------------
o Introduced a new Btree node layout for fixed length keys types which
is better optimized for CPU caches and more compact then the
legacy format
Oct 14, 2013 - chris ---------------------------------------------------
o Fixed invalid memory access when using mmap on pagesizes which are not
a power of two
Oct 11, 2013 - chris ---------------------------------------------------
o Fixed a btree corruption during SMOs (internal shifts after underflow)
Oct 5, 2013 - chris ---------------------------------------------------
o Integrating "ham_bench" tool for benchmarking and testing
Sep 23, 2013 - chris ---------------------------------------------------
o Introducing "types" for the btree; the default type is HAM_TYPE_BINARY,
additional types are HAM_TYPE_CUSTOM, HAM_TYPE_UINT32 etc. The types
influence the internal btree layout.
o ham_db_set_compare_func is only allowed if the key type is HAM_TYPE_CUSTOM;
otherwise, an error is returned
Sep 13, 2013 - chris ---------------------------------------------------
o The btree now has relaxed rules regarding merging/shifting after delete;
if a node is less than 20% full it will trigger an SMO (previously:
50%), and shifts only happen if both pages have a sufficiently
different size
o For consistency reasons, some macros were renamed:
HAM_PARAM_CACHESIZE -> HAM_PARAM_CACHE_SIZE
HAM_PARAM_PAGESIZE -> HAM_PARAM_PAGE_SIZE
HAM_PARAM_KEYSIZE -> HAM_PARAM_KEY_SIZE
Sep 01, 2013 - chris ---------------------------------------------------
o issue 27: No longer enabling AES encryption if openssl headers
are missing
Aug 27, 2013 - chris ---------------------------------------------------
o Renamed HAM_DISABLE_VAR_KEYLEN to HAM_DISABLE_VARIABLE_KEYS to improve
consistency
o Renamed HAM_ENABLE_DUPLICATES to HAM_ENABLE_DUPLICATE_KEYS to improve
consistency
Aug 25, 2013 - chris ---------------------------------------------------
o Persistent freelist statistics data is now endian clean
Aug 22, 2013 - chris ---------------------------------------------------
o Cleaned up the configure.ac script
o Cleaned up the file format; the new format is no longer compatible.
See the README file for more information and how to upgrade.
o Cleaned up the configure.ac script
Aug 23, 2013 - chris ---------------------------------------------------
release of hamsterdb-2.1.2
Aug 21, 2013 - chris ---------------------------------------------------
o Fixed spurious failures of the java unittests
Aug 06, 2013 - chris ---------------------------------------------------
o issue #25: tcmalloc is now disabled on MacOS
Jul 24, 2013 - chris ---------------------------------------------------
o Rewrote client/server implementation
- using libuv instead of mongoose
- using tcp instead of http (and removing the dependency to libcurl)
Jul 21, 2013 - chris ---------------------------------------------------
o Added new configure option --without-tcmalloc
o issue #23, #25: Fixed linking problems regarding tcmalloc_minimal.so
(Thanks, Johnathan Conley and brancaleone)
Jul 19, 2013 - chris ---------------------------------------------------
o issue #24: Fixed compilation problem on MacOS (Thanks, Johnathan Conley)
Jul 15, 2013 - chris ---------------------------------------------------
o ham_env_close now truncates the file size and removes unused pages at the
end of the file
Jun 27, 2013 - chris ---------------------------------------------------
o issue #17: configure.in checks now for (hopefully) correct boost version
Jun 26, 2013 - chris ---------------------------------------------------
o Added tracking of internal metrics, exported via ham_env_get_metrics
(declared in ham/hamsterdb_int.h)
Jun 25, 2013 - chris ---------------------------------------------------
o added support for AES encryption
Jun 23, 2013 - chris ---------------------------------------------------
release of hamsterdb-2.1.1
Jun 14, 2013 - chris ---------------------------------------------------
o Removed internal (but exported) functions ham_env_get_device,
ham_env_set_device
Jun 10, 2013 - chris ---------------------------------------------------
o Improved integration of tcmalloc, removed ham_env_set_allocator
Jun 05, 2013 - chris ---------------------------------------------------
o A small semantic change: when retrieving partial records with
ham_db_find or ham_cursor_find, the partial size is now stored in
record.partial_size and the original size is stored in record.size.
Previously, the partial size was stored in record.size.
May 19, 2013 - chris ---------------------------------------------------
o Merged various MacOS related fixes (thanks, Johnathan Conley)
May 10, 2013 - chris ---------------------------------------------------
o Fixed build if remote functionality is disabled (i.e. because protobuffer
or libcurl is missing)
Mar 02, 2013 - chris ---------------------------------------------------
o Fixed JDK include paths on MacOS (Thanks, Mark Sutheran)
Feb 28, 2013 - chris ---------------------------------------------------
release of hamsterdb-2.1.0
Jan 04, 2013 - chris ---------------------------------------------------
o Extended keys are now disabled by default; use HAM_ENABLE_EXTENDED_KEYS to
enable them
Dec 26, 2012 - chris ---------------------------------------------------
o In-Memory Environments now support Transactions
Dec 25, 2012 - chris ---------------------------------------------------
o Renamed the C++ namespace from "ham" to "hamsterdb"
Dec 23, 2012 - chris ---------------------------------------------------
o Removed the deprecated flag HAM_NOT_INITIALIZED
Dec 20, 2012 - chris ---------------------------------------------------
o Removed the deprecated flag HAM_LOCK_EXCLUSIVE
o Renamed ham_check_integrity to ham_db_check_integrity
Dec 19, 2012 - chris ---------------------------------------------------
o Removed the flag HAM_USE_BTREE; it was not required.
Dec 18, 2012 - chris ---------------------------------------------------
o Removed HAM_FAST_ESTIMATE and improved performance of ham_db_get_key_count
if use of duplicate keys are disabled
Dec 18, 2012 - chris ---------------------------------------------------
o Added two new tools: ham_export to export a database into a binary format,
ham_import to create an Environment from the exported data (or to merge
the data into an existing Environment). ham_export is linked statically.
ham_export/ham_import will provide an upgrade path for newer hamsterdb
versions.
Dec 17, 2012 - chris ---------------------------------------------------
o Applied patch with many automake/autoconf related cleanups (thanks,
Daniel Richard G. <[email protected]>)
Dec 13, 2012 - chris ---------------------------------------------------
o Updated mmap support; mmap is now about 30% faster compared to the previous
implementation
Dec 07, 2012 - chris ---------------------------------------------------
o Minor performance improvement if HAM_ENABLE_FSYNC and HAM_ENABLE_TRANSACTIONS
Dec 06, 2012 - chris ---------------------------------------------------
o Removed the deprecated flags HAM_HINT_UBER_FAST_ACCESS, HAM_HINT_RANDOM_ACCESS
and HAM_HINT_SEQUENTIAL
Dec 05, 2012 - chris ---------------------------------------------------
o Changed interface of ham_cursor_create from
ham_cursor_create(ham_db_t *db, ham_txn_t *txn, ham_u32_t flags,
ham_cursor_t **cursor);
to
ham_cursor_create(ham_cursor_t **cursor, ham_db_t *db, ham_txn_t *txn,
ham_u32_t flags);
o Renamed several functions to improve consistency:
ham_get_error -> ham_db_get_error
ham_set_prefix_compare_func -> ham_db_set_prefix_compare_func
ham_set_compare_func -> ham_db_set_compare_func
ham_find -> ham_db_find
ham_insert -> ham_db_insert
ham_erase -> ham_db_erase
ham_get_key_count -> ham_db_get_key_count
ham_get_parameter -> ham_db_get_parameter
ham_get_env -> ham_db_get_env
ham_close -> ham_db_close
Dec 02, 2012 - chris ---------------------------------------------------
o Removed ham_env_new, ham_env_delete, ham_new, ham_delete and modified
the parameters of ham_env_create, ham_env_open, ham_env_create_db
and ham_env_open_db
o Removed ham_open, ham_open_ex, ham_create, ham_create_ex; creating an
Environment is now mandatory
Nov 21, 2012 - chris ---------------------------------------------------
o Renamed HAM_DB_READ_ONLY to HAM_WRITE_PROTECTED
o Removed ham_env_create; renamed ham_env_create_ex to ham_env_create
o Removed ham_env_open; renamed ham_env_open_ex to ham_env_open
o Removed deprecated flags HAM_DISABLE_FREELIST_FLUSH, HAM_LOCK_EXCLUSIVE,
HAM_IN_MEMORY_DB
o Refactored ham_get_parameters, ham_env_get_parameters and HAM_PARAM_*:
- HAM_PARAM_GET_FLAGS -> renamed to HAM_PARAM_FLAGS
- HAM_PARAM_GET_FILEMODE -> renamed to HAM_PARAM_FILEMODE
- HAM_PARAM_GET_FILEMODE -> renamed to HAM_PARAM_FILEMODE
- HAM_PARAM_MAX_ENV_DATABASES -> renamed to HAM_PARAM_MAX_DATABASES
- HAM_PARAM_GET_KEYS_PER_PAGE -> renamed to HAM_PARAM_MAX_KEYS_PER_PAGE
- Reduced list of options for ham_get_parameters; see hamsterdb.h
- Removed HAM_PARAM_DBNAME
o Removed ham_get_flags; use ham_get_parameters instead
o Removed the HAM_DAM_* flags
Nov 20, 2012 - chris ---------------------------------------------------
o Removed ham_cursor_find_ex; renamed ham_cursor_find to ham_cursor_find_ex
Nov 19, 2012 - chris ---------------------------------------------------
o Removed ham_enable_encryption and the file filters; this function was
not really used
o Removed ham_enable_compression and the record filters; this function was
not really used
o Removed ham_get_keycount_per_page; the keycount can still be retrieved
with ham_get_parameter(... HAM_PARAM_GET_KEYS_PER_PAGE...)
o Removed sorted duplicates; they anyway did not work in combination with
Transactions. They will be fully implemented at a later stage.
o Removed ham_flush; use ham_env_flush instead
o Renamed HAM_WRITE_THROUGH to HAM_ENABLE_FSYNC
Nov 25, 2012 - chris ---------------------------------------------------
release of hamsterdb-2.0.5
Nov 16, 2012 - chris ---------------------------------------------------
o Now linking against libtcmalloc_minimal if it's installed
Nov 15, 2012 - chris ---------------------------------------------------
o Performance improvement: insertion of a new record number no longer modifies
the header page
Oct 25, 2012 - chris ---------------------------------------------------
o (win32) Now creating file with attribute FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
(thanks, Jake)
Sep 27, 2012 - chris ---------------------------------------------------
o issue #16: Fixed log file switching for temporary Transactions
Sep 25, 2012 - chris ---------------------------------------------------
o Fixed recovery process for temporary Transactions
Aug 30, 2012 - chris ---------------------------------------------------
o Removed HAM_PARAM_GET_STATISTICS; ham/hamsterdb_stats.h is no longer
public, and the functions are no longer exported
Aug 27, 2012 - chris ---------------------------------------------------
o Renamed HAM_IN_MEMORY_DB to HAM_IN_MEMORY
Aug 12, 2012 - chris ---------------------------------------------------
o The internal C++ implementation was moved into namespace "ham" in order
to avoid conflicts with other applications
Aug 01, 2012 - chris ---------------------------------------------------
o (dotnet) Fixed invalid memory access when using Parameter[] in
env.CreateDatabase or env.OpenDatabase (Thanks, Jason)
Jul 23, 2012 - chris ---------------------------------------------------
release of hamsterdb-2.0.4
Jul 21, 2012 - chris ---------------------------------------------------
o (java) Fixed race condition when closing Cursors (thanks, Mark S.)
Jul 20, 2012 - chris ---------------------------------------------------
o Fixed issue 8: Fixed data corruption when retrieving a record returns
HAM_BLOB_NOT_FOUND (thanks, Artem)
Jul 18, 2012 - chris ---------------------------------------------------
o Fixed several bugs (mainly related to misplaced asserts) when performing
recovery
Jul 10, 2012 - chris ---------------------------------------------------
o Fixed crash when reusing a page from the cache that was not correctly
initialized (thanks, Jason)
o Fixed crash when HAM_ENABLE_RECOVERY w/o HAM_ENABLE_TRANSACTIONS (thanks,
Peter)
Jul 08, 2012 - chris ---------------------------------------------------
o Fixed issue 7: approximate matching did not return the correct key
(thanks, Artem)
o Fixed MacOS compilation problem
(thanks, Jason P.)
Jun 24, 2012 - chris ---------------------------------------------------
release of hamsterdb-2.0.3
Jun 20, 2012 - chris ---------------------------------------------------
o Added project files for Windows MSVC 2010
Jun 8, 2012 - chris ---------------------------------------------------
o fixed linker error when libboost_thread-mt.lib is installed (instead of
libboost_thread.lib) (thanks, foxb)
o issue #6: fixed compilation error in OSX Lion
o fixed HAM_INTERNAL_ERROR when creating database with
HAM_ENABLE_RECOVERY but without HAM_ENABLE_TRANSACTIONS (thanks, Peter)
Apr 23, 2012 - chris ---------------------------------------------------
o configure.in now checking for pread and pwrite (for some reason the
previous test were missing)
o fixed fsync's when flushing to disk, making recovery more robust
Apr 22, 2012 - chris ---------------------------------------------------
o The legacy database format of hamsterdb 1.0.9 and older is no longer
supported
Apr 21, 2012 - chris ---------------------------------------------------
o Fixed a bug in recovery; recovery is now more robust, and there are more
fsync's if HAM_WRITE_THROUGH is enabled
Apr 25, 2012 - chris ---------------------------------------------------
release of hamsterdb-2.0.2
Apr 24, 2012 - chris ---------------------------------------------------
o Fixed a buffer overrun in the freelist
Apr 14, 2012 - chris ---------------------------------------------------
o hamsterdb is now thread safe. The boost c++ library is now required for
building
Mar 14, 2012 - chris ---------------------------------------------------
o enabled approx matching for ham_cursor_find
Mar 11, 2012 - chris ---------------------------------------------------
o hamsterdb is now thread-safe
o When using Transactions, the key->data and record->data pointers
will point into memory managed by the Transaction, not by the
Database
Feb 18, 2012 - chris ---------------------------------------------------
release of hamsterdb-2.0.1
Feb 15, 2012 - chris ---------------------------------------------------
o ham_find() now supports approximate matching w/ transactions enabled
Feb 07, 2012 - chris ---------------------------------------------------
o fixed bug where HAM_ONLY_DUPLICATES was ignored when used in a
Transaction (thanks, Mark Ruijter from lessfs)
Feb 06, 2012 - chris ---------------------------------------------------
o added a public macro HAM_API_REVISION to allow users to programmatically
distinguish between new and old interface of ham_txn_begin
o win32: fixed build issue if HAM_DISABLE_COMPRESSION is defined (thanks,
Andy Thalmann (http://www.softdev.ch))
Feb 05, 2012 - chris ---------------------------------------------------
o the device structure (ham_device_t) was C++-ified; if you use
ham_env_set_device then you will have to change your code
o fixed wrong version check when loading databases from 1.1.x
o now using the native Win32 API for os_pwrite and os_pread (thanks,
Andy Thalmann (http://www.softdev.ch))
o added new parameter HAM_PARAM_LOG_DIRECTORY to specify the directory
where the log file and the journal files are stored
Jan 19, 2012 - chris ---------------------------------------------------
release of hamsterdb-2.0.0
o Changed interface ham_txn_begin, also for Wrapper APIs
Jan 05, 2012 - chris ---------------------------------------------------
o when recovery or transactions are enabled then for most operations the
physical log is no longer required; this reduces I/O and improves
performance
Dec 14, 2011 - chris ---------------------------------------------------
o dotnet: integrated the files, updated the interface
Dec 11, 2011 - chris ---------------------------------------------------
o java: integrated the files, updated the interface
o wince: moved to /contrib directory
Nov 26, 2011 - chris ---------------------------------------------------
release of hamsterdb-2.0.0rc3
Nov 20, 2011 - chris ---------------------------------------------------
o improved performance for duplicates, transactions and cursors
Nov 10, 2011 - chris ---------------------------------------------------
o fixed the remaining 3 known issues after lots of refactoring
Oct 11, 2011 - chris ---------------------------------------------------
release of hamsterdb-2.0.0rc2
Oct 09, 2011 - chris ---------------------------------------------------
o fixed a bug when erasing extended keys; sometimes this would try to
load extended keys which do not exist (thanks, Andi Weber)
Oct 02, 2011 - chris ---------------------------------------------------
o added a new function ham_cursor_get_record_size; retrieves the record
size of the current item
Sep 27, 2011 - chris ---------------------------------------------------
o the cache size is now 64bit, allowing caches > 4 GB
Aug 25, 2011 - chris ---------------------------------------------------
o configure.in: AM_INIT_AUTOMAKE requests now version 1.10 (thanks, Ger)
o enabled large file support for 32bit linux (thanks, liheyuan)
Jul 25, 2011 - chris ---------------------------------------------------
release of hamsterdb-2.0.0rc1
Jun 02, 2011 - chris
o the ./configure switch --enable-internal is now obsolte and enabled by
default
Apr 18, 2011 - chris
o HAM_SORT_DUPLICATES is now disabled if Transactions are enabled.
In such cases hamsterdb will return HAM_INV_PARAMETER.
Dec 29, 2010 - chris
o Approx. matching is now disabled if Transactions are enabled.
In such cases functions will return HAM_INV_PARAMETER.
o Direct access (HAM_DIRECT_ACCESS) is now disabled if Transactions are
enabled. In such cases functions will return HAM_INV_PARAMETER.
In previous versions Direct Access was anyway not possible in combination
with Transactions, because Transactions were not possible with In-Memory
Databases.
Dec 27, 2010 - chris
o when using HAM_PARTIAL in combination with Transactions, HAM_INV_PARAMETER
is now returned. In previous versions of hamsterdb, this combination was
allowed. If you need this implemented then please tell me.
Dec 26, 2010 - chris
o when using HAM_PARTIAL and the record->size is <= 8 then error
HAM_INV_PARAMETER is returned. In previous versions, this combination
returned false results. Reason is because hamsterdb uses a compressed,
efficient storage for such records, and they do not support partial
access.
Sep 15, 2010 - chris ---------------------------------------------------
release of hamsterdb-1.1.6
Oct 11, 2011 - chris ---------------------------------------------------
release of hamsterdb-2.0.0rc2
Oct 09, 2011 - chris ---------------------------------------------------
o fixed a bug when erasing extended keys; sometimes this would try to
load extended keys which do not exist (thanks, Andi Weber)
Oct 02, 2011 - chris ---------------------------------------------------
o added a new function ham_cursor_get_record_size; retrieves the record
size of the current item
Sep 27, 2011 - chris ---------------------------------------------------
o the cache size is now 64bit, allowing caches > 4 GB
Aug 25, 2011 - chris ---------------------------------------------------
o configure.in: AM_INIT_AUTOMAKE requests now version 1.10 (thanks, Ger)
o enabled large file support for 32bit linux (thanks, liheyuan)
Jul 25, 2011 - chris ---------------------------------------------------
release of hamsterdb-2.0.0rc1
Jun 02, 2011 - chris
o the ./configure switch --enable-internal is now obsolte and enabled by
default
Apr 18, 2011 - chris
o HAM_SORT_DUPLICATES is now disabled if Transactions are enabled.
In such cases hamsterdb will return HAM_INV_PARAMETER.
Dec 29, 2010 - chris
o Approx. matching is now disabled if Transactions are enabled.
In such cases functions will return HAM_INV_PARAMETER.
o Direct access (HAM_DIRECT_ACCESS) is now disabled if Transactions are
enabled. In such cases functions will return HAM_INV_PARAMETER.
In previous versions Direct Access was anyway not possible in combination
with Transactions, because Transactions were not possible with In-Memory