Merge branch 'cassandra-3.0' into cassandra-3.X

Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/541d8370
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/541d8370
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/541d8370

Branch: refs/heads/cassandra-3.X
Commit: 541d837070630cd39a8c57e414a8e777f6791ae1
Parents: f1b742e 76f1750
Author: Carl Yeksigian <c...@apache.org>
Authored: Wed Oct 12 12:30:11 2016 -0400
Committer: Carl Yeksigian <c...@apache.org>
Committed: Wed Oct 12 12:30:11 2016 -0400

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 +
 .../apache/cassandra/db/view/TableViews.java    | 91 +++++++++++++++++---
 .../apache/cassandra/db/view/ViewBuilder.java   | 11 ++-
 .../cassandra/db/view/ViewUpdateGenerator.java  |  8 ++
 4 files changed, 93 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/541d8370/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index e733214,13800da..1ade69f
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,84 -1,5 +1,85 @@@
 -3.0.10
 +3.10
 + * Check for hash conflicts in prepared statements (CASSANDRA-12733)
 + * Exit query parsing upon first error (CASSANDRA-12598)
 + * Fix cassandra-stress to use single seed in UUID generation 
(CASSANDRA-12729)
 + * CQLSSTableWriter does not allow Update statement (CASSANDRA-12450)
 + * Config class uses boxed types but DD exposes primitive types 
(CASSANDRA-12199)
 + * Add pre- and post-shutdown hooks to Storage Service (CASSANDRA-12461)
 + * Add hint delivery metrics (CASSANDRA-12693)
 + * Remove IndexInfo cache from FileIndexInfoRetriever (CASSANDRA-12731)
 + * ColumnIndex does not reuse buffer (CASSANDRA-12502)
 + * cdc column addition still breaks schema migration tasks (CASSANDRA-12697)
 + * Upgrade metrics-reporter dependencies (CASSANDRA-12089)
 + * Tune compaction thread count via nodetool (CASSANDRA-12248)
 + * Add +=/-= shortcut syntax for update queries (CASSANDRA-12232)
 + * Include repair session IDs in repair start message (CASSANDRA-12532)
 + * Add a blocking task to Index, run before joining the ring (CASSANDRA-12039)
 + * Fix NPE when using CQLSSTableWriter (CASSANDRA-12667)
 + * Support optional backpressure strategies at the coordinator 
(CASSANDRA-9318)
 + * Make randompartitioner work with new vnode allocation (CASSANDRA-12647)
 + * Fix cassandra-stress graphing (CASSANDRA-12237)
 + * Allow filtering on partition key columns for queries without secondary 
indexes (CASSANDRA-11031)
 + * Fix Cassandra Stress reporting thread model and precision (CASSANDRA-12585)
 + * Add JMH benchmarks.jar (CASSANDRA-12586)
 + * Add row offset support to SASI (CASSANDRA-11990)
 + * Cleanup uses of AlterTableStatementColumn (CASSANDRA-12567)
 + * Add keep-alive to streaming (CASSANDRA-11841)
 + * Tracing payload is passed through newSession(..) (CASSANDRA-11706)
 + * avoid deleting non existing sstable files and improve related log messages 
(CASSANDRA-12261)
 + * json/yaml output format for nodetool compactionhistory (CASSANDRA-12486)
 + * Retry all internode messages once after a connection is
 +   closed and reopened (CASSANDRA-12192)
 + * Add support to rebuild from targeted replica (CASSANDRA-9875)
 + * Add sequence distribution type to cassandra stress (CASSANDRA-12490)
 + * "SELECT * FROM foo LIMIT ;" does not error out (CASSANDRA-12154)
 + * Define executeLocally() at the ReadQuery Level (CASSANDRA-12474)
 + * Extend read/write failure messages with a map of replica addresses
 +   to error codes in the v5 native protocol (CASSANDRA-12311)
 + * Fix rebuild of SASI indexes with existing index files (CASSANDRA-12374)
 + * Let DatabaseDescriptor not implicitly startup services (CASSANDRA-9054, 
12550)
 + * Fix clustering indexes in presence of static columns in SASI 
(CASSANDRA-12378)
 + * Fix queries on columns with reversed type on SASI indexes (CASSANDRA-12223)
 + * Added slow query log (CASSANDRA-12403)
 + * Count full coordinated request against timeout (CASSANDRA-12256)
 + * Allow TTL with null value on insert and update (CASSANDRA-12216)
 + * Make decommission operation resumable (CASSANDRA-12008)
 + * Add support to one-way targeted repair (CASSANDRA-9876)
 + * Remove clientutil jar (CASSANDRA-11635)
 + * Fix compaction throughput throttle (CASSANDRA-12366, CASSANDRA-12717)
 + * Delay releasing Memtable memory on flush until PostFlush has finished 
running (CASSANDRA-12358)
 + * Cassandra stress should dump all setting on startup (CASSANDRA-11914)
 + * Make it possible to compact a given token range (CASSANDRA-10643)
 + * Allow updating DynamicEndpointSnitch properties via JMX (CASSANDRA-12179)
 + * Collect metrics on queries by consistency level (CASSANDRA-7384)
 + * Add support for GROUP BY to SELECT statement (CASSANDRA-10707)
 + * Deprecate memtable_cleanup_threshold and update default for 
