You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by mc...@apache.org on 2020/01/02 11:24:08 UTC

[cassandra] branch trunk updated (2da9af0 -> dbe58b5)

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

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


    from 2da9af0  Merge branch 'cassandra-3.11' into trunk
     new 577a9e3  Check static column timestamp during point-in-time recovery
     new 18c0fe8  Merge branch 'cassandra-3.0' into cassandra-3.11
     new dbe58b5  Merge branch 'cassandra-3.11' into trunk

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 CHANGES.txt                                        |  1 +
 .../cassandra/db/partitions/PartitionUpdate.java   | 18 ++++++++++++
 test/unit/org/apache/cassandra/SchemaLoader.java   |  9 ++++++
 .../apache/cassandra/db/RecoveryManagerTest.java   | 32 +++++++++++++++++++++-
 4 files changed, 59 insertions(+), 1 deletion(-)


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org


[cassandra] 01/01: Merge branch 'cassandra-3.11' into trunk

Posted by mc...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit dbe58b55e3434fe54f92c0f2f044443914291c5c
Merge: 2da9af0 18c0fe8
Author: Mick Semb Wever <mc...@apache.org>
AuthorDate: Thu Jan 2 12:22:52 2020 +0100

    Merge branch 'cassandra-3.11' into trunk

 CHANGES.txt                                        |  1 +
 .../cassandra/db/partitions/PartitionUpdate.java   | 18 ++++++++++++
 test/unit/org/apache/cassandra/SchemaLoader.java   |  9 ++++++
 .../apache/cassandra/db/RecoveryManagerTest.java   | 32 +++++++++++++++++++++-
 4 files changed, 59 insertions(+), 1 deletion(-)

diff --cc CHANGES.txt
index 81b095c,95fecc0..e1d0ce6
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,18 -1,9 +1,19 @@@
 -3.11.6
 +4.0-alpha3
 + * Prevent read repair mutations from increasing read timeout (CASSANDRA-15442)
 + * Document 4.0 system keyspace changes, bump generations (CASSANDRA-15454)
 + * Make it possible to disable STCS-in-L0 during runtime (CASSANDRA-15445)
 + * Removed obsolete OldNetworkTopologyStrategy (CASSANDRA-13990)
 + * Align record header of FQL and audit binary log (CASSANDRA-15076)
 + * Shuffle forwarding replica for messages to non-local DC (CASSANDRA-15318)
 + * Optimise native protocol ASCII string encoding (CASSANDRA-15410)
 + * Make sure all exceptions are propagated in DebuggableThreadPoolExecutor (CASSANDRA-15332)
 + * Make it possible to resize concurrent read / write thread pools at runtime (CASSANDRA-15277)
 + * Close channels on error (CASSANDRA-15407)
 +Merged from 3.11:
   * Fix nodetool compactionstats showing extra pending task for TWCS - patch implemented (CASSANDRA-15409)
   * Fix SELECT JSON formatting for the "duration" type (CASSANDRA-15075)
 - * Fix LegacyLayout to have same behavior as 2.x when handling unknown column names (CASSANDRA-15081)
  Merged from 3.0:
+  * Fix point-in-time recoevery ignoring timestamp of updates to static columns (CASSANDRA-15292)
   * GC logs are also put under $CASSANDRA_LOG_DIR (CASSANDRA-14306)
   * Fix sstabledump's position key value when partitions have multiple rows (CASSANDRA-14721)
   * Avoid over-scanning data directories in LogFile.verify() (CASSANDRA-15364)
diff --cc src/java/org/apache/cassandra/db/partitions/PartitionUpdate.java
index 31f68f4,50e4cf8..feded07
--- a/src/java/org/apache/cassandra/db/partitions/PartitionUpdate.java
+++ b/src/java/org/apache/cassandra/db/partitions/PartitionUpdate.java
@@@ -400,6 -506,24 +400,24 @@@ public class PartitionUpdate extends Ab
                  }
              }
          }
+ 
 -        if (holder.staticRow != null)
