You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2010/08/18 18:05:19 UTC

svn commit: r986764 - /cassandra/trunk/NEWS.txt

Author: jbellis
Date: Wed Aug 18 16:05:18 2010
New Revision: 986764

URL: http://svn.apache.org/viewvc?rev=986764&view=rev
Log:
update NEWS for 0.7.  patch by gdusbabek and jbellis for CASSANDRA-1395

Modified:
    cassandra/trunk/NEWS.txt

Modified: cassandra/trunk/NEWS.txt
URL: http://svn.apache.org/viewvc/cassandra/trunk/NEWS.txt?rev=986764&r1=986763&r2=986764&view=diff
==============================================================================
--- cassandra/trunk/NEWS.txt (original)
+++ cassandra/trunk/NEWS.txt Wed Aug 18 16:05:18 2010
@@ -3,53 +3,77 @@
 
 Features
 --------
-    - Row keys are now bytes: keys stored by versions prior to 0.7.0 will be
-      returned as UTF-8 encoded bytes. OrderPreservingPartitioner and
-      CollatingOrderPreservingPartitioner continue to expect that keys contain
-      UTF-8 encoded strings, but RandomPartitioner no longer expects strings.
-    - A new ByteOrderedPartitioner supports bytes keys with arbitrary content,
-      and orders keys by their byte value. 
-    - Truncate thrift method allows clearing an entire ColumnFamily at once
+    - Secondary indexes (indexes on column values) are now supported
+    - Row size limit increased from 2GB to 2 billion columns.  rows
+      are no longer read into memory during compaction.
+    - Keyspace and ColumnFamily definitions may be added and modified live
+    - Streaming data for repair or node movement no longer requires 
+      anticompaction step first
     - NetworkTopologyStrategy (formerly DatacenterShardStrategy) is ready for 
       use, enabling ConsitencyLevel.DCQUORUM and DCQUORUMSYNC.  See comments 
       in `cassandra.yaml.`
-    - row size limit increased from 2GB to 2 billion columns
+    - Optional per-Column time-to-live field allows expiring data without
+      have to issue explicit remove commands
+    - `truncate` thrift method allows clearing an entire ColumnFamily at once
     - Hadoop OutputFormat support
-    - Streaming data for repair or node movement no longer requires 
-      anticompaction step first
-    - keyspace is per-connection in the thrift API instead of per-call
-    - optional round-robin scheduling between keyspaces for multitenant
+    - Up to 8x faster reads from row cache
+    - A new ByteOrderedPartitioner supports bytes keys with arbitrary content,
+      and orders keys by their byte value.  This should be used in new
+      deployments instead of OrderPreservingPartitioner.
+    - Optional round-robin scheduling between keyspaces for multitenant
       clusters
-    - dynamic endpoint snitch mitigates the impact of impaired nodes
-    - significantly faster reads from row cache
-    - introduced IntegerType that is both faster than LongType and
-      allows integers of both less and more bits than Long's 64
+    - Dynamic endpoint snitch mitigates the impact of impaired nodes
+    - New `IntegerType`, faster than LongType and allows integers of 
+      both less and more bits than Long's 64
+
+Upgrading
+---------
+    The Thrift API has changed in incompatible ways; see below, and refer
+    to http://wiki.apache.org/cassandra/ClientOptions for a list of
+    higher-level clients that have been updated to support the 0.7 API.
+
+    The Cassandra inter-node protocol is incompatible with 0.6.x releases,
+    meaning you will have to bring your cluster down prior to upgrading;
+    you cannot mix 0.6 and 0.7 nodes.
+
+    Keyspace and ColumnFamily definitions are stored in the system
+    keyspace, rather than the configuration file.
+
+    The process to upgrade is:
+    1) run "nodetool drain" on _each_ 0.6 node.  When drain finishes (log
+       message "Node is drained" appears), stop the process.
+    2) Convert your storage-conf.xml to the new cassandra.yaml using 
+       "bin/config-converter".
+    3) Stand up your cluster with the 0.7 version.
+    4) Initialize your Keyspace and ColumnFamily definitions using 
+       "bin/schematool <host> <jmxport> import".  _You only need to do 
+       this to one node_.
+
+Thrift API
+----------
+    - Row keys are now bytes: keys stored by versions prior to 0.7.0 will be
+      returned as UTF-8 encoded bytes. OrderPreservingPartitioner and
+      CollatingOrderPreservingPartitioner continue to expect that keys contain
+      UTF-8 encoded strings, but RandomPartitioner now works on any key data.
+    - i64 timestamps have been replaced with the Clock struct.
+    - keyspace parameters have been replaced with the per-connection
+      set_keyspace method.
+    - The return type for login() is now AccessLevel.
+    - The get_string_property() method has been removed.
+    - The get_string_list_property() method has been removed.
 
 Configuraton
 ------------
     - Configuration file renamed to cassandra.yaml and log4j.properties to
       log4j-server.properties
-    - Added 'bin/config-converter' to convert existing storage-conf.xml or
-      cassandra.xml files to a cassandra.yaml file. When executed, it will
-      create a cassandra.yaml file in any directory containing a matching
-      xml file.
     - The ThriftAddress and ThriftPort directives have been renamed to
       RPCAddress and RPCPort respectively.
-    - The keyspaces defined in cassandra.yaml are ignored on startup as a
-      result of CASSANDRA-44.  A JMX method has been exposed in the 
-      StorageServiceMBean to force a schema load from cassandra.yaml. It
-      is a one-shot affair though and you should conduct it on a seed node
-      before other nodes. Subsequent restarts will load the schema from the 
-      system table and attempts to load the schema from YAML will be ignored.  
-      You shoud only have to do this for one node since new nodes will receive
-      schema updates on startup from the seed node you updated manually. 
     - EndPointSnitch was renamed to RackInferringSnitch.  A new SimpleSnitch
       has been added.
+    - RackUnawareStrategy and RackAwareStrategy have been renamed to
+      SimpleStrategy and OldNetworkTopologyStrategy, respectively.
     - RowWarningThresholdInMB replaced with in_memory_compaction_limit_in_mb
     - GCGraceSeconds is now per-ColumnFamily instead of global
-    - Configuration of NetworkTopologyStrategy is now a part of the keyspace
-      definition using the strategy_options attribute.
-      The datacenter.properties file is no longer used.
 
 JMX
 ---
@@ -58,19 +82,11 @@ JMX
     - {Min,Mean,Max}RowCompactedSize renamed to {Min,Mean,Max}RowSize
       since it no longer has to wait til compaction to be computed
 
-Thrift API
-----------
-    - Row keys are now 'bytes': see the Features list.
-    - The return type for login() is now AccessLevel.
-    - The get_string_property() method has been removed.
-    - The get_string_list_property() method has been removed.
-
 Other
 -----
     - If extending AbstractType, make sure you follow the singleton pattern
-      followed by Cassandra core AbstractType extensions.
-      e.g. BytesType has a variable called 'instance' and an empty constructor
-      with default access
+      followed by Cassandra core AbstractType classes: provide a public
+      static final variable called 'instance'.
 
 
 0.6.1