memtable_flush_writers (CASSANDRA-12228)
 + * Upgrade to OHC 0.4.4 (CASSANDRA-12133)
 + * Add version command to cassandra-stress (CASSANDRA-12258)
 + * Create compaction-stress tool (CASSANDRA-11844)
 + * Garbage-collecting compaction operation and schema option (CASSANDRA-7019)
 + * Add beta protocol flag for v5 native protocol (CASSANDRA-12142)
 + * Support filtering on non-PRIMARY KEY columns in the CREATE
 +   MATERIALIZED VIEW statement's WHERE clause (CASSANDRA-10368)
 + * Unify STDOUT and SYSTEMLOG logback format (CASSANDRA-12004)
 + * COPY FROM should raise error for non-existing input files (CASSANDRA-12174)
 + * Faster write path (CASSANDRA-12269)
 + * Option to leave omitted columns in INSERT JSON unset (CASSANDRA-11424)
 + * Support json/yaml output in nodetool tpstats (CASSANDRA-12035)
 + * Expose metrics for successful/failed authentication attempts 
(CASSANDRA-10635)
 + * Prepend snapshot name with "truncated" or "dropped" when a snapshot
 +   is taken before truncating or dropping a table (CASSANDRA-12178)
 + * Optimize RestrictionSet (CASSANDRA-12153)
 + * cqlsh does not automatically downgrade CQL version (CASSANDRA-12150)
 + * Omit (de)serialization of state variable in UDAs (CASSANDRA-9613)
 + * Create a system table to expose prepared statements (CASSANDRA-8831)
 + * Reuse DataOutputBuffer from ColumnIndex (CASSANDRA-11970)
 + * Remove DatabaseDescriptor dependency from SegmentedFile (CASSANDRA-11580)
 + * Add supplied username to authentication error messages (CASSANDRA-12076)
 + * Remove pre-startup check for open JMX port (CASSANDRA-12074)
 + * Remove compaction Severity from DynamicEndpointSnitch (CASSANDRA-11738)
 + * Restore resumable hints delivery (CASSANDRA-11960)
 +Merged from 3.0:
+  * Split materialized view mutations on build to prevent OOM (CASSANDRA-12268)
   * mx4j does not work in 3.0.8 (CASSANDRA-12274)
   * Abort cqlsh copy-from in case of no answer after prolonged period of time 
(CASSANDRA-12740)
   * Avoid sstable corrupt exception due to dropped static column 
(CASSANDRA-12582)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/541d8370/src/java/org/apache/cassandra/db/view/TableViews.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/view/TableViews.java
index a57a949,1a3cbb1..7ee5aab
--- a/src/java/org/apache/cassandra/db/view/TableViews.java
+++ b/src/java/org/apache/cassandra/db/view/TableViews.java
@@@ -143,9 -143,10 +144,10 @@@ public class TableViews extends Abstrac
          
Keyspace.openAndGetStore(update.metadata()).metric.viewReadTime.update(System.nanoTime()
 - start, TimeUnit.NANOSECONDS);
  
          if (!mutations.isEmpty())
 -            StorageProxy.mutateMV(update.partitionKey().getKey(), mutations, 
writeCommitLog, baseComplete);
 +            StorageProxy.mutateMV(update.partitionKey().getKey(), mutations, 
writeCommitLog, baseComplete, queryStartNanoTime);
      }
  
+ 
      /**
       * Given some updates on the base table of this object and the existing 
values for the rows affected by that update, generates the
       * mutation to be applied to the provided views.

http://git-wip-us.apache.org/repos/asf/cassandra/blob/541d8370/src/java/org/apache/cassandra/db/view/ViewBuilder.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/view/ViewBuilder.java
index 8ce3d9f,37c0e7b..9550e1e
--- a/src/java/org/apache/cassandra/db/view/ViewBuilder.java
+++ b/src/java/org/apache/cassandra/db/view/ViewBuilder.java
@@@ -81,17 -84,14 +82,15 @@@ public class ViewBuilder extends Compac
          // and pretend that there is nothing pre-existing.
          UnfilteredRowIterator empty = 
UnfilteredRowIterators.noRowsIterator(baseCfs.metadata, key, 
Rows.EMPTY_STATIC_ROW, DeletionTime.LIVE, false);
  
-         Collection<Mutation> mutations;
 -        try (ReadOrderGroup orderGroup = command.startOrderGroup();
 +        try (ReadExecutionController orderGroup = 
command.executionController();
               UnfilteredRowIterator data = 
UnfilteredPartitionIterators.getOnlyElement(command.executeLocally(orderGroup), 
command))
          {
-             mutations = 
baseCfs.keyspace.viewManager.forTable(baseCfs.metadata).generateViewUpdates(Collections.singleton(view),
 data, empty, nowInSec);
-         }
+             Iterator<Collection<Mutation>> mutations = 
baseCfs.keyspace.viewManager
+                                                       
.forTable(baseCfs.metadata)
+                                                       
.generateViewUpdates(Collections.singleton(view), data, empty, nowInSec, true);
  
-         if (!mutations.isEmpty())
-         {
 -            mutations.forEachRemaining(m -> 
StorageProxy.mutateMV(key.getKey(), m, true, noBase));
 +            AtomicLong noBase = new AtomicLong(Long.MAX_VALUE);
-             StorageProxy.mutateMV(key.getKey(), mutations, true, noBase, 
System.nanoTime());
++            mutations.forEachRemaining(m -> 
StorageProxy.mutateMV(key.getKey(), m, true, noBase, System.nanoTime()));
          }
      }
  

http://git-wip-us.apache.org/repos/asf/cassandra/blob/541d8370/src/java/org/apache/cassandra/db/view/ViewUpdateGenerator.java
----------------------------------------------------------------------

Reply via email to