Class StartOfPush
java.lang.Object
org.apache.avro.specific.SpecificRecordBase
com.linkedin.venice.kafka.protocol.StartOfPush
- 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 StartOfPush
extends org.apache.avro.specific.SpecificRecordBase
implements org.apache.avro.specific.SpecificRecord
This ControlMessage is sent once per partition, at the beginning of a bulk load, before any of the data producers come online. This does not contain any data beyond the one which is common to all ControlMessageType.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionbooleanWhether the messages inside the current push are encoded with chunking support.The raw bytes of dictionary used to compress/decompress records.intWhat type of compression strategy the current push uses.static final org.apache.avro.SchemabooleanWhether the messages inside current topic partition between 'StartOfPush' control message and 'EndOfPush' control message is lexicographically sorted by key bytesintThe policy to determine timestamps of batch push records. -
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor.StartOfPush(Boolean sorted, Boolean chunked, Integer compressionStrategy, ByteBuffer compressionDictionary, Integer timestampPolicy) All-args constructor. -
Method Summary
Modifier and TypeMethodDescriptionget(int field$) booleanGets the value of the 'chunked' field.static org.apache.avro.SchemaGets the value of the 'compressionDictionary' field.intGets the value of the 'compressionStrategy' field.org.apache.avro.SchemabooleanGets the value of the 'sorted' field.org.apache.avro.specific.SpecificDataintGets the value of the 'timestampPolicy' field.voidvoidvoidsetChunked(boolean value) Sets the value of the 'chunked' field.voidSets the value of the 'compressionDictionary' field.voidsetCompressionStrategy(int value) Sets the value of the 'compressionStrategy' field.voidsetSorted(boolean value) Sets the value of the 'sorted' field.voidsetTimestampPolicy(int value) Sets the value of the 'timestampPolicy' field.voidMethods inherited from class org.apache.avro.specific.SpecificRecordBase
compareTo, customDecode, customEncode, equals, get, getConversion, getConversion, hasCustomCoders, hashCode, put, toStringMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.avro.generic.GenericRecord
hasField
-
Field Details
-
SCHEMA$
public static final org.apache.avro.Schema SCHEMA$ -
sorted
public boolean sortedWhether the messages inside current topic partition between 'StartOfPush' control message and 'EndOfPush' control message is lexicographically sorted by key bytes -
chunked
public boolean chunkedWhether the messages inside the current push are encoded with chunking support. If true, this means keys will be prefixed with ChunkId, and values may contain a ChunkedValueManifest (if schema is defined as -20). -
compressionStrategy
public int compressionStrategyWhat type of compression strategy the current push uses. Using int because Avro Enums are not evolvable. The mapping is the following: 0 => NO_OP, 1 => GZIP, 2 => ZSTD, 3 => ZSTD_WITH_DICT -
compressionDictionary
The raw bytes of dictionary used to compress/decompress records. -
timestampPolicy
public int timestampPolicyThe policy to determine timestamps of batch push records. 0 => no per record replication metadata is stored, hybrid writes always win over batch, 1 => no per record timestamp metadata is stored, Start-Of-Push Control message's logicalTimestamp is treated as last update timestamp for all batch record, and hybrid writes wins only when their own logicalTimestamp are higher, 2 => per record timestamp metadata is provided by the push job and stored for each key, enabling full conflict resolution granularity on a per field basis, just like when merging concurrent update operations.
-
-
Constructor Details
-
StartOfPush
public StartOfPush()Default constructor. Note that this does not initialize fields to their default values from the schema. If that is desired then one should usenewBuilder(). -
StartOfPush
public StartOfPush(Boolean sorted, Boolean chunked, Integer compressionStrategy, ByteBuffer compressionDictionary, Integer timestampPolicy) All-args constructor.- Parameters:
sorted- Whether the messages inside current topic partition between 'StartOfPush' control message and 'EndOfPush' control message is lexicographically sorted by key byteschunked- Whether the messages inside the current push are encoded with chunking support. If true, this means keys will be prefixed with ChunkId, and values may contain a ChunkedValueManifest (if schema is defined as -20).compressionStrategy- What type of compression strategy the current push uses. Using int because Avro Enums are not evolvable. The mapping is the following: 0 => NO_OP, 1 => GZIP, 2 => ZSTD, 3 => ZSTD_WITH_DICTcompressionDictionary- The raw bytes of dictionary used to compress/decompress records.timestampPolicy- The policy to determine timestamps of batch push records. 0 => no per record replication metadata is stored, hybrid writes always win over batch, 1 => no per record timestamp metadata is stored, Start-Of-Push Control message's logicalTimestamp is treated as last update timestamp for all batch record, and hybrid writes wins only when their own logicalTimestamp are higher, 2 => per record timestamp metadata is provided by the push job and stored for each key, enabling full conflict resolution granularity on a per field basis, just like when merging concurrent update operations.
-
-
Method Details
-
getClassSchema
public static org.apache.avro.Schema getClassSchema() -
getSpecificData
public org.apache.avro.specific.SpecificData getSpecificData()- Overrides:
getSpecificDatain classorg.apache.avro.specific.SpecificRecordBase
-
getSchema
public org.apache.avro.Schema getSchema()- Specified by:
getSchemain interfaceorg.apache.avro.generic.GenericContainer- Specified by:
getSchemain classorg.apache.avro.specific.SpecificRecordBase
-
get
- Specified by:
getin interfaceorg.apache.avro.generic.IndexedRecord- Specified by:
getin classorg.apache.avro.specific.SpecificRecordBase
-
put
- Specified by:
putin interfaceorg.apache.avro.generic.IndexedRecord- Specified by:
putin classorg.apache.avro.specific.SpecificRecordBase
-
getSorted
public boolean getSorted()Gets the value of the 'sorted' field.- Returns:
- Whether the messages inside current topic partition between 'StartOfPush' control message and 'EndOfPush' control message is lexicographically sorted by key bytes
-
setSorted
public void setSorted(boolean value) Sets the value of the 'sorted' field. Whether the messages inside current topic partition between 'StartOfPush' control message and 'EndOfPush' control message is lexicographically sorted by key bytes- Parameters:
value- the value to set.
-
getChunked
public boolean getChunked()Gets the value of the 'chunked' field.- Returns:
- Whether the messages inside the current push are encoded with chunking support. If true, this means keys will be prefixed with ChunkId, and values may contain a ChunkedValueManifest (if schema is defined as -20).
-
setChunked
public void setChunked(boolean value) Sets the value of the 'chunked' field. Whether the messages inside the current push are encoded with chunking support. If true, this means keys will be prefixed with ChunkId, and values may contain a ChunkedValueManifest (if schema is defined as -20).- Parameters:
value- the value to set.
-
getCompressionStrategy
public int getCompressionStrategy()Gets the value of the 'compressionStrategy' field.- Returns:
- What type of compression strategy the current push uses. Using int because Avro Enums are not evolvable. The mapping is the following: 0 => NO_OP, 1 => GZIP, 2 => ZSTD, 3 => ZSTD_WITH_DICT
-
setCompressionStrategy
public void setCompressionStrategy(int value) Sets the value of the 'compressionStrategy' field. What type of compression strategy the current push uses. Using int because Avro Enums are not evolvable. The mapping is the following: 0 => NO_OP, 1 => GZIP, 2 => ZSTD, 3 => ZSTD_WITH_DICT- Parameters:
value- the value to set.
-
getCompressionDictionary
Gets the value of the 'compressionDictionary' field.- Returns:
- The raw bytes of dictionary used to compress/decompress records.
-
setCompressionDictionary
Sets the value of the 'compressionDictionary' field. The raw bytes of dictionary used to compress/decompress records.- Parameters:
value- the value to set.
-
getTimestampPolicy
public int getTimestampPolicy()Gets the value of the 'timestampPolicy' field.- Returns:
- The policy to determine timestamps of batch push records. 0 => no per record replication metadata is stored, hybrid writes always win over batch, 1 => no per record timestamp metadata is stored, Start-Of-Push Control message's logicalTimestamp is treated as last update timestamp for all batch record, and hybrid writes wins only when their own logicalTimestamp are higher, 2 => per record timestamp metadata is provided by the push job and stored for each key, enabling full conflict resolution granularity on a per field basis, just like when merging concurrent update operations.
-
setTimestampPolicy
public void setTimestampPolicy(int value) Sets the value of the 'timestampPolicy' field. The policy to determine timestamps of batch push records. 0 => no per record replication metadata is stored, hybrid writes always win over batch, 1 => no per record timestamp metadata is stored, Start-Of-Push Control message's logicalTimestamp is treated as last update timestamp for all batch record, and hybrid writes wins only when their own logicalTimestamp are higher, 2 => per record timestamp metadata is provided by the push job and stored for each key, enabling full conflict resolution granularity on a per field basis, just like when merging concurrent update operations.- Parameters:
value- the value to set.
-
writeExternal
- Specified by:
writeExternalin interfaceExternalizable- Overrides:
writeExternalin classorg.apache.avro.specific.SpecificRecordBase- Throws:
IOException
-
readExternal
- Specified by:
readExternalin interfaceExternalizable- Overrides:
readExternalin classorg.apache.avro.specific.SpecificRecordBase- Throws:
IOException
-