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
Modifier 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.Schema
int
Kafka bootstrap server URL of the cluster where RT/GF/remote VT topic exists, represented by an integer to reduce the overhead.long
Where this message is located in RT/GF/remote VT topic. -
Constructor Summary
ConstructorDescriptionDefault constructor.LeaderMetadata
(CharSequence hostName, Long upstreamOffset, Integer upstreamKafkaClusterId) All-args constructor. -
Method Summary
Modifier and TypeMethodDescriptionget
(int field$) static org.apache.avro.Schema
Gets the value of the 'hostName' field.org.apache.avro.Schema
org.apache.avro.specific.SpecificData
int
Gets the value of the 'upstreamKafkaClusterId' field.long
Gets the value of the 'upstreamOffset' field.void
void
void
setHostName
(CharSequence value) Sets the value of the 'hostName' field.void
setUpstreamKafkaClusterId
(int value) Sets the value of the 'upstreamKafkaClusterId' field.void
setUpstreamOffset
(long value) Sets the value of the 'upstreamOffset' 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$ -
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.
-
-
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
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.
-
-
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
-
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.
-
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
-