Class LeaderMetadata

  • All Implemented Interfaces:
    java.io.Externalizable, java.io.Serializable, java.lang.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:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      java.lang.CharSequence hostName
      The identifier of the host which sends the message.This helps detect the 'split brain' scenario in leader SN.
      static org.apache.avro.Schema SCHEMA$  
      int upstreamKafkaClusterId
      Kafka bootstrap server URL of the cluster where RT/GF/remote VT topic exists, represented by an integer to reduce the overhead.
      long upstreamOffset
      Where this message is located in RT/GF/remote VT topic.
    • Constructor Summary

      Constructors 
      Constructor Description
      LeaderMetadata()
      Default constructor.
      LeaderMetadata​(java.lang.CharSequence hostName, java.lang.Long upstreamOffset, java.lang.Integer upstreamKafkaClusterId)
      All-args constructor.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Object get​(int field$)  
      static org.apache.avro.Schema getClassSchema()  
      java.lang.CharSequence getHostName()
      Gets the value of the 'hostName' field.
      org.apache.avro.Schema getSchema()  
      org.apache.avro.specific.SpecificData getSpecificData()  
      int getUpstreamKafkaClusterId()
      Gets the value of the 'upstreamKafkaClusterId' field.
      long getUpstreamOffset()
      Gets the value of the 'upstreamOffset' field.
      void put​(int field$, java.lang.Object value$)  
      void readExternal​(java.io.ObjectInput in)  
      void setHostName​(java.lang.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 writeExternal​(java.io.ObjectOutput out)  
      • 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 Detail

      • SCHEMA$

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

        public java.lang.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 Detail

      • 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​(java.lang.CharSequence hostName,
                              java.lang.Long upstreamOffset,
                              java.lang.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 Detail

      • 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 java.lang.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$,
                        java.lang.Object value$)
        Specified by:
        put in interface org.apache.avro.generic.IndexedRecord
        Specified by:
        put in class org.apache.avro.specific.SpecificRecordBase
      • getHostName

        public java.lang.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​(java.lang.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​(java.io.ObjectOutput out)
                           throws java.io.IOException
        Specified by:
        writeExternal in interface java.io.Externalizable
        Overrides:
        writeExternal in class org.apache.avro.specific.SpecificRecordBase
        Throws:
        java.io.IOException
      • readExternal

        public void readExternal​(java.io.ObjectInput in)
                          throws java.io.IOException
        Specified by:
        readExternal in interface java.io.Externalizable
        Overrides:
        readExternal in class org.apache.avro.specific.SpecificRecordBase
        Throws:
        java.io.IOException