Update README.md
[voldemort.git] / release_notes.txt
bloba52a0d2e9b6bd36a8a234c5ca380fc4f153f1953
1 Release 1.10.26 8/30/2017
2 * Improved some BnP-related logging.
3 * The RO server is now returning old async op IDs idempotently.
4 * Added retries for soft errors in AdminClient#waitForCompletion.
5 * Fixed issue with too long commands in Windows 10 bat files.
7 Release 1.10.25 7/26/2017
8 * Updated Gobblin dependency from 0.10.0 to 0.11.0
10 Release 1.10.24 7/21/2017
11 * Added optional CDN feature to the BnP pipeline.
12 * Fixed the client shell's list parsing logic.
13 * Fixed a connection leakage due to unclosed adminClient.
14 * Improved failure detection in HA mode.
15 * Increased javac version to 1.7
16 * Fixed various minor problems.
18 Release 1.10.23 10/11/2016
19 * Added some extra logging when OOM occurs in BnP.
20 * Made admin connection/socket timeout configurable in BnP.
21 * Changed the DeleteAllFailedFetchStrategy so that it affects all nodes.
22 * BnP now kills an async job that it is waiting on if that job times out.
23 * Tweaked the AdminClient's currentVersion so that it is not stale.
24 * BnP now retries fetches when cluster.xml is stale.
26 Release 1.10.22 9/20/2016
27 * Fixes BnP resilience to colo failures
28 * Fixes indentation issue with python client
29 * Adds 'readonly.omit.port' server configuration
30 * Fixes data cleanup job
31 * Fixes discrepancy on data retention configuration
33 Release 1.10.21 8/10/2016
34 * Fix admin request timeout issue because HDFSFailedlock takes long time.
35 * Provide chunk size suggestion for BnP jobs.
37 Release 1.10.20 7/28/2016
38 * Reduce the server log level on missing stores
40 Release 1.10.19 7/25/2016
41 * getAll Quota support
42 * meaningful log message, when fetch is disabled
43 * Run BnP store verification in parallel.
44 * Auto Detect Node Id from Cluster.xml
45 * Validate Node Id for Host Match from Cluster.xml
46 * Auto update Node Id on cluster.xml update
47 * Generate SSH script for running on all hosts in cluster.xml (experimental)
48 * Concurrent Modification Exception on InsufficientOperationlNodes Exception
49 * Log time taken in verifyOrAddStore
50 * Serialize rest-port on cluster.xml
52 Release 1.10.18 6/28/2016
53 * get/set/delete quota takes QuotaType instead of string
54 * Fix NPE when diffMessage is called from Build and Push
55 * Missing store, gives a recognizable error message.
56 * vadmin tool increased timeout
57 * Logging changes for BnP
58 * AdminClientPool for pooling adminClients.
59 * AdminClient change to detect if cluster is modified
60 * Parallel operation support for AddStore/SetQuota
61 * Fetch single store for BnP Store Creation
62 * Utility method to query only a single store
63 * update store validates the store definition change
65 Release 1.10.17 6/1/2016
66 * Add additional debug info to client registry
67 * Fix Admin Connection/Socket timeout from Bnp
68 * Add idle connection timeout feature for Voldemort clients.
69 * Don't use Properties(properties) constructor in Voldemort
71 Release 1.10.16 5/23/2016
72 * Lower the node connection errors log to debug level
73 * Cleanup the HA state in HDFS directory during online state transition
74 * Option to fetch single store in bootstrap
75 * Fix Client shell reports exception on closing
76 * Print more info when cluster metadata check fails
77 * Route the system store to current zone only
78 * Reliable way to set the quota for stores.
79 * Add retry for Hdfs isFile call
80 * Remove support for num.chunks in the Build and Push
81 * ReplaceNode CLI test enhancement
82 * Include quota check in metadata check
83 * DataCleanup job picks up latest information for stores
84 * Gradle task tar/zip fixes
86 Release 1.10.15 4/18/2016
87 * Set-Metadata null Version error
88 * Multi module gradle build for voldemort
89 * The AdminClient's verifyOrAddStore is vulnerable to connectivity issues.
91 Release 1.10.14 3/29/2016
92 * Report metrics for Scheduler and Async Service
93 * better error message thrown when pushing to a store with storage quota 0
94 * Resolved concurrency push conflict
95 * Added a configurable flag on the BnP side that can disable store creation
96 * Fixed build.gradle
97 * Fixed a NPE thrown by the StorageEngineService on startup with views
98 * Added server state checking when bringing it back
99 * Fixed memory leaking issue in Hdfs FileSystem when fetching
100 * AdminClient updates version after updating the data
101 * Added second checksum validation when receiving data
102 * Added more more aggregatedmetrics for HDFS data
104 Release 1.10.13 on 2/8/2016
105 * Unit Test fixes for ClientRequestExecutorPool
106 * ShadowJar with Protobuf dependency
107 * HdfsFetcher error message cleanup
109 Release 1.10.12 on 1/11/2016
110 * Fixed and cleaned up HadoopStoreWriterTest.
111 * Fixed HDFS directory size measurement in HdfsFetcher.
113 Release 1.10.11 on 1/8/2016
114 * Fixed RO data directory diverged on 1.10.7
115 * Fixed BnP assigns keys into correct partitions, resulting in data loss
116 * Fixed unknown.host unit test failure
117 * Fixed HadoopStoreWriter for multiple chunks bug
118 * Added Defensive code for BnP Partition reducer when it sees incorrect data
120 Release 1.10.10 on 1/6/2016
121 * AdminClient constructor cleanup and respects the timeout of ClientConfig
123 Release 1.10.9 on 1/5/2016
124 * Fixed a regression affecting Read-Only servers introduced in 1.10.7.
125 * Fixed a unit test which failed on Java 8.
126 * Made vadmin.sh more resilient to node failures.
128 Release 1.10.8 on 1/4/2016
129 * Validate compression when a store is pushed via BnP
130 * BnP HA pushes fail, when fetch is disabled on a node.
131 * Enhanced Meta check which compares the file name and sizes
132 * Wait for Scheduler Service to shutdown, before proceeding with shutdown
133 * JMX errors during register/unregister for RO Stores
135 Release 1.10.7 on 12/15/2015
136 * Introduced 'build.primary.replicas.only' mode in BnP.
137 * Performance tool can now load custom workloads from external files.
138 * Fixed a bug where the server would fail to start if Bouncy Castle is
139   absent from the classpath.
140 * Admin operations improvements:
141   * Better error message when server receives unknown admin operation.
142   * Improved the Meta Check operation's default behavior.
143   * BnP fetches now abort immediately when their async operation is killed.
145 Release 1.10.6 on 12/08/2015
146 * BnP loggin improvements
147 * Option to use BouncyCastle for encryption/decryption, instead of JCE
148 * JMX Metrics for tracking Server state
149 * Enable BnP HA only on Connection errors
151 Release 1.10.5 on 11/25/2015
152 * Extended voldemort shell to let "preflist" command show parition information.
153 * Bug fix on python script used to generate cluster.xml.
154 * Bug fix updating metadata version in cluster.xml and stores.xml.
155 * Read-only improvements and fixes:
156   * Add replace URL of feching file to Voldemort node.
158 Release 1.10.4 on 11/11/2015
159 * The AdminClient in the VoldemortClientShell is now configurable.
160 * Improved error messages in BnP and Read-Only server-side code.
161 * Fixed a server-side bug in BnP HA.
162 * Made BnP jobs fail explicitly when clusters are inconsistent.
164 Release 1.10.3 on 11/04/2015
165 * Bug fix and improvement to the Forklift tool.
166 * Improved help prompt and configurability of the VoldemortClientShell.
167 * Moved BnP's verifyOrAddStore() to the AdminClient.
168 * Implement the truncate function in the RocksDB storage engine.
169   * N.B.: Previous data is backwards incompatible, see a0e19c6 for details.
171 Release 1.10.2 on 10/30/2015
172 * Added a ReadOnlyFileValidator script.
173 * Fixed rename operation in HdfsFailedFetchLock (regression fix).
175 Release 1.10.1 on 10/27/2015
176 * Read-Only server improvements and fixes:
177   * Read-Only server now avoids needlessly recreating symlinks.
178   * Individual file checksums now outputted to stats file.
179   * Removed a harmful set quota admin op from BnP (regression fix).
180   * Added more details to an exception shown in BnP (regression fix).
182 Release 1.10.0 on 10/19/2015
183 * Many many many fixes and improvements in the 1.9.x series of release! Many thanks to all contributors!
184 * Minor improvements since the last patch release (1.9.22):
185   * Upgraded RocksDB to 3.13.1 and added more configurability options for it.
186   * Improvements to the benchmarking tool.
187   * Added a unit test for colliding keys in Read-Only data files.
188   * Added various safe-guards in case Read-Only index/data files become corrupted.
190 Release 1.9.22 on 10/08/2015
191 * Disk quota for Voldemort Read-Only pipeline
192 * Improved debuggability of BnP HA
193 * Added heart beat for NIO selector
194 * Added additional keepalive settings to avoid client connection leaks
195 * Trimmed fat from HadoopUtils
196 * Proper interruption of BnP hooks
198 Release 1.9.21 on 09/24/2015
199 * Kerberos token caching now considered experimental (disabled by default).
201 Release 1.9.20 on 09/14/2015
202 * BnP/RO improvements:
203   * Various debuggability improvements.
204   * Graceful recovery from incomplete store creation.
205   * HA locking now happens on the server-side.
206   * Removed 'node.id' BnP config which caused a SPoF.
207 * Script improvements:
208   * voldemort-shell.sh properly print Avro data.
209   * Forklifting makes a proper schema check.
210   * Binary fetch-entries format.
211 * Unit tests improvements:
212   * Longer retry times on ServerTestUtils.startVoldemortServer().
213   * Ignored failing RocksDB test since it is unimplemented.
214   * New forklifting tests.
215 * RocksDB iteration logic is now properly implemented.
216 * Improved JMX beans management.
217 * Fixed the routing strategy of the voldsys$_store_quotas store.
219 Release 1.9.19 on 08/12/2015
220 * Removed unused things (scala shell, ec2-testing, public-lib directory)
221 * Fixed some unit tests.
222 * Various BnP improvements:
223   * Improved logging.
224   * Added bnpJar gradle target for bundling BnP with its dependencies.
225   * Added run-bnp.sh script for running without Azkaban.
226 * Various Read-Only server-side improvements:
227   * Upgrade to Hadoop 2.
228   * Kerberos authentication clean ups.
229   * Got rid of unused File Descriptor and other MemLock clean ups.
230   * Added STORAGE_SPACE quota API (not enforced yet).
232 Release 1.9.18 on 07/20/2015
233 * Various BnP improvements:
234   * Introduces of a limited form of High Availability for BnP.
235   * Improves path handling and validation in VoldemortSwapJob.
236   * Fetch throttling now works with block-level compression.
237   * Pushes to multiple colos now happen in parallel.
238   * Some code refactoring and clean ups.
239 * Minor bug fixes in scripts:
240   * Fixes a SecurityException when running HadoopStoreJobRunner in Oozie.
241   * Fixes Coordinator start script.
242 * EventThrottler code now uses Tehuti.
244 Release 1.9.17 on 06/12/2015
245 * Robust handling of connection failures
246 * Flush the queue on marking a node down
247 * Async connect exceptions are remembered based on connection timeout
249 Release 1.9.16 on 06/09/2015
250 * Fixes unregistration of JMX mbean.
251 * Fixes VoldemortConfig bug introduced in 1.9.15.
252 * Fixes error reporting in AvroUtils.getSchemaFromPath().
253 * Caches the result of duplicate AvroUtils and HadoopUtils calls in BnP.
255 Release 1.9.15 on 06/05/2015
256 * Unit tests for Serialization
257 * Alert if BnP jobs does not progress
258 * Add Timeout for ConfigurableSocketStoreFactory
259 * HdfsCopyStats outputs object ids, not Hdfs Paths
260 * HdfsCopyStatsTest fails intermittently
262 Release 1.9.14 on 05/22/2015
263 * RO stats feature
264 * HdfsFetcher refactoring
265 * Hadoop Core and IO commons version upgrade 
266 * RO fetcher GC performance reduction by 90%
267 * Fix quota redistribution on zone shrinkage issue
268 * Admin command for meta get ro
269 * Store delete command fix
270 * Unit test fixes
272 Release 1.9.13 on 05/01/2015
273 * Non blocking connect and Non blocking Protocol negotiation.
274 * Suppress logging ObsoleteVersionExceptions in request handler.
275 * Java minimum version is bumped to Java 6.
277 Release 1.9.12 on 05/01/2015
278 * quota reset on rebalance
279 * Fully disabled ant build
280 * fix rebalance unit test intermittent failures
281 * Changing buffer size of GZIP streams 
282 * Additional test cases
284 Release 1.9.11 on 04/23/2015
285 * BuildAndPush job produces compressed files as dictated by Server
286 * Voldemort RO Server supports on the fly decompression when compression is
287   enabled
288 * Admin request to query Server on supported compression codec
290 Release 1.9.10 on 04/15/2015
291 * Share Read/Write buffers for Client
292 * Share Read/Write buffers for Server on Client Operations
293 * Separate Client and Admin Request Handlers
294 * Remove extra allocations on Server side while parsing the request
295 * Pre-allocate Put request buffer before writing the request
296 * Remove one extra byte array allocation on Put, when parsing
297     Vector clocks from the Value
299 Release 1.9.9 on 04/10/2015
300 * Admin tools improvements and bug fixes:
301   * vadmin.sh now deals gracefully with inconsistent metadata and other issues.
302   * ReplaceNodeCLI now deals gracefully with empty stores.xml.
303   * ReadOnlyReplicationHelperCLI can now act on the local node, regardless of server version.
304 * HdfsFetcher imprpvements:
305   * Can fetch individual files to specific local dir (when used from CLI).
306   * Lower memory consumption.
307 * BnP improvements:
308   * Added a min.number.of.records config (defaults to 1) to prevent pushing empty stores.
309   * Improved error handling and reporting in BnP's run function.
310 * Client-related automated tests expanded and improved.
311 * Metadata queries no longer always hit the same node.
312 * Initial release of the RocksDB storage engine! (N.B.: still considered experimental).
314 Release 1.9.8 on 03/17/2015
315 * Fixes a bug in the vadmin restore-from-replica command.
316 * Improves the vadmin meta check command.
317 * Improves the build's tar target.
318 * Adds better logging in the expansion code.
319 * Cleans up BnP:
320   * Removes Azkaban dependency as much as possible.
321   * Standardizes on using voldemort.utils.Props as much as possible and adds more utility functions to it.
322   * Deletes VoldemortMultiStoreBuildAndPushJob which is not actively used and suffering from code rot.
323   * Adds Content-Length header support in BnP HttpHook.
324   * Adds safeguards in BnP HttpHook's concurrent code.
325   * Removes System.exit calls from BnP.
326 * Cleans up dependencies:
327   * Removed tusk, RestHadoopFetcher and related classes and tests.
328   * Now fetching libthrift, catalina-ant and tehuti from Maven.
330 Release 1.9.7 on 03/04/2015
331 * Improve Voldemort BuildAndPush
332 * Fix bugs in FailureDetector and AdminConnectionVerifier for slop streaming
333 * Fix log messages and English typo
334 * Fix NIO client thread, selector and admin thread names
336 Release 1.9.6 on 02/13/2015
338 * Bug fix for diverging metadata versions.
339 * IntelliJ support in gradle build.
340 * Avoid extra allocation on AvroGenericVersioned.
341 * Unit test fixes.
342 * Dependency upgrades:
343   * Jackson moved to 1.9.13
344   * Azkaban moved to 2.5.0, fetched from Maven Central, and removed from private-lib.
345 * Build and Push clean ups and improvements:
346   * Cleaned up config strings into constants.
347   * Sanity checks and error messages for bad avro configs.
348   * Removed proprietary LinkedIn monitoring code.
349   * Added open-source friendly hooks for running arbitrary code in BnP.
351 Release 1.9.5 on 01/12/2015
353 * Version metadata key fix for incorrectly incrementing on each restarts
354 * ReplaceNodeCLI fixes and adding post conditions.
355 * Tests refactoring and a new class ClientTrafficGenerator for sending traffic
356 * Fixed Cluster.equals to do the node state check
357 * Enhanced meta check-version to do the auto analysis and give output
358 * Readonly replication helper tool to output, to boot strap the dead node
359 * Windows batch file equivalents for new command functionalities
360 * DeleteKeysCLI tool to delete the serialized keys from Voldemort
361 * Krati entries iterator bug fix
363 Release 1.9.4 on 12/08/2014
365 * Add separate failure detector for slop pusher job so that metadata slop.streaming.enabled functions.
366 * Rename StoreVerifier to ConnectionVerifier.
367 * Create AdminConnectionVerifier and AdminSlopStreamingVerifier for failure detectors under OFFLINE_SERVER.
369 Release 1.9.3 on 11/25/2014
371 * Add support for disabling the client traffic (Offline server) to do maintenance on the server.
372 * Add support for enabling/disabling slop streaming, partition streaming, ro fetch independently.
373 * VAdmin support for offline server and other switches.
374 * ReplaceNodeCLI command to swap a node in the cluster with other voldemort node.
375 * Additional logging for failure detector.
377 Release 1.9.2 on 10/07/2014
379 * Fix Coordinator related tests
381 Release 1.9.1 on 10/03/2014
383 * Admin service and client for Coordinator
384 * Some refactoring
385 * Fix getmetadata shell command
386 * Fix origin time in coordinator rest request
388 Release 1.9.0 on 09/22/2014
390 * Updating release notes for 1.9.0
392 Release 1.8.16 on 09/04/2014
394 * QuotaException causes delete failure.
395 * bdb native backup fixups
397 Release 1.8.15 on 09/02/2014
399 * Fixed double-counting stat bug.
400 * Merged GET/GET_ALL into READ quotas and PUT/DELETE into WRITE quotas.
401 * Cleaned up the slop delete code.
402 * Fixed the C++ build so it works on more recent OS.
404 Release 1.8.14 on 08/26/2014
406 * Tehuti 0.5 that includes a fix about Histograms
408 Release 1.8.13 on 08/25/2014
410 * Fixes duplicated error message for coordinator
411 * Adds zone checks
412 * Makes tools that depend on zone 0 to be available
413 * Polishes Java client example
414 * Makes delete op use getVersion instead of get
416 Release 1.8.12 on 08/11/2014
418 * Speeds up vector clock serialization.
419 * Adds a clean up task in the Gradle build that fixes an intermittent issue with builds on mac.
420 * Expands test configurations.
421 * Some fixes and clean ups in the C++ client.
422 * Rewrites RequestCounter so that it leverages the Tehuti metrics lib.
424 Release 1.8.11 on 08/01/2014
426 * Expose http decoder parameters as config
427 * Client Parallel request Exceptions are not reported to failure detector
428 * ClientRequest Executor has infinite timeout and log cleanup
429 * Threshold failure detector bug fixes
431 Release 1.8.10 on 07/23/2014
433 * Registering slops for parallel puts that fail on QuotaExceededException
435 Release 1.8.9 on 07/02/2014
437 * Adding backwards compatibility checks in AdminClient
439 Release 1.8.8 on 06/24/2014
441 * Wrap mime multipart into a mime message to ensure headers are updated in
442   REST ResponseSenders
443 * Fix transport client instantiation and HttpClientFactory shutdown
444 * Fix build.gradle for setting java builder property in .project file
446 Release 1.8.6 on 06/11/2014
448 * Fix related to Quota metrics (store level instead of aggregate)
450 Release 1.8.6 on 06/11/2014
452 * Fix related to quotas - checking per store instead of aggregate
454 Release 1.8.5 on 06/06/2014
455 *Gradle related changes
456     - empty settings file
457     - empty voldemort-contrib directory
458     - gradle wrapper to fetch required version
460 Release 1.8.4 on 06/03/2014
462 * Fix RESTClientFactory for a clean shutdown
463 * Add check for SocketAndStreams in sendAndReceive
464 * Added the ability to query a single store using AdminClient / admin tool
466 Release 1.8.3 on 05/27/2014
468 * Add debug log messages for CoordinatorService
469 * Fix NetworkClassLoader bug when running in Windows OS (Carlos Tasada)
470 * Add junit support for gradle
471 * Fix bind failures while running tests
472 * Add overwrite option to fork lift tool
473 * Use standard logger in the StreamingClient constructor
474 * [python client] Fixed reconnect in _execute_request (Søren Holbech)
475 * Fix the admin metadata check command and did same change for old admin command.
477 Release 1.8.2 on 05/09/2014
479 * Bug fix in MetadataStore regarding updation of routing strategy
481 Release 1.8.1 on 05/01/2014
483 * Fix AbstractStoreClientFactory for backwards compatibility
484 * Cleaned up logging messages
485 * Unit tests for big Binary data
486 * Refactored voldemort admin tool - Phase 1 and Phase 2
488 Release 1.8.0 on 04/21/2014
490 * Split the stores.xml into individual stores on Voldemort server
491 * Maintaing backwards compatibility of MetadataStore
492 * DefaultStoreClient bootstraps using store name (instead of stores.xml)
493 * New Admin tool functionality to update stores (instead of replace)
495 Release 1.7.3 on 04/16/2014
497 * Fix RESTClientFactory to return a LazyStoreClient
499 Release 1.7.2 on 04/15/2014
501 * Quota limiting related fix
502 * Coordinator related fix
504 Release 1.7.1 on 04/10/2014
506 * Same as 1.7.0
508 Release 1.7.0 on 04/09/2014
510 * Improves BDB coversion process and documentations
511 * Adds scala build support and shell (Saurabh Bhatia)
512 * Add removeStorageEngine call to StorageConfiguration
514 Release 1.6.9 on 03/19/2014
516 * Fix a big where StreamingClient will throw NPE if not initialized
517 * Fix multiple broken tests
518 * Modified RO Rebalance Test to cover one more case
519 * Adding thin client shell for Voldemort Coordinator
520 * Move to tusk-0.0.2
522 Release 1.6.8 on 02/21/2014
524 * Add a tool to dump BDB data to Text and the reverse
525 * Fix racing condition problem in CachingStoreClientFactory
526 * Testing, client shell and admin tool enhancements from suletm,
527   ahimta, bhsaurabh and Holden Caufield
528 * ConsistencyCheckTool enhancement
529 * Fix bug in Coordinator for enabling different startup ports
531 Release 1.6.7 on 02/07/2014
533 * Updating the ivy file to refer to tusk-0.0.2 (build fix for nuage)
535 Release 1.6.6 on 02/07/2014
537 * Quota management in Voldemort
538 * Creation of read only stores in RO2 format
539 * Updation of query key feature in admin tool
541 Release 1.6.5 on 02/04/2014
543 * Adding AdminClient functionality to update store definitions
545 Release 1.6.4 on 02/03/2014
547 * Fix bug when RO server NPE when rolled back
548 * RO bug fix caused by RW optimization code
550 Release 1.6.3 on 01/24/2014
552 * Fix KeyVersionFetcher to not depend on nodeid 0
554 Release 1.6.2 on 01/10/2014
556 * Slops stored for nodes no longer in cluster, will die automatically
557 * Admin command to selectively purge slops destined to nodes/zones/stores
558 * Admin command to atomically update cluster.xml, stores.xml in one go
559 * Added admin command show-routing-plan to trace routing table for a key
560 * ZoneClipperCLI also adjusts store definitions based on dropped zone
561 * Numerous tests around non contiguous node ids/zone ids
563 Release 1.6.1 on 12/13/2013
565 * Avro support for fetch keys/entries admin command
566 * Store Clients are now cached by default, within the same factory
567 * Rigoruous tests around non contiguous node ids/zone ids
568 * ZenStoreClient efficient resource managerment
571 Release 1.6.0 on 11/26/2013
573 NOTE: This is an open source release! This release can be downloaded here:
574       https://github.com/voldemort/voldemort/releases
576 Changes made since 1.5.9:
578 * Fixes to remove dependency on non contiguous node ids
579 * Stats for store client
582 Release 1.5.9 on 11/05/2013
584 * Bug fix in AsyncMetadataVersionManager (related to store version tracking)
586 Release 1.5.8 on 10/29/2013
588 * Replace resthdfs jar with tusk.jar
589 * Incorporate retries into rest hdfs fetcher
591 Release 1.5.7 on 10/28/2013
593 * Voldemort now uses BDB 5.0.88
594 * Support for RO fetches via RestHdfs
595 * Fix NPE in Streaming Client
596 * Retrying fetches on all exceptions w/ delay
598 Release 1.5.6 on 10/18/2013
600 * Removed getStoreClientFactoryStats from StoreClientFactory interface (fix)
602 Release 1.5.5 on 10/18/2013
604 * Client shell with avro support
605 * Fix bind exceptions
606 * Fix ObsoleteVersion Exceptions
607 * Build once and push to multiple clusters
608 * Improvements to failure detector
609 * Fix parallel puts
610 * Prevent NPE in worker thread when shutdown
611 * Bug fixes in repair and prune job
613 Release 1.5.3 on 09/19/2013
615 * Bug fixes (NPE during shutdown
616 * Client side visibility changes (Histogram, Connect exception)
617 * Adding PruneJob and timebased resolving mechanism to streaming client
618 * R2Store cleanup required for the rest client
619 * Monitoring improvements (aggregated BDB stats, streaming stats)
620 * Monitoring and Config improvements for REST service
621 * Removed donor based rebalancing code
622 * Removed replica type from the code base
623 * Improvements to Rebalance controller
625 Release 1.4.7 on 09/04/13
627 Changes
628 * Added the Zone affinity feature on the client side
629 * Refactoring the rest package (Rest server and Coordinator)
630 * Using standard Netty pipeline in the Coordinator
631 * Added monitoring hooks for the Rest Service
633 Release 1.4.6 on 07/24/2013
635 Changes
636 * Cleanup of R2Store to work with the REST server
637 * Modified ZenStoreClient to avoid creating SystemStores during each
638 * re-bootstrap
639 * Added slop streaming functionality
641 Release 1.4.4 on 07/08/2013
643 Changes made since 1.4.3
644 * Change Repartioner to swap among nodes from all specified zones
645 * Added rebalance shuffle, cluster expansion scripts
647 Release 1.4.3 on 07/03/2013
649 Note: Server changes are not backwards compatible. To use new
650 rebalancing tooling, servers must be upgraded before hand.
652 * Rebalance features
653   - Proxying / abortable rebalance
654     - added proxy puts which rebalance safely abortable
655     - improved proxy gets to check locally first and only fetch remote
656       if not yet local
657   - Repartitioning: improved algorithms to optimize partition layout
658   - Plan: avoids cross-zone data movement in most rebalance cases. Only
659     expanding into a new zone requires data movement across zones.
660   - Controller
661     - better / more accurate progress monitoring.
662     - 'proxy pause' before rebalancing. Ensures clients pick up new
663       metadata and allows performance with proxy'ing to be observed
664       before servers start rebalancing.
665   - NOTE: Donor-based rebalance is currently broken by these changes.
666 * Rebalance tooling
667   - PartitionBalanceCLI: more nuanced and verbose analysis of cluster
668     balance
669   - RepartitionerCLI: Stand alone tool to determine repartitioning
670   - Stand alone 'repartitioning' scripts for key use cases: new cluster,
671     shuffle (existing cluster), cluster expansion, and zone expansion.
672   - RebalancePlanCLI: Stand alone plan tool to determine cost of a
673     specific rebalance
674   - RebalanceControllerCLI: Stand-alone tool for executing a specific
675     rebalance (plan)
676 * Administrivia
677   - java 7 compilation
678   - moved to Guava from Google Collections
679   - better unit test coverage of zoned clusters
680   - added example prod configuration
681   - added tools directory
682   - .gitignore improvements
683 * Bug fixes
684   - fixed concurrency bugs in metadata store
685   - fixed vector clock comparisons
686   - fixed many NPEs
687   - write slops in more cases when they are needed
688   - KeySampler/Fetcher handle larger working sets with OOME
690 Changes made since 1.4.2
691 * Minor code fixes
692 * Faster creation of BaseStoreRoutingPlan objects in the fast rebalancing path
694 Release 1.4.2 on 06/27/2013
695 * Fixing costly StoreRoutingPlan object construction
697 Release 1.4.0 on 06/21/2013
698 * Zone expansion release
700 Release 1.3.4 on 06/19/2013
701 * Read Write store bug fixes
702   - Rewrite of InMemoryStorageEngine + config to control multiVersionPuts
703   - Fixed a bug in the read-repair logic which was causing unnecessary puts.
704   - Fixed put operation in PipelineRoutedStore to ensure slop is submitted
705   - Fixed VectorClock bug triggered during versioned puts
706 * Rebalance improvement
707   - Made it safe to abort rebalance
708   - Proxy puts are established so that 'old' partition is updated and so an aborted rebalance can "roll back" without any data loss
709   - Proxy gets & puts are established within the zone making improving performance during rebalance
710 * Coordinator
711   - Added monitoring capability in the Coordinator
713 Release 1.3.3 on 04/24/2013
714 * VoldemortBuildandPush
715   - Fixed bug with schema check
716 * Streaming Client
717   - Fixed issue with redundant callback invocation
718 Release 1.3.1 on 03/25/2013
719 * HDFSFetcher
720   - Fixed the bug in calculating checksums when we entere a retry loop
721   - refactored per file checksums
722   - added junit test case to simulate intermittent IO exceptions
723 * voldemort.client.protocol.admin.AdminClient
724   - Added AdminStoreClient so that AdminClient can do store operations
725     against specific store on a specific node.
726   - Added helper methods for diong put & get for specific node/store
727   - Added voldemort.client.protocol.admin.QueryKeyResult type to
728     simplify QueryKey interface
729 * Improved FetchStreamRequestHandler and sub-classes
730   - Renamed all sub-classes: 'FullScan' and 'PartitionScan' prefixes
731     for pertinent stream request handler implementations.
732   - Removed unused skipRecords parameter.
733   - Added recordsPerPartition parameter to fetch limited portion of
734     each partition.
735   - All logic about how many keys to fetch (return to invoker) is
736     server side now.
737 * RebalanceCLI
738   - Added many options to help improve the balance of (zoned) clusters.
739   - Analysis of the balance of a cluster is significantly more detailed.
740   - Fixed a bug that reduced the balance of a cluster each time it was
741     expanded.
742   - Many different algorithms for improving cluster balance are
743     implemented in voldemort.utils.RebalanceClusterUtils
744 * ConsistencyCheck & ConsistencyFixCLI
745   - New tools for ensuring data durability. These tools are necessary
746     because slop creation can fail during put operations.
747   - ConsistencyCheck determines which keys, if any, lack
748     "consistency". I.e., are present on only a subset of the expected
749     partitions.
750   - ConsistencyFix takes a list of bad (inconsistent) keys and makes
751     sure they are present on all expected partitions.
752   - ConsistencyFix also has an interface for repairing "orphaned" keys
753     that could result from an aborted rebalance.
754 * KeySamplerCLI & KeyVersionFetcherCLI
755   - KeySamplerCLI is a new tool that reads some number of keys for
756     specified partitions/stores.
757   - KeyVersionFetcherCLI is a new tool that, given a key and a store,
758     fetches the version from all nodes that host a partition that
759     ought to store a replica of the key's value.
760   - Together, KeySamplerCLI and KeyVersionFetcherCLI correctly
761     implement the intended functionality of the Entropy tool (for
762     servers that implement either FullScan and PartitionScan fetches).
763   - Entropy tool had been used in the past to verify a sample of keys
764     before and after a rebalance. Entropy tool does not work as
765     intended/expected. This is exacerbated by the partition aware
766     layouts. Instead of trying to fix the Entropy tool, these two new
767     tools were developed. Entropy is deprecated and will eventually be
768     removed from the code base.
769 * Substantial refactoring of helper & util methods:
770   - voldemort.cluster.Cluster : added helper methods
771   - voldemort.utils.ClusterInstance : wraps up one Cluster &
772     List<StoreDefinition>
773   - voldemort.utils.Cluster : utils for single Cluster object.
774   - voldemort.utils.NodeUtils : utils for Node object.
775   - voldemort.utils.RebalanceUtils : Many methods moved to more
776     appropriate helper classes
777   - voldemort.utils.StoreDefinitionUtils : utils for StoreDefinition
778     object.
779   - voldemort.utils.StoreInstance : wraps up one Cluster & one
780     StoreDefinition
781 * Et cetera
782   - ByteUtils toHexString & from HexString now rely on standard
783     libraries
784   - voldemort.client.AdminFetchTest now tests FullScan and
785     PartitionScan fetches
786   - voldemort.store.routed.ReadRepairerTest annotated all tests with
787     @Test
790 Release 1.3.0 on 03/08/2013
792 NOTE: This is an open source release! This release can be downloaded here:
793       http://github.com/voldemort/voldemort/downloads.
795 Changes made since 1.2.3
796 * VoldemortConfig and ClientConfig now contain detailed documentation
797 * BDB-JE defaults set to ones in prod@linkedin
798 * Bug fixes on kerberos support for Hadoop
801 Release 1.2.3 on 02/20/2013
803 Changes made since 1.2.2
804 * Added a retry loop and synchronized block while getting Hadoop FS
805 * Code cleanup in HdfsFetcher to make it more readable.
806 * Throwing explicit exceptions in HdfsFetcher instead of
807   returning null to be more precise in the Azkaban logs.
810 Release 1.2.2 on 02/19/2013
812 Changes made since 1.2.1
813 * Synchronized the streaming API
814 * Fixed some of the streaming API tests.
817 Release 1.2.1 on 0/30/2013
819 Changes made since 1.2.0
820 * Added a Streaming API and related tests.
821 * Refactoring of the admin client apis into functional inner classes
824 Release 1.2.0 on 01/21/2013
826 Changes made since 1.1.9
827 * Added an Admin API to fetch orphaned key / entries
828 * Improved some tests related to streaming API.
829 * Correcting commons-codec version in ivy file (1.4)
832 Release 1.1.9 on 01/15/2013
834 Changes made since 1.1.8
835 * Asynchronous socket checkout improvements
836   * Changed checkout behavior of KeyedResourcePool to only create new
837     connections when there are no resources available (rather than
838     creating new connections until the pool is full)
839   * Changed QueuedKeyedResourcePool.reset behavior to better match
840     KeyedResourcePool (i.e., to not cancel queued asynchronous
841     requests unnecessarily)
842   * Removed (unnecessary) synchronization primitives from keyed resource pool
843   * Reduce granularity of failure detector locking within ThresholdFailureDetector
844 * Minor features/improvements
845   * Less verbose logging in the face of expected exceptions and errors
846   * Refactored (Queued)KeyedResourcePoolTest
847 * Bug fixes
848   * Fixed possible race condition for resource creation in KeyedResourcePool
849   * More efficient (time & space) and simpler Histogram implementation
850     with improved tests
853 Release 1.1.8 on 01/14/2013
855 Changes made since release 1.1.7
856 * Enhanced Server Monitoring
857    -- Server NIO layer
858    -- Streaming operations to the server
859    -- BDB storage exception counts
860 * Ability to turn off BDB Checkpointing during batch modifications
861 * Added ability to delete old checksum files in Build and Push reducer
862 * Upgrade Hadoop jar to 1.0.4-p2
865 Release 1.1.7 on 01/03/2013
867 NOTE: This release is based off of release 1.1.4
869 Changes made since release 1.1.4
870 * Upgrading Hadoop jar to 1.0.2
871 * Added support for Kerberos authentication in HdfsFetcher
872 * Extra config parameters for Kerberos config and keytab file
875 NOTE: Release 1.1.5 and 1.1.6 are special client side releases
876 not based off of master. 1.1.5 was rolled back to to a weird bug.
877 1.1.6 is a special client side release including Auto-
878 bootstrapper and Versioned Avro support.
881 Release 1.1.4 on 11/29/2012
883 Changes made since release 1.1.3
884 * Added BDB parameters to control LRU behavior in cache & proactive cleaner migration
885 * Added a mlock fix for pinning the indexes of RO stores in memory
888 Release 1.1.3 on 11/28/2012
890 Changes made since release 1.1.2
891 * Fixed a bug in the build and push job, specifically the Mapper
892   that caused collisions
893 * Added retry mechanism with the HDFS fetcher for hftp
896 Release 1.1.2 on 10/31/2012
898 Changes made since release 1.1.1
899 * Reverted a change to voldemort.versioning.Versioned.getVersion() so
900   that a Version is returned as our clients expect.
903 Release 1.1.1 on 10/30/2012
905 Changes made since release 1.1.0
906 * Fixed connection leak in ClientRequestExecutorFactory
907 * Changed client to default to DefaultStoreClient
910 Release 1.1.0 on 10/19/2012
912 Changes made since release 1.0.0
914 IMPORTANT NOTE : This release has significant changes to the BDB storage layer.
915 Users are required to read the bin/PREUPGRADE_FOR_1_1_X_README file
916 thoroughly before attempting to upgrade to 1.1.0. The necessary data
917 conversion will be done through bin/voldemort-convert-bdb.sh
919 * Upgrading to JE 4.1.17
920 * New data format that handles conflicting updates in Voldemort more
921   efficiently
922 * Move data off heap and only use it for Index
923 * When scanning, evict whatever you bring in right away.
924 * Partition based scan api to dramatically speed up rebalancing & restore
925   using Partition aware scans (you exactly scan whatever you want to fetch)
926 * Flexible knobs to control scheduling of DataCleanupJob
929 Release 1.0.0 on 10/17/2012
931 NOTE: The large version number jump from 0.96 to 1.0.0 is to
932 standardize on a version number of the sort MAJOR.MINOR.PATCH.  This
933 change is part of our effort to treat internal and open source
934 releases in a much more similar manner. Along these lines, release
935 notes for internal releases (like this one) are committed on the
936 master branch. We hope this improves transparency as we work towards
937 the next open source release.
939 Changes made since release 0.96
941 * Auto bootstrapping: ZenStoreClient and System stores
942   * Added server side system stores for managing metadata
943   * ZenStoreClient interacts with system stores
944   * ZenStoreClient auto bootstraps whenever cluster.xml or stores.xml changes
945   * Added a new routing strategy to route to all with local preference
946   * Added a client-registry for publishing client info and config values
947   * Updated LazyClientStore to try to bootstrap during Init
948   * Modified Failure Detector to work on a shared cluster object reference
949 * Avro: schema evolution and read only support
950   * Added new Avro serializer type that supports schema evolution
951   * Added Avro support to read only stores
952   * Added LinkedIn build-and-push Azkaban jobs to build read only stores to contrib
953   * Added a schema backwards compatibility check to VoldemortAdminTool and on server startup to prevent mishaps due to bad schemas
954 * Non-blocking IO: Fixed design flaw that blocked in the face of slow servers
955   * Asynchronous operations no longer do a blocking checkout to get a SocketDestination
956   * Added additional stats collection for better visibility into request queues
957 * Minor features
958   * Enhanced VoldemortAdminTool to update store metadata version
959   * Enhanced VoldemortAdminTool to work with the new system stores
960   * Added feature to voldemort-shell.sh to dump byte & object arrays
961   * Added a SlowStorageEngine for testing degraded mode performance
962   * Added mechanism to isolate BDB cache usage among stores
963   * Enhanced debug logging (for traffic analysis).
964   * Python client bug fixes (from pull request)
965   * Improved messages in request tracing
966   * Cleaned up help/usage messages within the client shell
967   * Added server config to control socket backlog
968   * Added "--query-keys" option to query multiple keys of multiple stores from specific node
969   * Added control to DataCleanupJob Frequency
970   * Unified jmxid as the factory across the board
971 * Tools
972   * bin/generate_cluster_xml.py to generate cluster.xml
973   * bin/repeat-junit.sh and bin/repeat-junit-test.sh to repeatedly run tests
974 * Bug fixes
975   * Changed getall return behavior to comply with javadoc
976   * Fixed a bug that caused unnecessary serial requests in getall
977   * HFTP performance issue bug fix (fix in byte buffer and copy process)
978   * Fixed a bug that prevented "--fetch-keys" and "--fetch-entries" in admin tool from showing multiple store results
979   * Fixed problem in sample config that prevented the server from starting
980   * Fixed some intermittent BindException failures across many unit tests
981   * Fixed some intermittent rebalance test failures
982   * Wrapped long running tests with timeouts
985 Release 0.96 on 09/05/2012
987 Changes made since 0.90.1
989  * Monitoring:
990      * Append cluster name to various mbeans for better stats display
991      * Implement average throughput in bytes
992      * Add BDB JE stats
993      * Add 95th and 99th latency tracking
994      * Add stats for ClientRequestExecutorPool
995      * Add error/exception count and max getall count
996      * BDB+ Data cleanup Monitoring changes
997  * Rebalancing:
998      * Donor-based rebalancing and post cleanup (see https://github.com/voldemort/voldemort/wiki/Voldemort-Donor-Based-Rebalancing for more details)
999      * Rebalancing integration testing framework (under test/integration/voldemort/rebalance/)
1000      * Generate multiple cluster.xml files based on the number specified when running the tool and choose the cluster with the smallest std dev as the final-cluster.xml
1001      * Add status output to log for updateEntries (used by rebalancing)
1002  * Read-only pipeline:
1003      * Add hftp and webhdfs support
1004      * Read-only bandwidth dynamic throttler
1005      * Add minimum throttle limit per store
1006      * Add rollback capability to the Admin tool
1007  * Voldemort-backed stack and index linked list impl
1008  * Change client requests to not process responses after timeout
1009  * Modified client request executor timeout to not factor in the NIO selector timeout
1010  * Added BDB native backup capabalities, checksum verification and incremental backups (well tested, but not yet used in production)
1011  * Add additional client-side tracing for debugging and consistency analytics
1012  * Clean up logging during exception at client-side
1013  * Security exception handling
1014  * Add snappy to CompressionStrategyFactory
1015  * Add configurable option to interrupt service being unscheduled
1016  * Add logging support for tracking ScanPermit owners (for debugging purposes)
1017  * Add a jmx terminate operation for async jobs
1018  * Add zone option for restore from replicas
1019  * Changing the enable.nio.connector to true by default
1020  * Better disconnection handling for python client
1021  * Split junit tests into a long and a short test suites
1022  * Add separate timeouts for different operations (put, get, delete, and getAll
1023  * Allow getAll to return partial results upon timeout
1024  * Improved cluster generation tool
1025  * Added log4j properties folder for junit test
1026  * Bug fixes:
1027      * httpclient 3.x to httpclient 4.x
1028      * Fix NPE in listing read-only store versions
1029      * Fixed 2 failure detector bugs during rebalancing or node swapping
1030      * Fixed a thread leak issue in StreamingSlopPusher
1031      * Fixed a NIO bug
1032      * Fixed a bug in TimeBasedInconsistency resolver.
1033      * Fixed race condition in client socket close
1034      * Fixed a potential deadlock issue in ScanPermitWrapper
1035      * Fixed a bug where a read returns null (on rare occations) when being concurrent with a write
1036      * Fixed a performance bug in HdfsFetcher when hftp is used
1039 Changes made since 0.90
1041  * Updated the documentation for Voldemort shell tool in NOTES
1042  * Added Admin API to perform Bdb data cleanup (repairJob)
1043    and corresponding unit tests
1044  * Fixes in restore from replication, store creation code
1045  * Improved failure detector configuration. ThresholdFailureDetector
1046    is now the default option
1047  * Multiple Fixes to the Voldemort ruby client
1048  * Added additional Jmx metrics to expose Bdb environment statistics,
1049    caching statistics and Voldemort batch operation statistics
1050  * Updated default timeout for restore 'from replica' to 365 days
1051  * New feature in the performance tool: '--use-sample' option enables
1052    'read, write back unmodified' transactions in place of writes in
1053    the workload (allows for testing read-write transactions on stores
1054    with complex schemas)
1055  * Added the ability to dynamically update cluster.xml and
1056    reinitialize the scheduler
1058 Release 0.90 on 7/10/2011
1060 Changes made since 0.81
1061  * All upgrading instructions can be found here - https://github.com/voldemort/voldemort/wiki/Upgrading-from-0.81
1062  * Tooling
1063  - Single consolidated administrative tool - Got rid of the admin client
1064    shell and have a better Voldemort admin tool. More documentation -
1065    https://github.com/voldemort/voldemort/wiki/Voldemort-Admin-tool
1067  * Web manager
1068  - Basic GUI in JRuby ( and Sinatra ), capable of querying for store metadata.
1069  - Read contrib/web-manager/README.md for more details
1071  * Rebalancing
1072  - New better rebalancing support with (a) checkpointing (b) progress bar (c) support for RO store rebalancing
1073  - Documentation - https://github.com/voldemort/voldemort/wiki/Voldemort-Rebalancing
1074  - In the process solves Issue 203, 288, 305, 307, 311
1076  * Client side changes
1077  - Pipeline routed store ( with support for topology awareness ) - Changed the default client side routing
1078    to use a state machine like system. More documentation - https://github.com/voldemort/voldemort/wiki/RoutedStore-redesign
1079  - Lazy store client - Some of our clients are very inactive and don't really do many requests. For such
1080    clients it doesn't make sense to bootstrap the metadata at startup. Hence from now onwards clients instantiated
1081    from SocketStoreClientFactory give a LazyStoreClient which will not bootstrap till the first request is made
1082  - Caching store client factory - We have also checked-in a new store client factory which we use internally
1083    at LinkedIn to cache store clients for stores which we repeatedly.
1084  - Failure detector - We have fixed some bugs in the ThresholdFailureDetector. This is an improvement over the naive
1085    BannageFailureDetector which would aggressively mark nodes down after a single failure. More details -
1086    https://github.com/voldemort/voldemort/wiki/Client-side-failure-detector-implementations
1087  - Issue 219: StoreClient::put returns a Version - You may have to upgrade your clients since now the StoreClient returns
1088    a version to be used in successive requests.
1090  * Read-only store changes
1091  - Admin based store swapper - Till 0.81 we relied on a servlet based fetcher / swapper.
1092    Now we support an admin based store swapper which reports progress.
1093  - Other changes - (a) New directory format (b) Two new data format. Support for iterating over read-only data
1094    (c) Checksum of data in .metadata file (d) Some monitoring changes of RO stores
1096  * Jar upgrades
1097  - Introduction of JNA 3.2.7 - We have introduced JNA 3.2.7 in this release for supporting symbolic links in read-only stores.
1098    More details about the new RO format and changes can be found here - https://github.com/voldemort/voldemort/wiki/Upgrading-from-0.81
1099  - Protocol Buffers 2.3.0 - Upgrading protocol buffers from 2.2.0 to 2.3.0
1100  - Avro 1.4.0 - Upgraded Avro from 1.3.0 to 1.4.0
1102  * Storage engine
1103  - Added support for Krati 0.3.6 as a storage engine ( http://sna-projects.com/krati/ ) -
1104    https://github.com/voldemort/voldemort/tree/release-090/contrib/krati
1106  * Core features
1107  - Hinted handoff - https://github.com/voldemort/voldemort/wiki/Hinted-Handoff
1108  - Experimental support for server side transforms - https://github.com/voldemort/voldemort/wiki/Server-side-transforms-in-Voldemort
1109  - Topology awareness ( i.e. datacenter / rack ) - https://github.com/voldemort/voldemort/wiki/Topology-awareness-capability
1110  - Repair Job ( Job which will delete data if the node is not responsible for it )
1112  * Better monitoring
1113  - Tons of JMX changes ( average bytes, etc ) - More details ( https://github.com/voldemort/voldemort/wiki/JMX-Monitoring )
1114  - Key distribution generator - Ability to estimate skew of your cluster ( ./bin/run-class.sh voldemort.utils.KeyDistributionGenerator )
1116  * Clients
1117  - Python - Updated Python client with support for Binary JSON serialized stores ( ./clients/python/README )
1118  - Ruby - Updated Ruby client ( ./clients/ruby/README.md )
1120 Release 0.81 on 6/15/2010
1122 Changes made since 0.80.2:
1124 * IMPORTANT: we have upgraded the Hadoop Core jar to v0.20.2. Since
1125   this version of Hadoop requires Java 6, in order to retain backwards
1126   compatibility with Java 5, you will need to replace this jar with
1127   the Hadoop 0.18.* core jar.
1128 * Multiple donors for Voldemort Rebalancing: speeds up rebalancing, by
1129   allowing a single stealer node to transfer partitions from multiple
1130   nodes
1131 * Features for EC2 Testing
1132 * Read-only Stores: backwards compatibility with 0.70, bug fix in
1133   Checksum code
1134 * Hadoop InputFormat, Pig LoadFunc in Contrib: ability to perform
1135   Map/Reduce (either directly via Hadoop or using Pig) over data in
1136   Voldemort stores. See:
1137   < contrib/hadoop/test/voldemort/hadoop/VoldemortWordCount.java > for
1138   an example.
1139 * Voldemort Performance Tool: performance measurement tool based on
1140   YCSB (Yahoo Cloud Serving Benchmark) code. Run
1141   < bin/voldemort-performance-tool.sh --help > for more information.
1142 * Reverted default failure detector implementation back to
1143   BannagedPeriodFailureDetector due to potential bugs in the
1144   ThresholdFailureDetector
1146 Release 0.80.2 on 4/27/2010
1148 Changes made since 0.80.1:
1150 * Batched NIO writes (improves performance for AdminClient/Streaming
1151   operations when the NIO connector is enabled)
1152 * VoldemortAdminTool: Added support to specify stores, support to
1153   fetch all keys to a binary file, support to save keys in ASCII
1154   (JSON) format [experimental], capability to add stores. Run
1155   < bin/voldemort-admin-tool.sh --help > for more information.
1156 * Minor bug fixes for Rebalancing
1157 * Issue 240: Voldemort fetcher should use different temp directories for
1158   different stores
1159 * Checksum capability during construction of Voldemort read-only stores
1161 Release 0.80.1 on 3/23/2010
1163 Changes made since 0.80:
1165 * Issue 133: Support for Apache Avro as a serialization format
1166 * Issue 223: Changed the default client to use
1167   TresholdFailureDetector
1168 * Fixed issue 222: Revised KeyedResourcePool.close(K key) to fix
1169   leaking sockets
1170 * Fixed issue 198: Revised ReadRepairer to use a separate copy of the
1171   vector clock, fixing a situation where NoSuchElementException would
1172   be thrown
1173 * Miscellaneous enhancement: support for TCP keep-alives, improved
1174   read only store utilities, command line interface to AdminClient,
1175   improved load testing tools
1177 Release 0.80 on 2/18/2010
1179 Changes made since 0.70.1:
1181 * IMPORTANT: backwards compatibility between the client and server has
1182   changed. A backwards incompatibility in the wire protocol was found
1183   between releases 0.60 to 0.70.1 and releases prior to 0.60. We chose
1184   to make 0.80 compatible with 0.57.1 and earlier versions, while
1185   introducing an incompatibility with 0.60-0.70.1. What this means is
1186   that if you're presently running 0.60 and higher, you would need to
1187   upgrade the Voldemort jar files on *all* servers and clients.
1188 * Upgraded the BDB storage engine to use BerkeleyDB-JE 4.0.92,
1189   retaining ability to use BerkeleyDB-JE 3.3.* if desired. IMPORTANT:
1190   if one switches from BerkeleyDB-JE 3.3.* to 4.0.92 they will be able
1191   to access all of existing data. Once a switch has been made to
1192   4.0.92 the data will not be readable by earlier versions of BDB. If
1193   there's a chance that a roll back to 3.3.* might be needed, the best
1194   course of action will be to make a backup of existing data
1195   prior to upgrading.
1196   Switching between 3.3.* and 4.0.* would also require rebuilding the
1197   class files (e.g., by running "ant clean && ant release" after
1198   replacing the BDB jar files).
1199 * Compression support for read-only stores
1200 * Increased the socket buffer size for transferring read-only
1201   stores from Hadoop for improved performance over high-latency links
1202 * NIO support for the Admin Service, including Streaming
1203   Functionality
1204 * Support for adding stores on the fly via the Admin
1205   Service
1206 * Fixed issue 209: Incorrect object passed to List.contains in
1207   RebalanceUtils.getLatestCluster()
1208 * Fixed issue 211: Unnecessary read repairs during getAll() with more
1209   than one key
1210 * Other enhancements: better CLI for rebalancing, throttling in
1211   Admin Service is now based on all disk activity
1213 Release 0.70.1 on 2/1/2010
1215 Changes made since 0.70:
1217 * Fixed issue 205: if no keys passed to getAll() were in partitions
1218   undergoing rebalancing, proxyGetAll() would be called with an
1219   empty list even if rebalancing wasn't happening
1221 Release 0.70 on 1/27/2010
1223 Changes made since 0.60.1:
1225 * A beta of rebalancing (dynamic cluster expansion) support merged
1226   into the main branch. See the project's wiki for more information:
1227   http://wiki.github.com/voldemort/voldemort/voldemort-rebalancing
1228 * New failure detector merged into the main branch:
1229   http://wiki.github.com/voldemort/voldemort/failure-detection
1230 * Beta mechanism for restoring all of node's data from replicas on
1231   demand. This is an alternative to a more gradual mechanism provided
1232   by read-repair: useful when a machine is down for a prolonged period
1233   and is then re-inserted into the cluster.
1234   Invoked via JMX: the operation is restoreDataFromReplication in the
1235   voldemort.server.VoldemortServer MBean, with a mandatory parameter
1236   (integer >= 1) indicating the number of transfers to do in parallel.
1237 * Simple gossip protocol (for cluster metadata) merged
1238   into the main branch. Disabled by default: use "enable.gossip=true"
1239   to enable, use "gossip.interval.ms" to set an interval at which gossip
1240   occurs (default: 30000 i.e., 30 seconds).
1241 * Fixed issue 190: add a way of aggregating performance data over
1242   all stores
1243 * Fixed issue 181: stack trackes shouldn't be filled for Obsolete
1244   version exception
1246 Release 0.60.1 on 12/18/2009
1248 Minor changes made since 0.60:
1250 * Better logging in the exception thrown if config/.temp and
1251   config/.version are copied
1252 * Bumping up the version to 0.60.1 in order to release updated
1253   archives, fixing an error in the stores.xml for single_node_cluster
1254   sample config
1256 Release 0.60 on 12/15/2009
1258 Changes made since 0.57.1:
1260 * Admin Client/Server API: adds support for streaming-based transfer
1261   of entries between nodes, deleting entries on remote nodes,
1262   remotely deleting and updating metadata
1263 * EC2 testing: a way to periodically run integration and performance
1264   tests which involve Voldemort instances on different machines
1265 * Experimental support for views
1266 * Interpolation search for read-only stores
1267 * Support for large lists and strings in the JSON serializer
1268 * LZF compression support
1269 * Ruby client contributed
1270 * Fixed issue 170: hanging if a port is used by another process
1271 * Fixed issue 122: suspicious integer division in
1272   RequestCounter.getThroughput
1273 * Miscellaneous improvements and bug fixes for read-only stores
1274 * Fixed issue 168: added StorageEngine.keys()
1276 Release 0.57.1 on 11/27/2009
1278 Minor change made since 0.57:
1280 * Modified build.xml to exclude .git directory from release tarballs/zipfiles
1282 Release 0.57 on 11/16/2009
1284 The following changes were made since 0.56:
1286 * Fixed an issue in ReadOnlyEngine's close() method
1287 * Fixed hidden logging in StorageService
1288 * Fix for issue 163 (lock mode during get)
1289 * Exposed bdb environment stats with setFast(false)
1291 Release 0.56 on 10/26/2009
1293 The following changes were made since 0.55:
1295 * Fix for issue 164: Changed default bdb.max.logfile.size to 60MB
1296 * Make file deletes asynchronous in read only store swap
1297 * Added better debug logs for bdb stats
1298 * Fixed race condition in AbstractSocketPoolTest
1299 * Added improved monitoring for bdb stats
1300 * Added backoff and retry logic in bootstrap code
1301 * Not logging obsoleteVersionException(s) or counting it in JMX exception count
1302 * Fixed issue 159
1303 * C++ client building on OS X
1304 * Rely only on the number of versions returned to decide whether to retrieve
1305   the value for put(K,V)
1306 * Implemented issue 152: getVersion() API in Store
1308 Release 0.55 on 10/7/2009
1310 The following changes were made since 0.52 (in summary):
1312 * Add an event throttler
1313 * Added DataCleanupJob
1314 * Protocol buffers at version 2.2.0
1315 * BDB JE upgraded to 3.3.87
1316 * Added data compression support (enable by adding
1317     <compression>
1318        <type>gzip</type>
1319     </compression>
1320   to value-serializer or key-serializer sections in stores.xml)
1321 * Added a resource pool/socket pool implementation (no longer using
1322   commons-pool)
1323 * Added server-side NIO support (enabled by setting
1324   enable.nio.connector=true
1325   in server.properties)
1326 * Improved the efficiency of the protocol buffers network protocol by using
1327   CodedOutputStream/CodedInputStream (zero copy transfers)
1328 * Fix for issue #21: incorrectness in vector clock inconsistency resolver
1329 * Upgrade google-collections
1330 * Support for building read only stores in Hadoop
1331 * Added a C++ client