This is an automated email from the ASF dual-hosted git repository.

marcuse pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra.git

commit 15e574d8a3cdbb1adbc36051063406133c79e805
Merge: dced081 1c3394d
Author: Marcus Eriksson <[email protected]>
AuthorDate: Thu Oct 24 10:21:03 2019 +0100

    Merge branch 'cassandra-3.11' into trunk

 .../db/partitions/AbstractBTreePartition.java      |  9 +++-
 .../cassandra/distributed/api/IInstance.java       |  3 ++
 .../impl/DelegatingInvokableInstance.java          | 10 ++++
 .../cassandra/distributed/impl/Instance.java       | 19 +++++++
 .../upgrade/MixedModeReadRepairTest.java           | 59 ++++++++++++++++++++++
 .../distributed/upgrade/UpgradeTestBase.java       | 17 ++++++-
 6 files changed, 115 insertions(+), 2 deletions(-)

diff --cc 
src/java/org/apache/cassandra/db/partitions/AbstractBTreePartition.java
index 6dbaff5,befbfbb..fc50de6
--- a/src/java/org/apache/cassandra/db/partitions/AbstractBTreePartition.java
+++ b/src/java/org/apache/cassandra/db/partitions/AbstractBTreePartition.java
@@@ -149,9 -155,16 +149,16 @@@ public abstract class AbstractBTreePart
                      activeDeletion = rt.deletionTime();
  
                  if (row == null)
-                     return activeDeletion.isLive() ? null : 
BTreeRow.emptyDeletedRow(clustering, Row.Deletion.regular(activeDeletion));
+                 {
+                     // this means our partition level deletion superseedes 
all other deletions and we don't have to keep the row deletions
+                     if (activeDeletion == partitionDeletion)
+                         return null;
+                     // no need to check activeDeletion.isLive here - if 
anything superseedes the partitionDeletion
+                     // it must be non-live
+                     return BTreeRow.emptyDeletedRow(clustering, 
Row.Deletion.regular(activeDeletion));
+                 }
  
 -                return row.filter(columns, activeDeletion, true, metadata);
 +                return row.filter(columns, activeDeletion, true, metadata());
              }
          };
      }
diff --cc test/distributed/org/apache/cassandra/distributed/impl/Instance.java
index 84538c7,f22586e..d6e5a03
--- a/test/distributed/org/apache/cassandra/distributed/impl/Instance.java
+++ b/test/distributed/org/apache/cassandra/distributed/impl/Instance.java
@@@ -261,9 -333,28 +261,28 @@@ public class Instance extends IsolatedE
  
      public void setMessagingVersion(InetAddressAndPort endpoint, int version)
      {
 -        runOnInstance(() -> 
MessagingService.instance().setVersion(endpoint.address, version));
 +        MessagingService.instance().versions.set(endpoint, version);
      }
  
+     public void flush(String keyspace)
+     {
+         runOnInstance(() -> 
FBUtilities.waitOnFutures(Keyspace.open(keyspace).flush()));
+     }
+ 
+     public void forceCompact(String keyspace, String table)
+     {
+         runOnInstance(() -> {
+             try
+             {
+                 
Keyspace.open(keyspace).getColumnFamilyStore(table).forceMajorCompaction();
+             }
+             catch (Exception e)
+             {
+                 throw new RuntimeException(e);
+             }
+         });
+     }
+ 
      @Override
      public void startup(ICluster cluster)
      {


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to