You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sl...@apache.org on 2016/07/05 09:24:23 UTC

[07/14] cassandra git commit: Merge commit '408066c57a66e0d5a6691af1695742ef49786bf2' into cassandra-2.2

Merge commit '408066c57a66e0d5a6691af1695742ef49786bf2' into cassandra-2.2

* commit '408066c57a66e0d5a6691af1695742ef49786bf2':
  Improve digest calculation in the presence of overlapping tombstones.


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

Branch: refs/heads/cassandra-3.0
Commit: 9199a29f6f3394abb75840234474fe858fb644b7
Parents: e06dae8 408066c
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Tue Jul 5 11:21:48 2016 +0200
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Tue Jul 5 11:22:36 2016 +0200

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 +
 .../org/apache/cassandra/db/ColumnIndex.java    | 12 +++++++++--
 .../org/apache/cassandra/db/OnDiskAtom.java     |  8 ++++++-
 .../org/apache/cassandra/db/RangeTombstone.java |  6 +++---
 .../db/compaction/LazilyCompactedRow.java       | 22 ++++++++++++++++----
 5 files changed, 39 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/9199a29f/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 451575c,33014d5..65c7c1f
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,42 -1,9 +1,43 @@@
 -2.1.16
 - * Reduce contention getting instances of CompositeType (CASSANDRA-10433)
 +2.2.8
 + * MemoryUtil.getShort() should return an unsigned short also for architectures not supporting unaligned memory accesses (CASSANDRA-11973)
 +Merged from 2.1:
+  * Improve digest calculation in the presence of overlapping tombstones (CASSANDRA-11349)
 -
 -2.1.15
 + * Fix filtering on clustering columns when 2i is used (CASSANDRA-11907)
   * Account for partition deletions in tombstone histogram (CASSANDRA-12112)
 +
 +
 +2.2.7
 + * Allow nodetool info to run with readonly JMX access (CASSANDRA-11755)
 + * 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:
   * Avoid stalling paxos when the paxos state expires (CASSANDRA-12043)
   * Remove finished incoming streaming connections from MessagingService (CASSANDRA-11854)
   * Don't try to get sstables for non-repairing column families (CASSANDRA-12077)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9199a29f/src/java/org/apache/cassandra/db/OnDiskAtom.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9199a29f/src/java/org/apache/cassandra/db/RangeTombstone.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9199a29f/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
index 6054fd3,f912da2..8de1088
--- a/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
+++ b/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
@@@ -158,11 -154,27 +158,26 @@@ public class LazilyCompactedRow extend
  
          // no special-case for rows.size == 1, we're actually skipping some bytes here so just
          // blindly updating everything wouldn't be correct
 -        DataOutputBuffer out = new DataOutputBuffer();
 -        OnDiskAtom.SerializerForWriting serializer = new OnDiskAtom.SerializerForWriting()
 +        try (DataOutputBuffer out = new DataOutputBuffer())
          {
 -            @Override
 -            public void serializeForSSTable(OnDiskAtom atom, DataOutputPlus out) throws IOException
 -            {
 -                atom.updateDigest(digest);
 -            }
 -
 -            @Override
 -            public long serializedSizeForSSTable(OnDiskAtom atom)
++            OnDiskAtom.SerializerForWriting serializer = new OnDiskAtom.SerializerForWriting()
+             {
 -                return 0;
 -            }
 -        };
 -
 -        // initialize indexBuilder for the benefit of its tombstoneTracker, used by our reducing iterator
 -        indexBuilder = new ColumnIndex.Builder(emptyColumnFamily, key.getKey(), out, serializer);
++                @Override
++                public void serializeForSSTable(OnDiskAtom atom, DataOutputPlus out) throws IOException
++                {
++                    atom.updateDigest(digest);
++                }
++
++                @Override
++                public long serializedSizeForSSTable(OnDiskAtom atom)
++                {
++                    return 0;
++                }
++            };
++
 +            // initialize indexBuilder for the benefit of its tombstoneTracker, used by our reducing iterator
-             indexBuilder = new ColumnIndex.Builder(emptyColumnFamily, key.getKey(), out);
++            indexBuilder = new ColumnIndex.Builder(emptyColumnFamily, key.getKey(), out, serializer);
  
 -        try
 -        {
              DeletionTime.serializer.serialize(emptyColumnFamily.deletionInfo().getTopLevelDeletion(), out);
  
              // do not update digest in case of missing or purged row level tombstones, see CASSANDRA-8979