Interface IMetadataSerializer

  • All Known Implementing Classes:
    MetadataSerializer

    public interface IMetadataSerializer
    Interface for SSTable metadata serializer
    • Method Detail

      • serialize

        void serialize​(java.util.Map<MetadataType,​MetadataComponent> components,
                       DataOutputPlus out,
                       Version version)
                throws java.io.IOException
        Serialize given metadata components
        Parameters:
        components - Metadata components to serialize
        out -
        version -
        Throws:
        java.io.IOException
      • deserialize

        java.util.Map<MetadataType,​MetadataComponent> deserialize​(Descriptor descriptor,
                                                                        java.util.EnumSet<MetadataType> types)
                                                                 throws java.io.IOException
        Deserialize specified metadata components from given descriptor.
        Parameters:
        descriptor - SSTable descriptor
        Returns:
        Deserialized metadata components, in deserialized order.
        Throws:
        java.io.IOException
      • deserialize

        MetadataComponent deserialize​(Descriptor descriptor,
                                      MetadataType type)
                               throws java.io.IOException
        Deserialized only metadata component specified from given descriptor.
        Parameters:
        descriptor - SSTable descriptor
        type - Metadata component type to deserialize
        Returns:
        Deserialized metadata component. Can be null if specified type does not exist.
        Throws:
        java.io.IOException
      • mutate

        void mutate​(Descriptor descriptor,
                    java.lang.String description,
                    java.util.function.UnaryOperator<StatsMetadata> transform)
             throws java.io.IOException
        Mutate SSTable Metadata NOTE: mutating stats metadata of a live sstable will race with entire-sstable-streaming, please use SSTableReader.mutateLevelAndReload(int) instead on live sstable.
        Parameters:
        descriptor - SSTable descriptor
        description - on changed attributions
        transform - function to mutate sstable metadata
        Throws:
        java.io.IOException
      • mutateLevel

        void mutateLevel​(Descriptor descriptor,
                         int newLevel)
                  throws java.io.IOException
        Mutate SSTable level NOTE: mutating stats metadata of a live sstable will race with entire-sstable-streaming, please use SSTableReader.mutateLevelAndReload(int) instead on live sstable.
        Parameters:
        descriptor - SSTable descriptor
        newLevel - new SSTable level
        Throws:
        java.io.IOException
      • mutateRepairMetadata

        void mutateRepairMetadata​(Descriptor descriptor,
                                  long newRepairedAt,
                                  TimeUUID newPendingRepair,
                                  boolean isTransient)
                           throws java.io.IOException
        Mutate the repairedAt time, pendingRepair ID, and transient status. NOTE: mutating stats metadata of a live sstable will race with entire-sstable-streaming, please use SSTableReader.mutateLevelAndReload(int) instead on live sstable.
        Throws:
        java.io.IOException
      • rewriteSSTableMetadata

        void rewriteSSTableMetadata​(Descriptor descriptor,
                                    java.util.Map<MetadataType,​MetadataComponent> currentComponents)
                             throws java.io.IOException
        Replace the sstable metadata file (-Statistics.db) with the given components.
        Throws:
        java.io.IOException