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

[1/5] cassandra git commit: Revert "Range tombstones that are masked by row tombstones should not be written out"

Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1 98f5f77bb -> ba068472b
  refs/heads/cassandra-2.2 e8186fe39 -> c7a25972e


Revert "Range tombstones that are masked by row tombstones should not be written out"

This reverts commit 98f5f77bb3c5d50e52cbb6f577a463ca8a5134ad.

(See thread at https://mail-archives.apache.org/mod_mbox/cassandra-dev/201607.mbox/%3CCALdd-zjg%2Ba73VncPkU2rw_UpFPVsw0yNwO-yBqUQfK8H8FpiKw%40mail.gmail.com%3E)


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

Branch: refs/heads/cassandra-2.1
Commit: e865e8875370db8349f8d836594f45978b855943
Parents: 98f5f77
Author: Jonathan Ellis <jb...@apache.org>
Authored: Thu Jul 21 10:15:41 2016 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Thu Jul 21 10:15:41 2016 -0500

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 -
 .../db/compaction/LazilyCompactedRow.java       |  3 +-
 .../apache/cassandra/db/RangeTombstoneTest.java | 40 --------------------
 3 files changed, 1 insertion(+), 43 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/e865e887/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 7fa995d..b1dcbe1 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,5 +1,4 @@
 2.1.16
- * Don't write shadowed range tombstone (CASSANDRA-12030)
  * Fix filtering on clustering columns when 2i is used (CASSANDRA-11907)
  * Reduce contention getting instances of CompositeType (CASSANDRA-10433)
  * Improve digest calculation in the presence of overlapping tombstones (CASSANDRA-11349)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e865e887/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java b/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
index dab5eeb..f912da2 100644
--- a/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
+++ b/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
@@ -286,8 +286,7 @@ public class LazilyCompactedRow extends AbstractCompactedRow
                 RangeTombstone t = tombstone;
                 tombstone = null;
 
-                if (t.data.isGcAble(controller.gcBefore) && t.timestamp() < getMaxPurgeableTimestamp() ||
-                    maxRowTombstone.markedForDeleteAt >= t.timestamp())
+                if (t.data.isGcAble(controller.gcBefore) && t.timestamp() < getMaxPurgeableTimestamp())
                 {
                     indexBuilder.tombstoneTracker().update(t, true);
                     return null;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e865e887/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java b/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
index dfd6960..3292422 100644
--- a/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
+++ b/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
@@ -39,7 +39,6 @@ import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.config.IndexType;
 import org.apache.cassandra.db.columniterator.OnDiskAtomIterator;
 import org.apache.cassandra.db.compaction.CompactionManager;
-import org.apache.cassandra.db.compaction.LeveledCompactionStrategy;
 import org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy;
 import org.apache.cassandra.db.composites.CellName;
 import org.apache.cassandra.db.composites.CellNames;
@@ -544,45 +543,6 @@ public class RangeTombstoneTest extends SchemaLoader
     }
 
     @Test
-    public void testCompactionOfRangeTombstonesCoveredByRowTombstone() throws Exception
-    {
-        long testTimeStamp = 1451606400L; // 01/01/2016 : 00:00:00 GMT
-        Keyspace table = Keyspace.open(KSNAME);
-        ColumnFamilyStore cfs = table.getColumnFamilyStore(CFNAME);
-        ByteBuffer key = ByteBufferUtil.bytes("k4");
-
-        // remove any existing sstables before starting
-        cfs.truncateBlocking();
-        cfs.disableAutoCompaction();
-        cfs.setCompactionStrategyClass(LeveledCompactionStrategy.class.getCanonicalName());
-
-        Mutation rm = new Mutation(KSNAME, key);
-        for (int i = 1; i < 11; i += 2, testTimeStamp += i * 10)
-            add(rm, i, testTimeStamp);
-        rm.apply();
-        cfs.forceBlockingFlush();
-
-        rm = new Mutation(KSNAME, key);
-        ColumnFamily cf = rm.addOrGet(CFNAME);
-
-        // Write the covering row tombstone
-        cf.delete(new DeletionTime(++testTimeStamp, (int) testTimeStamp));
-
-        // Create range tombstones covered by row tombstone above.
-        for (int i = 1; i < 11; i += 2, testTimeStamp -= i * 5)
-            delete(cf, 0, 7, testTimeStamp);
-        rm.apply();
-        cfs.forceBlockingFlush();
-
-        // there should be 2 sstables
-        assertEquals(2, cfs.getSSTables().size());
-
-        // compact down to nothing
-        CompactionManager.instance.performMaximal(cfs);
-        assertEquals(0, cfs.getSSTables().size());
-    }
-
-    @Test
     public void testOverwritesToDeletedColumns() throws Exception
     {
         Keyspace table = Keyspace.open(KSNAME);


[4/5] cassandra git commit: Revert "Reduce contention getting instances of CompositeType"

Posted by jb...@apache.org.
Revert "Reduce contention getting instances of CompositeType"

This reverts commit fda3d8ee25adc4837bb5754f718062e522c04788.

(See thread at https://mail-archives.apache.org/mod_mbox/cassandra-dev/201607.mbox/%3CCALdd-zjg%2Ba73VncPkU2rw_UpFPVsw0yNwO-yBqUQfK8H8FpiKw%40mail.gmail.com%3E)


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

Branch: refs/heads/cassandra-2.1
Commit: ba068472b33dc4e68aeb05deb480811b37582a46
Parents: e865e88
Author: Jonathan Ellis <jb...@apache.org>
Authored: Thu Jul 21 10:17:31 2016 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Thu Jul 21 10:17:31 2016 -0500

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 +
 .../cassandra/db/marshal/CompositeType.java     | 20 ++++++++------------
 2 files changed, 9 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/ba068472/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index b1dcbe1..d29feea 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -3,6 +3,7 @@
  * Reduce contention getting instances of CompositeType (CASSANDRA-10433)
  * Improve digest calculation in the presence of overlapping tombstones (CASSANDRA-11349)
 
+
 2.1.15
  * Account for partition deletions in tombstone histogram (CASSANDRA-12112)
  * Avoid stalling paxos when the paxos state expires (CASSANDRA-12043)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/ba068472/src/java/org/apache/cassandra/db/marshal/CompositeType.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/marshal/CompositeType.java b/src/java/org/apache/cassandra/db/marshal/CompositeType.java
index d25336d..f8ac22d 100644
--- a/src/java/org/apache/cassandra/db/marshal/CompositeType.java
+++ b/src/java/org/apache/cassandra/db/marshal/CompositeType.java
@@ -19,18 +19,18 @@ package org.apache.cassandra.db.marshal;
 
 import java.io.IOException;
 import java.nio.ByteBuffer;
-import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
+import java.util.Map;
 
 import com.google.common.collect.ImmutableList;
 
-import org.apache.cassandra.cql3.ColumnIdentifier;
-import org.apache.cassandra.cql3.Operator;
 import org.apache.cassandra.exceptions.ConfigurationException;
 import org.apache.cassandra.exceptions.SyntaxException;
+import org.apache.cassandra.cql3.ColumnIdentifier;
+import org.apache.cassandra.cql3.Operator;
 import org.apache.cassandra.io.util.DataOutputBuffer;
 import org.apache.cassandra.serializers.MarshalException;
 import org.apache.cassandra.utils.ByteBufferUtil;
@@ -67,7 +67,7 @@ public class CompositeType extends AbstractCompositeType
     public final List<AbstractType<?>> types;
 
     // interning instances
-    private static final ConcurrentMap<List<AbstractType<?>>, CompositeType> instances = new ConcurrentHashMap<List<AbstractType<?>>, CompositeType>();
+    private static final Map<List<AbstractType<?>>, CompositeType> instances = new HashMap<List<AbstractType<?>>, CompositeType>();
 
     public static CompositeType getInstance(TypeParser parser) throws ConfigurationException, SyntaxException
     {
@@ -97,7 +97,7 @@ public class CompositeType extends AbstractCompositeType
         return true;
     }
 
-    public static CompositeType getInstance(List<AbstractType<?>> types)
+    public static synchronized CompositeType getInstance(List<AbstractType<?>> types)
     {
         assert types != null && !types.isEmpty();
 
@@ -105,11 +105,7 @@ public class CompositeType extends AbstractCompositeType
         if (ct == null)
         {
             ct = new CompositeType(types);
-            CompositeType previous = instances.putIfAbsent(types, ct);
-            if (previous != null)
-            {
-                ct = previous;
-            }
+            instances.put(types, ct);
         }
         return ct;
     }


[2/5] cassandra git commit: Revert "Range tombstones that are masked by row tombstones should not be written out"

Posted by jb...@apache.org.
Revert "Range tombstones that are masked by row tombstones should not be written out"

This reverts commit 98f5f77bb3c5d50e52cbb6f577a463ca8a5134ad.

(See thread at https://mail-archives.apache.org/mod_mbox/cassandra-dev/201607.mbox/%3CCALdd-zjg%2Ba73VncPkU2rw_UpFPVsw0yNwO-yBqUQfK8H8FpiKw%40mail.gmail.com%3E)


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

Branch: refs/heads/cassandra-2.2
Commit: e865e8875370db8349f8d836594f45978b855943
Parents: 98f5f77
Author: Jonathan Ellis <jb...@apache.org>
Authored: Thu Jul 21 10:15:41 2016 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Thu Jul 21 10:15:41 2016 -0500

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 -
 .../db/compaction/LazilyCompactedRow.java       |  3 +-
 .../apache/cassandra/db/RangeTombstoneTest.java | 40 --------------------
 3 files changed, 1 insertion(+), 43 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/e865e887/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 7fa995d..b1dcbe1 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,5 +1,4 @@
 2.1.16
- * Don't write shadowed range tombstone (CASSANDRA-12030)
  * Fix filtering on clustering columns when 2i is used (CASSANDRA-11907)
  * Reduce contention getting instances of CompositeType (CASSANDRA-10433)
  * Improve digest calculation in the presence of overlapping tombstones (CASSANDRA-11349)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e865e887/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java b/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
index dab5eeb..f912da2 100644
--- a/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
+++ b/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
@@ -286,8 +286,7 @@ public class LazilyCompactedRow extends AbstractCompactedRow
                 RangeTombstone t = tombstone;
                 tombstone = null;
 
-                if (t.data.isGcAble(controller.gcBefore) && t.timestamp() < getMaxPurgeableTimestamp() ||
-                    maxRowTombstone.markedForDeleteAt >= t.timestamp())
+                if (t.data.isGcAble(controller.gcBefore) && t.timestamp() < getMaxPurgeableTimestamp())
                 {
                     indexBuilder.tombstoneTracker().update(t, true);
                     return null;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e865e887/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java b/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
index dfd6960..3292422 100644
--- a/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
+++ b/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
@@ -39,7 +39,6 @@ import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.config.IndexType;
 import org.apache.cassandra.db.columniterator.OnDiskAtomIterator;
 import org.apache.cassandra.db.compaction.CompactionManager;
-import org.apache.cassandra.db.compaction.LeveledCompactionStrategy;
 import org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy;
 import org.apache.cassandra.db.composites.CellName;
 import org.apache.cassandra.db.composites.CellNames;
@@ -544,45 +543,6 @@ public class RangeTombstoneTest extends SchemaLoader
     }
 
     @Test
-    public void testCompactionOfRangeTombstonesCoveredByRowTombstone() throws Exception
-    {
-        long testTimeStamp = 1451606400L; // 01/01/2016 : 00:00:00 GMT
-        Keyspace table = Keyspace.open(KSNAME);
-        ColumnFamilyStore cfs = table.getColumnFamilyStore(CFNAME);
-        ByteBuffer key = ByteBufferUtil.bytes("k4");
-
-        // remove any existing sstables before starting
-        cfs.truncateBlocking();
-        cfs.disableAutoCompaction();
-        cfs.setCompactionStrategyClass(LeveledCompactionStrategy.class.getCanonicalName());
-
-        Mutation rm = new Mutation(KSNAME, key);
-        for (int i = 1; i < 11; i += 2, testTimeStamp += i * 10)
-            add(rm, i, testTimeStamp);
-        rm.apply();
-        cfs.forceBlockingFlush();
-
-        rm = new Mutation(KSNAME, key);
-        ColumnFamily cf = rm.addOrGet(CFNAME);
-
-        // Write the covering row tombstone
-        cf.delete(new DeletionTime(++testTimeStamp, (int) testTimeStamp));
-
-        // Create range tombstones covered by row tombstone above.
-        for (int i = 1; i < 11; i += 2, testTimeStamp -= i * 5)
-            delete(cf, 0, 7, testTimeStamp);
-        rm.apply();
-        cfs.forceBlockingFlush();
-
-        // there should be 2 sstables
-        assertEquals(2, cfs.getSSTables().size());
-
-        // compact down to nothing
-        CompactionManager.instance.performMaximal(cfs);
-        assertEquals(0, cfs.getSSTables().size());
-    }
-
-    @Test
     public void testOverwritesToDeletedColumns() throws Exception
     {
         Keyspace table = Keyspace.open(KSNAME);


[5/5] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2

Posted by jb...@apache.org.
Merge branch 'cassandra-2.1' into cassandra-2.2


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

Branch: refs/heads/cassandra-2.2
Commit: c7a25972e9bab7188fcdf169d537edbc0020f9dd
Parents: e8186fe ba06847
Author: Jonathan Ellis <jb...@apache.org>
Authored: Thu Jul 21 10:17:57 2016 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Thu Jul 21 10:17:57 2016 -0500

----------------------------------------------------------------------

----------------------------------------------------------------------



[3/5] cassandra git commit: Revert "Reduce contention getting instances of CompositeType"

Posted by jb...@apache.org.
Revert "Reduce contention getting instances of CompositeType"

This reverts commit fda3d8ee25adc4837bb5754f718062e522c04788.

(See thread at https://mail-archives.apache.org/mod_mbox/cassandra-dev/201607.mbox/%3CCALdd-zjg%2Ba73VncPkU2rw_UpFPVsw0yNwO-yBqUQfK8H8FpiKw%40mail.gmail.com%3E)


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

Branch: refs/heads/cassandra-2.2
Commit: ba068472b33dc4e68aeb05deb480811b37582a46
Parents: e865e88
Author: Jonathan Ellis <jb...@apache.org>
Authored: Thu Jul 21 10:17:31 2016 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Thu Jul 21 10:17:31 2016 -0500

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 +
 .../cassandra/db/marshal/CompositeType.java     | 20 ++++++++------------
 2 files changed, 9 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/ba068472/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index b1dcbe1..d29feea 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -3,6 +3,7 @@
  * Reduce contention getting instances of CompositeType (CASSANDRA-10433)
  * Improve digest calculation in the presence of overlapping tombstones (CASSANDRA-11349)
 
+
 2.1.15
  * Account for partition deletions in tombstone histogram (CASSANDRA-12112)
  * Avoid stalling paxos when the paxos state expires (CASSANDRA-12043)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/ba068472/src/java/org/apache/cassandra/db/marshal/CompositeType.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/marshal/CompositeType.java b/src/java/org/apache/cassandra/db/marshal/CompositeType.java
index d25336d..f8ac22d 100644
--- a/src/java/org/apache/cassandra/db/marshal/CompositeType.java
+++ b/src/java/org/apache/cassandra/db/marshal/CompositeType.java
@@ -19,18 +19,18 @@ package org.apache.cassandra.db.marshal;
 
 import java.io.IOException;
 import java.nio.ByteBuffer;
-import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
+import java.util.Map;
 
 import com.google.common.collect.ImmutableList;
 
-import org.apache.cassandra.cql3.ColumnIdentifier;
-import org.apache.cassandra.cql3.Operator;
 import org.apache.cassandra.exceptions.ConfigurationException;
 import org.apache.cassandra.exceptions.SyntaxException;
+import org.apache.cassandra.cql3.ColumnIdentifier;
+import org.apache.cassandra.cql3.Operator;
 import org.apache.cassandra.io.util.DataOutputBuffer;
 import org.apache.cassandra.serializers.MarshalException;
 import org.apache.cassandra.utils.ByteBufferUtil;
@@ -67,7 +67,7 @@ public class CompositeType extends AbstractCompositeType
     public final List<AbstractType<?>> types;
 
     // interning instances
-    private static final ConcurrentMap<List<AbstractType<?>>, CompositeType> instances = new ConcurrentHashMap<List<AbstractType<?>>, CompositeType>();
+    private static final Map<List<AbstractType<?>>, CompositeType> instances = new HashMap<List<AbstractType<?>>, CompositeType>();
 
     public static CompositeType getInstance(TypeParser parser) throws ConfigurationException, SyntaxException
     {
@@ -97,7 +97,7 @@ public class CompositeType extends AbstractCompositeType
         return true;
     }
 
-    public static CompositeType getInstance(List<AbstractType<?>> types)
+    public static synchronized CompositeType getInstance(List<AbstractType<?>> types)
     {
         assert types != null && !types.isEmpty();
 
@@ -105,11 +105,7 @@ public class CompositeType extends AbstractCompositeType
         if (ct == null)
         {
             ct = new CompositeType(types);
-            CompositeType previous = instances.putIfAbsent(types, ct);
-            if (previous != null)
-            {
-                ct = previous;
-            }
+            instances.put(types, ct);
         }
         return ct;
     }