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 2020/08/17 09:43:40 UTC

[cassandra] branch trunk updated (139ad44 -> efce6b3)

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

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


    from 139ad44  Update docs regarding timestamp precision
     new e2ecdf2  Remove broken "defragment-on-read" optimization
     new ecd23f1  Merge commit 'e2ecdf268a82fa3ac0f4c9fe77ab35bca33cc72a' into cassandra-3.11
     new efce6b3  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/SinglePartitionReadCommand.java   | 25 ----------------------
 .../db/compaction/AbstractCompactionStrategy.java  |  5 -----
 .../db/compaction/CompactionStrategyManager.java   |  7 ------
 .../compaction/SizeTieredCompactionStrategy.java   |  6 ------
 5 files changed, 1 insertion(+), 43 deletions(-)


---------------------------------------------------------------------
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 sl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit efce6b39fb557314fad0cb56b07a1919d26b84fc
Merge: 139ad44 ecd23f1
Author: Sylvain Lebresne <le...@gmail.com>
AuthorDate: Mon Aug 17 11:39:24 2020 +0200

    Merge branch 'cassandra-3.11' into trunk

 CHANGES.txt                                        |  1 +
 .../cassandra/db/SinglePartitionReadCommand.java   | 25 ----------------------
 .../db/compaction/AbstractCompactionStrategy.java  |  5 -----
 .../db/compaction/CompactionStrategyManager.java   |  7 ------
 .../compaction/SizeTieredCompactionStrategy.java   |  6 ------
 5 files changed, 1 insertion(+), 43 deletions(-)

diff --cc CHANGES.txt
index 58239c9,a6bc9d9..7298e0c
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,20 -1,14 +1,21 @@@
 -3.11.8
 +4.0-beta2
 + * Make TimestampSerializer accept fractional seconds of varying precision (CASSANDRA-15976)
 + * Improve cassandra-stress logging when using a profile file that doesn't exist (CASSANDRA-14425)
 + * Improve logging for socket connection/disconnection (CASSANDRA-15980)
 + * Throw FSWriteError upon write failures in order to apply DiskFailurePolicy (CASSANDRA-15928)
 + * Forbid altering UDTs used in partition keys (CASSANDRA-15933)
 + * Fix version parsing logic when upgrading from 3.0 (CASSANDRA-15973)
 + * Optimize NoSpamLogger use in hot paths (CASSANDRA-15766)
 + * Verify sstable components on startup (CASSANDRA-15945)
 +Merged from 3.11:
   * Fix short read protection for GROUP BY queries (CASSANDRA-15459)
 + * stop_paranoid disk failure policy is ignored on CorruptSSTableException after node is up (CASSANDRA-15191)
   * Frozen RawTuple is not annotated with frozen in the toString method (CASSANDRA-15857)
  Merged from 3.0:
+  * Remove broken 'defrag-on-read' optimization (CASSANDRA-15432)
   * Check for endpoint collision with hibernating nodes (CASSANDRA-14599)
   * Operational improvements and hardening for replica filtering protection (CASSANDRA-15907)
 - * stop_paranoid disk failure policy is ignored on CorruptSSTableException after node is up (CASSANDRA-15191)
 - * Forbid altering UDTs used in partition keys (CASSANDRA-15933)
   * Fix empty/null json string representation (CASSANDRA-15896)
 - * 3.x fails to start if commit log has range tombstones from a column which is also deleted (CASSANDRA-15970)
  Merged from 2.2:
   * Fix CQL parsing of collections when the column type is reversed (CASSANDRA-15814)
  
diff --cc src/java/org/apache/cassandra/db/SinglePartitionReadCommand.java
index 6fbe523,c5de444..e581be5
--- a/src/java/org/apache/cassandra/db/SinglePartitionReadCommand.java
+++ b/src/java/org/apache/cassandra/db/SinglePartitionReadCommand.java
@@@ -28,10 -28,15 +28,9 @@@ import com.google.common.collect.Sets
  import org.apache.cassandra.cache.IRowCacheEntry;
  import org.apache.cassandra.cache.RowCacheKey;
  import org.apache.cassandra.cache.RowCacheSentinel;
--import org.apache.cassandra.concurrent.Stage;
 -import org.apache.cassandra.concurrent.StageManager;
 -import org.apache.cassandra.config.CFMetaData;
 -import org.apache.cassandra.config.ColumnDefinition;
  import org.apache.cassandra.config.DatabaseDescriptor;
 -import org.apache.cassandra.db.lifecycle.*;
  import org.apache.cassandra.db.filter.*;
 +import org.apache.cassandra.db.lifecycle.*;
  import org.apache.cassandra.db.partitions.*;
  import org.apache.cassandra.db.rows.*;
  import org.apache.cassandra.db.transform.RTBoundValidator;
