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 2012/10/18 22:20:30 UTC
[1/6] git commit: merge from 1.1
Updated Branches:
refs/heads/cassandra-1.1 c9b249b2a -> e400d0eca
refs/heads/trunk 8495560c2 -> db2c2999d
merge from 1.1
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/db2c2999
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/db2c2999
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/db2c2999
Branch: refs/heads/trunk
Commit: db2c2999d10989c26da198f241cb81921759bd1c
Parents: 8495560 e400d0e
Author: Jonathan Ellis <jb...@apache.org>
Authored: Thu Oct 18 15:19:30 2012 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Thu Oct 18 15:19:30 2012 -0500
----------------------------------------------------------------------
CHANGES.txt | 3 +++
src/java/org/apache/cassandra/config/Config.java | 4 ++--
.../org/apache/cassandra/db/ColumnFamilyStore.java | 4 +++-
.../io/compress/CompressedRandomAccessReader.java | 7 +++++++
.../apache/cassandra/thrift/CassandraServer.java | 1 -
5 files changed, 15 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/db2c2999/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 922e808,49164b6..ee61379
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,108 -1,8 +1,111 @@@
+1.2-beta2
+ * Sort commitlog segments for replay by id instead of mtime (CASSANDRA-4793)
+ * Make hint delivery asynchronous (CASSANDRA-4761)
+ * Pluggable Thrift transport factories for CLI and cqlsh (CASSANDRA-4609, 4610)
+ * cassandra-cli: allow Double value type to be inserted to a column (CASSANDRA-4661)
+ * Add ability to use custom TServerFactory implementations (CASSANDRA-4608)
+ * optimize batchlog flushing to skip successful batches (CASSANDRA-4667)
+ * include metadata for system keyspace itself in schema tables (CASSANDRA-4416)
+ * add check to PropertyFileSnitch to verify presence of location for
+ local node (CASSANDRA-4728)
+ * add PBSPredictor consistency modeler (CASSANDRA-4261)
+ * remove vestiges of Thrift unframed mode (CASSANDRA-4729)
+ * optimize single-row PK lookups (CASSANDRA-4710)
+ * adjust blockFor calculation to account for pending ranges due to node
+ movement (CASSANDRA-833)
+ * Change CQL version to 3.0.0 and stop accepting 3.0.0-beta1 (CASSANDRA-4649)
+ * (CQL3) Make prepared statement global instead of per connection
+ (CASSANDRA-4449)
+ * Fix scrubbing of CQL3 created tables (CASSANDRA-4685)
+ * (CQL3) Fix validation when using counter and regular columns in the same
+ table (CASSANDRA-4706)
+ * Fix bug starting Cassandra with simple authentication (CASSANDRA-4648)
+ * Add support for batchlog in CQL3 (CASSANDRA-4545, 4738)
+ * Add support for multiple column family outputs in CFOF (CASSANDRA-4208)
+ * Support repairing only the local DC nodes (CASSANDRA-4747)
+ * Use rpc_address for binary protocol and change default port (CASSANRA-4751)
+ * Fix use of collections in prepared statements (CASSANDRA-4739)
+ * Store more information into peers table (CASSANDRA-4351, 4814)
+ * Configurable bucket size for size tiered compaction (CASSANDRA-4704)
+ * Run leveled compaction in parallel (CASSANDRA-4310)
+ * Fix potential NPE during CFS reload (CASSANDRA-4786)
+ * Composite indexes may miss results (CASSANDRA-4796)
+ * Move consistency level to the protocol level (CASSANDRA-4734, 4824)
+
+
+1.2-beta1
+ * add atomic_batch_mutate (CASSANDRA-4542, -4635)
+ * increase default max_hint_window_in_ms to 3h (CASSANDRA-4632)
+ * include message initiation time to replicas so they can more
+ accurately drop timed-out requests (CASSANDRA-2858)
+ * fix clientutil.jar dependencies (CASSANDRA-4566)
+ * optimize WriteResponse (CASSANDRA-4548)
+ * new metrics (CASSANDRA-4009)
+ * redesign KEYS indexes to avoid read-before-write (CASSANDRA-2897)
+ * debug tracing (CASSANDRA-1123)
+ * parallelize row cache loading (CASSANDRA-4282)
+ * Make compaction, flush JBOD-aware (CASSANDRA-4292)
+ * run local range scans on the read stage (CASSANDRA-3687)
+ * clean up ioexceptions (CASSANDRA-2116)
+ * add disk_failure_policy (CASSANDRA-2118)
+ * Introduce new json format with row level deletion (CASSANDRA-4054)
+ * remove redundant "name" column from schema_keyspaces (CASSANDRA-4433)
+ * improve "nodetool ring" handling of multi-dc clusters (CASSANDRA-3047)
+ * update NTS calculateNaturalEndpoints to be O(N log N) (CASSANDRA-3881)
+ * add UseCondCardMark XX jvm settings on jdk 1.7 (CASSANDRA-4366)
+ * split up rpc timeout by operation type (CASSANDRA-2819)
+ * rewrite key cache save/load to use only sequential i/o (CASSANDRA-3762)
+ * update MS protocol with a version handshake + broadcast address id
+ (CASSANDRA-4311)
+ * multithreaded hint replay (CASSANDRA-4189)
+ * add inter-node message compression (CASSANDRA-3127)
+ * remove COPP (CASSANDRA-2479)
+ * Track tombstone expiration and compact when tombstone content is
+ higher than a configurable threshold, default 20% (CASSANDRA-3442, 4234)
+ * update MurmurHash to version 3 (CASSANDRA-2975)
+ * (CLI) track elapsed time for `delete' operation (CASSANDRA-4060)
+ * (CLI) jline version is bumped to 1.0 to properly support
+ 'delete' key function (CASSANDRA-4132)
+ * Save IndexSummary into new SSTable 'Summary' component (CASSANDRA-2392, 4289)
+ * Add support for range tombstones (CASSANDRA-3708)
+ * Improve MessagingService efficiency (CASSANDRA-3617)
+ * Avoid ID conflicts from concurrent schema changes (CASSANDRA-3794)
+ * Set thrift HSHA server thread limit to unlimited by default (CASSANDRA-4277)
+ * Avoids double serialization of CF id in RowMutation messages
+ (CASSANDRA-4293)
+ * stream compressed sstables directly with java nio (CASSANDRA-4297)
+ * Support multiple ranges in SliceQueryFilter (CASSANDRA-3885)
+ * Add column metadata to system column families (CASSANDRA-4018)
+ * (cql3) Always use composite types by default (CASSANDRA-4329)
+ * (cql3) Add support for set, map and list (CASSANDRA-3647)
+ * Validate date type correctly (CASSANDRA-4441)
+ * (cql3) Allow definitions with only a PK (CASSANDRA-4361)
+ * (cql3) Add support for row key composites (CASSANDRA-4179)
+ * improve DynamicEndpointSnitch by using reservoir sampling (CASSANDRA-4038)
+ * (cql3) Add support for 2ndary indexes (CASSANDRA-3680)
+ * (cql3) fix defining more than one PK to be invalid (CASSANDRA-4477)
+ * remove schema agreement checking from all external APIs (Thrift, CQL and CQL3) (CASSANDRA-4487)
+ * add Murmur3Partitioner and make it default for new installations (CASSANDRA-3772, 4621)
+ * (cql3) update pseudo-map syntax to use map syntax (CASSANDRA-4497)
+ * Finer grained exceptions hierarchy and provides error code with exceptions (CASSANDRA-3979)
+ * Adds events push to binary protocol (CASSANDRA-4480)
+ * Rewrite nodetool help (CASSANDRA-2293)
+ * Make CQL3 the default for CQL (CASSANDRA-4640)
+ * update stress tool to be able to use CQL3 (CASSANDRA-4406)
+ * Accept all thrift update on CQL3 cf but don't expose their metadata (CASSANDRA-4377)
+ * Replace Throttle with Guava's RateLimiter for HintedHandOff (CASSANDRA-4541)
+ * fix counter add/get using CQL2 and CQL3 in stress tool (CASSANDRA-4633)
+ * Add sstable count per level to cfstats (CASSANDRA-4537)
+ * (cql3) Add ALTER KEYSPACE statement (CASSANDRA-4611)
+ * (cql3) Allow defining default consistency levels (CASSANDRA-4448)
+ * (cql3) Fix queries using LIMIT missing results (CASSANDRA-4579)
+ * fix cross-version gossip messaging (CASSANDRA-4576)
+
1.1.7
+ * fix possible stackoverflow when compacting 1000s of sstables
+ (CASSANDRA-4765)
* fix wrong leveled compaction progress calculation (CASSANDRA-4807)
+ * add a close() method to CRAR to prevent leaking file descriptors (CASSANDRA-4820)
1.1.6
* Wait for writes on synchronous read digest mismatch (CASSANDRA-4792)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/db2c2999/src/java/org/apache/cassandra/config/Config.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/config/Config.java
index 827d8d3,f4e7955..732760b
--- a/src/java/org/apache/cassandra/config/Config.java
+++ b/src/java/org/apache/cassandra/config/Config.java
@@@ -7,23 -9,20 +7,23 @@@
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
+ * http://www.apache.org/licenses/LICENSE-2.0
*
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
*/
+package org.apache.cassandra.config;
- import org.apache.cassandra.cache.ConcurrentLinkedHashCacheProvider;
+ import org.apache.cassandra.cache.SerializingCacheProvider;
-
+/**
+ * A class that contains configuration properties for the cassandra node it runs within.
+ *
+ * Properties declared as volatile can be mutated via JMX.
+ */
public class Config
{
public String cluster_name = "Test Cluster";
@@@ -150,9 -133,9 +150,9 @@@
public int key_cache_keys_to_save = Integer.MAX_VALUE;
public long row_cache_size_in_mb = 0;
- public int row_cache_save_period = 0;
+ public volatile int row_cache_save_period = 0;
public int row_cache_keys_to_save = Integer.MAX_VALUE;
- public String row_cache_provider = ConcurrentLinkedHashCacheProvider.class.getSimpleName();
+ public String row_cache_provider = SerializingCacheProvider.class.getSimpleName();
public boolean populate_io_cache_on_flush = false;
private static boolean loadYaml = true;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/db2c2999/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/ColumnFamilyStore.java
index 8a1d54f,67a883d..361e362
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@@ -875,9 -888,9 +877,9 @@@ public class ColumnFamilyStore implemen
Set<SSTableReader> results = null;
for (SSTableReader sstable : sstables)
{
- Set<SSTableReader> overlaps = ImmutableSet.copyOf(tree.search(new Interval<SSTableReader>(sstable.first, sstable.last)));
+ Set<SSTableReader> overlaps = ImmutableSet.copyOf(tree.search(Interval.<RowPosition, SSTableReader>create(sstable.first, sstable.last)));
assert overlaps.contains(sstable);
- results = results == null ? overlaps : Sets.union(results, overlaps);
+ results = results == null ? overlaps : Sets.union(results, overlaps).immutableCopy();
}
results = Sets.difference(results, ImmutableSet.copyOf(sstables));
http://git-wip-us.apache.org/repos/asf/cassandra/blob/db2c2999/src/java/org/apache/cassandra/io/compress/CompressedRandomAccessReader.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/db2c2999/src/java/org/apache/cassandra/thrift/CassandraServer.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/thrift/CassandraServer.java
index 337b5fe,ad416f3..654f410
--- a/src/java/org/apache/cassandra/thrift/CassandraServer.java
+++ b/src/java/org/apache/cassandra/thrift/CassandraServer.java
@@@ -897,40 -658,21 +897,39 @@@ public class CassandraServer implement
public List<KeySlice> get_range_slices(ColumnParent column_parent, SlicePredicate predicate, KeyRange range, ConsistencyLevel consistency_level)
throws InvalidRequestException, UnavailableException, TException, TimedOutException
{
- logger.debug("range_slice");
-
- ClientState cState = state();
- String keyspace = cState.getKeyspace();
- cState.hasColumnFamilyAccess(column_parent.column_family, Permission.SELECT);
-
- CFMetaData metadata = ThriftValidation.validateColumnFamily(keyspace, column_parent.column_family);
- ThriftValidation.validateColumnParent(metadata, column_parent);
- ThriftValidation.validatePredicate(metadata, column_parent, predicate);
- ThriftValidation.validateKeyRange(metadata, column_parent.super_column, range);
- ThriftValidation.validateConsistencyLevel(keyspace, consistency_level, RequestType.READ);
+ if (startSessionIfRequested())
+ {
+ Map<String, String> traceParameters = ImmutableMap.of(
+ "column_parent", column_parent.toString(),
+ "predicate", predicate.toString(),
+ "range", range.toString(),
+ "consistency_level", consistency_level.name());
+ Tracing.instance().begin("get_range_slices", traceParameters);
+ }
+ else
+ {
+ logger.debug("range_slice");
+ }
- List<Row> rows;
try
{
-
+ String keyspace = null;
+ CFMetaData metadata = null;
+
+ ClientState cState = state();
+ keyspace = cState.getKeyspace();
+ cState.hasColumnFamilyAccess(column_parent.column_family, Permission.SELECT);
+
+ metadata = ThriftValidation.validateColumnFamily(keyspace, column_parent.column_family);
+ ThriftValidation.validateColumnParent(metadata, column_parent);
+ ThriftValidation.validatePredicate(metadata, column_parent, predicate);
+ ThriftValidation.validateKeyRange(metadata, column_parent.super_column, range);
+
+ org.apache.cassandra.db.ConsistencyLevel consistencyLevel = ThriftConversion.fromThrift(consistency_level);
+ consistencyLevel.validateForRead(keyspace);
+
+ List<Row> rows = null;
+
IPartitioner<?> p = StorageService.getPartitioner();
AbstractBounds<RowPosition> bounds;
if (range.start_key == null)