cassandra-pr mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From iamaleksey <...@git.apache.org>
Subject [GitHub] cassandra pull request #239: [CASSANDRA-14556] Optimize Streaming
Date Thu, 26 Jul 2018 15:30:40 GMT
Github user iamaleksey commented on a diff in the pull request:

    https://github.com/apache/cassandra/pull/239#discussion_r205416649
  
    --- Diff: src/java/org/apache/cassandra/io/sstable/format/big/BigTableBlockWriter.java
---
    @@ -48,51 +47,61 @@
     import org.apache.cassandra.schema.TableId;
     import org.apache.cassandra.schema.TableMetadataRef;
     
    +import static java.lang.String.format;
    +import static org.apache.cassandra.utils.FBUtilities.prettyPrintMemory;
    +
     public class BigTableBlockWriter extends SSTable implements SSTableMultiWriter
     {
    +    private static final Logger logger = LoggerFactory.getLogger(BigTableBlockWriter.class);
    +
         private final TableMetadataRef metadata;
    -    private final LifecycleTransaction txn;
         private volatile SSTableReader finalReader;
         private final Map<Component.Type, SequentialWriter> componentWriters;
     
    -    private final Logger logger = LoggerFactory.getLogger(BigTableBlockWriter.class);
    -
    -    private final SequentialWriterOption writerOption = SequentialWriterOption.newBuilder()
    -                                                                              .trickleFsync(false)
    -                                                                              .bufferSize(2
* 1024 * 1024)
    -                                                                              .bufferType(BufferType.OFF_HEAP)
    -                                                                              .build();
    -    public static final ImmutableSet<Component> supportedComponents = ImmutableSet.of(Component.DATA,
Component.PRIMARY_INDEX, Component.STATS,
    -                                                                               Component.COMPRESSION_INFO,
Component.FILTER, Component.SUMMARY,
    -                                                                               Component.DIGEST,
Component.CRC);
    +    private static final SequentialWriterOption WRITER_OPTION =
    +        SequentialWriterOption.newBuilder()
    +                              .trickleFsync(false)
    +                              .bufferSize(2 << 20)
    +                              .bufferType(BufferType.OFF_HEAP)
    +                              .build();
    +
    +    private static final ImmutableSet<Component> SUPPORTED_COMPONENTS =
    +        ImmutableSet.of(Component.DATA,
    +                        Component.PRIMARY_INDEX,
    +                        Component.SUMMARY,
    +                        Component.STATS,
    +                        Component.COMPRESSION_INFO,
    +                        Component.FILTER,
    +                        Component.DIGEST,
    +                        Component.CRC);
     
         public BigTableBlockWriter(Descriptor descriptor,
                                    TableMetadataRef metadata,
                                    LifecycleTransaction txn,
                                    final Set<Component> components)
         {
    -        super(descriptor, ImmutableSet.copyOf(components), metadata,
    -              DatabaseDescriptor.getDiskOptimizationStrategy());
    +        super(descriptor, ImmutableSet.copyOf(components), metadata, DatabaseDescriptor.getDiskOptimizationStrategy());
    +
             txn.trackNew(this);
             this.metadata = metadata;
    -        this.txn = txn;
    -        this.componentWriters = new HashMap<>(components.size());
    +        this.componentWriters = new EnumMap<>(Component.Type.class);
     
    -        assert supportedComponents.containsAll(components) : String.format("Unsupported
streaming component detected %s",
    -                                                                           new HashSet(components).removeAll(supportedComponents));
    +        if (!SUPPORTED_COMPONENTS.containsAll(components))
    +            throw new AssertionError(format("Unsupported streaming component detected
%s",
    +                                            Sets.difference(components, SUPPORTED_COMPONENTS)));
    --- End diff --
    
    Neat. I either forgot, or didn't know that `Sets.difference()` was a thing. This is nicer
than the way I proposed (:


---

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


Mime
View raw message