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 ----------------------------------------------------------------------