Class StoreVersion

  • 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

    public class StoreVersion
    extends org.apache.avro.specific.SpecificRecordBase
    implements org.apache.avro.specific.SpecificRecord
    Type describes all the version attributes
    See Also:
    Serialized Form
    • Field Detail

      • SCHEMA$

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

        public java.lang.CharSequence storeName
        Name of the store which this version belong to.
      • number

        public int number
        Version number.
      • createdTime

        public long createdTime
        Time when this version was created.
      • status

        public int status
        Status of version, and default is 'STARTED'
      • pushJobId

        public java.lang.CharSequence pushJobId
      • compressionStrategy

        public int compressionStrategy
        strategies used to compress/decompress Record's value, and default is 'NO_OP'
      • leaderFollowerModelEnabled

        public boolean leaderFollowerModelEnabled
        Whether or not to use leader follower state transition.
      • nativeReplicationEnabled

        public boolean nativeReplicationEnabled
        Whether or not native replication is enabled.
      • pushStreamSourceAddress

        public java.lang.CharSequence pushStreamSourceAddress
        Address to the kafka broker which holds the source of truth topic for this store version.
      • bufferReplayEnabledForHybrid

        public boolean bufferReplayEnabledForHybrid
        Whether or not to enable buffer replay for hybrid.
      • chunkingEnabled

        public boolean chunkingEnabled
        Whether or not large values are supported (via chunking).
      • rmdChunkingEnabled

        public boolean rmdChunkingEnabled
        Whether or not large replication metadata are supported (via chunking).
      • pushType

        public int pushType
        Producer type for this version, and default is 'BATCH'
      • partitionCount

        public int partitionCount
        Partition count of this version.
      • incrementalPushPolicy

        public int incrementalPushPolicy
        Incremental Push Policy to reconcile with real time pushes., and default is 'PUSH_TO_VERSION_TOPIC'
      • replicationFactor

        public int replicationFactor
        The number of replica this store version is keeping.
      • nativeReplicationSourceFabric

        public java.lang.CharSequence nativeReplicationSourceFabric
        The source fabric name to be uses in native replication. Remote consumption will happen from kafka in this fabric.
      • incrementalPushEnabled

        public boolean incrementalPushEnabled
        Flag to see if the store supports incremental push or not
      • separateRealTimeTopicEnabled

        public boolean separateRealTimeTopicEnabled
        Flag to see if the store supports separate real-time topic for incremental push.
      • blobTransferEnabled

        public boolean blobTransferEnabled
        Flag to indicate if the blob transfer is allowed or not
      • useVersionLevelIncrementalPushEnabled

        public boolean useVersionLevelIncrementalPushEnabled
        Flag to see if incrementalPushEnabled config at StoreVersion should be used. This is needed during migration of this config from Store level to Version level. We can deprecate this field later.
      • hybridConfig

        public StoreHybridConfig hybridConfig
        Properties related to Hybrid Store behavior. If absent (null), then the store is not hybrid.
      • useVersionLevelHybridConfig

        public boolean useVersionLevelHybridConfig
        Flag to see if hybridConfig at StoreVersion should be used. This is needed during migration of this config from Store level to Version level. We can deprecate this field later.
      • activeActiveReplicationEnabled

        public boolean activeActiveReplicationEnabled
        Whether or not active/active replication is enabled for hybrid stores; eventually this config will replace native replication flag, when all stores are on A/A
      • timestampMetadataVersionId

        public int timestampMetadataVersionId
        The A/A timestamp metadata schema version ID that will be used to deserialize metadataPayload.
      • dataRecoveryConfig

        public DataRecoveryConfig dataRecoveryConfig
        Properties related to data recovery mode behavior for this version. If absent (null), then the version never went go through data recovery.
      • deferVersionSwap

        public boolean deferVersionSwap
        flag that informs venice controller to defer marking this version as the serving version after instances report ready to serve. This version must be marked manually as the current version in order to serve traffic from it.
      • views

        public java.util.Map<java.lang.String,​StoreViewConfig> views
        A list of views which describe and configure a downstream view of a venice store.
      • repushSourceVersion

        public int repushSourceVersion
        For store version created from repush, indicates the source store version its created from.
    • Constructor Detail

      • StoreVersion

        public StoreVersion()
        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().
      • StoreVersion

        public StoreVersion​(java.lang.CharSequence storeName,
                            java.lang.Integer number,
                            java.lang.Long createdTime,
                            java.lang.Integer status,
                            java.lang.CharSequence pushJobId,
                            java.lang.Integer compressionStrategy,
                            java.lang.Boolean leaderFollowerModelEnabled,
                            java.lang.Boolean nativeReplicationEnabled,
                            java.lang.CharSequence pushStreamSourceAddress,
                            java.lang.Boolean bufferReplayEnabledForHybrid,
                            java.lang.Boolean chunkingEnabled,
                            java.lang.Boolean rmdChunkingEnabled,
                            java.lang.Integer pushType,
                            java.lang.Integer partitionCount,
                            StorePartitionerConfig partitionerConfig,
                            java.lang.Integer incrementalPushPolicy,
                            java.lang.Integer replicationFactor,
                            java.lang.CharSequence nativeReplicationSourceFabric,
                            java.lang.Boolean incrementalPushEnabled,
                            java.lang.Boolean separateRealTimeTopicEnabled,
                            java.lang.Boolean blobTransferEnabled,
                            java.lang.Boolean useVersionLevelIncrementalPushEnabled,
                            StoreHybridConfig hybridConfig,
                            java.lang.Boolean useVersionLevelHybridConfig,
                            java.lang.Boolean activeActiveReplicationEnabled,
                            java.lang.Integer timestampMetadataVersionId,
                            DataRecoveryConfig dataRecoveryConfig,
                            java.lang.Boolean deferVersionSwap,
                            java.util.Map<java.lang.String,​StoreViewConfig> views,
                            java.lang.Integer repushSourceVersion)
        All-args constructor.
        Parameters:
        storeName - Name of the store which this version belong to.
        number - Version number.
        createdTime - Time when this version was created.
        status - Status of version, and default is 'STARTED'
        pushJobId - The new value for pushJobId
        compressionStrategy - strategies used to compress/decompress Record's value, and default is 'NO_OP'
        leaderFollowerModelEnabled - Whether or not to use leader follower state transition.
        nativeReplicationEnabled - Whether or not native replication is enabled.
        pushStreamSourceAddress - Address to the kafka broker which holds the source of truth topic for this store version.
        bufferReplayEnabledForHybrid - Whether or not to enable buffer replay for hybrid.
        chunkingEnabled - Whether or not large values are supported (via chunking).
        rmdChunkingEnabled - Whether or not large replication metadata are supported (via chunking).
        pushType - Producer type for this version, and default is 'BATCH'
        partitionCount - Partition count of this version.
        partitionerConfig - Config for custom partitioning.
        incrementalPushPolicy - Incremental Push Policy to reconcile with real time pushes., and default is 'PUSH_TO_VERSION_TOPIC'
        replicationFactor - The number of replica this store version is keeping.
        nativeReplicationSourceFabric - The source fabric name to be uses in native replication. Remote consumption will happen from kafka in this fabric.
        incrementalPushEnabled - Flag to see if the store supports incremental push or not
        separateRealTimeTopicEnabled - Flag to see if the store supports separate real-time topic for incremental push.
        blobTransferEnabled - Flag to indicate if the blob transfer is allowed or not
        useVersionLevelIncrementalPushEnabled - Flag to see if incrementalPushEnabled config at StoreVersion should be used. This is needed during migration of this config from Store level to Version level. We can deprecate this field later.
        hybridConfig - Properties related to Hybrid Store behavior. If absent (null), then the store is not hybrid.
        useVersionLevelHybridConfig - Flag to see if hybridConfig at StoreVersion should be used. This is needed during migration of this config from Store level to Version level. We can deprecate this field later.
        activeActiveReplicationEnabled - Whether or not active/active replication is enabled for hybrid stores; eventually this config will replace native replication flag, when all stores are on A/A
        timestampMetadataVersionId - The A/A timestamp metadata schema version ID that will be used to deserialize metadataPayload.
        dataRecoveryConfig - Properties related to data recovery mode behavior for this version. If absent (null), then the version never went go through data recovery.
        deferVersionSwap - flag that informs venice controller to defer marking this version as the serving version after instances report ready to serve. This version must be marked manually as the current version in order to serve traffic from it.
        views - A list of views which describe and configure a downstream view of a venice store.
        repushSourceVersion - For store version created from repush, indicates the source store version its created from.
    • 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
      • getStoreName

        public java.lang.CharSequence getStoreName()
        Gets the value of the 'storeName' field.
        Returns:
        Name of the store which this version belong to.
      • setStoreName

        public void setStoreName​(java.lang.CharSequence value)
        Sets the value of the 'storeName' field. Name of the store which this version belong to.
        Parameters:
        value - the value to set.
      • getNumber

        public int getNumber()
        Gets the value of the 'number' field.
        Returns:
        Version number.
      • setNumber

        public void setNumber​(int value)
        Sets the value of the 'number' field. Version number.
        Parameters:
        value - the value to set.
      • getCreatedTime

        public long getCreatedTime()
        Gets the value of the 'createdTime' field.
        Returns:
        Time when this version was created.
      • setCreatedTime

        public void setCreatedTime​(long value)
        Sets the value of the 'createdTime' field. Time when this version was created.
        Parameters:
        value - the value to set.
      • getStatus

        public int getStatus()
        Gets the value of the 'status' field.
        Returns:
        Status of version, and default is 'STARTED'
      • setStatus

        public void setStatus​(int value)
        Sets the value of the 'status' field. Status of version, and default is 'STARTED'
        Parameters:
        value - the value to set.
      • getPushJobId

        public java.lang.CharSequence getPushJobId()
        Gets the value of the 'pushJobId' field.
        Returns:
        The value of the 'pushJobId' field.
      • setPushJobId

        public void setPushJobId​(java.lang.CharSequence value)
        Sets the value of the 'pushJobId' field.
        Parameters:
        value - the value to set.
      • getCompressionStrategy

        public int getCompressionStrategy()
        Gets the value of the 'compressionStrategy' field.
        Returns:
        strategies used to compress/decompress Record's value, and default is 'NO_OP'
      • setCompressionStrategy

        public void setCompressionStrategy​(int value)
        Sets the value of the 'compressionStrategy' field. strategies used to compress/decompress Record's value, and default is 'NO_OP'
        Parameters:
        value - the value to set.
      • getLeaderFollowerModelEnabled

        public boolean getLeaderFollowerModelEnabled()
        Gets the value of the 'leaderFollowerModelEnabled' field.
        Returns:
        Whether or not to use leader follower state transition.
      • setLeaderFollowerModelEnabled

        public void setLeaderFollowerModelEnabled​(boolean value)
        Sets the value of the 'leaderFollowerModelEnabled' field. Whether or not to use leader follower state transition.
        Parameters:
        value - the value to set.
      • getNativeReplicationEnabled

        public boolean getNativeReplicationEnabled()
        Gets the value of the 'nativeReplicationEnabled' field.
        Returns:
        Whether or not native replication is enabled.
      • setNativeReplicationEnabled

        public void setNativeReplicationEnabled​(boolean value)
        Sets the value of the 'nativeReplicationEnabled' field. Whether or not native replication is enabled.
        Parameters:
        value - the value to set.
      • getPushStreamSourceAddress

        public java.lang.CharSequence getPushStreamSourceAddress()
        Gets the value of the 'pushStreamSourceAddress' field.
        Returns:
        Address to the kafka broker which holds the source of truth topic for this store version.
      • setPushStreamSourceAddress

        public void setPushStreamSourceAddress​(java.lang.CharSequence value)
        Sets the value of the 'pushStreamSourceAddress' field. Address to the kafka broker which holds the source of truth topic for this store version.
        Parameters:
        value - the value to set.
      • getBufferReplayEnabledForHybrid

        public boolean getBufferReplayEnabledForHybrid()
        Gets the value of the 'bufferReplayEnabledForHybrid' field.
        Returns:
        Whether or not to enable buffer replay for hybrid.
      • setBufferReplayEnabledForHybrid

        public void setBufferReplayEnabledForHybrid​(boolean value)
        Sets the value of the 'bufferReplayEnabledForHybrid' field. Whether or not to enable buffer replay for hybrid.
        Parameters:
        value - the value to set.
      • getChunkingEnabled

        public boolean getChunkingEnabled()
        Gets the value of the 'chunkingEnabled' field.
        Returns:
        Whether or not large values are supported (via chunking).
      • setChunkingEnabled

        public void setChunkingEnabled​(boolean value)
        Sets the value of the 'chunkingEnabled' field. Whether or not large values are supported (via chunking).
        Parameters:
        value - the value to set.
      • getRmdChunkingEnabled

        public boolean getRmdChunkingEnabled()
        Gets the value of the 'rmdChunkingEnabled' field.
        Returns:
        Whether or not large replication metadata are supported (via chunking).
      • setRmdChunkingEnabled

        public void setRmdChunkingEnabled​(boolean value)
        Sets the value of the 'rmdChunkingEnabled' field. Whether or not large replication metadata are supported (via chunking).
        Parameters:
        value - the value to set.
      • getPushType

        public int getPushType()
        Gets the value of the 'pushType' field.
        Returns:
        Producer type for this version, and default is 'BATCH'
      • setPushType

        public void setPushType​(int value)
        Sets the value of the 'pushType' field. Producer type for this version, and default is 'BATCH'
        Parameters:
        value - the value to set.
      • getPartitionCount

        public int getPartitionCount()
        Gets the value of the 'partitionCount' field.
        Returns:
        Partition count of this version.
      • setPartitionCount

        public void setPartitionCount​(int value)
        Sets the value of the 'partitionCount' field. Partition count of this version.
        Parameters:
        value - the value to set.
      • getPartitionerConfig

        public StorePartitionerConfig getPartitionerConfig()
        Gets the value of the 'partitionerConfig' field.
        Returns:
        Config for custom partitioning.
      • setPartitionerConfig

        public void setPartitionerConfig​(StorePartitionerConfig value)
        Sets the value of the 'partitionerConfig' field. Config for custom partitioning.
        Parameters:
        value - the value to set.
      • getIncrementalPushPolicy

        public int getIncrementalPushPolicy()
        Gets the value of the 'incrementalPushPolicy' field.
        Returns:
        Incremental Push Policy to reconcile with real time pushes., and default is 'PUSH_TO_VERSION_TOPIC'
      • setIncrementalPushPolicy

        public void setIncrementalPushPolicy​(int value)
        Sets the value of the 'incrementalPushPolicy' field. Incremental Push Policy to reconcile with real time pushes., and default is 'PUSH_TO_VERSION_TOPIC'
        Parameters:
        value - the value to set.
      • getReplicationFactor

        public int getReplicationFactor()
        Gets the value of the 'replicationFactor' field.
        Returns:
        The number of replica this store version is keeping.
      • setReplicationFactor

        public void setReplicationFactor​(int value)
        Sets the value of the 'replicationFactor' field. The number of replica this store version is keeping.
        Parameters:
        value - the value to set.
      • getNativeReplicationSourceFabric

        public java.lang.CharSequence getNativeReplicationSourceFabric()
        Gets the value of the 'nativeReplicationSourceFabric' field.
        Returns:
        The source fabric name to be uses in native replication. Remote consumption will happen from kafka in this fabric.
      • setNativeReplicationSourceFabric

        public void setNativeReplicationSourceFabric​(java.lang.CharSequence value)
        Sets the value of the 'nativeReplicationSourceFabric' field. The source fabric name to be uses in native replication. Remote consumption will happen from kafka in this fabric.
        Parameters:
        value - the value to set.
      • getIncrementalPushEnabled

        public boolean getIncrementalPushEnabled()
        Gets the value of the 'incrementalPushEnabled' field.
        Returns:
        Flag to see if the store supports incremental push or not
      • setIncrementalPushEnabled

        public void setIncrementalPushEnabled​(boolean value)
        Sets the value of the 'incrementalPushEnabled' field. Flag to see if the store supports incremental push or not
        Parameters:
        value - the value to set.
      • getSeparateRealTimeTopicEnabled

        public boolean getSeparateRealTimeTopicEnabled()
        Gets the value of the 'separateRealTimeTopicEnabled' field.
        Returns:
        Flag to see if the store supports separate real-time topic for incremental push.
      • setSeparateRealTimeTopicEnabled

        public void setSeparateRealTimeTopicEnabled​(boolean value)
        Sets the value of the 'separateRealTimeTopicEnabled' field. Flag to see if the store supports separate real-time topic for incremental push.
        Parameters:
        value - the value to set.
      • getBlobTransferEnabled

        public boolean getBlobTransferEnabled()
        Gets the value of the 'blobTransferEnabled' field.
        Returns:
        Flag to indicate if the blob transfer is allowed or not
      • setBlobTransferEnabled

        public void setBlobTransferEnabled​(boolean value)
        Sets the value of the 'blobTransferEnabled' field. Flag to indicate if the blob transfer is allowed or not
        Parameters:
        value - the value to set.
      • getUseVersionLevelIncrementalPushEnabled

        public boolean getUseVersionLevelIncrementalPushEnabled()
        Gets the value of the 'useVersionLevelIncrementalPushEnabled' field.
        Returns:
        Flag to see if incrementalPushEnabled config at StoreVersion should be used. This is needed during migration of this config from Store level to Version level. We can deprecate this field later.
      • setUseVersionLevelIncrementalPushEnabled

        public void setUseVersionLevelIncrementalPushEnabled​(boolean value)
        Sets the value of the 'useVersionLevelIncrementalPushEnabled' field. Flag to see if incrementalPushEnabled config at StoreVersion should be used. This is needed during migration of this config from Store level to Version level. We can deprecate this field later.
        Parameters:
        value - the value to set.
      • getHybridConfig

        public StoreHybridConfig getHybridConfig()
        Gets the value of the 'hybridConfig' field.
        Returns:
        Properties related to Hybrid Store behavior. If absent (null), then the store is not hybrid.
      • setHybridConfig

        public void setHybridConfig​(StoreHybridConfig value)
        Sets the value of the 'hybridConfig' field. Properties related to Hybrid Store behavior. If absent (null), then the store is not hybrid.
        Parameters:
        value - the value to set.
      • getUseVersionLevelHybridConfig

        public boolean getUseVersionLevelHybridConfig()
        Gets the value of the 'useVersionLevelHybridConfig' field.
        Returns:
        Flag to see if hybridConfig at StoreVersion should be used. This is needed during migration of this config from Store level to Version level. We can deprecate this field later.
      • setUseVersionLevelHybridConfig

        public void setUseVersionLevelHybridConfig​(boolean value)
        Sets the value of the 'useVersionLevelHybridConfig' field. Flag to see if hybridConfig at StoreVersion should be used. This is needed during migration of this config from Store level to Version level. We can deprecate this field later.
        Parameters:
        value - the value to set.
      • getActiveActiveReplicationEnabled

        public boolean getActiveActiveReplicationEnabled()
        Gets the value of the 'activeActiveReplicationEnabled' field.
        Returns:
        Whether or not active/active replication is enabled for hybrid stores; eventually this config will replace native replication flag, when all stores are on A/A
      • setActiveActiveReplicationEnabled

        public void setActiveActiveReplicationEnabled​(boolean value)
        Sets the value of the 'activeActiveReplicationEnabled' field. Whether or not active/active replication is enabled for hybrid stores; eventually this config will replace native replication flag, when all stores are on A/A
        Parameters:
        value - the value to set.
      • getTimestampMetadataVersionId

        public int getTimestampMetadataVersionId()
        Gets the value of the 'timestampMetadataVersionId' field.
        Returns:
        The A/A timestamp metadata schema version ID that will be used to deserialize metadataPayload.
      • setTimestampMetadataVersionId

        public void setTimestampMetadataVersionId​(int value)
        Sets the value of the 'timestampMetadataVersionId' field. The A/A timestamp metadata schema version ID that will be used to deserialize metadataPayload.
        Parameters:
        value - the value to set.
      • getDataRecoveryConfig

        public DataRecoveryConfig getDataRecoveryConfig()
        Gets the value of the 'dataRecoveryConfig' field.
        Returns:
        Properties related to data recovery mode behavior for this version. If absent (null), then the version never went go through data recovery.
      • setDataRecoveryConfig

        public void setDataRecoveryConfig​(DataRecoveryConfig value)
        Sets the value of the 'dataRecoveryConfig' field. Properties related to data recovery mode behavior for this version. If absent (null), then the version never went go through data recovery.
        Parameters:
        value - the value to set.
      • getDeferVersionSwap

        public boolean getDeferVersionSwap()
        Gets the value of the 'deferVersionSwap' field.
        Returns:
        flag that informs venice controller to defer marking this version as the serving version after instances report ready to serve. This version must be marked manually as the current version in order to serve traffic from it.
      • setDeferVersionSwap

        public void setDeferVersionSwap​(boolean value)
        Sets the value of the 'deferVersionSwap' field. flag that informs venice controller to defer marking this version as the serving version after instances report ready to serve. This version must be marked manually as the current version in order to serve traffic from it.
        Parameters:
        value - the value to set.
      • getViews

        public java.util.Map<java.lang.String,​StoreViewConfig> getViews()
        Gets the value of the 'views' field.
        Returns:
        A list of views which describe and configure a downstream view of a venice store.
      • setViews

        public void setViews​(java.util.Map<java.lang.String,​StoreViewConfig> value)
        Sets the value of the 'views' field. A list of views which describe and configure a downstream view of a venice store.
        Parameters:
        value - the value to set.
      • getRepushSourceVersion

        public int getRepushSourceVersion()
        Gets the value of the 'repushSourceVersion' field.
        Returns:
        For store version created from repush, indicates the source store version its created from.
      • setRepushSourceVersion

        public void setRepushSourceVersion​(int value)
        Sets the value of the 'repushSourceVersion' field. For store version created from repush, indicates the source store version its created from.
        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