Release 0.90 Changes made since 0.90 * Read-only stores: (a) Changes to Hadoop store builder output to generate chunks per partition (instead of per node). Helps in rebalancing (b) Changes to the format of storing the versioned directories. Gets rid of the tempor- -ary folder (c) New data pushing support in Admin services (in addition to that based on HTTP Servlet) * Zone aware routing: Smarter routing based on zones (virtual clusters). * Hinted Handoff: Ability to queue requests up if a server is down during put and later replaying it * Server side transforms: Ability to pass transforms to the server on a per request basis * Pipeline Routed Store: Routing layer in the form of a state machine * Read-only stores rebalancing: Added support for rebalancing of read-only stores Release 0.81 on 6/15/2010 Changes made since 0.80.2: * IMPORTANT: we have upgraded the Hadoop Core jar to v0.20.2. Since this version of Hadoop requires Java 6, in order to retain backwards compatibility with Java 5, you will need to replace this jar with the Hadoop 0.18.* core jar. * Multiple donors for Voldemort Rebalancing: speeds up rebalancing, by allowing a single stealer node to transfer partitions from multiple nodes * Features for EC2 Testing * Read-only Stores: backwards compatibility with 0.70, bug fix in Checksum code * Hadoop InputFormat, Pig LoadFunc in Contrib: ability to perform Map/Reduce (either directly via Hadoop or using Pig) over data in Voldemort stores. See: < contrib/hadoop/test/voldemort/hadoop/VoldemortWordCount.java > for an example. * Voldemort Performance Tool: performance measurement tool based on YCSB (Yahoo Cloud Serving Benchmark) code. Run < bin/voldemort-performance-tool.sh --help > for more information. * Reverted default failure detector implementation back to BannagedPeriodFailureDetector due to potential bugs in the ThresholdFailureDetector Release 0.80.2 on 4/27/2010 Changes made since 0.80.1: * Batched NIO writes (improves performance for AdminClient/Streaming operations when the NIO connector is enabled) * VoldemortAdminTool: Added support to specify stores, support to fetch all keys to a binary file, support to save keys in ASCII (JSON) format [experimental], capability to add stores. Run < bin/voldemort-admin-tool.sh --help > for more information. * Minor bug fixes for Rebalancing * Issue 240: Voldemort fetcher should use different temp directories for different stores * Checksum capability during construction of Voldemort read-only stores Release 0.80.1 on 3/23/2010 Changes made since 0.80: * Issue 133: Support for Apache Avro as a serialization format * Issue 223: Changed the default client to use TresholdFailureDetector * Fixed issue 222: Revised KeyedResourcePool.close(K key) to fix leaking sockets * Fixed issue 198: Revised ReadRepairer to use a separate copy of the vector clock, fixing a situation where NoSuchElementException would be thrown * Miscellaneous enhancement: support for TCP keep-alives, improved read only store utilities, command line interface to AdminClient, improved load testing tools Release 0.80 on 2/18/2010 Changes made since 0.70.1: * IMPORTANT: backwards compatibility between the client and server has changed. A backwards incompatibility in the wire protocol was found between releases 0.60 to 0.70.1 and releases prior to 0.60. We chose to make 0.80 compatible with 0.57.1 and earlier versions, while introducing an incompatibility with 0.60-0.70.1. What this means is that if you're presently running 0.60 and higher, you would need to upgrade the Voldemort jar files on *all* servers and clients. * Upgraded the BDB storage engine to use BerkeleyDB-JE 4.0.92, retaining ability to use BerkeleyDB-JE 3.3.* if desired. IMPORTANT: if one switches from BerkeleyDB-JE 3.3.* to 4.0.92 they will be able to access all of existing data. Once a switch has been made to 4.0.92 the data will not be readable by earlier versions of BDB. If there's a chance that a roll back to 3.3.* might be needed, the best course of action will be to make a backup of existing data prior to upgrading. Switching between 3.3.* and 4.0.* would also require rebuilding the class files (e.g., by running "ant clean && ant release" after replacing the BDB jar files). * Compression support for read-only stores * Increased the socket buffer size for transferring read-only stores from Hadoop for improved performance over high-latency links * NIO support for the Admin Service, including Streaming Functionality * Support for adding stores on the fly via the Admin Service * Fixed issue 209: Incorrect object passed to List.contains in RebalanceUtils.getLatestCluster() * Fixed issue 211: Unnecessary read repairs during getAll() with more than one key * Other enhancements: better CLI for rebalancing, throttling in Admin Service is now based on all disk activity Release 0.70.1 on 2/1/2010 Changes made since 0.70: * Fixed issue 205: if no keys passed to getAll() were in partitions undergoing rebalancing, proxyGetAll() would be called with an empty list even if rebalancing wasn't happening Release 0.70 on 1/27/2010 Changes made since 0.60.1: * A beta of rebalancing (dynamic cluster expansion) support merged into the main branch. See the project's wiki for more information: http://wiki.github.com/voldemort/voldemort/voldemort-rebalancing * New failure detector merged into the main branch: http://wiki.github.com/voldemort/voldemort/failure-detection * Beta mechanism for restoring all of node's data from replicas on demand. This is an alternative to a more gradual mechanism provided by read-repair: useful when a machine is down for a prolonged period and is then re-inserted into the cluster. Invoked via JMX: the operation is restoreDataFromReplication in the voldemort.server.VoldemortServer MBean, with a mandatory parameter (integer >= 1) indicating the number of transfers to do in parallel. * Simple gossip protocol (for cluster metadata) merged into the main branch. Disabled by default: use "enable.gossip=true" to enable, use "gossip.interval.ms" to set an interval at which gossip occurs (default: 30000 i.e., 30 seconds). * Fixed issue 190: add a way of aggregating performance data over all stores * Fixed issue 181: stack trackes shouldn't be filled for Obsolete version exception Release 0.60.1 on 12/18/2009 Minor changes made since 0.60: * Better logging in the exception thrown if config/.temp and config/.version are copied * Bumping up the version to 0.60.1 in order to release updated archives, fixing an error in the stores.xml for single_node_cluster sample config Release 0.60 on 12/15/2009 Changes made since 0.57.1: * Admin Client/Server API: adds support for streaming-based transfer of entries between nodes, deleting entries on remote nodes, remotely deleting and updating metadata * EC2 testing: a way to periodically run integration and performance tests which involve Voldemort instances on different machines * Experimental support for views * Interpolation search for read-only stores * Support for large lists and strings in the JSON serializer * LZF compression support * Ruby client contributed * Fixed issue 170: hanging if a port is used by another process * Fixed issue 122: suspicious integer division in RequestCounter.getThroughput * Miscellaneous improvements and bug fixes for read-only stores * Fixed issue 168: added StorageEngine.keys() Release 0.57.1 on 11/27/2009 Minor change made since 0.57: * Modified build.xml to exclude .git directory from release tarballs/zipfiles Release 0.57 on 11/16/2009 The following changes were made since 0.56: * Fixed an issue in ReadOnlyEngine's close() method * Fixed hidden logging in StorageService * Fix for issue 163 (lock mode during get) * Exposed bdb environment stats with setFast(false) Release 0.56 on 10/26/2009 The following changes were made since 0.55: * Fix for issue 164: Changed default bdb.max.logfile.size to 60MB * Make file deletes asynchronous in read only store swap * Added better debug logs for bdb stats * Fixed race condition in AbstractSocketPoolTest * Added improved monitoring for bdb stats * Added backoff and retry logic in bootstrap code * Not logging obosleteVersionException(s) or counting it in JMX exception count * Fixed issue 159 * C++ client building on OS X * Rely only on the number of versions returned to decide whether to retrieve the value for put(K,V) * Implemented issue 152: getVersion() API in Store Release 0.55 on 10/7/2009 The following changes were made since 0.52 (in summary): * Add an event throttler * Added DataCleanupJob * Protocol buffers at version 2.2.0 * BDB JE upgraded to 3.3.87 * Added data compression support (enable by adding gzip to value-serializer or key-serializer sections in stores.xml) * Added a resource pool/socket pool implementation (no longer using commons-pool) * Added server-side NIO support (enabled by setting enable.nio.connector=true in server.properties) * Improved the efficiency of the protocol buffers network protocol by using CodedOutputStream/CodedInputStream (zero copy transfers) * Fix for issue #21: incorrectness in vector clock inconsistency resolver * Upgrade google-collections * Support for building read only stores in Hadoop * Added a C++ client