++        if (this.holder.staticRow != null)
+         {
 -            for (ColumnData cd : holder.staticRow.columnData())
++            for (ColumnData cd : this.holder.staticRow.columnData())
+             {
+                 if (cd.column().isSimple())
+                 {
+                     maxTimestamp = Math.max(maxTimestamp, ((Cell) cd).timestamp());
+                 }
+                 else
+                 {
+                     ComplexColumnData complexData = (ComplexColumnData) cd;
+                     maxTimestamp = Math.max(maxTimestamp, complexData.complexDeletion().markedForDeleteAt());
+                     for (Cell cell : complexData)
+                         maxTimestamp = Math.max(maxTimestamp, cell.timestamp());
+                 }
+             }
+         }
          return maxTimestamp;
      }
  
diff --cc test/unit/org/apache/cassandra/SchemaLoader.java
index 2bc9bda,822ee67..50a06e1
--- a/test/unit/org/apache/cassandra/SchemaLoader.java
+++ b/test/unit/org/apache/cassandra/SchemaLoader.java
@@@ -387,11 -375,22 +387,20 @@@ public class SchemaLoade
          for (int i = 0; i < columnCount; i++)
              builder.addRegularColumn("val" + i, AsciiType.instance);
  
 -        return builder.build()
 -                      .compression(getCompressionParameters());
 +        return builder;
      }
  
 -    public static CFMetaData staticCFMD(String ksName, String cfName)
++    public static TableMetadata.Builder staticCFMD(String ksName, String cfName)
+     {
 -        return CFMetaData.Builder.create(ksName, cfName)
 -                                 .addPartitionKey("key", AsciiType.instance)
++        return TableMetadata.builder(ksName, cfName)
++                                 .addPartitionKeyColumn("key", AsciiType.instance)
+                                  .addClusteringColumn("cols", AsciiType.instance)
+                                  .addStaticColumn("val", AsciiType.instance)
 -                                 .addRegularColumn("val2", AsciiType.instance)
 -                                 .build();
++                                 .addRegularColumn("val2", AsciiType.instance);
+     }
+ 
  
 -    public static CFMetaData denseCFMD(String ksName, String cfName)
 +    public static TableMetadata.Builder denseCFMD(String ksName, String cfName)
      {
          return denseCFMD(ksName, cfName, AsciiType.instance);
      }
diff --cc test/unit/org/apache/cassandra/db/RecoveryManagerTest.java
index 7e397c1,cc9c667..527c6a7
--- a/test/unit/org/apache/cassandra/db/RecoveryManagerTest.java
+++ b/test/unit/org/apache/cassandra/db/RecoveryManagerTest.java
@@@ -275,6 -276,34 +277,34 @@@ public class RecoveryManagerTes
      }
  
      @Test
+     public void testRecoverPITStatic() throws Exception
+     {
+         CommitLog.instance.resetUnsafe(true);
+         Keyspace keyspace1 = Keyspace.open(KEYSPACE1);
+         ColumnFamilyStore cfs = keyspace1.getColumnFamilyStore(CF_STATIC1);
+         Date date = CommitLogArchiver.format.parse("2112:12:12 12:12:12");
+         long timeMS = date.getTime() - 5000;
+ 
+ 
+         for (int i = 0; i < 10; ++i)
+         {
+             long ts = TimeUnit.MILLISECONDS.toMicros(timeMS + (i * 1000));
 -            new RowUpdateBuilder(cfs.metadata, ts, "name-" + i)
++            new RowUpdateBuilder(cfs.metadata(), ts, "name-" + i)
+             .add("val", Integer.toString(i))
+             .build()
+             .apply();
+         }
+ 
+         // Sanity check row count prior to clear and replay
+         assertEquals(10, Util.getAll(Util.cmd(cfs).build()).size());
+ 
+         keyspace1.getColumnFamilyStore(CF_STATIC1).clearUnsafe();
+         CommitLog.instance.resetUnsafe(false);
+ 
+         assertEquals(6, Util.getAll(Util.cmd(cfs).build()).size());
+     }
+ 
+     @Test
      public void testRecoverPITUnordered() throws Exception
      {
          CommitLog.instance.resetUnsafe(true);


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org