Cassandra / CHANGES.txt

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
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)


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)
 * log tpstats when dropping messages (CASSANDRA-1660)
 * 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)
 * 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)


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
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.