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
Modifier and TypeFieldDescriptionboolean
Whether the messages inside the current push are encoded with chunking support.The raw bytes of dictionary used to compress/decompress records.int
What type of compression strategy the current push uses.static final org.apache.avro.Schema
boolean
Whether the messages inside current topic partition between 'StartOfPush' control message and 'EndOfPush' control message is lexicographically sorted by key bytesint
The policy to determine timestamps of batch push records. -
Constructor Summary
ConstructorDescriptionDefault constructor.StartOfPush
(Boolean sorted, Boolean chunked, Integer compressionStrategy, ByteBuffer compressionDictionary, Integer timestampPolicy) All-args constructor. -
Method Summary
Modifier and TypeMethodDescriptionget
(int field$) boolean
Gets the value of the 'chunked' field.static org.apache.avro.Schema
Gets the value of the 'compressionDictionary' field.int
Gets the value of the 'compressionStrategy' field.org.apache.avro.Schema
boolean
Gets the value of the 'sorted' field.org.apache.avro.specific.SpecificData
int
Gets the value of the 'timestampPolicy' field.void
void
void
setChunked
(boolean value) Sets the value of the 'chunked' field.void
Sets the value of the 'compressionDictionary' field.void
setCompressionStrategy
(int value) Sets the value of the 'compressionStrategy' field.void
setSorted
(boolean value) Sets the value of the 'sorted' field.void
setTimestampPolicy
(int value) Sets the value of the 'timestampPolicy' field.void
Methods inherited from class org.apache.avro.specific.SpecificRecordBase
compareTo, customDecode, customEncode, equals, get, getConversion, getConversion, hasCustomCoders, hashCode, put, toString
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods 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:
getSpecificData
in classorg.apache.avro.specific.SpecificRecordBase
-
getSchema
public org.apache.avro.Schema getSchema()- Specified by:
getSchema
in interfaceorg.apache.avro.generic.GenericContainer
- Specified by:
getSchema
in classorg.apache.avro.specific.SpecificRecordBase
-
get
- Specified by:
get
in interfaceorg.apache.avro.generic.IndexedRecord
- Specified by:
get
in classorg.apache.avro.specific.SpecificRecordBase
-
put
- Specified by:
put
in interfaceorg.apache.avro.generic.IndexedRecord
- Specified by:
put
in 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:
writeExternal
in interfaceExternalizable
- Overrides:
writeExternal
in classorg.apache.avro.specific.SpecificRecordBase
- Throws:
IOException
-
readExternal
- Specified by:
readExternal
in interfaceExternalizable
- Overrides:
readExternal
in classorg.apache.avro.specific.SpecificRecordBase
- Throws:
IOException
-