0.8.4 * include files-to-be-streamed in StreamInSession.getSources (CASSANDRA-2972) * use JAVA env var in cassandra-env.sh (CASSANDRA-2785, 2992) * avoid doing read for no-op replicate-on-write at CL=1 (CASSANDRA-2892) * refuse counter write for CL.ANY (CASSANDRA-2990) * switch back to only logging recent dropped messages (CASSANDRA-3004) * fix issues with parameters being escaped incorrectly in Python CQL (CASSANDRA-2993) * always deserialize RowMutation for counters (CASSANDRA-3006) * ignore saved replication_factor strategy_option for NTS (CASSANDRA-3011) 0.8.3 * add ability to drop local reads/writes that are going to timeout (CASSANDRA-2943) * revamp token removal process, keep gossip states for 3 days (CASSANDRA-2496) * don't accept extra args for 0-arg nodetool commands (CASSANDRA-2740) * log unavailableexception details at debug level (CASSANDRA-2856) * expose data_dir though jmx (CASSANDRA-2770) * don't include tmp files as sstable when create cfs (CASSANDRA-2929) * log Java classpath on startup (CASSANDRA-2895) * keep gossipped version in sync with actual on migration coordinator (CASSANDRA-2946) * use lazy initialization instead of class initialization in NodeId (CASSANDRA-2953) * check column family validity in nodetool repair (CASSANDRA-2933) * speedup bytes to hex conversions dramatically (CASSANDRA-2850) * Flush memtables on shutdown when durable writes are disabled (CASSANDRA-2958) * improved POSIX compatibility of start scripts (CASsANDRA-2965) * add counter support to Hadoop InputFormat (CASSANDRA-2981) * fix bug where dirty commit logs were removed (and avoid keeping segments with no post-flush activity permanently dirty) (CASSANDRA-2829) * fix throwing exception with batch mutation of counter super columns (CASSANDRA-2949) * ignore system tables during repair (CASSANDRA-2979) * throw exception when NTS is given replication_factor as an option (CASSANDRA-2960) * fix assertion error during compaction of counter CFs (CASSANDRA-2968) * avoid trying to create index names, when no index exists (CASSANDRA-2867) * fix dynamic snitch ignoring nodes when read_repair_chance is zero (CASSANDRA-2662) * don't sample the system table when choosing a bootstrap token (CASSANDRA-2825) * gossiper notifies of local state changes (CASSANDRA-2948) * add asynchronous and half-sync/half-async thrift servers (CASSANDRA-1405) * fix potential use of free'd native memory in SerializingCache (CASSANDRA-2951) 0.8.2 * CQL: - include only one row per unique key for IN queries (CASSANDRA-2717) - respect client timestamp on full row deletions (CASSANDRA-2912) * improve thread-safety in StreamOutSession (CASSANDRA-2792) * allow deleting a row and updating indexed columns in it in the same mutation (CASSANDRA-2773) * Expose number of threads blocked on submitting memtable to flush (CASSANDRA-2817) * add ability to return "endpoints" to nodetool (CASSANDRA-2776) * Add support for multiple (comma-delimited) coordinator addresses to ColumnFamilyInputFormat (CASSANDRA-2807) * fix potential NPE while scheduling read repair for range slice (CASSANDRA-2823) * Fix race in SystemTable.getCurrentLocalNodeId (CASSANDRA-2824) * Correctly set default for replicate_on_write (CASSANDRA-2835) * improve nodetool compactionstats formatting (CASSANDRA-2844) * fix index-building status display (CASSANDRA-2853) * fix CLI perpetuating obsolete KsDef.replication_factor (CASSANDRA-2846) * improve cli treatment of multiline comments (CASSANDRA-2852) * handle row tombstones correctly in EchoedRow (CASSANDRA-2786) * add MessagingService.get[Recently]DroppedMessages and StorageService.getExceptionCount (CASSANDRA-2804) * fix possibility of spurious UnavailableException for LOCAL_QUORUM reads with dynamic snitch + read repair disabled (CASSANDRA-2870) * add ant-optional as dependence for the debian package (CASSANDRA-2164) * add option to specify limit for get_slice in the CLI (CASSANDRA-2646) * decrease HH page size (CASSANDRA-2832) * reset cli keyspace after dropping the current one (CASSANDRA-2763) * add KeyRange option to Hadoop inputformat (CASSANDRA-1125) * fix protocol versioning (CASSANDRA-2818, 2860) * support spaces in path to log4j configuration (CASSANDRA-2383) * avoid including inferred types in CF update (CASSANDRA-2809) * fix JMX bulkload call (CASSANDRA-2908) * fix updating KS with durable_writes=false (CASSANDRA-2907) * add simplified facade to SSTableWriter for bulk loading use (CASSANDRA-2911) * fix re-using index CF sstable names after drop/recreate (CASSANDRA-2872) * prepend CF to default index names (CASSANDRA-2903) * fix hint replay (CASSANDRA-2928) * Properly synchronize merkle tree computation (CASSANDRA-2816) * escape quotes in sstable2json (CASSANDRA-2780) * allows using cli functions in cli del statement (CASSANDRA-2821) * allows quoted classes in CLI (CASSANDRA-2899) * expose data_dir though jmx (CASSANDRA-2770) * proper support for validation and functions for cli count statement (CASSANDRA-1902) * debian package now depend on libjna-java (CASSANDRA-2803) 0.8.1 * CQL: - support for insert, delete in BATCH (CASSANDRA-2537) - support for IN to SELECT, UPDATE (CASSANDRA-2553) - timestamp support for INSERT, UPDATE, and BATCH (CASSANDRA-2555) - TTL support (CASSANDRA-2476) - counter support (CASSANDRA-2473) - ALTER COLUMNFAMILY (CASSANDRA-1709) - DROP INDEX (CASSANDRA-2617) - add SCHEMA/TABLE as aliases for KS/CF (CASSANDRA-2743) - server handles wait-for-schema-agreement (CASSANDRA-2756) - key alias support (CASSANDRA-2480) * add support for comparator parameters and a generic ReverseType (CASSANDRA-2355) * add CompositeType and DynamicCompositeType (CASSANDRA-2231) * optimize batches containing multiple updates to the same row (CASSANDRA-2583) * adjust hinted handoff page size to avoid OOM with large columns (CASSANDRA-2652) * mark BRAF buffer invalid post-flush so we don't re-flush partial buffers again, especially on CL writes (CASSANDRA-2660) * add DROP INDEX support to CLI (CASSANDRA-2616) * don't perform HH to client-mode [storageproxy] nodes (CASSANDRA-2668) * Improve forceDeserialize/getCompactedRow encapsulation (CASSANDRA-2659) * Assert ranges are not overlapping in AB.normalize (CASSANDRA-2641) * Don't write CounterUpdateColumn to disk in tests (CASSANDRA-2650) * Add sstable bulk loading utility (CASSANDRA-1278) * avoid replaying hints to dropped columnfamilies (CASSANDRA-2685) * add placeholders for missing rows in range query pseudo-RR (CASSANDRA-2680) * remove no-op HHOM.renameHints (CASSANDRA-2693) * clone super columns to avoid modifying them during flush (CASSANDRA-2675) * allow writes to bypass the commitlog for certain keyspaces (CASSANDRA-2683) * avoid NPE when bypassing commitlog during memtable flush (CASSANDRA-2781) * close scrub file handles (CASSANDRA-2669) * throttle migration replay (CASSANDRA-2714) * optimize column serializer creation (CASSANDRA-2716) * Added support for making bootstrap retry if nodes flap (CASSANDRA-2644) * Added statusthrift to nodetool to report if thrift server is running (CASSANDRA-2722) * Fixed rows being cached if they do not exist (CASSANDRA-2723) * fix truncate/compaction race (CASSANDRA-2673) * Support passing tableName and cfName to RowCacheProviders (CASSANDRA-2702) * workaround large resultsets causing large allocation retention by nio sockets (CASSANDRA-2654) * fix nodetool ring use with Ec2Snitch (CASSANDRA-2733) * fix inconsistency window during bootstrap (CASSANDRA-833) * fix removing columns and subcolumns that are supressed by a row or supercolumn tombstone during replica resolution (CASSANDRA-2590) * support sstable2json against snapshot sstables (CASSANDRA-2386) * remove active-pull schema requests (CASSANDRA-2715) * avoid marking entire list of sstables as actively being compacted in multithreaded compaction (CASSANDRA-2765) * seek back after deserializing a row to update cache with (CASSANDRA-2752) * avoid skipping rows in scrub for counter column family (CASSANDRA-2759) * fix ConcurrentModificationException in repair when dealing with 0.7 node (CASSANDRA-2767) * use threadsafe collections for StreamInSession (CASSANDRA-2766) * avoid infinite loop when creating merkle tree (CASSANDRA-2758) * avoids unmarking compacting sstable prematurely in cleanup (CASSANDRA-2769) * fix NPE when the commit log is bypassed (CASSANDRA-2718) * don't throw an exception in SS.isRPCServerRunning (CASSANDRA-2721) * make stress.jar executable (CASSANDRA-2744) * add daemon mode to java stress (CASSANDRA-2267) * expose the DC and rack of a node through JMX and nodetool ring (CASSANDRA-2531) * fix cache mbean getSize (CASSANDRA-2781) * Add Date, Float, Double, and Boolean types (CASSANDRA-2530) * Add startup flag to renew counter node id (CASSANDRA-2788) * add jamm agent to cassandra.bat (CASSANDRA-2787) * fix repair hanging if a neighbor has nothing to send (CASSANDRA-2797) * purge tombstone even if row is in only one sstable (CASSANDRA-2801) * Fix wrong purge of deleted cf during compaction (CASSANDRA-2786) * fix race that could result in Hadoop writer failing to throw an exception encountered after close() (CASSANDRA-2755) * fix scan wrongly throwing assertion error (CASSANDRA-2653) * Always use even distribution for merkle tree with RandomPartitionner (CASSANDRA-2841) * fix describeOwnership for OPP (CASSANDRA-2800) * ensure that string tokens do not contain commas (CASSANDRA-2762) 0.8.0-final * 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) 0.8.0-rc1 * 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 (CASSANDRA-2419) * 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 (CASSANDRA-2622) * 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 (CASSANDRA-2625) * 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) * fix 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) 0.8.0-beta2 * fix NPE compacting index CFs (CASSANDRA-2528) * Remove checking all column families on startup for compaction candidates (CASSANDRA-2444) * 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) * fix batch_mutate for mixed standard-counter mutations (CASSANDRA-2457) * disallow making schema changes to system keyspace (CASSANDRA-2563) * 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) * Allow configuring the number of compaction thread (CASSANDRA-2558) * 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) * 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) 0.8.0-beta1 * 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, 2454) * 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) * remove "nodetool loadbalance" (CASSANDRA-2448) * multithreaded compaction (CASSANDRA-2191) * compaction throttling (CASSANDRA-2156) * add key type information and alias (CASSANDRA-2311, 2396) * 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 and aggressively flush to keep under that threshold (CASSANDRA-2006) * add unified UUIDType (CASSANDRA-2233) * add off-heap row cache support (CASSANDRA-1969) 0.7.5 * improvements/fixes to PIG driver (CASSANDRA-1618, CASSANDRA-2387, CASSANDRA-2465, CASSANDRA-2484) * 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 (CASSANDRA-2347) * 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 (CASSANDRA-2420) * 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 (CASSANDRA-2519) * support LOCAL_QUORUM, EACH_QUORUM CLs outside of NTS (CASSANDRA-2516) 0.7.4 * 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) * add CL.TWO, CL.THREE (CASSANDRA-2013) * 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 (CASSANDRA-2259) * 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 (CASSANDRA-2282) * 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 (CASSANDRA-2294) * update memtable_throughput to be a long (CASSANDRA-2158) 0.7.3 * 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 (CASSANDRA-2187) * 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) * set DEFAULT_MEMTABLE_LIFETIME_IN_MINS to 24h * improve detection and cleanup of partially-written sstables (CASSANDRA-2206) * fix supercolumn de/serialization when subcolumn comparator is different from supercolumn's (CASSANDRA-2104) * fix starting up on Windows when CASSANDRA_HOME contains whitespace (CASSANDRA-2237) * 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) 0.7.2 * 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) 0.7.1 * 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 (CASSANDRA-1962) * 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 (CASSANDRA-2058) * 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 (CASSANDRA-2142) * add cli 'describe cluster' command (CASSANDRA-2127) * add cli support for setting username/password at 'connect' command (CASSANDRA-2111) * add -D option to Stress.java to allow reading hosts from a file (CASSANDRA-2149) * bound hints CF throughput between 32M and 256M (CASSANDRA-2148) * continue starting when invalid saved cache entries are encountered (CASSANDRA-2076) * add max_hint_window_in_ms option (CASSANDRA-1459) 0.7.0-final * fix offsets to ByteBuffer.get (CASSANDRA-1939) 0.7.0-rc4 * 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 (CASSANDRA-1871) * 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 (CASSANDRA-1904) * ability to disable/enable gossip on nodes to force them down (CASSANDRA-1108) 0.7.0-rc3 * 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 (CASSANDRA-1837) * 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) 0.7.0-rc2 * 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 (CASSANDRA-1774) * 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 (CASSANDRA-1804) * 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 0.7.0-rc1 * 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 (CASSANDRA-1729) * 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 (CASSANDRA-1811) * 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 (CASSANDRA-1551) 0.7.0-beta3 * 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 (CASSANDRA-1566) * 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 (CASSANDRA-1609) * 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 cassandra-topology.properties * 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) * renamed CL.DCQUORUM to LOCAL_QUORUM and DCQUORUMSYNC to EACH_QUORUM * 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) 0.7-beta2 * 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 (CASSANDRA-1378) * 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. (CASSANDRA-1385) * 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 (CASSANDRA-1420) * remove keyspace argument from multiget_count (CASSANDRA-1422) * allow specifying cassandra.yaml location as (local or remote) URL (CASSANDRA-1126) * fix using DynamicEndpointSnitch with NetworkTopologyStrategy (CASSANDRA-1429) * 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 (CASSANDRA-1285) * support for Hadoop Streaming [non-jvm map/reduce via stdin/out] (CASSANDRA-1368) * Move persistent sstable stats from the system table to an sstable component (CASSANDRA-1430) * 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 (CASSANDRA-1450) * 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 (CASSANDRA-1478) * 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 (CASSANDRA-1512) * 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 (CASSANDRA-1342) * 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) 0.7-beta1 * 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) (CASSANDRA-971) * change get_count to require a SlicePredicate. create multi_get_count (CASSANDRA-744) * re-organized endpointsnitch implementations and added SimpleSnitch (CASSANDRA-994) * 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) 0.6.6 * Allow using DynamicEndpointSnitch with RackAwareStrategy (CASSANDRA-1429) * remove the remaining vestiges of the unfinished DatacenterShardStrategy (replaced by NetworkTopologyStrategy in 0.7) 0.6.5 * 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) 0.6.4 * avoid queuing multiple hint deliveries for the same endpoint (CASSANDRA-1229) * better performance for and stricter checking of UTF8 column names (CASSANDRA-1232) * 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 (CASSANDRA-685) * 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 (CASSANDRA-1280, CASSANDRA-1047) * 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) 0.6.3 * 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 (CASSANDRA-1057) * prefer sun jdk to openjdk in debian init script (CASSANDRA-1174) * detect partioner config changes between restarts and fail fast (CASSANDRA-1146) * use generation time to resolve node token reassignment disagreements (CASSANDRA-1118) * 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) (CASSANDRA-1181) 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 (CASSANDRA-1060) * 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 (CASSANDRA-1100) * 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) 0.6.1 * fix NPE in sstable2json when no excluded keys are given (CASSANDRA-934) * keep the replica set constant throughout the read repair process (CASSANDRA-937) * 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 (CASSANDRA-969) * 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) 0.6.0-RC1 * 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 (CASSANDRA-907) * 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) 0.6.0-beta3 * 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 (CASSANDRA-864) * 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) 0.6.0-beta1/beta2 * 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 (CASSANDRA-408, CASSANDRA-669) * improve insert concurrency, particularly during Hinted Handoff (CASSANDRA-658) * 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 get_string_list_property * jmx interface for tracking operation mode and streams in general. (CASSANDRA-709) * keep memtables in sorted order to improve range query performance (CASSANDRA-799) * 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) 0.5.1 * ensure all files for an sstable are streamed to the same directory. (CASSANDRA-716) * 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 (CASSANDRA-790) * 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 (CASSANDRA-694) * optimize inner read in MessagingService, vastly improving multiple-node performance (CASSANDRA-675) * wait for table flush before streaming data back to a bootstrapping node. (CASSANDRA-696) * 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 (CASSANDRA-647, CASSANDRA-649) * expose java.util.concurrent.TimeoutException in StorageProxy methods (CASSANDRA-600) * 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 (CASSANDRA-643) * fix bug determining closest neighbor for use in multiple datacenters (CASSANDRA-648) * Vast improvements in anticompaction speed (CASSANDRA-607) * Speed up log replay and writes by avoiding redundant serializations (CASSANDRA-652) 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 (CASSANDRA-444, CASSANDRA-414) * 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. (CASSANDRA-385, CASSANDRA-517) * Miscellaneous bootstrap fixes (several tickets) * Ability to change a node's token even after it has data on it (CASSANDRA-541) * 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 (CASSANDRA-497) * 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. (CASSANDRA-492) * 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) 0.4.2 * Add validation disallowing null keys (CASSANDRA-486) * Fix race conditions in TCPConnectionManager (CASSANDRA-487) * Fix using non-utf8-aware comparison as a sanity check. (CASSANDRA-493) * 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) 0.4.1 * Fix FlushPeriod columnfamily configuration regression (CASSANDRA-455) * Fix long column name support (CASSANDRA-460) * Fix for serializing a row that only contains tombstones (CASSANDRA-458) * 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) 0.4.0 * 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 (CASSANDRA-392) * 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 (CASSANDRA-407) * 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 (CASSANDRA-322) * 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. (CASSANDRA-220) 0.3.0 RC2 * Fix possible data loss when server is stopped after replaying log but before new inserts force memtable flush. (CASSANDRA-204) * 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