Merge branch 'cassandra-2.1' into cassandra-2.2

* cassandra-2.1:
  Avoid clock skew corrupting other nodes through paxos


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

Branch: refs/heads/cassandra-2.2
Commit: b3dd05e216a8631b12341a9fe138510be87308a1
Parents: 9e85e85 720870b
Author: Sylvain Lebresne <sylv...@datastax.com>
Authored: Thu Jun 23 09:55:56 2016 +0200
Committer: Sylvain Lebresne <sylv...@datastax.com>
Committed: Thu Jun 23 09:55:56 2016 +0200

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 +
 .../apache/cassandra/service/ClientState.java   | 56 +++++++++++++++++---
 .../apache/cassandra/service/StorageProxy.java  |  6 ++-
 .../org/apache/cassandra/utils/UUIDGen.java     | 33 ++++++++++++
 4 files changed, 88 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/b3dd05e2/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 36009c5,7474045..5106fad
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,35 -1,5 +1,36 @@@
 +2.2.7
 + * Validate bloom_filter_fp_chance against lowest supported
 +   value when the table is created (CASSANDRA-11920)
 + * RandomAccessReader: call isEOF() only when rebuffering, not for every read 
operation (CASSANDRA-12013)
 + * Don't send erroneous NEW_NODE notifications on restart (CASSANDRA-11038)
 + * StorageService shutdown hook should use a volatile variable 
(CASSANDRA-11984)
 + * Persist local metadata earlier in startup sequence (CASSANDRA-11742)
 + * Run CommitLog tests with different compression settings (CASSANDRA-9039)
 + * cqlsh: fix tab completion for case-sensitive identifiers (CASSANDRA-11664)
 + * Avoid showing estimated key as -1 in tablestats (CASSANDRA-11587)
 + * Fix possible race condition in CommitLog.recover (CASSANDRA-11743)
 + * Enable client encryption in sstableloader with cli options 
(CASSANDRA-11708)
 + * Possible memory leak in NIODataInputStream (CASSANDRA-11867)
 + * Fix commit log replay after out-of-order flush completion (CASSANDRA-9669)
 + * Add seconds to cqlsh tracing session duration (CASSANDRA-11753)
 + * Prohibit Reverse Counter type as part of the PK (CASSANDRA-9395)
 + * cqlsh: correctly handle non-ascii chars in error messages (CASSANDRA-11626)
 + * Exit JVM if JMX server fails to startup (CASSANDRA-11540)
 + * Produce a heap dump when exiting on OOM (CASSANDRA-9861)
 + * Avoid read repairing purgeable tombstones on range slices (CASSANDRA-11427)
 + * Restore ability to filter on clustering columns when using a 2i 
(CASSANDRA-11510)
 + * JSON datetime formatting needs timezone (CASSANDRA-11137)
 + * Fix is_dense recalculation for Thrift-updated tables (CASSANDRA-11502)
 + * Remove unnescessary file existence check during anticompaction 
(CASSANDRA-11660)
 + * Add missing files to debian packages (CASSANDRA-11642)
 + * Avoid calling Iterables::concat in loops during 
ModificationStatement::getFunctions (CASSANDRA-11621)
 + * cqlsh: COPY FROM should use regular inserts for single statement batches 
and
 +   report errors correctly if workers processes crash on initialization 
(CASSANDRA-11474)
 + * Always close cluster with connection in CqlRecordWriter (CASSANDRA-11553)
 + * Fix slice queries on ordered COMPACT tables (CASSANDRA-10988)
 +Merged from 2.1:
  2.1.15
+  * Fix clock skew corrupting other nodes with paxos (CASSANDRA-11991)
   * Remove distinction between non-existing static columns and existing but 
null in LWTs (CASSANDRA-9842)
   * Support mlockall on IBM POWER arch (CASSANDRA-11576)
   * Cache local ranges when calculating repair neighbors (CASSANDRA-11933)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/b3dd05e2/src/java/org/apache/cassandra/service/ClientState.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/service/ClientState.java
index a15fa5c,f2e3f1c..1218928
--- a/src/java/org/apache/cassandra/service/ClientState.java
+++ b/src/java/org/apache/cassandra/service/ClientState.java
@@@ -112,10 -96,12 +112,12 @@@ public class ClientStat
      public final boolean isInternal;
  
      // The remote address of the client - null for internal clients.
 -    private final SocketAddress remoteAddress;
 +    private final InetSocketAddress remoteAddress;
  
-     // The biggest timestamp that was returned by getTimestamp/assigned to a 
query. This is global to the VM
-     // for the sake of paxos (see #9649).
+     // The biggest timestamp that was returned by getTimestamp/assigned to a 
query. This is global to ensure that the
+     // timestamp assigned are strictly monotonic on a node, which is likely 
what user expect intuitively (more likely,
+     // most new user will intuitively expect timestamp to be strictly 
monotonic cluster-wise, but while that last part
+     // is unrealistic expectation, doing it node-wise is easy).
      private static final AtomicLong lastTimestampMicros = new AtomicLong(0);
  
      /**

http://git-wip-us.apache.org/repos/asf/cassandra/blob/b3dd05e2/src/java/org/apache/cassandra/service/StorageProxy.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/b3dd05e2/src/java/org/apache/cassandra/utils/UUIDGen.java
----------------------------------------------------------------------

Reply via email to