Class MetadataSerializer
java.lang.Object
org.apache.cassandra.io.sstable.metadata.MetadataSerializer
- All Implemented Interfaces:
IMetadataSerializer
Metadata serializer for SSTables
version >= 'na'.
File format := | number of components (4 bytes) | crc | toc | crc | component1 | c1 crc | component2 | c2 crc | ... | toc := | component type (4 bytes) | position of component |IMetadataComponent.Type's ordinal() defines the order of serialization.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiondeserialize(Descriptor descriptor, EnumSet<MetadataType> types) Deserialize specified metadata components from given descriptor.deserialize(Descriptor descriptor, MetadataType type) Deserialized only metadata component specified from given descriptor.deserialize(Descriptor descriptor, FileDataInput in, EnumSet<MetadataType> selectedTypes) voidmutate(Descriptor descriptor, String description, UnaryOperator<StatsMetadata> transform) Mutate SSTable Metadata NOTE: mutating stats metadata of a live sstable will race with entire-sstable-streaming, please useSSTableReader.mutateLevelAndReload(int)instead on live sstable.voidmutateLevel(Descriptor descriptor, int newLevel) Mutate SSTable level NOTE: mutating stats metadata of a live sstable will race with entire-sstable-streaming, please useSSTableReader.mutateLevelAndReload(int)instead on live sstable.voidmutateRepairMetadata(Descriptor descriptor, long newRepairedAt, TimeUUID newPendingRepair, boolean isTransient) Mutate the repairedAt time, pendingRepair ID, and transient status.voidrewriteSSTableMetadata(Descriptor descriptor, Map<MetadataType, MetadataComponent> currentComponents) Replace the sstable metadata file (-Statistics.db) with the given components.voidserialize(Map<MetadataType, MetadataComponent> components, DataOutputPlus out, Version version) Serialize given metadata components
-
Constructor Details
-
MetadataSerializer
public MetadataSerializer()
-
-
Method Details
-
serialize
public void serialize(Map<MetadataType, MetadataComponent> components, DataOutputPlus out, Version version) throws IOExceptionDescription copied from interface:IMetadataSerializerSerialize given metadata components- Specified by:
serializein interfaceIMetadataSerializer- Parameters:
components- Metadata components to serialize- Throws:
IOException
-
deserialize
public Map<MetadataType,MetadataComponent> deserialize(Descriptor descriptor, EnumSet<MetadataType> types) throws IOException Description copied from interface:IMetadataSerializerDeserialize specified metadata components from given descriptor.- Specified by:
deserializein interfaceIMetadataSerializer- Parameters:
descriptor- SSTable descriptor- Returns:
- Deserialized metadata components, in deserialized order.
- Throws:
IOException
-
deserialize
Description copied from interface:IMetadataSerializerDeserialized only metadata component specified from given descriptor.- Specified by:
deserializein interfaceIMetadataSerializer- Parameters:
descriptor- SSTable descriptortype- Metadata component type to deserialize- Returns:
- Deserialized metadata component. Can be null if specified type does not exist.
- Throws:
IOException
-
deserialize
public Map<MetadataType,MetadataComponent> deserialize(Descriptor descriptor, FileDataInput in, EnumSet<MetadataType> selectedTypes) throws IOException - Throws:
IOException
-
mutate
public void mutate(Descriptor descriptor, String description, UnaryOperator<StatsMetadata> transform) throws IOException Description copied from interface:IMetadataSerializerMutate SSTable Metadata NOTE: mutating stats metadata of a live sstable will race with entire-sstable-streaming, please useSSTableReader.mutateLevelAndReload(int)instead on live sstable.- Specified by:
mutatein interfaceIMetadataSerializer- Parameters:
descriptor- SSTable descriptordescription- on changed attributionstransform- function to mutate sstable metadata- Throws:
IOException
-
mutateLevel
Description copied from interface:IMetadataSerializerMutate SSTable level NOTE: mutating stats metadata of a live sstable will race with entire-sstable-streaming, please useSSTableReader.mutateLevelAndReload(int)instead on live sstable.- Specified by:
mutateLevelin interfaceIMetadataSerializer- Parameters:
descriptor- SSTable descriptornewLevel- new SSTable level- Throws:
IOException
-
mutateRepairMetadata
public void mutateRepairMetadata(Descriptor descriptor, long newRepairedAt, TimeUUID newPendingRepair, boolean isTransient) throws IOException Description copied from interface:IMetadataSerializerMutate the repairedAt time, pendingRepair ID, and transient status. NOTE: mutating stats metadata of a live sstable will race with entire-sstable-streaming, please useSSTableReader.mutateLevelAndReload(int)instead on live sstable.- Specified by:
mutateRepairMetadatain interfaceIMetadataSerializer- Throws:
IOException
-
rewriteSSTableMetadata
public void rewriteSSTableMetadata(Descriptor descriptor, Map<MetadataType, MetadataComponent> currentComponents) throws IOExceptionDescription copied from interface:IMetadataSerializerReplace the sstable metadata file (-Statistics.db) with the given components.- Specified by:
rewriteSSTableMetadatain interfaceIMetadataSerializer- Throws:
IOException
-