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 Details

    • SCHEMA$

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

      public CharSequence 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 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

      public int 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.
  • 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 use newBuilder().
    • LeaderMetadata

      public LeaderMetadata(CharSequence hostName, Long upstreamOffset, Integer upstreamKafkaClusterId)
      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 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
    • getHostName

      public CharSequence 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

      public void setHostName(CharSequence value)
      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

      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