Class LeaderMetadata
java.lang.Object
org.apache.avro.specific.SpecificRecordBase
com.linkedin.venice.kafka.protocol.LeaderMetadata
- 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
- Direct Known Subclasses:
VeniceWriter.DefaultLeaderMetadata
public class LeaderMetadata
extends org.apache.avro.specific.SpecificRecordBase
implements org.apache.avro.specific.SpecificRecord
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionThe identifier of the host which sends the message.This helps detect the 'split brain' scenario in leader SN.static final org.apache.avro.SchemalongTermId is a unique identifier (usually a Helix message timestamp) for the term in which the message is produced.intKafka bootstrap server URL of the cluster where RT/GF/remote VT topic exists, represented by an integer to reduce the overhead.longWhere this message is located in RT/GF/remote VT topic.The position of the message in the upstream pubsub system (usually real-time topic). -
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor.LeaderMetadata(CharSequence hostName, Long upstreamOffset, Integer upstreamKafkaClusterId, ByteBuffer upstreamPubSubPosition, Long termId) All-args constructor. -
Method Summary
Modifier and TypeMethodDescriptionget(int field$) static org.apache.avro.SchemaGets the value of the 'hostName' field.org.apache.avro.Schemaorg.apache.avro.specific.SpecificDatalongGets the value of the 'termId' field.intGets the value of the 'upstreamKafkaClusterId' field.longGets the value of the 'upstreamOffset' field.Gets the value of the 'upstreamPubSubPosition' field.voidvoidvoidsetHostName(CharSequence value) Sets the value of the 'hostName' field.voidsetTermId(long value) Sets the value of the 'termId' field.voidsetUpstreamKafkaClusterId(int value) Sets the value of the 'upstreamKafkaClusterId' field.voidsetUpstreamOffset(long value) Sets the value of the 'upstreamOffset' field.voidSets the value of the 'upstreamPubSubPosition' 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$ -
hostName
The identifier of the host which sends the message.This helps detect the 'split brain' scenario in leader SN. Notice that it is different from GUID. GUID represents the one who produces the message. In 'pass-through' mode, the relaying producer will reuse the same GUID from the upstream message. -
upstreamOffset
public long upstreamOffsetWhere this message is located in RT/GF/remote VT topic. This value will be determined and modified by leader SN at runtime. -
upstreamKafkaClusterId
public int upstreamKafkaClusterIdKafka bootstrap server URL of the cluster where RT/GF/remote VT topic exists, represented by an integer to reduce the overhead. This value will be determined and modified by leader SN at runtime. -
upstreamPubSubPosition
The position of the message in the upstream pubsub system (usually real-time topic). -
termId
public long termIdTermId is a unique identifier (usually a Helix message timestamp) for the term in which the message is produced.
-
-
Constructor Details
-
LeaderMetadata
public LeaderMetadata()Default constructor. Note that this does not initialize fields to their default values from the schema. If that is desired then one should usenewBuilder(). -
LeaderMetadata
public LeaderMetadata(CharSequence hostName, Long upstreamOffset, Integer upstreamKafkaClusterId, ByteBuffer upstreamPubSubPosition, Long termId) All-args constructor.- Parameters:
hostName- The identifier of the host which sends the message.This helps detect the 'split brain' scenario in leader SN. Notice that it is different from GUID. GUID represents the one who produces the message. In 'pass-through' mode, the relaying producer will reuse the same GUID from the upstream message.upstreamOffset- Where this message is located in RT/GF/remote VT topic. This value will be determined and modified by leader SN at runtime.upstreamKafkaClusterId- Kafka bootstrap server URL of the cluster where RT/GF/remote VT topic exists, represented by an integer to reduce the overhead. This value will be determined and modified by leader SN at runtime.upstreamPubSubPosition- The position of the message in the upstream pubsub system (usually real-time topic).termId- TermId is a unique identifier (usually a Helix message timestamp) for the term in which the message is produced.
-
-
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
-
getHostName
Gets the value of the 'hostName' field.- Returns:
- The identifier of the host which sends the message.This helps detect the 'split brain' scenario in leader SN. Notice that it is different from GUID. GUID represents the one who produces the message. In 'pass-through' mode, the relaying producer will reuse the same GUID from the upstream message.
-
setHostName
Sets the value of the 'hostName' field. The identifier of the host which sends the message.This helps detect the 'split brain' scenario in leader SN. Notice that it is different from GUID. GUID represents the one who produces the message. In 'pass-through' mode, the relaying producer will reuse the same GUID from the upstream message.- Parameters:
value- the value to set.
-
getUpstreamOffset
public long getUpstreamOffset()Gets the value of the 'upstreamOffset' field.- Returns:
- Where this message is located in RT/GF/remote VT topic. This value will be determined and modified by leader SN at runtime.
-
setUpstreamOffset
public void setUpstreamOffset(long value) Sets the value of the 'upstreamOffset' field. Where this message is located in RT/GF/remote VT topic. This value will be determined and modified by leader SN at runtime.- Parameters:
value- the value to set.
-
getUpstreamKafkaClusterId
public int getUpstreamKafkaClusterId()Gets the value of the 'upstreamKafkaClusterId' field.- Returns:
- Kafka bootstrap server URL of the cluster where RT/GF/remote VT topic exists, represented by an integer to reduce the overhead. This value will be determined and modified by leader SN at runtime.
-
setUpstreamKafkaClusterId
public void setUpstreamKafkaClusterId(int value) Sets the value of the 'upstreamKafkaClusterId' field. Kafka bootstrap server URL of the cluster where RT/GF/remote VT topic exists, represented by an integer to reduce the overhead. This value will be determined and modified by leader SN at runtime.- Parameters:
value- the value to set.
-
getUpstreamPubSubPosition
Gets the value of the 'upstreamPubSubPosition' field.- Returns:
- The position of the message in the upstream pubsub system (usually real-time topic).
-
setUpstreamPubSubPosition
Sets the value of the 'upstreamPubSubPosition' field. The position of the message in the upstream pubsub system (usually real-time topic).- Parameters:
value- the value to set.
-
getTermId
public long getTermId()Gets the value of the 'termId' field.- Returns:
- TermId is a unique identifier (usually a Helix message timestamp) for the term in which the message is produced.
-
setTermId
public void setTermId(long value) Sets the value of the 'termId' field. TermId is a unique identifier (usually a Helix message timestamp) for the term in which the message is produced.- 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
-