Hycz's Blog

Life is a game. Why so serious?

Cassandra0.8.0 CHANGES




 * fix CQL grammar warning and cqlsh regression from CASSANDRA-2622
 * add ant generate-cql-html target (CASSANDRA-2526)
 * update CQL consistency levels (CASSANDRA-2566)
 * debian packaging fixes (CASSANDRA-2481, 2647)
 * fix UUIDType, IntegerType for direct buffers (CASSANDRA-2682, 2684)
 * switch to native Thrift for Hadoop map/reduce (CASSANDRA-2667)
 * fix StackOverflowError when building from eclipse (CASSANDRA-2687)
 * only provide replication_factor to strategy_options "help" for
   SimpleStrategy, OldNetworkTopologyStrategy (CASSANDRA-2678, 2713)
 * fix exception adding validators to non-string columns (CASSANDRA-2696)
 * avoid instantiating DatabaseDescriptor in JDBC (CASSANDRA-2694)
 * fix potential stack overflow during compaction (CASSANDRA-2626)
 * clone super columns to avoid modifying them during flush (CASSANDRA-2675)
 * reset underlying iterator in EchoedRow constructor (CASSANDRA-2653)

 * faster flushes and compaction from fixing excessively pessimistic
   rebuffering in BRAF (CASSANDRA-2581)
 * fix returning null column values in the python cql driver (CASSANDRA-2593)
 * fix merkle tree splitting exiting early (CASSANDRA-2605)
 * snapshot_before_compaction directory name fix (CASSANDRA-2598)
 * Disable compaction throttling during bootstrap (CASSANDRA-2612)
 * fix CQL treatment of > and < operators in range slices (CASSANDRA-2592)
 * fix potential double-application of counter updates on commitlog replay
 * JDBC CQL driver exposes getColumn for access to timestamp
 * JDBC ResultSetMetadata properties added to AbstractType
 * r/m clustertool (CASSANDRA-2607)
 * add support for presenting row key as a column in CQL result sets
 * Don't allow {LOCAL|EACH}_QUORUM unless strategy is NTS (CASSANDRA-2627)
 * validate keyspace strategy_options during CQL create (CASSANDRA-2624)
 * fix empty Result with secondary index when limit=1 (CASSANDRA-2628)
 * Fix regression where bootstrapping a node with no schema fails
 * Allow removing LocationInfo sstables (CASSANDRA-2632)
 * avoid attempting to replay mutations from dropped keyspaces (CASSANDRA-2631)
 * avoid using cached position of a key when GT is requested (CASSANDRA-2633)
 * fix counting bloom filter true positives (CASSANDRA-2637)
 * initialize local ep state prior to gossip startup if needed (CASSANDRA-2638)
 * fix counter increment lost after restart (CASSANDRA-2642)
 * add quote-escaping via backslash to CLI (CASSANDRA-2623)
 * fig pig example script (CASSANDRA-2487)
 * fix dynamic snitch race in adding latencies (CASSANDRA-2618)
 * Start/stop cassandra after more important services such as mdadm in
   debian packaging (CASSANDRA-2481)

 * fix NPE compacting index CFs (CASSANDRA-2528)
 * Remove checking all column families on startup for compaction candidates
 * validate CQL create keyspace options (CASSANDRA-2525)
 * fix nodetool setcompactionthroughput (CASSANDRA-2550)
 * move	gossip heartbeat back to its own thread (CASSANDRA-2554)
 * validate cql TRUNCATE columnfamily before truncating (CASSANDRA-2570)
 * disallow making schema changes to system keyspace (CASSANDRA-2563)
 * fix batch_mutate for mixed standard-counter mutations (CASSANDRA-2457)
 * fix sending mutation messages multiple times (CASSANDRA-2557)
 * fix incorrect use of NBHM.size in ReadCallback that could cause
   reads to time out even when responses were received (CASSAMDRA-2552)
 * trigger read repair correctly for LOCAL_QUORUM reads (CASSANDRA-2556)
 * forceUserDefinedCompaction will attempt to compact what it is given
   even if the pessimistic estimate is that there is not enough disk space;
   automatic compactions will only compact 2 or more sstables (CASSANDRA-2575)
 * refuse to apply migrations with older timestamps than the current
   schema (CASSANDRA-2536)
 * Allow configuring the number of compaction thread (CASSANDRA-2558)
 * remove unframed Thrift transport option
 * include indexes in snapshots (CASSANDRA-2596)
 * improve ignoring of obsolete mutations in index maintenance (CASSANDRA-2401)
 * recognize attempt to drop just the index while leaving the column
   definition alone (CASSANDRA-2619)

 * remove Avro RPC support (CASSANDRA-926)
 * support for columns that act as incr/decr counters
   (CASSANDRA-1072, 1937, 1944, 1936, 2101, 2093, 2288, 2105, 2384, 2236, 2342,
 * CQL (CASSANDRA-1703, 1704, 1705, 1706, 1707, 1708, 1710, 1711, 1940,
   2124, 2302, 2277, 2493)
 * avoid double RowMutation serialization on write path (CASSANDRA-1800)
 * make NetworkTopologyStrategy the default (CASSANDRA-1960)
 * configurable internode encryption (CASSANDRA-1567, 2152)
 * human readable column names in sstable2json output (CASSANDRA-1933)
 * change default JMX port to 7199 (CASSANDRA-2027)
 * backwards compatible internal messaging (CASSANDRA-1015)
 * atomic switch of memtables and sstables (CASSANDRA-2284)
 * add pluggable SeedProvider (CASSANDRA-1669)
 * Fix clustertool to not throw exception when calling get_endpoints (CASSANDRA-2437)
 * upgrade to thrift 0.6 (CASSANDRA-2412)
 * repair works on a token range instead of full ring (CASSANDRA-2324)
 * purge tombstones from row cache (CASSANDRA-2305)
 * push replication_factor into strategy_options (CASSANDRA-1263)
 * give snapshots the same name on each node (CASSANDRA-1791)
 * add key type information and alias (CASSANDRA-2311, 2396)
 * remove "nodetool loadbalance" (CASSANDRA-2448)
 * multithreaded compaction (CASSANDRA-2191)
 * compaction throttling (CASSANDRA-2156)
 * cli no longer divides read_repair_chance by 100 (CASSANDRA-2458)
 * made CompactionInfo.getTaskType return an enum (CASSANDRA-2482)
 * add a server-wide cap on measured memtable memory usage (CASSANDRA-2006)
 * add unified UUIDType (CASSANDRA-2233)

 * improvements/fixes to PIG driver (CASSANDRA-1618, CASSANDRA-2387,
 * validate index names (CASSANDRA-1761)
 * reduce contention on Table.flusherLock (CASSANDRA-1954)
 * try harder to detect failures during streaming, cleaning up temporary
   files more reliably (CASSANDRA-2088)
 * shut down server for OOM on a Thrift thread (CASSANDRA-2269)
 * fix tombstone handling in repair and sstable2json (CASSANDRA-2279)
 * preserve version when streaming data from old sstables (CASSANDRA-2283)
 * don't start repair if a neighboring node is marked as dead (CASSANDRA-2290)
 * purge tombstones from row cache (CASSANDRA-2305)
 * Avoid seeking when sstable2json exports the entire file (CASSANDRA-2318)
 * clear Built flag in system table when dropping an index (CASSANDRA-2320)
 * don't allow arbitrary argument for stress.java (CASSANDRA-2323)
 * validate values for index predicates in get_indexed_slice (CASSANDRA-2328)
 * queue secondary indexes for flush before the parent (CASSANDRA-2330)
 * allow job configuration to set the CL used in Hadoop jobs (CASSANDRA-2331)
 * add memtable_flush_queue_size defaulting to 4 (CASSANDRA-2333)
 * Allow overriding of initial_token, storage_port and rpc_port from system
   properties (CASSANDRA-2343)
 * fix comparator used for non-indexed secondary expressions in index scan
 * ensure size calculation and write phase of large-row compaction use
   the same threshold for TTL expiration (CASSANDRA-2349)
 * fix race when iterating CFs during add/drop (CASSANDRA-2350)
 * add ConsistencyLevel command to CLI (CASSANDRA-2354)
 * allow negative numbers in the cli (CASSANDRA-2358)
 * hard code serialVersionUID for tokens class (CASSANDRA-2361)
 * fix potential infinite loop in ByteBufferUtil.inputStream (CASSANDRA-2365)
 * fix encoding bugs in HintedHandoffManager, SystemTable when default
   charset is not UTF8 (CASSANDRA-2367)
 * avoids having removed node reappearing in Gossip (CASSANDRA-2371)
 * fix incorrect truncation of long to int when reading columns via block
   index (CASSANDRA-2376)
 * fix NPE during stream session (CASSANDRA-2377)
 * fix race condition that could leave orphaned data files when dropping CF or
   KS (CASSANDRA-2381)
 * fsync statistics component on write (CASSANDRA-2382)
 * fix duplicate results from CFS.scan (CASSANDRA-2406)
 * add IntegerType to CLI help (CASSANDRA-2414)
 * avoid caching token-only decoratedkeys (CASSANDRA-2416)
 * convert mmap assertion to if/throw so scrub can catch it (CASSANDRA-2417)
 * don't overwrite gc log (CASSANDR-2418)
 * invalidate row cache for streamed row to avoid inconsitencies
 * avoid copies in range/index scans (CASSANDRA-2425)
 * make sure we don't wipe data during cleanup if the node has not join
   the ring (CASSANDRA-2428)
 * Try harder to close files after compaction (CASSANDRA-2431)
 * re-set bootstrapped flag after move finishes (CASSANDRA-2435)
 * display validation_class in CLI 'describe keyspace' (CASSANDRA-2442)
 * make cleanup compactions cleanup the row cache (CASSANDRA-2451)
 * add column fields validation to scrub (CASSANDRA-2460)
 * use 64KB flush buffer instead of in_memory_compaction_limit (CASSANDRA-2463)
 * fix backslash substitutions in CLI (CASSANDRA-2492)
 * disable cache saving for system CFS (CASSANDRA-2502)
 * fixes for verifying destination availability under hinted conditions
   so UE can be thrown intead of timing out (CASSANDRA-2514)
 * fix update of validation class in column metadata (CASSANDRA-2512)
 * support LOCAL_QUORUM, EACH_QUORUM CLs outside of NTS (CASSANDRA-2516)
 * preserve version when streaming data from old sstables (CASSANDRA-2283)
 * fix backslash substitutions in CLI (CASSANDRA-2492)
 * count a row deletion as one operation towards memtable threshold
 * support LOCAL_QUORUM, EACH_QUORUM CLs outside of NTS (CASSANDRA-2516)

 * add nodetool join command (CASSANDRA-2160)
 * fix secondary indexes on pre-existing or streamed data (CASSANDRA-2244)
 * initialize endpoint in gossiper earlier (CASSANDRA-2228)
 * add ability to write to Cassandra from Pig (CASSANDRA-1828)
 * add rpc_[min|max]_threads (CASSANDRA-2176)
 * avoid exporting an un-requested row in sstable2json, when exporting
   a key that does not exist (CASSANDRA-2168)
 * add incremental_backups option (CASSANDRA-1872)
 * add configurable row limit to Pig loadfunc (CASSANDRA-2276)
 * validate column values in batches as well as single-Column inserts
 * move sample schema from cassandra.yaml to schema-sample.txt,
   a cli scripts (CASSANDRA-2007)
 * avoid writing empty rows when scrubbing tombstoned rows (CASSANDRA-2296)
 * fix assertion error in range and index scans for CL < ALL
 * fix commitlog replay when flush position refers to data that didn't
   get synced before server died (CASSANDRA-2285)
 * fix fd leak in sstable2json with non-mmap'd i/o (CASSANDRA-2304)
 * reduce memory use during streaming of multiple sstables (CASSANDRA-2301)
 * purge tombstoned rows from cache after GCGraceSeconds (CASSANDRA-2305)
 * allow zero replicas in a NTS datacenter (CASSANDRA-1924)
 * make range queries respect snitch for local replicas (CASSANDRA-2286)
 * fix HH delivery when column index is larger than 2GB (CASSANDRA-2297)
 * make 2ary indexes use parent CF flush thresholds during initial build
 * update memtable_throughput to be a long (CASSANDRA-2158)

 * Keep endpoint state until aVeryLongTime (CASSANDRA-2115)
 * lower-latency read repair (CASSANDRA-2069)
 * add hinted_handoff_throttle_delay_in_ms option (CASSANDRA-2161)
 * fixes for cache save/load (CASSANDRA-2172, -2174)
 * Handle whole-row deletions in CFOutputFormat (CASSANDRA-2014)
 * Make memtable_flush_writers flush in parallel (CASSANDRA-2178)
 * Add compaction_preheat_key_cache option (CASSANDRA-2175)
 * refactor stress.py to have only one copy of the format string
   used for creating row keys (CASSANDRA-2108)
 * validate index names for \w+ (CASSANDRA-2196)
 * Fix Cassandra cli to respect timeout if schema does not settle
 * fix for compaction and cleanup writing old-format data into new-version
   sstable (CASSANDRA-2211, -2216)
 * add nodetool scrub (CASSANDRA-2217, -2240)
 * fix sstable2json large-row pagination (CASSANDRA-2188)
 * fix EOFing on requests for the last bytes in a file (CASSANDRA-2213)
 * fix BufferedRandomAccessFile bugs (CASSANDRA-2218, -2241)
 * check for memtable flush_after_mins exceeded every 10s (CASSANDRA-2183)
 * fix cache saving on Windows (CASSANDRA-2207)
 * add validateSchemaAgreement call + synchronization to schema
   modification operations (CASSANDRA-2222)
 * fix for reversed slice queries on large rows (CASSANDRA-2212)
 * fat clients were writing local data (CASSANDRA-2223)
 * turn off string interning in json2sstable (CASSANDRA-2189)
 * improve detection and cleanup of partially-written sstables
 * fix supercolumn de/serialization when subcolumn comparator is different
   from supercolumn's (CASSANDRA-2104)
 * fix starting up on Windows when CASSANDRA_HOME contains whitespace
 * add [get|set][row|key]cacheSavePeriod to JMX (CASSANDRA-2100)
 * fix Hadoop ColumnFamilyOutputFormat dropping of mutations
   when batch fills up (CASSANDRA-2255)
 * move file deletions off of scheduledtasks executor (CASSANDRA-2253)

 * copy DecoratedKey.key when inserting into caches to avoid retaining
   a reference to the underlying buffer (CASSANDRA-2102)
 * format subcolumn names with subcomparator (CASSANDRA-2136)
 * fix column bloom filter deserialization (CASSANDRA-2165)

 * refactor MessageDigest creation code. (CASSANDRA-2107)
 * buffer network stack to avoid inefficient small TCP messages while avoiding
   the nagle/delayed ack problem (CASSANDRA-1896)
 * check log4j configuration for changes every 10s (CASSANDRA-1525, 1907)
 * more-efficient cross-DC replication (CASSANDRA-1530, -2051, -2138)
 * avoid polluting page cache with commitlog or sstable writes
   and seq scan operations (CASSANDRA-1470)
 * add RMI authentication options to nodetool (CASSANDRA-1921)
 * make snitches configurable at runtime (CASSANDRA-1374)
 * retry hadoop split requests on connection failure (CASSANDRA-1927)
 * implement describeOwnership for BOP, COPP (CASSANDRA-1928)
 * make read repair behave as expected for ConsistencyLevel > ONE
   (CASSANDRA-982, 2038)
 * distributed test harness (CASSANDRA-1859, 1964)
 * reduce flush lock contention (CASSANDRA-1930)
 * optimize supercolumn deserialization (CASSANDRA-1891)
 * fix CFMetaData.apply to only compare objects of the same class
 * allow specifying specific SSTables to compact from JMX (CASSANDRA-1963)
 * fix race condition in MessagingService.targets (CASSANDRA-1959, 2094, 2081)
 * refuse to open sstables from a future version (CASSANDRA-1935)
 * zero-copy reads (CASSANDRA-1714)
 * fix copy bounds for word Text in wordcount demo (CASSANDRA-1993)
 * fixes for contrib/javautils (CASSANDRA-1979)
 * check more frequently for memtable expiration (CASSANDRA-2000)
 * fix writing SSTable column count statistics (CASSANDRA-1976)
 * fix streaming of multiple CFs during bootstrap (CASSANDRA-1992)
 * explicitly set JVM GC new generation size with -Xmn (CASSANDRA-1968)
 * add short options for CLI flags (CASSANDRA-1565)
 * make keyspace argument to "describe keyspace" in CLI optional
   when authenticated to keyspace already (CASSANDRA-2029)
 * added option to specify -Dcassandra.join_ring=false on startup
   to allow "warm spare" nodes or performing JMX maintenance before
   joining the ring (CASSANDRA-526)
 * log migrations at INFO (CASSANDRA-2028)
 * add CLI verbose option in file mode (CASSANDRA-2030)
 * add single-line "--" comments to CLI (CASSANDRA-2032)
 * message serialization tests (CASSANDRA-1923)
 * switch from ivy to maven-ant-tasks (CASSANDRA-2017)
 * CLI attempts to block for new schema to propagate (CASSANDRA-2044)
 * fix potential overflow in nodetool cfstats (CASSANDRA-2057)
 * add JVM shutdownhook to sync commitlog (CASSANDRA-1919)
 * allow nodes to be up without being part of  normal traffic (CASSANDRA-1951)
 * fix CLI "show keyspaces" with null options on NTS (CASSANDRA-2049)
 * fix possible ByteBuffer race conditions (CASSANDRA-2066)
 * reduce garbage generated by MessagingService to prevent load spikes
 * fix math in RandomPartitioner.describeOwnership (CASSANDRA-2071)
 * fix deletion of sstable non-data components (CASSANDRA-2059)
 * avoid blocking gossip while deleting handoff hints (CASSANDRA-2073)
 * ignore messages from newer versions, keep track of nodes in gossip
   regardless of version (CASSANDRA-1970)
 * cache writing moved to CompactionManager to reduce i/o contention and
   updated to use non-cache-polluting writes (CASSANDRA-2053)
 * page through large rows when exporting to JSON (CASSANDRA-2041)
 * add flush_largest_memtables_at and reduce_cache_sizes_at options
 * add cli 'describe cluster' command (CASSANDRA-2127)
 * add cli support for setting username/password at 'connect' command
 * add -D option to Stress.java to allow reading hosts from a file
 * bound hints CF throughput between 32M and 256M (CASSANDRA-2148)
 * continue starting when invalid saved cache entries are encountered
 * add max_hint_window_in_ms option (CASSANDRA-1459)

 * fix offsets to ByteBuffer.get (CASSANDRA-1939)

 * fix cli crash after backgrounding (CASSANDRA-1875)
 * count timeouts in storageproxy latencies, and include latency
   histograms in StorageProxyMBean (CASSANDRA-1893)
 * fix CLI get recognition of supercolumns (CASSANDRA-1899)
 * enable keepalive on intra-cluster sockets (CASSANDRA-1766)
 * count timeouts towards dynamicsnitch latencies (CASSANDRA-1905)
 * Expose index-building status in JMX + cli schema description
 * allow [LOCAL|EACH]_QUORUM to be used with non-NetworkTopology
   replication Strategies
 * increased amount of index locks for faster commitlog replay
 * collect secondary index tombstones immediately (CASSANDRA-1914)
 * revert commitlog changes from #1780 (CASSANDRA-1917)
 * change RandomPartitioner min token to -1 to avoid collision w/
   tokens on actual nodes (CASSANDRA-1901)
 * examine the right nibble when validating TimeUUID (CASSANDRA-1910)
 * include secondary indexes in cleanup (CASSANDRA-1916)
 * CFS.scrubDataDirectories should also cleanup invalid secondary indexes
 * ability to disable/enable gossip on nodes to force them down

 * expose getNaturalEndpoints in StorageServiceMBean taking byte[]
   key; RMI cannot serialize ByteBuffer (CASSANDRA-1833)
 * infer org.apache.cassandra.locator for replication strategy classes
   when not otherwise specified
 * validation that generates less garbage (CASSANDRA-1814)
 * add TTL support to CLI (CASSANDRA-1838)
 * cli defaults to bytestype for subcomparator when creating
   column families (CASSANDRA-1835)
 * unregister index MBeans when index is dropped (CASSANDRA-1843)
 * make ByteBufferUtil.clone thread-safe (CASSANDRA-1847)
 * change exception for read requests during bootstrap from
   InvalidRequest to Unavailable (CASSANDRA-1862)
 * respect row-level tombstones post-flush in range scans
 * ReadResponseResolver check digests against each other (CASSANDRA-1830)
 * return InvalidRequest when remove of subcolumn without supercolumn
   is requested (CASSANDRA-1866)
 * flush before repair (CASSANDRA-1748)
 * SSTableExport validates key order (CASSANDRA-1884)
 * large row support for SSTableExport (CASSANDRA-1867)
 * Re-cache hot keys post-compaction without hitting disk (CASSANDRA-1878)
 * manage read repair in coordinator instead of data source, to
   provide latency information to dynamic snitch (CASSANDRA-1873)

 * fix live-column-count of slice ranges including tombstoned supercolumn
   with live subcolumn (CASSANDRA-1591)
 * rename o.a.c.internal.AntientropyStage -> AntiEntropyStage,
   o.a.c.request.Request_responseStage -> RequestResponseStage,
   o.a.c.internal.Internal_responseStage -> InternalResponseStage
 * add AbstractType.fromString (CASSANDRA-1767)
 * require index_type to be present when specifying index_name
   on ColumnDef (CASSANDRA-1759)
 * fix add/remove index bugs in CFMetadata (CASSANDRA-1768)
 * rebuild Strategy during system_update_keyspace (CASSANDRA-1762)
 * cli updates prompt to ... in continuation lines (CASSANDRA-1770)
 * support multiple Mutations per key in hadoop ColumnFamilyOutputFormat
 * improvements to Debian init script (CASSANDRA-1772)
 * use local classloader to check for version.properties (CASSANDRA-1778)
 * Validate that column names in column_metadata are valid for the
   defined comparator, and decode properly in cli (CASSANDRA-1773)
 * use cross-platform newlines in cli (CASSANDRA-1786)
 * add ExpiringColumn support to sstable import/export (CASSANDRA-1754)
 * add flush for each append to periodic commitlog mode; added
   periodic_without_flush option to disable this (CASSANDRA-1780)
 * close file handle used for post-flush truncate (CASSANDRA-1790)
 * various code cleanup (CASSANDRA-1793, -1794, -1795)
 * fix range queries against wrapped range (CASSANDRA-1781)
 * fix consistencylevel calculations for NetworkTopologyStrategy
 * cli support index type enum names (CASSANDRA-1810)
 * improved validation of column_metadata (CASSANDRA-1813)
 * reads at ConsistencyLevel > 1 throw UnavailableException
   immediately if insufficient live nodes exist (CASSANDRA-1803)
 * copy bytebuffers for local writes to avoid retaining the entire
   Thrift frame (CASSANDRA-1801)
 * fix NPE adding index to column w/o prior metadata (CASSANDRA-1764)
 * reduce fat client timeout (CASSANDRA-1730)
 * fix botched merge of CASSANDRA-1316

 * fix compaction and flush races with schema updates (CASSANDRA-1715)
 * add clustertool, config-converter, sstablekeys, and schematool
   Windows .bat files (CASSANDRA-1723)
 * reject range queries received during bootstrap (CASSANDRA-1739)
 * fix wrapping-range queries on non-minimum token (CASSANDRA-1700)
 * add nodetool cfhistogram (CASSANDRA-1698)
 * limit repaired ranges to what the nodes have in common (CASSANDRA-1674)
 * index scan treats missing columns as not matching secondary
   expressions (CASSANDRA-1745)
 * Fix misuse of DataOutputBuffer.getData in AntiEntropyService
 * detect and warn when obsolete version of JNA is present (CASSANDRA-1760)
 * reduce fat client timeout (CASSANDRA-1730)
 * cleanup smallest CFs first to increase free temp space for larger ones
 * Update windows .bat files to work outside of main Cassandra
   directory (CASSANDRA-1713)
 * fix read repair regression from 0.6.7 (CASSANDRA-1727)
 * more-efficient read repair (CASSANDRA-1719)
 * fix hinted handoff replay (CASSANDRA-1656)
 * log type of dropped messages (CASSANDRA-1677)
 * upgrade to SLF4J 1.6.1
 * fix ByteBuffer bug in ExpiringColumn.updateDigest (CASSANDRA-1679)
 * fix IntegerType.getString (CASSANDRA-1681)
 * make -Djava.net.preferIPv4Stack=true the default (CASSANDRA-628)
 * add INTERNAL_RESPONSE verb to differentiate from responses related
   to client requests (CASSANDRA-1685)
 * log tpstats when dropping messages (CASSANDRA-1660)
 * include unreachable nodes in describeSchemaVersions (CASSANDRA-1678)
 * Avoid dropping messages off the client request path (CASSANDRA-1676)
 * fix jna errno reporting (CASSANDRA-1694)
 * add friendlier error for UnknownHostException on startup (CASSANDRA-1697)
 * include jna dependency in RPM package (CASSANDRA-1690)
 * add --skip-keys option to stress.py (CASSANDRA-1696)
 * improve cli handling of non-string keys and column names
   (CASSANDRA-1701, -1693)
 * r/m extra subcomparator line in cli keyspaces output (CASSANDRA-1712)
 * add read repair chance to cli "show keyspaces"
 * upgrade to ConcurrentLinkedHashMap 1.1 (CASSANDRA-975)
 * fix index scan routing (CASSANDRA-1722)
 * fix tombstoning of supercolumns in range queries (CASSANDRA-1734)
 * clear endpoint cache after updating keyspace metadata (CASSANDRA-1741)
 * fix wrapping-range queries on non-minimum token (CASSANDRA-1700)
 * truncate includes secondary indexes (CASSANDRA-1747)
 * retain reference to PendingFile sstables (CASSANDRA-1749)
 * fix sstableimport regression (CASSANDRA-1753)
 * fix for bootstrap when no non-system tables are defined (CASSANDRA-1732)
 * handle replica unavailability in index scan (CASSANDRA-1755)
 * fix service initialization order deadlock (CASSANDRA-1756)
 * multi-line cli commands (CASSANDRA-1742)
 * fix race between snapshot and compaction (CASSANDRA-1736)
 * add listEndpointsPendingHints, deleteHintsForEndpoint JMX methods

 * add strategy options to describe_keyspace output (CASSANDRA-1560)
 * log warning when using randomly generated token (CASSANDRA-1552)
 * re-organize JMX into .db, .net, .internal, .request (CASSANDRA-1217)
 * allow nodes to change IPs between restarts (CASSANDRA-1518)
 * remember ring state between restarts by default (CASSANDRA-1518)
 * flush index built flag so we can read it before log replay (CASSANDRA-1541)
 * lock row cache updates to prevent race condition (CASSANDRA-1293)
 * remove assertion causing rare (and harmless) error messages in
   commitlog (CASSANDRA-1330)
 * fix moving nodes with no keyspaces defined (CASSANDRA-1574)
 * fix unbootstrap when no data is present in a transfer range (CASSANDRA-1573)
 * take advantage of AVRO-495 to simplify our avro IDL (CASSANDRA-1436)
 * extend authorization hierarchy to column family (CASSANDRA-1554)
 * deletion support in secondary indexes (CASSANDRA-1571)
 * meaningful error message for invalid replication strategy class
 * allow keyspace creation with RF > N (CASSANDRA-1428)
 * improve cli error handling (CASSANDRA-1580)
 * add cache save/load ability (CASSANDRA-1417, 1606, 1647)
 * add StorageService.getDrainProgress (CASSANDRA-1588)
 * Disallow bootstrap to an in-use token (CASSANDRA-1561)
 * Allow dynamic secondary index creation and destruction (CASSANDRA-1532)
 * log auto-guessed memtable thresholds (CASSANDRA-1595)
 * add ColumnDef support to cli (CASSANDRA-1583)
 * reduce index sample time by 75% (CASSANDRA-1572)
 * add cli support for column, strategy metadata (CASSANDRA-1578, 1612)
 * add cli support for schema modification (CASSANDRA-1584)
 * delete temp files on failed compactions (CASSANDRA-1596)
 * avoid blocking for dead nodes during removetoken (CASSANDRA-1605)
 * remove ConsistencyLevel.ZERO (CASSANDRA-1607)
 * expose in-progress compaction type in jmx (CASSANDRA-1586)
 * removed IClock & related classes from internals (CASSANDRA-1502)
 * fix removing tokens from SystemTable on decommission and removetoken
 * include CF metadata in cli 'show keyspaces' (CASSANDRA-1613)
 * switch from Properties to HashMap in PropertyFileSnitch to
   avoid synchronization bottleneck (CASSANDRA-1481)
 * PropertyFileSnitch configuration file renamed to
 * add cli support for get_range_slices (CASSANDRA-1088, CASSANDRA-1619)
 * Make memtable flush thresholds per-CF instead of global
   (CASSANDRA-1007, 1637)
 * add cli support for binary data without CfDef hints (CASSANDRA-1603)
 * fix building SSTable statistics post-stream (CASSANDRA-1620)
 * fix potential infinite loop in 2ary index queries (CASSANDRA-1623)
 * allow creating NTS keyspaces with no replicas configured (CASSANDRA-1626)
 * add jmx histogram of sstables accessed per read (CASSANDRA-1624)
 * remove system_rename_column_family and system_rename_keyspace from the
   client API until races can be fixed (CASSANDRA-1630, CASSANDRA-1585)
 * add cli sanity tests (CASSANDRA-1582)
 * update GC settings in cassandra.bat (CASSANDRA-1636)
 * cli support for index queries (CASSANDRA-1635)
 * cli support for updating schema memtable settings (CASSANDRA-1634)
 * cli --file option (CASSANDRA-1616)
 * reduce automatically chosen memtable sizes by 50% (CASSANDRA-1641)
 * move endpoint cache from snitch to strategy (CASSANDRA-1643)
 * fix commitlog recovery deleting the newly-created segment as well as
   the old ones (CASSANDRA-1644)
 * upgrade to Thrift 0.5 (CASSANDRA-1367)
 * cli truncate support (CASSANDRA-1653)
 * update GC settings in cassandra.bat (CASSANDRA-1636)
 * avoid logging when a node's ip/token is gossipped back to it (CASSANDRA-1666)

 * always use UTF-8 for hint keys (CASSANDRA-1439)
 * remove cassandra.yaml dependency from Hadoop and Pig (CASSADRA-1322)
 * expose CfDef metadata in describe_keyspaces (CASSANDRA-1363)
 * restore use of mmap_index_only option (CASSANDRA-1241)
 * dropping a keyspace with no column families generated an error
 * rename RackAwareStrategy to OldNetworkTopologyStrategy, RackUnawareStrategy
   to SimpleStrategy, DatacenterShardStrategy to NetworkTopologyStrategy,
   AbstractRackAwareSnitch to AbstractNetworkTopologySnitch (CASSANDRA-1392)
 * merge StorageProxy.mutate, mutateBlocking (CASSANDRA-1396)
 * faster UUIDType, LongType comparisons (CASSANDRA-1386, 1393)
 * fix setting read_repair_chance from CLI addColumnFamily (CASSANDRA-1399)
 * fix updates to indexed columns (CASSANDRA-1373)
 * fix race condition leaving to FileNotFoundException (CASSANDRA-1382)
 * fix sharded lock hash on index write path (CASSANDRA-1402)
 * add support for GT/E, LT/E in subordinate index clauses (CASSANDRA-1401)
 * cfId counter got out of sync when CFs were added (CASSANDRA-1403)
 * less chatty schema updates (CASSANDRA-1389)
 * rename column family mbeans. 'type' will now include either
   'IndexColumnFamilies' or 'ColumnFamilies' depending on the CFS type.
 * disallow invalid keyspace and column family names. This includes name that
   matches a '^\w+' regex. (CASSANDRA-1377)
 * use JNA, if present, to take snapshots (CASSANDRA-1371)
 * truncate hints if starting 0.7 for the first time (CASSANDRA-1414)
 * fix FD leak in single-row slicepredicate queries (CASSANDRA-1416)
 * allow index expressions against columns that are not part of the
   SlicePredicate (CASSANDRA-1410)
 * config-converter properly handles snitches and framed support
 * remove keyspace argument from multiget_count (CASSANDRA-1422)
 * allow specifying cassandra.yaml location as (local or remote) URL
 * fix using DynamicEndpointSnitch with NetworkTopologyStrategy
 * Add CfDef.default_validation_class (CASSANDRA-891)
 * fix EstimatedHistogram.max (CASSANDRA-1413)
 * quorum read optimization (CASSANDRA-1622)
 * handle zero-length (or missing) rows during HH paging (CASSANDRA-1432)
 * include secondary indexes during schema migrations (CASSANDRA-1406)
 * fix commitlog header race during schema change (CASSANDRA-1435)
 * fix ColumnFamilyStoreMBeanIterator to use new type name (CASSANDRA-1433)
 * correct filename generated by xml->yaml converter (CASSANDRA-1419)
 * add CMSInitiatingOccupancyFraction=75 and UseCMSInitiatingOccupancyOnly
   to default JVM options
 * decrease jvm heap for cassandra-cli (CASSANDRA-1446)
 * ability to modify keyspaces and column family definitions on a live cluster
 * support for Hadoop Streaming [non-jvm map/reduce via stdin/out]
 * Move persistent sstable stats from the system table to an sstable component
 * remove failed bootstrap attempt from pending ranges when gossip times
   it out after 1h (CASSANDRA-1463)
 * eager-create tcp connections to other cluster members (CASSANDRA-1465)
 * enumerate stages and derive stage from message type instead of
   transmitting separately (CASSANDRA-1465)
 * apply reversed flag during collation from different data sources
 * make failure to remove comitlog segment non-fatal (CASSANDRA-1348)
 * correct ordering of drain operations so CL.recover is no longer
   necessary (CASSANDRA-1408)
 * removed keyspace from describe_splits method (CASSANDRA-1425)
 * rename check_schema_agreement to describe_schema_versions
 * fix QUORUM calculation for RF > 3 (CASSANDRA-1487)
 * remove tombstones during non-major compactions when bloom filter
   verifies that row does not exist in other sstables (CASSANDRA-1074)
 * nodes that coordinated a loadbalance in the past could not be seen by
   newly added nodes (CASSANDRA-1467)
 * exposed endpoint states (gossip details) via jmx (CASSANDRA-1467)
 * ensure that compacted sstables are not included when new readers are
   instantiated (CASSANDRA-1477)
 * by default, calculate heap size and memtable thresholds at runtime (CASSANDRA-1469)
 * fix races dealing with adding/dropping keyspaces and column families in
   rapid succession (CASSANDRA-1477)
 * clean up of Streaming system (CASSANDRA-1503, 1504, 1506)
 * add options to configure Thrift socket keepalive and buffer sizes (CASSANDRA-1426)
 * make contrib CassandraServiceDataCleaner recursive (CASSANDRA-1509)
 * min, max compaction threshold are configurable and persistent
   per-ColumnFamily (CASSANDRA-1468)
 * fix replaying the last mutation in a commitlog unnecessarily
 * invoke getDefaultUncaughtExceptionHandler from DTPE with the original
   exception rather than the ExecutionException wrapper (CASSANDRA-1226)
 * remove Clock from the Thrift (and Avro) API (CASSANDRA-1501)
 * Close intra-node sockets when connection is broken (CASSANDRA-1528)
 * RPM packaging spec file (CASSANDRA-786)
 * weighted request scheduler (CASSANDRA-1485)
 * treat expired columns as deleted (CASSANDRA-1539)
 * make IndexInterval configurable (CASSANDRA-1488)
 * add describe_snitch to Thrift API (CASSANDRA-1490)
 * MD5 authenticator compares plain text submitted password with MD5'd
   saved property, instead of vice versa (CASSANDRA-1447)
 * JMX MessagingService pending and completed counts (CASSANDRA-1533)
 * fix race condition processing repair responses (CASSANDRA-1511)
 * make repair blocking (CASSANDRA-1511)
 * create EndpointSnitchInfo and MBean to expose rack and DC (CASSANDRA-1491)
 * added option to contrib/word_count to output results back to Cassandra
 * rewrite Hadoop ColumnFamilyRecordWriter to pool connections, retry to
   multiple Cassandra nodes, and smooth impact on the Cassandra cluster
   by using smaller batch sizes (CASSANDRA-1434)
 * fix setting gc_grace_seconds via CLI (CASSANDRA-1549)
 * support TTL'd index values (CASSANDRA-1536)
 * make removetoken work like decommission (CASSANDRA-1216)
 * make cli comparator-aware and improve quote rules (CASSANDRA-1523,-1524)
 * make nodetool compact and cleanup blocking (CASSANDRA-1449)
 * add memtable, cache information to GCInspector logs (CASSANDRA-1558)
 * enable/disable HintedHandoff via JMX (CASSANDRA-1550)
 * Ignore stray files in the commit log directory (CASSANDRA-1547)
 * Disallow bootstrap to an in-use token (CASSANDRA-1561)

 * sstable versioning (CASSANDRA-389)
 * switched to slf4j logging (CASSANDRA-625)
 * add (optional) expiration time for column (CASSANDRA-699)
 * access levels for authentication/authorization (CASSANDRA-900)
 * add ReadRepairChance to CF definition (CASSANDRA-930)
 * fix heisenbug in system tests, especially common on OS X (CASSANDRA-944)
 * convert to byte[] keys internally and all public APIs (CASSANDRA-767)
 * ability to alter schema definitions on a live cluster (CASSANDRA-44)
 * renamed configuration file to cassandra.xml, and log4j.properties to
   log4j-server.properties, which must now be loaded from
   the classpath (which is how our scripts in bin/ have always done it)
 * change get_count to require a SlicePredicate. create multi_get_count
 * re-organized endpointsnitch implementations and added SimpleSnitch
 * Added preload_row_cache option (CASSANDRA-946)
 * add CRC to commitlog header (CASSANDRA-999)
 * removed deprecated batch_insert and get_range_slice methods (CASSANDRA-1065)
 * add truncate thrift method (CASSANDRA-531)
 * http mini-interface using mx4j (CASSANDRA-1068)
 * optimize away copy of sliced row on memtable read path (CASSANDRA-1046)
 * replace constant-size 2GB mmaped segments and special casing for index
   entries spanning segment boundaries, with SegmentedFile that computes
   segments that always contain entire entries/rows (CASSANDRA-1117)
 * avoid reading large rows into memory during compaction (CASSANDRA-16)
 * added hadoop OutputFormat (CASSANDRA-1101)
 * efficient Streaming (no more anticompaction) (CASSANDRA-579)
 * split commitlog header into separate file and add size checksum to
   mutations (CASSANDRA-1179)
 * avoid allocating a new byte[] for each mutation on replay (CASSANDRA-1219)
 * revise HH schema to be per-endpoint (CASSANDRA-1142)
 * add joining/leaving status to nodetool ring (CASSANDRA-1115)
 * allow multiple repair sessions per node (CASSANDRA-1190)
 * optimize away MessagingService for local range queries (CASSANDRA-1261)
 * make framed transport the default so malformed requests can't OOM the
   server (CASSANDRA-475)
 * significantly faster reads from row cache (CASSANDRA-1267)
 * take advantage of row cache during range queries (CASSANDRA-1302)
 * make GCGraceSeconds a per-ColumnFamily value (CASSANDRA-1276)
 * keep persistent row size and column count statistics (CASSANDRA-1155)
 * add IntegerType (CASSANDRA-1282)
 * page within a single row during hinted handoff (CASSANDRA-1327)
 * push DatacenterShardStrategy configuration into keyspace definition,
   eliminating datacenter.properties. (CASSANDRA-1066)
 * optimize forward slices starting with '' and single-index-block name
   queries by skipping the column index (CASSANDRA-1338)
 * streaming refactor (CASSANDRA-1189)
 * faster comparison for UUID types (CASSANDRA-1043)
 * secondary index support (CASSANDRA-749 and subtasks)
 * make compaction buckets deterministic (CASSANDRA-1265)

 * Allow using DynamicEndpointSnitch with RackAwareStrategy (CASSANDRA-1429)
 * remove the remaining vestiges of the unfinished DatacenterShardStrategy
   (replaced by NetworkTopologyStrategy in 0.7)

 * fix key ordering in range query results with RandomPartitioner
   and ConsistencyLevel > ONE (CASSANDRA-1145)
 * fix for range query starting with the wrong token range (CASSANDRA-1042)
 * page within a single row during hinted handoff (CASSANDRA-1327)
 * fix compilation on non-sun JDKs (CASSANDRA-1061)
 * remove String.trim() call on row keys in batch mutations (CASSANDRA-1235)
 * Log summary of dropped messages instead of spamming log (CASSANDRA-1284)
 * add dynamic endpoint snitch (CASSANDRA-981)
 * fix streaming for keyspaces with hyphens in their name (CASSANDRA-1377)
 * fix errors in hard-coded bloom filter optKPerBucket by computing it
   algorithmically (CASSANDRA-1220
 * remove message deserialization stage, and uncap read/write stages
   so slow reads/writes don't block gossip processing (CASSANDRA-1358)
 * add jmx port configuration to Debian package (CASSANDRA-1202)
 * use mlockall via JNA, if present, to prevent Linux from swapping
   out parts of the JVM (CASSANDRA-1214)

 * avoid queuing multiple hint deliveries for the same endpoint
 * better performance for and stricter checking of UTF8 column names
 * extend option to lower compaction priority to hinted handoff
   as well (CASSANDRA-1260)
 * log errors in gossip instead of re-throwing (CASSANDRA-1289)
 * avoid aborting commitlog replay prematurely if a flushed-but-
   not-removed commitlog segment is encountered (CASSANDRA-1297)
 * fix duplicate rows being read during mapreduce (CASSANDRA-1142)
 * failure detection wasn't closing command sockets (CASSANDRA-1221)
 * cassandra-cli.bat works on windows (CASSANDRA-1236)
 * pre-emptively drop requests that cannot be processed within RPCTimeout
 * add ack to Binary write verb and update CassandraBulkLoader
   to wait for acks for each row (CASSANDRA-1093)
 * added describe_partitioner Thrift method (CASSANDRA-1047)
 * Hadoop jobs no longer require the Cassandra storage-conf.xml
 * log thread pool stats when GC is excessive (CASSANDRA-1275)
 * remove gossip message size limit (CASSANDRA-1138)
 * parallelize local and remote reads during multiget, and respect snitch
   when determining whether to do local read for CL.ONE (CASSANDRA-1317)
 * fix read repair to use requested consistency level on digest mismatch,
   rather than assuming QUORUM (CASSANDRA-1316)
 * process digest mismatch re-reads in parallel (CASSANDRA-1323)
 * switch hints CF comparator to BytesType (CASSANDRA-1274)

 * retry to make streaming connections up to 8 times. (CASSANDRA-1019)
 * reject describe_ring() calls on invalid keyspaces (CASSANDRA-1111)
 * fix cache size calculation for size of 100% (CASSANDRA-1129)
 * fix cache capacity only being recalculated once (CASSANDRA-1129)
 * remove hourly scan of all hints on the off chance that the gossiper
   missed a status change; instead, expose deliverHintsToEndpoint to JMX
   so it can be done manually, if necessary (CASSANDRA-1141)
 * don't reject reads at CL.ALL (CASSANDRA-1152)
 * reject deletions to supercolumns in CFs containing only standard
   columns (CASSANDRA-1139)
 * avoid preserving login information after client disconnects
 * prefer sun jdk to openjdk in debian init script (CASSANDRA-1174)
 * detect partioner config changes between restarts and fail fast
 * use generation time to resolve node token reassignment disagreements
 * restructure the startup ordering of Gossiper and MessageService to avoid
   timing anomalies (CASSANDRA-1160)
 * detect incomplete commit log hearders (CASSANDRA-1119)
 * force anti-entropy service to stream files on the stream stage to avoid
   sending streams out of order (CASSANDRA-1169)
 * remove inactive stream managers after AES streams files (CASSANDRA-1169)
 * allow removing entire row through batch_mutate Deletion (CASSANDRA-1027)
 * add JMX metrics for row-level bloom filter false positives (CASSANDRA-1212)
 * added a redhat init script to contrib (CASSANDRA-1201)
 * use midpoint when bootstrapping a new machine into range with not
   much data yet instead of random token (CASSANDRA-1112)
 * kill server on OOM in executor stage as well as Thrift (CASSANDRA-1226)
 * remove opportunistic repairs, when two machines with overlapping replica
   responsibilities happen to finish major compactions of the same CF near
   the same time.  repairs are now fully manual (CASSANDRA-1190)
 * add ability to lower compaction priority (default is no change from 0.6.2)

 * fix contrib/word_count build. (CASSANDRA-992)
 * split CommitLogExecutorService into BatchCommitLogExecutorService and
   PeriodicCommitLogExecutorService (CASSANDRA-1014)
 * add latency histograms to CFSMBean (CASSANDRA-1024)
 * make resolving timestamp ties deterministic by using value bytes
   as a tiebreaker (CASSANDRA-1039)
 * Add option to turn off Hinted Handoff (CASSANDRA-894)
 * fix windows startup (CASSANDRA-948)
 * make concurrent_reads, concurrent_writes configurable at runtime via JMX
 * disable GCInspector on non-Sun JVMs (CASSANDRA-1061)
 * fix tombstone handling in sstable rows with no other data (CASSANDRA-1063)
 * fix size of row in spanned index entries (CASSANDRA-1056)
 * install json2sstable, sstable2json, and sstablekeys to Debian package
 * StreamingService.StreamDestinations wouldn't empty itself after streaming
   finished (CASSANDRA-1076)
 * added Collections.shuffle(splits) before returning the splits in
   ColumnFamilyInputFormat (CASSANDRA-1096)
 * do not recalculate cache capacity post-compaction if it's been manually
   modified (CASSANDRA-1079)
 * better defaults for flush sorter + writer executor queue sizes
 * windows scripts for SSTableImport/Export (CASSANDRA-1051)
 * windows script for nodetool (CASSANDRA-1113)
 * expose PhiConvictThreshold (CASSANDRA-1053)
 * make repair of RF==1 a no-op (CASSANDRA-1090)
 * improve default JVM GC options (CASSANDRA-1014)
 * fix SlicePredicate serialization inside Hadoop jobs (CASSANDRA-1049)
 * close Thrift sockets in Hadoop ColumnFamilyRecordReader (CASSANDRA-1081)

 * fix NPE in sstable2json when no excluded keys are given (CASSANDRA-934)
 * keep the replica set constant throughout the read repair process
 * allow querying getAllRanges with empty token list (CASSANDRA-933)
 * fix command line arguments inversion in clustertool (CASSANDRA-942)
 * fix race condition that could trigger a false-positive assertion
   during post-flush discard of old commitlog segments (CASSANDRA-936)
 * fix neighbor calculation for anti-entropy repair (CASSANDRA-924)
 * perform repair even for small entropy differences (CASSANDRA-924)
 * Use hostnames in CFInputFormat to allow Hadoop's naive string-based
   locality comparisons to work (CASSANDRA-955)
 * cache read-only BufferedRandomAccessFile length to avoid
   3 system calls per invocation (CASSANDRA-950)
 * nodes with IPv6 (and no IPv4) addresses could not join cluster
 * Retrieve the correct number of undeleted columns, if any, from
   a supercolumn in a row that had been deleted previously (CASSANDRA-920)
 * fix index scans that cross the 2GB mmap boundaries for both mmap
   and standard i/o modes (CASSANDRA-866)
 * expose drain via nodetool (CASSANDRA-978)

 * JMX drain to flush memtables and run through commit log (CASSANDRA-880)
 * Bootstrapping can skip ranges under the right conditions (CASSANDRA-902)
 * fix merging row versions in range_slice for CL > ONE (CASSANDRA-884)
 * default write ConsistencyLeven chaned from ZERO to ONE
 * fix for index entries spanning mmap buffer boundaries (CASSANDRA-857)
 * use lexical comparison if time part of TimeUUIDs are the same
 * bound read, mutation, and response stages to fix possible OOM
   during log replay (CASSANDRA-885)
 * Use microseconds-since-epoch (UTC) in cli, instead of milliseconds
 * Treat batch_mutate Deletion with null supercolumn as "apply this predicate
   to top level supercolumns" (CASSANDRA-834)
 * Streaming destination nodes do not update their JMX status (CASSANDRA-916)
 * Fix internal RPC timeout calculation (CASSANDRA-911)
 * Added Pig loadfunc to contrib/pig (CASSANDRA-910)

 * fix compaction bucketing bug (CASSANDRA-814)
 * update windows batch file (CASSANDRA-824)
 * deprecate KeysCachedFraction configuration directive in favor
   of KeysCached; move to unified-per-CF key cache (CASSANDRA-801)
 * add invalidateRowCache to ColumnFamilyStoreMBean (CASSANDRA-761)
 * send Handoff hints to natural locations to reduce load on
   remaining nodes in a failure scenario (CASSANDRA-822)
 * Add RowWarningThresholdInMB configuration option to warn before very
   large rows get big enough to threaten node stability, and -x option to
   be able to remove them with sstable2json if the warning is unheeded
   until it's too late (CASSANDRA-843)
 * Add logging of GC activity (CASSANDRA-813)
 * fix ConcurrentModificationException in commitlog discard (CASSANDRA-853)
 * Fix hardcoded row count in Hadoop RecordReader (CASSANDRA-837)
 * Add a jmx status to the streaming service and change several DEBUG
   messages to INFO (CASSANDRA-845)
 * fix classpath in cassandra-cli.bat for Windows (CASSANDRA-858)
 * allow re-specifying host, port to cassandra-cli if invalid ones
   are first tried (CASSANDRA-867)
 * fix race condition handling rpc timeout in the coordinator
 * Remove CalloutLocation and StagingFileDirectory from storage-conf files
   since those settings are no longer used (CASSANDRA-878)
 * Parse a long from RowWarningThresholdInMB instead of an int (CASSANDRA-882)
 * Remove obsolete ControlPort code from DatabaseDescriptor (CASSANDRA-886)
 * move skipBytes side effect out of assert (CASSANDRA-899)
 * add "double getLoad" to StorageServiceMBean (CASSANDRA-898)
 * track row stats per CF at compaction time (CASSANDRA-870)
 * disallow CommitLogDirectory matching a DataFileDirectory (CASSANDRA-888)
 * default key cache size is 200k entries, changed from 10% (CASSANDRA-863)
 * add -Dcassandra-foreground=yes to cassandra.bat
 * exit if cluster name is changed unexpectedly (CASSANDRA-769)

 * add batch_mutate thrift command, deprecating batch_insert (CASSANDRA-336)
 * remove get_key_range Thrift API, deprecated in 0.5 (CASSANDRA-710)
 * add optional login() Thrift call for authentication (CASSANDRA-547)
 * support fat clients using gossiper and StorageProxy to perform
   replication in-process [jvm-only] (CASSANDRA-535)
 * support mmapped I/O for reads, on by default on 64bit JVMs
 * improve insert concurrency, particularly during Hinted Handoff
 * faster network code (CASSANDRA-675)
 * stress.py moved to contrib (CASSANDRA-635)
 * row caching [must be explicitly enabled per-CF in config] (CASSANDRA-678)
 * present a useful measure of compaction progress in JMX (CASSANDRA-599)
 * add bin/sstablekeys (CASSNADRA-679)
 * add ConsistencyLevel.ANY (CASSANDRA-687)
 * make removetoken remove nodes from gossip entirely (CASSANDRA-644)
 * add ability to set cache sizes at runtime (CASSANDRA-708)
 * report latency and cache hit rate statistics with lifetime totals
   instead of average over the last minute (CASSANDRA-702)
 * support get_range_slice for RandomPartitioner (CASSANDRA-745)
 * per-keyspace replication factory and replication strategy (CASSANDRA-620)
 * track latency in microseconds (CASSANDRA-733)
 * add describe_ Thrift methods, deprecating get_string_property and
 * jmx interface for tracking operation mode and streams in general.
 * keep memtables in sorted order to improve range query performance
 * use while loop instead of recursion when trimming sstables compaction list
   to avoid blowing stack in pathological cases (CASSANDRA-804)
 * basic Hadoop map/reduce support (CASSANDRA-342)

 * ensure all files for an sstable are streamed to the same directory.
 * more accurate load estimate for bootstrapping (CASSANDRA-762)
 * tolerate dead or unavailable bootstrap target on write (CASSANDRA-731)
 * allow larger numbers of keys (> 140M) in a sstable bloom filter
 * include jvm argument improvements from CASSANDRA-504 in debian package
 * change streaming chunk size to 32MB to accomodate Windows XP limitations
   (was 64MB) (CASSANDRA-795)
 * fix get_range_slice returning results in the wrong order (CASSANDRA-781)

0.5.0 final
 * avoid attempting to delete temporary bootstrap files twice (CASSANDRA-681)
 * fix bogus NaN in nodeprobe cfstats output (CASSANDRA-646)
 * provide a policy for dealing with single thread executors w/ a full queue
 * optimize inner read in MessagingService, vastly improving multiple-node
   performance (CASSANDRA-675)
 * wait for table flush before streaming data back to a bootstrapping node.
 * keep track of bootstrapping sources by table so that bootstrapping doesn't
   give the indication of finishing early (CASSANDRA-673)

0.5.0 RC3
 * commit the correct version of the patch for CASSANDRA-663

0.5.0 RC2 (unreleased)
 * fix bugs in converting get_range_slice results to Thrift
 * expose java.util.concurrent.TimeoutException in StorageProxy methods
 * TcpConnectionManager was holding on to disconnected connections,
   giving the false indication they were being used. (CASSANDRA-651)
 * Remove duplicated write. (CASSANDRA-662)
 * Abort bootstrap if IP is already in the token ring (CASSANDRA-663)
 * increase default commitlog sync period, and wait for last sync to
   finish before submitting another (CASSANDRA-668)

0.5.0 RC1
 * Fix potential NPE in get_range_slice (CASSANDRA-623)
 * add CRC32 to commitlog entries (CASSANDRA-605)
 * fix data streaming on windows (CASSANDRA-630)
 * GC compacted sstables after cleanup and compaction (CASSANDRA-621)
 * Speed up anti-entropy validation (CASSANDRA-629)
 * Fix anti-entropy assertion error (CASSANDRA-639)
 * Fix pending range conflicts when bootstapping or moving
   multiple nodes at once (CASSANDRA-603)
 * Handle obsolete gossip related to node movement in the case where
   one or more nodes is down when the movement occurs (CASSANDRA-572)
 * Include dead nodes in gossip to avoid a variety of problems
   and fix HH to removed nodes (CASSANDRA-634)
 * return an InvalidRequestException for mal-formed SlicePredicates
 * fix bug determining closest neighbor for use in multiple datacenters
 * Vast improvements in anticompaction speed (CASSANDRA-607)
 * Speed up log replay and writes by avoiding redundant serializations

0.5.0 beta 2
 * Bootstrap improvements (several tickets)
 * add nodeprobe repair anti-entropy feature (CASSANDRA-193, CASSANDRA-520)
 * fix possibility of partition when many nodes restart at once
   in clusters with multiple seeds (CASSANDRA-150)
 * fix NPE in get_range_slice when no data is found (CASSANDRA-578)
 * fix potential NPE in hinted handoff (CASSANDRA-585)
 * fix cleanup of local "system" keyspace (CASSANDRA-576)
 * improve computation of cluster load balance (CASSANDRA-554)
 * added super column read/write, column count, and column/row delete to
   cassandra-cli (CASSANDRA-567, CASSANDRA-594)
 * fix returning live subcolumns of deleted supercolumns (CASSANDRA-583)
 * respect JAVA_HOME in bin/ scripts (several tickets)
 * add StorageService.initClient for fat clients on the JVM (CASSANDRA-535)
   (see contrib/client_only for an example of use)
 * make consistency_level functional in get_range_slice (CASSANDRA-568)
 * optimize key deserialization for RandomPartitioner (CASSANDRA-581)
 * avoid GCing tombstones except on major compaction (CASSANDRA-604)
 * increase failure conviction threshold, resulting in less nodes
   incorrectly (and temporarily) marked as down (CASSANDRA-610)
 * respect memtable thresholds during log replay (CASSANDRA-609)
 * support ConsistencyLevel.ALL on read (CASSANDRA-584)
 * add nodeprobe removetoken command (CASSANDRA-564)

0.5.0 beta
 * Allow multiple simultaneous flushes, improving flush throughput
   on multicore systems (CASSANDRA-401)
 * Split up locks to improve write and read throughput on multicore systems
 * More efficient use of memory during compaction (CASSANDRA-436)
 * autobootstrap option: when enabled, all non-seed nodes will attempt
   to bootstrap when started, until bootstrap successfully
   completes. -b option is removed.  (CASSANDRA-438)
 * Unless a token is manually specified in the configuration xml,
   a bootstraping node will use a token that gives it half the
   keys from the most-heavily-loaded node in the cluster,
   instead of generating a random token.
 * Miscellaneous bootstrap fixes (several tickets)
 * Ability to change a node's token even after it has data on it
 * Ability to decommission a live node from the ring (CASSANDRA-435)
 * Semi-automatic loadbalancing via nodeprobe (CASSANDRA-192)
 * Add ability to set compaction thresholds at runtime via
   JMX / nodeprobe.  (CASSANDRA-465)
 * Add "comment" field to ColumnFamily definition. (CASSANDRA-481)
 * Additional JMX metrics (CASSANDRA-482)
 * JSON based export and import tools (several tickets)
 * Hinted Handoff fixes (several tickets)
 * Add key cache to improve read performance (CASSANDRA-423)
 * Simplified construction of custom ReplicationStrategy classes
 * Graphical application (Swing) for ring integrity verification and
   visualization was added to contrib (CASSANDRA-252)
 * Add DCQUORUM, DCQUORUMSYNC consistency levels and corresponding
   ReplicationStrategy / EndpointSnitch classes.  Experimental.
 * Web client interface added to contrib (CASSANDRA-457)
 * More-efficient flush for Random, CollatedOPP partitioners
   for normal writes (CASSANDRA-446) and bulk load (CASSANDRA-420)
 * Add MemtableFlushAfterMinutes, a global replacement for the old
   per-CF FlushPeriodInMinutes setting (CASSANDRA-463)
 * optimizations to slice reading (CASSANDRA-350) and supercolumn
   queries (CASSANDRA-510)
 * force binding to given listenaddress for nodes with multiple
   interfaces (CASSANDRA-546)
 * stress.py benchmarking tool improvements (several tickets)
 * optimized replica placement code (CASSANDRA-525)
 * faster log replay on restart (CASSANDRA-539, CASSANDRA-540)
 * optimized local-node writes (CASSANDRA-558)
 * added get_range_slice, deprecating get_key_range (CASSANDRA-344)
 * expose TimedOutException to thrift (CASSANDRA-563)

 * Add validation disallowing null keys (CASSANDRA-486)
 * Fix race conditions in TCPConnectionManager (CASSANDRA-487)
 * Fix using non-utf8-aware comparison as a sanity check.
 * Improve default garbage collector options (CASSANDRA-504)
 * Add "nodeprobe flush" (CASSANDRA-505)
 * remove NotFoundException from get_slice throws list (CASSANDRA-518)
 * fix get (not get_slice) of entire supercolumn (CASSANDRA-508)
 * fix null token during bootstrap (CASSANDRA-501)

 * Fix FlushPeriod columnfamily configuration regression
 * Fix long column name support (CASSANDRA-460)
 * Fix for serializing a row that only contains tombstones
 * Fix for discarding unneeded commitlog segments (CASSANDRA-459)
 * Add SnapshotBeforeCompaction configuration option (CASSANDRA-426)
 * Fix compaction abort under insufficient disk space (CASSANDRA-473)
 * Fix reading subcolumn slice from tombstoned CF (CASSANDRA-484)
 * Fix race condition in RVH causing occasional NPE (CASSANDRA-478)

 * fix get_key_range problems when a node is down (CASSANDRA-440)
   and add UnavailableException to more Thrift methods
 * Add example EndPointSnitch contrib code (several tickets)

0.4.0 RC2
 * fix SSTable generation clash during compaction (CASSANDRA-418)
 * reject method calls with null parameters (CASSANDRA-308)
 * properly order ranges in nodeprobe output (CASSANDRA-421)
 * fix logging of certain errors on executor threads (CASSANDRA-425)

0.4.0 RC1
 * Bootstrap feature is live; use -b on startup (several tickets)
 * Added multiget api (CASSANDRA-70)
 * fix Deadlock with SelectorManager.doProcess and TcpConnection.write
 * remove key cache b/c of concurrency bugs in third-party
   CLHM library (CASSANDRA-405)
 * update non-major compaction logic to use two threshold values
 * add periodic / batch commitlog sync modes (several tickets)
 * inline BatchMutation into batch_insert params (CASSANDRA-403)
 * allow setting the logging level at runtime via mbean (CASSANDRA-402)
 * change default comparator to BytesType (CASSANDRA-400)
 * add forwards-compatible ConsistencyLevel parameter to get_key_range
 * r/m special case of blocking for local destination when writing with
   ConsistencyLevel.ZERO (CASSANDRA-399)
 * Fixes to make BinaryMemtable [bulk load interface] useful (CASSANDRA-337);
   see contrib/bmt_example for an example of using it.
 * More JMX properties added (several tickets)
 * Thrift changes (several tickets)
    - Merged _super get methods with the normal ones; return values
      are now of ColumnOrSuperColumn.
    - Similarly, merged batch_insert_super into batch_insert.

0.4.0 beta
 * On-disk data format has changed to allow billions of keys/rows per
   node instead of only millions
 * Multi-keyspace support
 * Scan all sstables for all queries to avoid situations where
   different types of operation on the same ColumnFamily could
   disagree on what data was present
 * Snapshot support via JMX
 * Thrift API has changed a _lot_:
    - removed time-sorted CFs; instead, user-defined comparators
      may be defined on the column names, which are now byte arrays.
      Default comparators are provided for UTF8, Bytes, Ascii, Long (i64),
      and UUID types.
    - removed colon-delimited strings in thrift api in favor of explicit
      structs such as ColumnPath, ColumnParent, etc.  Also normalized
      thrift struct and argument naming.
    - Added columnFamily argument to get_key_range.
    - Change signature of get_slice to accept starting and ending
      columns as well as an offset.  (This allows use of indexes.)
      Added "ascending" flag to allow reasonably-efficient reverse
      scans as well.  Removed get_slice_by_range as redundant.
    - get_key_range operates on one CF at a time
    - changed `block` boolean on insert methods to ConsistencyLevel enum,
      with options of NONE, ONE, QUORUM, and ALL.
    - added similar consistency_level parameter to read methods
    - column-name-set slice with no names given now returns zero columns
      instead of all of them.  ("all" can run your server out of memory.
      use a range-based slice with a high max column count instead.)
 * Removed the web interface. Node information can now be obtained by
   using the newly introduced nodeprobe utility.
 * More JMX stats
 * Remove magic values from internals (e.g. special key to indicate
   when to flush memtables)
 * Rename configuration "table" to "keyspace"
 * Moved to crash-only design; no more shutdown (just kill the process)
 * Lots of bug fixes

Full list of issues resolved in 0.4 is at https://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=true&&pid=12310865&fixfor=12313862&resolution=1&sorter/field=issuekey&sorter/order=DESC

0.3.0 RC3
 * Fix potential deadlock under load in TCPConnection.

0.3.0 RC2
 * Fix possible data loss when server is stopped after replaying
   log but before new inserts force memtable flush.
 * Added BUGS file

0.3.0 RC1
 * Range queries on keys, including user-defined key collation
 * Remove support
 * Workarounds for a weird bug in JDK select/register that seems
   particularly common on VM environments. Cassandra should deploy
   fine on EC2 now
 * Much improved infrastructure: the beginnings of a decent test suite
   ("ant test" for unit tests; "nosetests" for system tests), code
   coverage reporting, etc.
 * Expanded node status reporting via JMX
 * Improved error reporting/logging on both server and client
 * Reduced memory footprint in default configuration
 * Combined blocking and non-blocking versions of insert APIs
 * Added FlushPeriodInMinutes configuration parameter to force
   flushing of infrequently-updated ColumnFamilies

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: