Class LedgerMetadataSerDe

java.lang.Object
org.apache.bookkeeper.meta.LedgerMetadataSerDe

public class LedgerMetadataSerDe extends Object
Serialization and deserialization for LedgerMetadata.
  • Field Details

    • METADATA_FORMAT_VERSION_1

      public static final int METADATA_FORMAT_VERSION_1
      Text based manual serialization. Available from v4.0.x onwards.
      See Also:
    • METADATA_FORMAT_VERSION_2

      public static final int METADATA_FORMAT_VERSION_2
      Protobuf based, serialized using TextFormat. Available from v4.2.x onwards. Can contain ctime or not, but if it contains ctime it can only be parse by v4.4.x onwards.
      See Also:
    • METADATA_FORMAT_VERSION_3

      public static final int METADATA_FORMAT_VERSION_3
      Protobuf based, serialized in binary format. Available from v4.9.x onwards.
      See Also:
    • MAXIMUM_METADATA_FORMAT_VERSION

      public static final int MAXIMUM_METADATA_FORMAT_VERSION
      See Also:
    • CURRENT_METADATA_FORMAT_VERSION

      public static final int CURRENT_METADATA_FORMAT_VERSION
      See Also:
  • Constructor Details

    • LedgerMetadataSerDe

      public LedgerMetadataSerDe()
  • Method Details

    • serialize

      public byte[] serialize(LedgerMetadata metadata) throws IOException
      Throws:
      IOException
    • parseConfig

      public LedgerMetadata parseConfig(byte[] bytes, long ledgerId, Optional<Long> metadataStoreCtime) throws IOException
      Parses a given byte array and transforms into a LedgerConfig object.
      Parameters:
      bytes - byte array to parse
      metadataStoreCtime - metadata store creation time, used for legacy ledgers
      Returns:
      LedgerConfig
      Throws:
      IOException - if the given byte[] cannot be parsed