Class ChunkedValueManifest

java.lang.Object
org.apache.avro.specific.SpecificRecordBase
com.linkedin.venice.storage.protocol.ChunkedValueManifest
All Implemented Interfaces:
Externalizable, Serializable, Comparable<org.apache.avro.specific.SpecificRecord>, org.apache.avro.generic.GenericContainer, org.apache.avro.generic.GenericRecord, org.apache.avro.generic.IndexedRecord, org.apache.avro.specific.SpecificRecord

public class ChunkedValueManifest extends org.apache.avro.specific.SpecificRecordBase implements org.apache.avro.specific.SpecificRecord
This record maintains chunking information in order to re-assemble a value that was split in many chunks. The version of this schema is intentionally set to -1 because this is what will be used in the schema part of the value field, representing a special system-type schema, as opposed to a user-defined schema.
See Also:
  • Field Details

    • SCHEMA$

      public static final org.apache.avro.Schema SCHEMA$
    • keysWithChunkIdSuffix

      public List<ByteBuffer> keysWithChunkIdSuffix
      list of keys associated to all chunks. These are encoded with key + ChunkedKeySuffix appended at the end.
    • schemaId

      public int schemaId
      An identifier used to determine how the full value (after chunk re-assembly) can be deserialized. This is the ID of the user-defined schema.
    • size

      public int size
      The number of bytes of the entire value, once all chunks are assembled.
  • Constructor Details

    • ChunkedValueManifest

      public ChunkedValueManifest()
      Default constructor. Note that this does not initialize fields to their default values from the schema. If that is desired then one should use newBuilder().
    • ChunkedValueManifest

      public ChunkedValueManifest(List<ByteBuffer> keysWithChunkIdSuffix, Integer schemaId, Integer size)
      All-args constructor.
      Parameters:
      keysWithChunkIdSuffix - list of keys associated to all chunks. These are encoded with key + ChunkedKeySuffix appended at the end.
      schemaId - An identifier used to determine how the full value (after chunk re-assembly) can be deserialized. This is the ID of the user-defined schema.
      size - The number of bytes of the entire value, once all chunks are assembled.
  • Method Details

    • getClassSchema

      public static org.apache.avro.Schema getClassSchema()
    • getSpecificData

      public org.apache.avro.specific.SpecificData getSpecificData()
      Overrides:
      getSpecificData in class org.apache.avro.specific.SpecificRecordBase
    • getSchema

      public org.apache.avro.Schema getSchema()
      Specified by:
      getSchema in interface org.apache.avro.generic.GenericContainer
      Specified by:
      getSchema in class org.apache.avro.specific.SpecificRecordBase
    • get

      public Object get(int field$)
      Specified by:
      get in interface org.apache.avro.generic.IndexedRecord
      Specified by:
      get in class org.apache.avro.specific.SpecificRecordBase
    • put

      public void put(int field$, Object value$)
      Specified by:
      put in interface org.apache.avro.generic.IndexedRecord
      Specified by:
      put in class org.apache.avro.specific.SpecificRecordBase
    • getKeysWithChunkIdSuffix

      public List<ByteBuffer> getKeysWithChunkIdSuffix()
      Gets the value of the 'keysWithChunkIdSuffix' field.
      Returns:
      list of keys associated to all chunks. These are encoded with key + ChunkedKeySuffix appended at the end.
    • setKeysWithChunkIdSuffix

      public void setKeysWithChunkIdSuffix(List<ByteBuffer> value)
      Sets the value of the 'keysWithChunkIdSuffix' field. list of keys associated to all chunks. These are encoded with key + ChunkedKeySuffix appended at the end.
      Parameters:
      value - the value to set.
    • getSchemaId

      public int getSchemaId()
      Gets the value of the 'schemaId' field.
      Returns:
      An identifier used to determine how the full value (after chunk re-assembly) can be deserialized. This is the ID of the user-defined schema.
    • setSchemaId

      public void setSchemaId(int value)
      Sets the value of the 'schemaId' field. An identifier used to determine how the full value (after chunk re-assembly) can be deserialized. This is the ID of the user-defined schema.
      Parameters:
      value - the value to set.
    • getSize

      public int getSize()
      Gets the value of the 'size' field.
      Returns:
      The number of bytes of the entire value, once all chunks are assembled.
    • setSize

      public void setSize(int value)
      Sets the value of the 'size' field. The number of bytes of the entire value, once all chunks are assembled.
      Parameters:
      value - the value to set.
    • writeExternal

      public void writeExternal(ObjectOutput out) throws IOException
      Specified by:
      writeExternal in interface Externalizable
      Overrides:
      writeExternal in class org.apache.avro.specific.SpecificRecordBase
      Throws:
      IOException
    • readExternal

      public void readExternal(ObjectInput in) throws IOException
      Specified by:
      readExternal in interface Externalizable
      Overrides:
      readExternal in class org.apache.avro.specific.SpecificRecordBase
      Throws:
      IOException