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 <jbel...@apache.org>
Authored: Thu Oct 18 15:19:30 2012 -0500
Committer: Jonathan Ellis <jbel...@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)

Reply via email to