@@@ -889,11 -992,8 +887,8 @@@ public class SinglePartitionReadComman
                  if (iter.isEmpty())
                      continue;
  
-                 if (sstable.isRepaired())
-                     onlyUnrepaired = false;
- 
                  result = add(
 -                    RTBoundValidator.validate(isForThrift() ? ThriftResultsMerger.maybeWrap(iter, nowInSec()) : iter, RTBoundValidator.Stage.SSTABLE, false),
 +                    RTBoundValidator.validate(iter, RTBoundValidator.Stage.SSTABLE, false),
                      result,
                      filter,
                      sstable.isRepaired()
@@@ -907,29 -1007,9 +902,9 @@@
              return EmptyIterators.unfilteredRow(metadata(), partitionKey(), false);
  
          DecoratedKey key = result.partitionKey();
 -        cfs.metric.samplers.get(TableMetrics.Sampler.READS).addSample(key.getKey(), key.hashCode(), 1);
 -        StorageHook.instance.reportRead(cfs.metadata.cfId, partitionKey());
 +        cfs.metric.topReadPartitionFrequency.addSample(key.getKey(), 1);
 +        StorageHook.instance.reportRead(cfs.metadata.id, partitionKey());
  
-         // "hoist up" the requested data into a more recent sstable
-         if (metricsCollector.getMergedSSTables() > cfs.getMinimumCompactionThreshold()
-             && onlyUnrepaired
-             && !cfs.isAutoCompactionDisabled()
-             && cfs.getCompactionStrategyManager().shouldDefragment())
-         {
-             // !!WARNING!!   if we stop copying our data to a heap-managed object,
-             //               we will need to track the lifetime of this mutation as well
-             Tracing.trace("Defragmenting requested data");
- 
-             try (UnfilteredRowIterator iter = result.unfilteredIterator(columnFilter(), Slices.ALL, false))
-             {
-                 final Mutation mutation = new Mutation(PartitionUpdate.fromIterator(iter, columnFilter()));
-                 Stage.MUTATION.execute(() -> {
-                     // skipping commitlog and index updates is fine since we're just de-fragmenting existing data
-                     Keyspace.open(mutation.getKeyspaceName()).apply(mutation, false, false);
-                 });
-             }
-         }
- 
          return result.unfilteredIterator(columnFilter(), Slices.ALL, clusteringIndexFilter().isReversed());
      }
  
diff --cc src/java/org/apache/cassandra/db/compaction/CompactionStrategyManager.java
index 546f61b,d486679..708faff
--- a/src/java/org/apache/cassandra/db/compaction/CompactionStrategyManager.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionStrategyManager.java
@@@ -132,9 -102,8 +132,8 @@@ public class CompactionStrategyManager 
  
          If a user changes the local compaction strategy and then later ALTERs a compaction parameter,
          we will use the new compaction parameters.
 -     **/
 +     */
      private volatile CompactionParams schemaCompactionParams;
-     private boolean shouldDefragment;
      private boolean supportsEarlyOpen;
      private int fanout;
  
@@@ -308,10 -213,10 +307,9 @@@
                  if (sstable.openReason != SSTableReader.OpenReason.EARLY)
                      compactionStrategyFor(sstable).addSSTable(sstable);
              }
 -            repaired.forEach(AbstractCompactionStrategy::startup);
 -            unrepaired.forEach(AbstractCompactionStrategy::startup);
 -            supportsEarlyOpen = repaired.get(0).supportsEarlyOpen();
 -            fanout = (repaired.get(0) instanceof LeveledCompactionStrategy) ? ((LeveledCompactionStrategy) repaired.get(0)).getLevelFanoutSize() : LeveledCompactionStrategy.DEFAULT_LEVEL_FANOUT_SIZE;
 +            holders.forEach(AbstractStrategyHolder::startup);
-             shouldDefragment = repaired.first().shouldDefragment();
 +            supportsEarlyOpen = repaired.first().supportsEarlyOpen();
 +            fanout = (repaired.first() instanceof LeveledCompactionStrategy) ? ((LeveledCompactionStrategy) repaired.first()).getLevelFanoutSize() : LeveledCompactionStrategy.DEFAULT_LEVEL_FANOUT_SIZE;
          }
          finally
          {
@@@ -600,11 -470,21 +598,6 @@@
          return res;
      }
  
-     public boolean shouldDefragment()
 -    public Directories getDirectories()
--    {
-         return shouldDefragment;
 -        maybeReloadDiskBoundaries();
 -        readLock.lock();
 -        try
 -        {
 -            assert repaired.get(0).getClass().equals(unrepaired.get(0).getClass());
 -            return repaired.get(0).getDirectories();
 -        }
 -        finally
 -        {
 -            readLock.unlock();
 -        }
--    }
--
      private void handleFlushNotification(Iterable<SSTableReader> added)
      {
          // If reloaded, SSTables will be placed in their correct locations


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