[ 
https://issues.apache.org/jira/browse/CASSANDRA-8750?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14314221#comment-14314221
 ] 

Marcus Eriksson commented on CASSANDRA-8750:
--------------------------------------------

+1

added 2 comments and an assert to make things a bit more clear;
{code}
diff --git 
a/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java 
b/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java
index ea0d785..ad53e83 100644
--- a/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java
+++ b/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java
@@ -150,6 +150,8 @@ public class CompressedSequentialWriter extends 
SequentialWriter
     {
         if (overrideLength <= 0)
             return metadataWriter.open(originalSize, chunkOffset, isFinal ? 
FINAL : SHARED_FINAL);
+        // we are early opening the file, make sure we open metadata with the 
correct size
+        assert !isFinal;
         return metadataWriter.open(overrideLength, chunkOffset, SHARED);
     }
 
diff --git a/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java 
b/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java
index ad087c7..fd8248e 100644
--- a/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java
+++ b/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java
@@ -351,6 +351,7 @@ public class CompressionMetadata
                         this.offsets.unreference();
                     }
                     // null out our reference to the original shared data to 
catch accidental reuse
+                    // note that since noone is writing to this Writer while 
we open it, null:ing out this.offsets is safe
                     this.offsets = null;
                     if (type == OpenType.SHARED_FINAL)
                     {
{code}

> Ensure SSTableReader.last corresponds exactly with the file end
> ---------------------------------------------------------------
>
>                 Key: CASSANDRA-8750
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-8750
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Benedict
>            Assignee: Benedict
>            Priority: Minor
>             Fix For: 2.1.4
>
>
> Following on from CASSANDRA-8744, CASSANDRA-8749 and CASSANDRA-8747, this 
> patch attempts to make the whole opening early of compaction results more 
> robust and with more clearly understood behaviour. The improvements of 
> CASSANDRA-8747 permit is to easily align the last key with a summary 
> boundary, and an index and data file end position. This patch modifies 
> SegmentedFile to permit the provision of an explicit length, which is then 
> provided to any readers, which enforce it, ensuring no code may accidentally 
> see an end inconsistent with the one advertised. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to