Merge branch 'cassandra-3.0' into cassandra-3.11
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/817f3c28 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/817f3c28 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/817f3c28 Branch: refs/heads/trunk Commit: 817f3c282debd8f00a7803bee4950cdc73ec7fcc Parents: 16bcbb9 d7329a6 Author: Marcus Eriksson <marc...@apache.org> Authored: Mon Dec 11 09:03:55 2017 +0100 Committer: Marcus Eriksson <marc...@apache.org> Committed: Mon Dec 11 09:03:55 2017 +0100 ---------------------------------------------------------------------- CHANGES.txt | 2 ++ .../cassandra/db/compaction/CompactionManager.java | 1 + .../org/apache/cassandra/db/compaction/Scrubber.java | 4 +++- .../io/sstable/IndexSummaryRedistribution.java | 12 ++++++++---- 4 files changed, 14 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/817f3c28/CHANGES.txt ---------------------------------------------------------------------- diff --cc CHANGES.txt index b7a6e14,8cff716..5faede2 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -26,22 -16,11 +26,24 @@@ Merged from 3.0 * Provide a JMX call to sync schema with local storage (CASSANDRA-13954) * Mishandling of cells for removed/dropped columns when reading legacy files (CASSANDRA-13939) * Deserialise sstable metadata in nodetool verify (CASSANDRA-13922) + Merged from 2.2: + * Grab refs during scrub/index redistribution/cleanup (CASSANDRA-13873) -3.0.15 +3.11.1 + * Fix the computation of cdc_total_space_in_mb for exabyte filesystems (CASSANDRA-13808) + * AbstractTokenTreeBuilder#serializedSize returns wrong value when there is a single leaf and overflow collisions (CASSANDRA-13869) + * Add a compaction option to TWCS to ignore sstables overlapping checks (CASSANDRA-13418) + * BTree.Builder memory leak (CASSANDRA-13754) + * Revert CASSANDRA-10368 of supporting non-pk column filtering due to correctness (CASSANDRA-13798) + * Add a skip read validation flag to cassandra-stress (CASSANDRA-13772) + * Fix cassandra-stress hang issues when an error during cluster connection happens (CASSANDRA-12938) + * Better bootstrap failure message when blocked by (potential) range movement (CASSANDRA-13744) + * "ignore" option is ignored in sstableloader (CASSANDRA-13721) + * Deadlock in AbstractCommitLogSegmentManager (CASSANDRA-13652) + * Duplicate the buffer before passing it to analyser in SASI operation (CASSANDRA-13512) + * Properly evict pstmts from prepared statements cache (CASSANDRA-13641) +Merged from 3.0: * Improve TRUNCATE performance (CASSANDRA-13909) * Implement short read protection on partition boundaries (CASSANDRA-13595) * Fix ISE thrown by UPI.Serializer.hasNext() for some SELECT queries (CASSANDRA-13911) http://git-wip-us.apache.org/repos/asf/cassandra/blob/817f3c28/src/java/org/apache/cassandra/db/compaction/CompactionManager.java ---------------------------------------------------------------------- diff --cc src/java/org/apache/cassandra/db/compaction/CompactionManager.java index 4030384,eaeb089..638e74c --- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java +++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java @@@ -1085,18 -865,16 +1085,19 @@@ public class CompactionManager implemen logger.info("Cleaning up {}", sstable); - File compactionFileLocation = cfs.getDirectories().getWriteableLocationAsFile(cfs.getExpectedCompactedFileSize(txn.originals(), OperationType.CLEANUP)); - if (compactionFileLocation == null) - throw new IOException("disk full"); + File compactionFileLocation = sstable.descriptor.directory; + RateLimiter limiter = getRateLimiter(); + double compressionRatio = sstable.getCompressionRatio(); + if (compressionRatio == MetadataCollector.NO_COMPRESSION_RATIO) + compressionRatio = 1.0; List<SSTableReader> finished; + int nowInSec = FBUtilities.nowInSeconds(); - try (SSTableRewriter writer = SSTableRewriter.construct(cfs, txn, false, sstable.maxDataAge, false); - ISSTableScanner scanner = cleanupStrategy.getScanner(sstable, getRateLimiter()); + try (SSTableRewriter writer = SSTableRewriter.construct(cfs, txn, false, sstable.maxDataAge); + ISSTableScanner scanner = cleanupStrategy.getScanner(sstable, null); CompactionController controller = new CompactionController(cfs, txn.originals(), getDefaultGcBefore(cfs, nowInSec)); + Refs<SSTableReader> refs = Refs.ref(Collections.singleton(sstable)); CompactionIterator ci = new CompactionIterator(OperationType.CLEANUP, Collections.singletonList(scanner), controller, nowInSec, UUIDGen.getTimeUUID(), metrics)) { writer.switchWriter(createWriter(cfs, compactionFileLocation, expectedBloomFilterSize, sstable.getSSTableMetadata().repairedAt, sstable, txn)); http://git-wip-us.apache.org/repos/asf/cassandra/blob/817f3c28/src/java/org/apache/cassandra/db/compaction/Scrubber.java ---------------------------------------------------------------------- diff --cc src/java/org/apache/cassandra/db/compaction/Scrubber.java index 4635824,c8e0c53..c189c0b --- a/src/java/org/apache/cassandra/db/compaction/Scrubber.java +++ b/src/java/org/apache/cassandra/db/compaction/Scrubber.java @@@ -141,8 -145,9 +142,9 @@@ public class Scrubber implements Closea { List<SSTableReader> finished = new ArrayList<>(); boolean completed = false; - outputHandler.output(String.format("Scrubbing %s (%s bytes)", sstable, dataFile.length())); - try (SSTableRewriter writer = SSTableRewriter.construct(cfs, transaction, false, sstable.maxDataAge, transaction.isOffline()); + outputHandler.output(String.format("Scrubbing %s (%s)", sstable, FBUtilities.prettyPrintMemory(dataFile.length()))); - try (SSTableRewriter writer = SSTableRewriter.construct(cfs, transaction, false, sstable.maxDataAge)) ++ try (SSTableRewriter writer = SSTableRewriter.construct(cfs, transaction, false, sstable.maxDataAge); + Refs<SSTableReader> refs = Refs.ref(Collections.singleton(sstable))) { nextIndexKey = indexAvailable() ? ByteBufferUtil.readWithShortLength(indexFile) : null; if (indexAvailable()) http://git-wip-us.apache.org/repos/asf/cassandra/blob/817f3c28/src/java/org/apache/cassandra/io/sstable/IndexSummaryRedistribution.java ---------------------------------------------------------------------- diff --cc src/java/org/apache/cassandra/io/sstable/IndexSummaryRedistribution.java index 8fb4835,ebe98e5..73626d3 --- a/src/java/org/apache/cassandra/io/sstable/IndexSummaryRedistribution.java +++ b/src/java/org/apache/cassandra/io/sstable/IndexSummaryRedistribution.java @@@ -40,8 -40,8 +40,9 @@@ import org.apache.cassandra.db.compacti import org.apache.cassandra.db.compaction.OperationType; import org.apache.cassandra.db.lifecycle.LifecycleTransaction; import org.apache.cassandra.io.sstable.format.SSTableReader; +import org.apache.cassandra.utils.FBUtilities; import org.apache.cassandra.utils.Pair; + import org.apache.cassandra.utils.concurrent.Refs; import static org.apache.cassandra.io.sstable.Downsampling.BASE_SAMPLING_LEVEL; --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org