annotate NEWS.txt @ 0:d485154379c8 default tip

apache-cassandra-0.6.0-rc1-src
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 02 Apr 2010 13:36:02 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 0.6.0
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 =====
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 Features
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 --------
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 - row caching: configure with the RowsCached attribute in
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 ColumnFamily definition
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 - Hadoop map/reduce support: see contrib/word_count for an example
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 - experimental authentication support, described under
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 Authenticator in storage.conf
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 Configuraton
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 ------------
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 - MemtableSizeInMB has been replaced by MemtableThroughputInMB which
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 triggers a memtable flush when the specified amount of data has
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 been written, including overwrites.
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 - MemtableObjectCountInMillions has been replaced by the
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 MemtableOperationsInMillions directive which causes a memtable flush
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 to occur after the specified number of operations.
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 - Like MemtableSizeInMB, BinaryMemtableSizeInMB has been replaced by
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 BinaryMemtableThroughputInMB.
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 - Replication factor is now per-keyspace, rather than global.
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 - KeysCachedFraction is deprecated in favor of KeysCached
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 - RowWarningThresholdInMB added, to warn before very large rows
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 get big enough to threaten node stability
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 Thrift API
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 ----------
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 - removed deprecated get_key_range method
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 - added batch_mutate meethod
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 - deprecated multiget and batch_insert methods in favor of
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 multiget_slice and batch_mutate, respectively
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 - added ConsistencyLevel.ANY, for when you want write
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 availability even when it may not be readable immediately.
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 Unlike CL.ZERO, though, it will throw an exception if
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 it cannot be written *somewhere*.
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 JMX metrics
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 -----------
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 - read and write statistics are reported as lifetime totals,
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 instead of averages over the last minute. average-since-last
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 requested are also available for convenience.
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 - cache hit rate statistics are now available from JMX under
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 org.apache.cassandra.db.Caches
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 - compaction JMX metrics are moved to
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 org.apache.cassandra.db.CompactionManager. PendingTasks is now
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 a much better estimate of compactions remaining, and the
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 progress of the current compaction has been added.
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 - commitlog JMX metrics are moved to org.apache.cassandra.db.Commitlog
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 Installation/Upgrade
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 --------------------
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 - 0.6 network traffic is not compatible with earlier versions. You
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 will need to shut down all your nodes at once, upgrade, then restart.
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
55
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
57
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 0.5.0
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 =====
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
60
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 0. The commitlog format has changed (but sstable format has not).
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 When upgrading from 0.4, empty the commitlog either by running
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 bin/nodeprobe flush on each machine and waiting for the flush to finish,
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 or simply remove the commitlog directory if you only have test data.
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 (If more writes come in after the flush command, starting 0.5 will error
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 out; if that happens, just go back to 0.4 and flush again.)
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 The format changed twice: from 0.4 to beta1, and from beta2 to RC1.
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
68
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 .5 The gossip protocol has changed, meaning 0.5 nodes cannot coexist
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 in a cluster of 0.4 nodes or vice versa; you must upgrade your
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 whole cluster at the same time.
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
72
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 1. Bootstrap, move, load balancing, and active repair have been added.
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 See http://wiki.apache.org/cassandra/Operations. When upgrading
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 from 0.4, leave autobootstrap set to false for the first restart
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 of your old nodes.
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
77
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 2. Performance improvements across the board, especially on the write
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 path (over 100% improvement in stress.py throughput).
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
80
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 3. Configuration:
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 - Added "comment" field to ColumnFamily definition.
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 - Added MemtableFlushAfterMinutes, a global replacement for the
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 old per-CF FlushPeriodInMinutes setting
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 - Key cache settings
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
86
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 4. Thrift:
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
88 - Added get_range_slice, deprecating get_key_range
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
89
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
90
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
91
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
92 0.4.2
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 =====
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
94
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
95 1. Improve default garbage collector options significantly --
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
96 throughput will be 30% higher or more.
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
97
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
98
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
99
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
100 0.4.1
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 =====
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
102
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
103 1. SnapshotBeforeCompaction configuration option allows snapshotting
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
104 before each compaction, which allows rolling back to any version
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
105 of the data.
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
106
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
107
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
108
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
109 0.4.0
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 =====
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
111
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 1. On-disk data format has changed to allow billions of keys/rows per
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
113 node instead of only millions. The new format is incompatible with 0.3;
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
114 see 0.3 notes below for how to import data from a 0.3 install.
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
115
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
116 2. Cassandra now supports multiple keyspaces. Typically you will have
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
117 one keyspace per application, allowing applications to be able to
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
118 create and modify ColumnFamilies at will without worrying about
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
119 collisions with others in the same cluster.
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
120
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
121 3. Many Thrift API changes and documentation. See
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
122 http://wiki.apache.org/cassandra/API
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
123
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
124 4. Removed the web interface in favor of JMX and bin/nodeprobe, which
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
125 has significantly enhanced functionality.
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
126
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
127 5. Renamed configuration "<Table>" to "<Keyspace>".
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
128
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
129 6. Added commitlog fsync; see "<CommitLogSync>" in configuration.
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
130
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
131
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
132
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
133 0.3.0
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
134 =====
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
135
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
136 1. With enough and large enough keys in a ColumnFamily, Cassandra will
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
137 run out of memory trying to perform compactions (data file merges).
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
138 The size of what is stored in memory is (S + 16) * (N + M) where S
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
139 is the size of the key (usually 2 bytes per character), N is the
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
140 number of keys and M, is the map overhead (which can be guestimated
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
141 at around 32 bytes per key).
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
142 So, if you have 10-character keys and 1GB of headroom in your heap
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
143 space for compaction, you can expect to store about 17M keys
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
144 before running into problems.
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
145 See https://issues.apache.org/jira/browse/CASSANDRA-208
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
146
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
147 2. Because fixing #1 requires a data file format change, 0.4 will not
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
148 be binary-compatible with 0.3 data files. A client-side upgrade
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
149 can be done relatively easily with the following algorithm:
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
150 for key in old_client.get_key_range(everything):
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
151 columns = old_client.get_slice or get_slice_super(key, all columns)
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
152 new_client.batch_insert or batch_insert_super(key, columns)
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
153 The inner loop can be trivially parallelized for speed.
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
154
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
155 3. Commitlog does not fsync before reporting a write successful.
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
156 Using blocking writes mitigates this to some degree, since all
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
157 nodes that were part of the write quorum would have to fail
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
158 before sync for data to be lost.
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
159 See https://issues.apache.org/jira/browse/CASSANDRA-182
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
160
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
161 Additionally, row size (that is, all the data associated with a single
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
162 key in a given ColumnFamily) is limited by available memory, because
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
163 compaction deserializes each row before merging.
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
164
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
165 See https://issues.apache.org/jira/browse/CASSANDRA-16
d485154379c8 apache-cassandra-0.6.0-rc1-src
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
166