forked from vicaya/hypertable
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES
754 lines (704 loc) · 39.9 KB
/
CHANGES
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
Version 0.9.2.7:
(2009-09-18)
[issue 333] Fixed data loss problem after recovery
[issue 332] Fixed problem in IntervalScanner due to delayed connection establishment
[issue 331] Fixed post-recovery split problem
[issue 323] Fixed problem that caused unnecessary work leading to thread exhaustion
Upgraded to Hadoop 0.20.1
Added support to run regressions on different DFSs
Updated tcmalloc to 1.4 for package build
Added CephBroker for Ceph DFS (http://ceph.newdream.net/)
Added RS_LOG_RECOVER entry to RSML after recovery to indicate log validity
Added htpkg utility script for building binary packages
Modified RSML to create new file on load; keep only last 10
Allow rpm build on Ubuntu/Debian machines
Added bin/src-utils/htbuild for building packages
Augmented htbuild to allow easy setup of dev environment
[issue 333] Fixed data loss problem after recovery
Added instrumentation to help track down bad BloomFilter creations.
Added test for out-of-order revisions; Added rangeserver_dump to Capfiles
Added RangeServer::dump() method to dump stats to file
Added DUMP command to rsclient
Modified shutdown command to first close before shutting down
Fixed stop-servers.sh; Added close command to shell
Fixed NPE in count_stored program
More fix to packaging on Mac OS X.
Issue 328: Fixed broken implementation of next_row in Thrift interface.
Changed Hypertable.RangeServer.MemoryLimit.Percentage default to 60
Improved SELECT documentation
Added packaging and version info related to CephBroker.
Fixed problem introduced in ht-env.sh due to bash discrepancies
Cleaned up doc generating targets
Made prerm always succeed to avoid broken package states
Some font tweaks so that the pages look decent in alternative platforms
Fixed memory corruption problem in ht_load_generator
Removed obsolete demo directory and cleaned up some space errors
Only print javac version if there is one in ht -v
Made system libs id more portable with ldd.sh
Worked around a compiler bug in gcc 4.2
Made kfs version optional in ht -v
Use i386 as 32-bit x86 suffix instead of i686 from uname
Updated README for thrift and packaging
Build thrift broker package first to preserve regular build tree states
Add a build type suffix to the package if it's not a release build
Print more component version info in ht -v
Added quick version info in bin/ht
Added option for kfs broker to print kfs version
Install scripting language bindings for thrift even if thrift is not installed
Added libthrift.jar to lib (in the source tree)
Added a few convenient commands for ht for shared lib diagnosis
Added script to figure out soname on supported platforms
Made cmake generate binary package index html
Moved libthrift.jar from lib to lib/java for consistency
Renamed LICENSE to LICENSE.txt to appease the PackageMaker
Added convenient method to check ldd under ht
Added some missing components for thrift broker package
Made starting server with logging options more robust
Avoid globbing hidden files (.svn etc.) in conf directory.
Made the FHSize script idempotent
Warn about prelinked shared libraries
Fixed conf packaging for thrift broker only build
Added HypertThriftConfig back into list of targets for ThriftBroker install.
Version 0.9.2.6:
(2009-08-15)
[issue 319] Fixed problem that prevented cell stores from getting written to METADATA Files column
[issue 315] Fixed scanner creation problem on restricted range CellStores
Fixed bug introduced by recent CellStoreScanner changes
Refactored startup scripts for robustness
Added support to create binary packages with minimal dependencies
Added markdown HQL documentation
Update HQL help text
Changed stop-servers.sh to invoke 'shutdown' via rsclient
Also added --no-hyperspace option to rsclient
Re-named rsclient to ht_rsclient
Changed Hypertable.Request.Timeout from 5 to 10 minutes
Output row and column instead of rowkey and columnkey for LDI header
Translate IP address to 127.0.0.1 when host resolves to 0.0.0.0
Made sequential-load/run.sh easier to run from command line.
Check returns of some system() calls to silence some compiler warnings.
Use objdump to get the correct SONAME for packaging
Included Capfile.* and removed 3+MB obsolete demo files from packaging
Added post install scripts to FHSize the directory layout
Fixed Schema::render_hql_create_table() to not included deleted columns and empty AGs
Cleaned up some noop code recently introduced in CellStoreScanner
Added TTL and MAX_VERSIONS to CREATE TABLE options
DESCRIBE TABLE no longer displays IDs by default; Added WITH IDS option
Updated README for binary packaging
Refactored init* functions from Config.h into Init.h
FindSIGAR: search for x86_64 as well as amd64
Prefer tcmalloc_minimal over tcmalloc
Added IN_MEMORY and BLOCKSIZE=<n> to CREATE TABLE options
Fixed bug in HT_DECODE_BYTES32
Version 0.9.2.5:
(2009-07-29)
Fixed memory leak in query path
Implemented purgeable CellStore indexes and bloom filters
Added mutator options to periodically flush buffers
Fixed bug in CommitLog that was causing some fragments to get dropped incorrectly.
Fixed bug in CommitLogReader caused by fragment queue iterator invalidation when log fragments are pushed to the back of the deque.
Rewrote Cell Cache/Store Scanner
Added MaintenancePrioritizerLowMemory used in low memory condition
Implemented mutator no flag sync feature and added regression test.
Fixed performance regression in IntervalScanner
[Issue 313] Added temporary fix and instrumentation for debugging.
Updated ruby tests for mutator API changes (The rescue block was masking exceptions)
Fixed load-exception test
Setting default commit log revision to TIMESTAMP_MIN instead of 0.
Fixed commit-log-gc test
Renamed ClientException::what to message for compatibility with most languages
Added hql_*2 APIs for returning cells as arrays in HQL queries (To support find_by_sql in HyperRecord)
Allow 'row' and 'column' for LDI hyperformat header
Regenerated files with updated thrift
Added --query-delay=<millis> option to load_generator
Got rid of some java warnings
Fixed KosmosBroker::pread to not modify current offset
Thrift related changes for periodic mutator flush
Rename a test label to follow the convention of the rest of the tests
Restart test servers automatically every time when make *tests
Added script to dump backtraces of running/hanging servers.
Allow VALGRIND to be defined as environment variable in start scripts.
Added missing php files for the no_log_sync flag.
Fixing occasional segfaults upon exit in some tests
Fixed occasional garbled version string.
Added system integration test which loads 5G of data, restarts the cluster and does a scan to verify the load.
Fixed infinite in-memory AccessGroup compaction loop
Lazy load bloom filters
Added rsclient 10x split/merge loop test
Applied changes to build with GCC 4.4.0
Fixed mutator log sync regression test and cleaning up dumplog.
Added Hypertable.HqlInterpreter.Mutator.NoLogSync property
Added command line switch --no-log-sync to hypertable cli for setting the aforementioned property
Fixed a couple of rare NullPointerExceptions in HdfsBroker
Added flags argument to ThriftClient open_mutator
Modified load generator tool to support no log sync and flush interval flags.
Fixed bug in commit log garbage collection that was caused some cells to be dropped.
Print out bad line number on LOAD DATA INFILE exception
Fixed ThriftClient-perl regression test
Send KEYS_ONLY clause over to RangeServer for processing server-side
Fixed test for Python Thrift module
Changed RangeServer.MemoryLimit.Percentage default from 80 to 70
Added size of block cache to memory tracker
Got rid of hardcoded 60 second DfsBroker.Timeout
Version 0.9.2.4:
(2009-05-25)
* Upgraded to Hadoop 0.20
* Added metadata-split test; Found and fixed deadlock
* Added --no-thriftbroker to start-all-servers.sh and include this option in integration tests
* Added property Range.MaximumSize (default is 3G)
* Renamed Range.MaxBytes to Range.SplitSize
* Updated to version 0.9.2.4; fixed some warnings
* Fixed performance regression in select command.
* Added CellStoreV1 with 64-bit support
* Fix for race condition in range size throttling
* Throttling is done by forcing the RangeServer::update call to wait for maintenance
completion on ranges which indicate that they are too big.
* Added API for getting hyperspace session from client object
* Checked in changes to Thriftbroker so that is works with recent Thrift version.
* Updated README to include location of new working thrift snapshot.
* Added support for selecting data into a compressed (gzip) file.
* Added regression test for select into gzipd file
* Added exit scope guard to cmd_select and cmd_load in HqlInterpreter so that the open output file is always closed.
* Refactored LoadDataSource class to make it an interface for different sources.
* Added derived classes LoadDataSourceFileLocal and LoadDataSourceStdin
* Added LoadDataSourceFactory to create LoadDataSource objects
* Added regression test for LoadDataSourceStdin
* Modified ServerLauncher to open output files in append mode.
* Added CellStoreFactory
* Added instrumentation to TableInfo
* Added CellStoreBlockIndex abstraction; Parameterized CellStoreScanner
* Fixed overflow problem with METADATA table
* Also fixed code to respect Hypertable.RangeServer.Range.MetadataMaxBytes
* Fixed serialization bug in Hyperspace client Protocol.
* Added support for attr_exists in the Hyperspace master for improved efficiency.
* Added regression test for attr_exists in BerkeleyDb test.
* Added Hyperspace attr_list API
* Added support for "attrlist" and "attrexists" in Hyperspace shell.
* Added Hyperspace shell regression tests for "attrlist" and "attrexists".
* Made LocalBroker::rmdir a little more robust
* Fixed problem that caused spurious "Hyperspace session expiration" errors
* Fixed memory corruption in CommitLogReder error handling logic
* [issue 246] Commit log not getting garbage collected
* Set URGENT bit on Hyperspace keepalive packets
* Set URGENT bit on some other RangeServer requests such as status and shutdown
* Fixed rowkey access group imbalance problem (causing ROW OVERFLOW errors)
* Added regression test RangeServer-rowkey-ag-imbalanc
* Got KosmosBroker compiling with latest KFS code
* Modified load_generator to make DataGenerator specification opitonal with --spec-file
* Fixed "this should never happen" problem in Maintenance scheduler
* Fixed split log garbage collection
* Makes hypertable build with gcc 4.3.3 on Ubuntu
* Fixed bug in scan limit feature and added regression test.
* Created load generator tool to test performance for synthetic update/query loads.
* Created DiscreteRandomGenerator to generate integer distributions.
* Created ZipfRandomGenerator to generate random integers from a Zipf distribution
* Modified existing Random class to add method to generate samples from uniform[0,1]
* Fixed excessive split problem that caused ROW OVERFLOW errors
* Fixed trailing comma problem in SHOW CREATE TABLE
* Removed redundant error message in scanner creation.
* Added Request throttling
* Made interval scanner initial creation asynchronous.
* Maintenance scheduler overhaul
* [issue 268] RangeServer methods now verify table name
* Added DataGenerator class for generating simulated data
* Added ht_generate_data program with example configs in examples/generate_data
* Added support for gcc 4.[345] in FindBoost for user compiled boost libraries.
* CellCache.PageSize default back to 512K; Fixed CellCachePool::memory_used()
* CellCachePool::memory_used() now returns total allocated from OS minus
* Free space remaining on current page
* Instrumenting CellStore and CellCache to track down suspected memory leak.
* Changed dump_stats method to dump out commit log and per access group memory usage stats.
* Hooked up dump_stats command to rsclient program.
Version 0.9.2.3:
(2009-03-26)
* Fixed problem of range getting loaded multiple times
* Fixed deadlock in AccessGroup::create_scanner (can't hold AG lock while accessing LiveFileTracker)
* [issue 240] Fixed CellCacheScanner logic to apply deletes correctly.
* Issue 255: Removed asserts for last errors to avoid ThriftBroker crashing due to bad user input.
* Upgraded to recent version of Thrift
* Improving scanner creation error reporting.
* Fixed intermittent HyperComm-Timeout test issue
* [issue 262] Fixed race condition between DROP TABLE and range recovery
* Fixed problem with split-recovery 3 & 7
* Eliminated circular reference to Range that was preventing Range destruction
* Issue 225: Fixed/improved table identifier and schema caching mechanism.
* Also fixed an issue in IntervalScanner that was silently ignoring errors.
* Switch to openssl for md5 in tests for better portability.
* Updated thrift documentation on Cell as array interface.
* Upgraded FindBoost to support 1.38
* Changed random_read_test to use new config/property system
* Added --flush option to random_write_test to flush after every write
* Changed default # of maintenance threads in RangeServer to min(2, number-of-cores)
* Changed seek+read to pread in HdfsBroker::PositionRead
* Fixed RangeServer to return TABLE_NOT_FOUND errors when table not found
* Issue 253: Alternative thrift interface for cells as arrays.
* Got rid of hardcoded 30000 ms timeouts in Master
* Added CommitLog.PruneThreshold.Max.MemoryPercentage (default 75)
* Changed AccessGroup.MaxMemory to 1GB by default
* Got rid of various Timeout properties in favor of just Hypertable.Request.Timeout
* Set most timeouts to 180ms
* [issue 258] Minor issue with incorrect time units in Thriftbroker timeout.
* Explicitly flush output streams at a few places until we don't have to _exit.
* Modified CellCache::memory_used() to return accurate info from underlying pool
* Fixed AccessGroup recovery problems for IN_MEMORY access groups
* Made CellCache memory pool page size configurable
* Introduced Hypertable.RangeServer.AccessGroup.CellCache.PageSize, default is 100KB
Version 0.9.2.2:
(2009-03-04)
* Added support for ALTER TABLE
* Addded Bloom Filter to CellStore
* Added calls to _exit in random_read/write benchmark programs to avoid static destruction
* [issue 251] Eliminated race condition between load_range and drop_table
* Upgraded to Hadoop 0.19.1
* [issue 245] Fixed segfault problem with splits and multiple AGs
* Updated thrift support for new namespace changes in the upstream library
* Added missing columns in the thrift scan spec
* Added more scanner/mutator examples for various languages
* Updated README link to the new recommended thrift snapshot
* Made CellStore::create API more generic
* Added row_len and column_qualifier_len in Key to save repeated strlens
* Enabled Bloom filter by default
* Fixed crash in TableMutator if global config properties are not initialized
* Added floating point support for properties
* Fixed broken each_cell and with_mutator methods in ruby thrift client
* Wrapped with_* methods in ensure block
* Added tests for scanner and mutator usage
* Issue 229: fixed some warnings with gcc 4.3+
* [issue 239] Made serverup respect --wait value in all places
* [issue 246] Fixed commit log GC problem
* Upgraded to Quicklz 1.4 and made quicklz the default compressor for CommitLog
* [issue 245] Use broker-assigned strictly increasing fds in KosmosBroker
* [issue 234] Made wait for Hyperspace respect supplied timeout
* [issue 127] Made Hyperspace server detect suspension and extend leases
* [issue 231] Fixed problem where CellStoreV0::add return value was getting ignored
* [issue 238] Fixed crash problem during RangeServer::replay_update
* [issue 235] Eliminated abort after split attempts fail
* [issue 236] Fixed hang problem on CentOS 5
* Fixed a range server restart issue by overwriting tmp explicitly
* Added wait logic in Master when root METADATA range server is down
* Fixed problem where drop_table was executed during a range split causing bad RSML sequence
* Got rid of an assert in the Comm layer on bad header
* Fixed problem where 'Files' column not updated properly after split
* Fixed problem where Gc.Interval was being treated as seconds
* Changed a number of programs to exit using _exit to avoid static destruction problems
* Fixed problem caused by invalid initializations of rssstat (Hiroyuki)
* Made stopping servers faster by waiting in parallel
* Leave RSML alone in case of errors
* Refactored bash specific commands in Capfile into a separate script
* Disable thrift broker API logging by default
* Issue 190: Reverted to the METADATA sanity check since RangeLocator is fixed
Version 0.9.2.1:
(2009-01-22)
* Added ulimit -c unlimited to the top of start-thriftbroker.sh
* Fixed NULL pointer dereference in LoadDataSource on bad input
* Fixing another Hyperspace deadlock (tied up reactor thread)
* Added logic to retry open of Hyperspace file /hypertable/tables/METADATA
* Make sure RangeServer gets killed in between runs of range split recovery test.
* Fixing deadlock in Hyperspace session lease renewal logic.
* Bumped up data size for split recovery tests to ensure crashes
* Remove local fs in clean-database.sh even if dfsbroker is not running
* Fixed initialization race condition in Master
* Commented out MetaLog-Master test
* Fixed version generation for testing with unsuccessful merges
* Fixed reactor thread deadlock in Hyperspace
* Fixing race condition in RangeServer recovery that was causing Hypertable master to crash.
* Eliminated DfsBroker test dependency on /usr/share/dict/words
* Eliminated reference to deprecated class TException in ruby client test
* Changed MasterClient to throw exceptions
* Fixed deadlock in Hyperspace
* Updated thrift API documentation
* make doc (and thriftdoc) now generate thrift api doc as well
* Fixed problem with LocalBroker where it was closing the wrong descriptor because of reuse
* Fixed a CommitLog serialization problem introduced with commit a58dce91b4059b022921287a43d7afb669380d0b
* Augmented multiple-maintenance-threads test to run a "SELECT *" in the background once per second
* Cleaned up logic that manages 'Files' column contents in AccessGroup
* Cleaned up error handling logic in many places
* Fixed split retry logic after exception
* Renamed CrashTest class to FailureInducer and added support for throwing exceptions
* Added 'RangeServer-load-exception' test to validate proper retry when load_range, invoked after split, throws an exception
* Added MicrosecondLayout class in Logger.cc for adding microseconds to timestamps in log messages
* Augmented the multiple-maintenance-threads test with a second dump to see if it's a transient error if the first run comes up short
* Also added a note in README about force restart test servers
* Fixed random segfaults upon exit in random_*_test and serverup
* Coding convention cleanups
* [issue 222] Fixed race condition in RangeServer::update introduced with SplitOff=high
* Cleaned up start up scripts
* Renamed top-level 'test' directory to 'tests' for some platforms
* CMake file changes to restart test servers automatically
* Cleaned up header files to reduce dependency on Config.h hence Version.h
* Fixed a few issues with FindBoost.cmake
* Added .gitignore for *.pyc
* Made some integration tests runnable via make test
* [issue 188] Added support for URGENT CommHeader flag
* Did some work on server-side request timeout
Version 0.9.2.0:
(2009-01-05)
* Fixed initialization problem that caused ConnectionManager thread to exit immediately
* Fixed build for boost 1.35+
* Issue 209: Fixed build with gcc 4.3+
* [issue 216] Fixed problem where clock skew was causing updates to be dropped
* [issue 201] Fixed deadlock recently introduced with support for SplitOff=high
* Made commit log more robust
* Added calls to FSDataOutputStream.sync() for FLUSH for HdfsBroker
* Fixed range server metalog reader
* Made RangeServer::load_range() call in Master::report_split() synchronous
* Fix for ReactorRunner to not use handle if de-registering its fd failed
* Fixed and expanded split-recovery integration test
* Worked around compiler (gcc 4.1 vs 4.0) quirks in overloading
* Fixed a bug in converting hypertable cell to thrift cell that was setting the
wrong column qualifiers in subsequent cells that don't have column qualifiers.
* [issue 193] Added table generation to CellStoreTrailer
* [issue 206] Fixed problem where CommitLog fd gets into bad state
* Fixed race condition in RangeServer::load_range (reported by Phoenix)
* Wrapped compaction logic in try/catch block to ensure maintenance bit gets cleared on exception (reported by Phoenix)
* Added support for Hypertable.CommitLog.SkipErrors (default is now ASSERT)
* Got rid of shutdown segfault in ReactorRunner by only printing LOG message if !shutdown
* Added support for Hypertable.RangeServer.CommitLog.Flush
* Got rid of Kfs.Broker.Flush property (in favor of Hypertable.RangeServer.CommitLog.Flush)
* Expanded split-recovery integration test
* Updated README to include a link to a working snapshot of thrift
* Fixed timeout usage in various language bindings
* Also added destructors (or similar mechanism) to close transport
* Fixed some javac dependency issues caused by package/path mismatch
* Added a boolean flag to allow Client::open_table to bypass cache
* Made spirit parsers thread safe
* Allow hypertable clients to take different config files
* Fixed custom validate issues with properties
* Added regression tests for Properties
* Fixed Hyperspace callback signature for 'master' file
* Added options to skip errors in metalogs (default throws)
* Updated regression tests for range server metalog
* FindBoost.cmake fix for Boost 1.37
* Changed type of Kfs.Broker.Flush from i32 to bool
Version 0.9.1.1:
(2008-12-23)
* Changed default value for Hypertable.RangeServer.CommitLog.RollLimit back to 100MB
* [issue196] Added escape/unescape logic to select and LDI
* Eliminated race condition that caused ASSERT with multiple maintenance threads
* Got rid of alignment logic in CellCachePool
* Changed 'range not found' error to info message in RangeServer::create_scanner
* Fixed seg fault during construction of 2nd Client object
* Fixed bug in MetadataRoot::get_next_files
* Added commit log gc integration test
* Fixed bug in commit log gc logic
* [issue162] Fixed pread bug in HdfsBroker
* Upgraded to Hadoop 0.19.0
* Fixed seg fault in Comm destruction sequence
* Fixed shutdown logic in ConnectionManager
* Changed default value for Hypertable.RangeServer.Range.SplitOff property to "high"
* Fixed problem with System::locate_install_dir for binaries running outside a normal installation
* Fixed some Timer problems introduced with millisecond change
* Plumbed debug() method through Filesystem class down into brokers
* Fixed seg fault in serverup on shutdown
* Fixed cmake FindKfs logic
* More build dependency cleanups (now truely independent of thrift)
* Finished support for Hypertable.RangeServer.Range.SplitOff=(high|low)
* Added aol-time-order integration test to validate proper functioning of 'high' mode
* Wait for all DFSBroker files to close before removing directories
* Made thrift support really (it was intend to be but not) optional
* Made version number more accurate as well.
* Fixed cyclic dependency between Common and AsyncComm libraries
* Fixed some Capfile issues; added test/integration
* Reorganized the toplevel test directory a bit
* Added a doc/README that points people to hypertable.org
* Removed ThriftBroker startup dependency on /hypertable/tables/METADATA hyperspace file
* Also fixed hang/crash problem in Comm::~Comm
Version 0.9.1.0:
(2008-12-08)
* Added a simple thrift broker for hypertable services
* Fixed build issues and warnings on 64-bit CentOS
* Use CMAKE_DL_LIBS instead of -ldl for portability
* Coding convention cleanups
* Fixed a race condition in Master::report_split
* Added CellCache memory pool + fixed memory accounting
* Made Hyperspace command shell utility reuse Hypertable command shell code.
* Fixed crash with > 1 maintenance threads
* Fixed ROW_OVERFLOW regression
* [issue 177] Changed all integers written into Hyperspace into ASCII strings
* Added better diagnostic output for checksum mismatch errors
* Changed all timeouts from seconds to milliseconds
* Upgraded Comm header
* Fixed crash in INSERT command with columns with no qualifiers
* Added (optional) timer to Hyperspace and Master clients
* Fix for issue#170.
* Hypertable Client now contains a RangeLocator
* Refactored Config to allow easy composition of component policies
* Adopted SIGAR for cross-platform system info/stat
* Added MT-safe/faster code to parse ip address
* Issue 156: simple row/range level transaction support
* Removed extra connection manager for METADATA table used by Master
* Preserve column family order in HQL schema
* Refactored out HqlInterpreter from HqlCommandInterpreter
* Added support for RAII idiom with ScopeGuard and friends
* Added a generic Locker for any object with lock/unlock methods
* Added HT_ASSERT as a short cut of HT_EXPECT(expr, Error::FAILED_EXPECTATION)
* Worked around StringUtil::vform problem in log4cpp 1.0 for certain platforms.
* Refactored handle_event a bit to reduce code duplications
* Fixed a few (nread < 0) cases, where nread is size_t.
* Added System::rand64()
* Updated installation instructions based on feedbacks
* Cleanups for gcc 4.3+
* Made HypertableJavaComponents a cmake target
* Refactored FindKfs.cmake
* Added a few missing ", or any later version." to GPL license blurbs
* Fixed a situation where some cellstores are not GC'ed
* Made some metalog entry errors non-fatal
* Fixed column family TTL feature and added regression test for it. (Issue #160)
Version 0.9.0.12:
(2008-11-08)
* Fixed TableMutatorScatterBuffer hang problem
* Fixed bug in MergeScanner and added optimized MergeScanner for scans with m_return_deletes
* Upgraded to Hadoop 0.18.2
* Fixed random read performance regression
* Fixed descriptor leak in HdfsBroker
* [issue 166] Fixed problem of bad disk usage accounting which caused SEGFAULT
* Added log rotation via cronolog
* Added option for dump_metalog to copy a metalog
* Bump the stream log buffer size to 4KB for longer backtrace
* Added --wait option for serverup serverup dfsbroker had been timing out too soon
* Fixed default timestamp value on the KeySpec contructor args
* Added more detailed error info for unexpected metalog entries
* Fixed a race condition in update while local recovery is in progress
* Removed old code that was causing last_table_id resetting to 0 upon Master restart.
* Use thread-safe gethostbyname_r on linux (was causing SEGFAULT)
Version 0.9.0.11:
(2008-09-30)
* Fixed problem with commit log garbage collection
* Overhaul: cleaned up AccessGroup compaction logic
* Overhaul: separated timestamp from revision number
* Overhaul: eliminated timestamp order restriction
* Overhaul: cleaned up RangeServer::update()
* Check for bad column name in ScanSpec and throw exception
* Upgraded to Hadoop 0.18.1
* Add support for qualified columns in LOAD DATA INFILE
* Got SELECT ... INTO FILE working again
* Updated README to include log4cpp patch instructions
* Fixed NULL pointer deref in BMZ on uncompressible data
* [issue154] Fixed problem in MergeScanner causing max_versions probs
* Fixed retry logic inside IntervalScanner
* Added a RangeServer::get_statistics() method and rsstat tool (Donald)
* Fixed a number of issues getting KFS broker up and running
* Modified Capfile to allow a dfs= variable override to specify which dfs.
* Modified scripts to only test for servers on localhost
Version 0.9.0.10:
(2008-08-14)
* Fixed range loss problem when can't write RSML during split
* Fixed Hyperspace to retry txn upon BDB deadlock exception
* Fixed a bug in RangeServer::schedule_log_cleanup_compactions that prevents log cleanup compactions from happening. (thanks Donald)
* Made Hyperspace client throw exceptions
* Changed epoll to level triggered for < 2.6.17, edge triggered for newer
* Fixed problem in HdfsBroker which caused it to close all handles
* Fixed problem with accept() logic in edge-triggered mode
* Fixed problem in FindBerkeleyDB.cmake also fixed link problem in dfsclient
* Got rid of all calls to rand(), etc. More work on random benchmark tools
* Moved rand startup wait out of RangeServer and into Capistrano
* Added full deprecation warnings to build
* Eliminated infinite loop in AsyncComm; Fixed HdfsBroker shutdown
* Upgraded TableReader::next(...) output values so that not only key but also column family and qualifiers are known to the reducer
* Initial checkin of freebase example
Version 0.9.0.9:
(2008-08-03)
* Fixed Linux epoll problems
* Removed deadlock in Master::drop_table()
* Modified shutdown scripts to wait for service shutdown before returning
* Changed default listen() pending connection backlock from 64 to 1000
* Modified RangeServers to wait random interval [0..2] secs before starting
Version 0.9.0.8:
(2008-08-01)
* Added schema cloning (CREATE TABLE x LIKE y) (thanks to bithckr)
* Fixed a potential macro redefinition in compat-c.h (thanks to Leon Mergen)
* Clarified some documentation based on user feedback
* Added fix for ignored 'try' in Hyperspace try_lock (thanks to liaoguangxian)
* Added CELL expressions
* Fixed bad reference to freed Hyperspace Session object
* ported mapreduce connector to the newer API
* Changed Hypertable::Client constructor to accept install dir
* Got TableScanner working with multiple row intervals
* Overhauled HQL WHERE clause (scan predicate)
* Modified ScanSpec to include vector of row ranges; Added ScanSpecBuilder
* Set TOS field on Hyperspace UDP packets to Minimize delay
* Fixed deadlock issues in RangeServer during replay
* Added drop_table RangeMetaLog entry
* Overhauled launch scripts; Upgraded to Hadoop 0.17.1
* Avoid using fs->length(path) to judge whether a RangeServerMetaLog file is empty, which doesn't work well in Hadoop DFS.
* Fixed a bug in Read/PositionRead due to misuse of readFully().
Version 0.9.0.7:
(2008-07-18)
* Got RangeServer recovery working
* Added shutdown command to hypertable command interpreter
* Fixed ApplicationQueue spin problem (c++ & java) plus other bugs
* Merged in Mateusz Berezecki's Hadoop MapReduce contribution
* Added random_write_test
* Made Comm a singleton as intended
* Added explicit Hyperspace session destroy mechanism
* Changed epoll usage from level to edge triggered
* Added option to preserve key columns as regular columns
* Upgraded to latest KFS code
* Check for and throw exception on bad scan spec (start > end)
* Added ROW_UNIQUIFY_CHARS option to LOAD DATA INFILE
* Added utility to dump metalog
* Added convenient constructor (host, port) for DfsBroker client.
* Added version check in case of shared libraries
* Added Hypertable::Config to make init easier
* Added a regression test to ensure that deletes are retroactively applied
* [issue 120] Fixed problem with MergeScanner not properly handling deletes
* [issue 118] Fixed segfault on empty .tsv line; Fixed output supress flags
* [issue 119] Fixed problem where end timestamp was getting ignored
* Doc: added notes on shared library install usage.
* Cleanup build documentation
* Avoid hash_value redefintion with boost 1.35+
* Build: link libraries cleanup
* [issue 115] Fixed Hyperspace Berkeley DB deadlock problem
* Fixed Master error handling logic in create_table
* Fixed link problem on XCode 2.4
* Added RangeServer metalog classes and tests
* Use native 'exists' instead of 'get' for BDB FS 'exists' calls.
* Made BDB FS do basic recovery on init
* Added support to print "pretty functions" in exception trace
* Changed TableIdentifierCopy etc. to *Managed for what they really are
* Added some documentation for tricky part of DynamicBuffer
* Updated serialization test for str16 and bytes32
* remove HT_TRY_DECODE in favor of HT_TRY
* Added script to find & replace with perl regex
* Coding convention/guideline sweep
Version 0.9.0.6:
(2008-06-14)
* Ported Hyperspace to Berkeley DB
* Fixed core dump in HdfsBroker when --verbose is not set
* [issue 110] Fixed scanner infinite looping on large objects
* Fixed buffer overrun problem in Hyperspace keepalive message
* Cleaned up TableMutator retry logic
* Made cmake 2.6 compatible.
Version 0.9.0.5:
(2008-06-03)
* Made size of location cache configurable; set default to 1M
* [issue 67] fixed bad free in comm layer
* Fixed log fragment GC problem
* Fixed race condition in LocalBroker::close()
* Fixed doxygen comments; Updated Doxyfile to exclude boost fix dir
* [issue 99] Added TableMutator::retry()
* [issue 18] Added support for '~' expansion in hypertable
* [issue 10] Implemented proper serialization for Serialization.h functions
* [Issue 104] Fixed hang problem in HdfsBroker
* Changed serialization byte ordering to little endian
* Purge old cells to avoid repeated deletion of old files
* Various portability fixes
* [Issue 71] Fixed lagging scanners referencing GC'd CellStore problem
* Added release callback to MergeScanner
* Added GC support for issue 71 (race condition while compaction/scanning)
* Added Filesystem::rename and friends
* Added flush option to Filesystem::append and friends
* [issue 41] Fixed CellCache::purge_deletes problem
* Got RANGESERVER_ROW_OVERFLOW error propagating back to client
* Upgraged to Hadoop 0.16.4
* Overhauled Client library to send errors back as deltas
* Added mutex class to accomodate changes in boost 1.35+
* Fixed ambiguous operator+ overload problem
* Created new StaticBuffer class which is now used in all internal APIs
* Added destructor to Buffer class
* Cleaned up DynamicBuffer and Buffer
* Rearranged for better branch prediction in encoded_length_vi*
* Switched to a more reliable signal facility (sigaction)
* Got rid of some warnings on release build
* Fixed compile problem on Ubuntu
* Got rid of ByteString32 in favor of vint ByteString
* Moved Serialization.h and its tests to Common
* Added decode_i8 and regression tests.
* Refactored BufferT and ExtBufferT usages to use Common/Buffer
* Changed format of buffer passed to replay_update();
* Added portable serialization code:
* Added support for exception chaining.
* Changed append API to reflect the ownership change of write buffer
* Added include for stricter compilers (e.g. gcc 4.1.2)
* Changed TableIdentifierWrapper to TableIdentifierCopy
* Got rid of the EncodedLength/Encode/Decode functions from Types.h
* Implemented RangeServer::replay_update
* Modified RangeServer::load_range to include RangeState object
* Fixed some build problems on mac (because of newly added dependencies)
* Enhanced LOAD DATA INFILE to accept alt. header file and zipped files
* Fixed free memory used problem and got rid of warnings
* Added REQUEST_TIMEOUT exception to client; upgraded to Hadoop 0.16.3
* Added wrapper for high res time
* Added timeouts to TableMutator and TableScanner
* Changed RangeServerClient to throw exceptions
* Made scan spec public fields naming consistent with the rest of the API
* Logging cleanup; now redirectable; flushable; added stream macros
* Made ReferenceCount noncopyable
* Fixed a leaking corner case in Hypertable::format
* Added RangeState and re-organized Range split logic
* Added TableIdentifierWrapper and RangeState
* Allow keys to be built from multiple columns in LOAD DATA INFILE
* Fixed segfault caused by race condition in sampleClient
* Commit log re-write
* Fixed HdfsBroker::rmdir to return FileNotFound
* Moved header checksum to end of header; Improved split row selection
* FS interface cleanup. Use exception where appropriate.
* Cleaned up BlockCompressionHeader code
* Fixed bug in startup scripts related to hadoop upgrade
* Fixed initialization order problem in RangeServer
* Cleaned up CommitLog types and added doxygen comments
* Added smart pointers to MetaLog readers
* Finished adding exists method to DfsBroker client
* Added exists() method to Filesystem interface; Upgraded to Hadoop 0.16.2
* Fixed regressions due to the license preamble change
* Wrap long lines in license preambles.
* Delete cruft in attic along with the attic
* Modified ApacheLogParser to handle .gz files
* Put time formatting in a function for apache_log example
* Changed ApacheLogEntryT to ApacheLogEntry
* Cleaned up and improved apache_log example
* Got rid of error codes in Client API in favor of exceptions
* Types name change; Comment header update
* First cut of meta log API
* More build cleanups: move generic definitions outside gcc macros; support gcc 3.4.x
* Use our faster implementations by default and rename wikipedia based impls to *_wp
* Reorganized Range split logic for new MetaLog implementation
* Fixed bug that was causing default CellStore compressor to be "none"
* Changed so SplitPoint and SplitDir are passed through Master
* Got rid of split_timestamp
* Dropped timestamp from location string
* Handle large files on 32-bit systems.
* Fixed problem loading .tsv files > 2GB on Linux
* Changed argument of RangeServer::drop_table to TableIdentifierT
* Fixed IN_MEMORY loading problems (issue #66)
* Fixed initialization problem in hypertable command interperter
* Added replay commands to rsclient; Added RangeServer::drop_range()
* Implemented RangeServer::replay_start and replay_commit
* Got rid of boost program_options hack
* Build and install cleanups.
* Ported rsclient to new command line shell framework
* Abstracted command line shell into class that can be shared
* Fixed a few small (seemingly innocuous) issues in AsyncComm
* Fixed memory tracking
* Added complete TableIdentifier into CommitLog entry headers
* Created TableInfoMap class to prepare for "replay" map
* Added plumbing for RangeServer replay methods
* Modified ScannerTimestampController to store Timestamp objects
* Fixed FindBoost.cmake on Redhat 4u3
* Changed CMakeLists.txt files to facilitate use of other malloc packages
Version 0.9.0.4:
(2008-02-27)
* Added code to check boost and apply fixes if necessary
* Fixed issue #47 Cleaned up DROP_TABLE handling in RangeServer and Client
* Fixed issue #63 Dropped updates under concurrent loading
* Fixed race condition in Master between server join & register
* Fixed RangeServer hang after TIMESTAMP_ORDER_ERROR error
* Fixed performance bug that was hurting random reads
Version 0.9.0.3:
(2008-02-19)
* Fixed bug in MergeScanner where deletes were being wrongly applied
* Detect and report "supplied timestamps not strictly increasing" error
* Added testing options KEYS_ONLY and RETURN_DELETES to SELECT statement
* Removed unused tests and associated data to bring source tarball below 20MB
* Modified ApacheLogParser to return non-coliding timestamps for requests that happened in the same second
Version 0.9.0.2:
(2008-02-12)
* Made all timestamps interpreted as GMT (issue #56)
* Catch table scanner / mutator exceptions in Master GC logic (issue #55)
* Fixed Master abort when last_table_id attribute of /hypertable/master not found
* Modified kosmosBroker properties to be capitalized camel case
Version 0.9.0.1:
(2008-02-07)
* Fixed compile errors on Ubuntu, FC5 and FC6
* Got rid of AsyncComm regression dependency on /usr/share/dict/words
* Fixed critical GC bu that deleting good MEATADATA rows
* Fixed FindBoost.cmake to work if only .so files are installed