Class StoreProperties

  • 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 StoreProperties
    extends org.apache.avro.specific.SpecificRecordBase
    implements org.apache.avro.specific.SpecificRecord
    This type contains all the store configs and the corresponding versions
    See Also:
    Serialized Form
    • Field Detail

      • SCHEMA$

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

        public java.lang.CharSequence name
        Store name.
      • owner

        public java.lang.CharSequence owner
        Owner of this store.
      • createdTime

        public long createdTime
        Timestamp when this store was created.
      • currentVersion

        public int currentVersion
        The number of version which is used currently.
      • partitionCount

        public int partitionCount
        Default partition count for all of versions in this store. Once first version become online, the number will be assigned.
      • lowWatermark

        public long lowWatermark
        EOIP control message timestamp of the most recent incremental push that has been marked successful
      • enableWrites

        public boolean enableWrites
        If a store is disabled from writing, new version can not be created for it.
      • enableReads

        public boolean enableReads
        If a store is disabled from being read, none of versions under this store could serve read requests.
      • storageQuotaInByte

        public long storageQuotaInByte
        Maximum capacity a store version is able to have, and default is 20GB
      • persistenceType

        public int persistenceType
        Type of persistence storage engine, and default is 'ROCKS_DB'
      • routingStrategy

        public int routingStrategy
        How to route the key to partition, and default is 'CONSISTENT_HASH'
      • readStrategy

        public int readStrategy
        How to read data from multiple replications, and default is 'ANY_OF_ONLINE'
      • offlinePushStrategy

        public int offlinePushStrategy
        When doing off-line push, how to decide the data is ready to serve, and default is 'WAIT_N_MINUS_ONE_REPLCIA_PER_PARTITION'
      • largestUsedVersionNumber

        public int largestUsedVersionNumber
        The largest version number ever used before for this store.
      • readQuotaInCU

        public long readQuotaInCU
        Quota for read request hit this store. Measurement is capacity unit.
      • hybridConfig

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

        public java.util.Map<java.lang.CharSequence,​StoreViewConfig> views
        A map of views which describe and configure a downstream view of a venice store. Keys in this map are for convenience of managing configs.
      • accessControlled

        public boolean accessControlled
        Store-level ACL switch. When disabled, Venice Router should accept every request.
      • compressionStrategy

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

        public boolean clientDecompressionEnabled
        le/Disable client-side record decompression (default: true)
      • chunkingEnabled

        public boolean chunkingEnabled
        Whether current store supports large value (typically more than 1MB). By default, the chunking feature is disabled.
      • rmdChunkingEnabled

        public boolean rmdChunkingEnabled
        Whether current store supports large replication metadata (typically more than 1MB). By default, the chunking feature is disabled.
      • batchGetLimit

        public int batchGetLimit
        Batch get key number limit, and Venice will use cluster-level config if it is not positive.
      • numVersionsToPreserve

        public int numVersionsToPreserve
        How many versions this store preserve at most. By default it's 0 means we use the cluster level config to determine how many version is preserved.
      • incrementalPushEnabled

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

        public boolean migrating
        Whether or not the store is in the process of migration.
      • writeComputationEnabled

        public boolean writeComputationEnabled
        Whether or not write-path computation feature is enabled for this store.
      • readComputationEnabled

        public boolean readComputationEnabled
        Whether read-path computation is enabled for this store.
      • bootstrapToOnlineTimeoutInHours

        public int bootstrapToOnlineTimeoutInHours
        Maximum number of hours allowed for the store to transition from bootstrap to online state.
      • leaderFollowerModelEnabled

        public boolean leaderFollowerModelEnabled
        Whether or not to use leader follower state transition model for upcoming version.
      • nativeReplicationEnabled

        public boolean nativeReplicationEnabled
        Whether or not native should be enabled for this store. Will only successfully apply if leaderFollowerModelEnabled is also true either in this update or a previous version of the store.
      • replicationMetadataVersionID

        public int replicationMetadataVersionID
        RMD (Replication metadata) version ID on the store-level. Default -1 means NOT_SET and the cluster-level RMD version ID should be used for stores.
      • pushStreamSourceAddress

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

        public int backupStrategy
        Strategies to store backup versions, and default is 'DELETE_ON_NEW_PUSH_START'
      • schemaAutoRegisteFromPushJobEnabled

        public boolean schemaAutoRegisteFromPushJobEnabled
        Whether or not value schema auto registration enabled from push job for this store.
      • latestSuperSetValueSchemaId

        public int latestSuperSetValueSchemaId
        For read compute stores with auto super-set schema enabled, stores the latest super-set value schema ID.
      • hybridStoreDiskQuotaEnabled

        public boolean hybridStoreDiskQuotaEnabled
        Whether or not storage disk quota is enabled for a hybrid store. This store config cannot be enabled until the routers and servers in the corresponding cluster are upgraded to the right version: 0.2.249 or above for routers and servers.
      • storeMetadataSystemStoreEnabled

        public boolean storeMetadataSystemStoreEnabled
        Whether or not the store metadata system store is enabled for this store.
      • etlConfig

        public StoreETLConfig etlConfig
        Properties related to ETL Store behavior.
      • incrementalPushPolicy

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

        public long latestVersionPromoteToCurrentTimestamp
        This is used to track the time when a new version is promoted to current version. For now, it is mostly to decide whether a backup version can be removed or not based on retention. For the existing store before this code change, it will be set to be current timestamp.
      • replicationFactor

        public int replicationFactor
        The number of replica each store version will keep.
      • migrationDuplicateStore

        public boolean migrationDuplicateStore
        Whether or not the store is a duplicate store in the process of migration.
      • 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.
      • daVinciPushStatusStoreEnabled

        public boolean daVinciPushStatusStoreEnabled
        Whether or not davinci push status store is enabled.
      • storeMetaSystemStoreEnabled

        public boolean storeMetaSystemStoreEnabled
        Whether or not the store meta system store is enabled for this store.
      • 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
      • applyTargetVersionFilterForIncPush

        public boolean applyTargetVersionFilterForIncPush
        Whether or not the target version field in Kafka messages will be used in increment push to RT policy
      • minCompactionLagSeconds

        public long minCompactionLagSeconds
        Store level min compaction lag config and if not specified, it will use the global config for version topics
      • maxCompactionLagSeconds

        public long maxCompactionLagSeconds
        Store level max compaction lag config and if not specified, 'max.compaction.lag.ms' config won't be setup in the corresponding version topics
      • maxRecordSizeBytes

        public int maxRecordSizeBytes
        Store-level max record size in bytes. If not set (-1) and chunking is enabled, a default value of 10MB will be enforced.
      • unusedSchemaDeletionEnabled

        public boolean unusedSchemaDeletionEnabled
        Store level config to indicate whether unused schema deletion is enabled or not.
      • versions

        public java.util.List<StoreVersion> versions
        List of non-retired versions. It's currently sorted and there is code run under the assumption that the last element in the list is the largest. Check out {VeniceHelixAdmin#getIncrementalPushVersion}, and please make it in mind if you want to change this logic
      • systemStores

        public java.util.Map<java.lang.CharSequence,​SystemStoreProperties> systemStores
        This field is used to maintain a mapping between each type of system store and the corresponding distinct properties
      • storageNodeReadQuotaEnabled

        public boolean storageNodeReadQuotaEnabled
        Controls the storage node read quota enforcement for the given Venice store
      • blobTransferEnabled

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

      • StoreProperties

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

        public StoreProperties​(java.lang.CharSequence name,
                               java.lang.CharSequence owner,
                               java.lang.Long createdTime,
                               java.lang.Integer currentVersion,
                               java.lang.Integer partitionCount,
                               java.lang.Long lowWatermark,
                               java.lang.Boolean enableWrites,
                               java.lang.Boolean enableReads,
                               java.lang.Long storageQuotaInByte,
                               java.lang.Integer persistenceType,
                               java.lang.Integer routingStrategy,
                               java.lang.Integer readStrategy,
                               java.lang.Integer offlinePushStrategy,
                               java.lang.Integer largestUsedVersionNumber,
                               java.lang.Long readQuotaInCU,
                               StoreHybridConfig hybridConfig,
                               java.util.Map<java.lang.CharSequence,​StoreViewConfig> views,
                               java.lang.Boolean accessControlled,
                               java.lang.Integer compressionStrategy,
                               java.lang.Boolean clientDecompressionEnabled,
                               java.lang.Boolean chunkingEnabled,
                               java.lang.Boolean rmdChunkingEnabled,
                               java.lang.Integer batchGetLimit,
                               java.lang.Integer numVersionsToPreserve,
                               java.lang.Boolean incrementalPushEnabled,
                               java.lang.Boolean migrating,
                               java.lang.Boolean writeComputationEnabled,
                               java.lang.Boolean readComputationEnabled,
                               java.lang.Integer bootstrapToOnlineTimeoutInHours,
                               java.lang.Boolean leaderFollowerModelEnabled,
                               java.lang.Boolean nativeReplicationEnabled,
                               java.lang.Integer replicationMetadataVersionID,
                               java.lang.CharSequence pushStreamSourceAddress,
                               java.lang.Integer backupStrategy,
                               java.lang.Boolean schemaAutoRegisteFromPushJobEnabled,
                               java.lang.Integer latestSuperSetValueSchemaId,
                               java.lang.Boolean hybridStoreDiskQuotaEnabled,
                               java.lang.Boolean storeMetadataSystemStoreEnabled,
                               StoreETLConfig etlConfig,
                               StorePartitionerConfig partitionerConfig,
                               java.lang.Integer incrementalPushPolicy,
                               java.lang.Long latestVersionPromoteToCurrentTimestamp,
                               java.lang.Long backupVersionRetentionMs,
                               java.lang.Integer replicationFactor,
                               java.lang.Boolean migrationDuplicateStore,
                               java.lang.CharSequence nativeReplicationSourceFabric,
                               java.lang.Boolean daVinciPushStatusStoreEnabled,
                               java.lang.Boolean storeMetaSystemStoreEnabled,
                               java.lang.Boolean activeActiveReplicationEnabled,
                               java.lang.Boolean applyTargetVersionFilterForIncPush,
                               java.lang.Long minCompactionLagSeconds,
                               java.lang.Long maxCompactionLagSeconds,
                               java.lang.Integer maxRecordSizeBytes,
                               java.lang.Boolean unusedSchemaDeletionEnabled,
                               java.util.List<StoreVersion> versions,
                               java.util.Map<java.lang.CharSequence,​SystemStoreProperties> systemStores,
                               java.lang.Boolean storageNodeReadQuotaEnabled,
                               java.lang.Boolean blobTransferEnabled)
        All-args constructor.
        Parameters:
        name - Store name.
        owner - Owner of this store.
        createdTime - Timestamp when this store was created.
        currentVersion - The number of version which is used currently.
        partitionCount - Default partition count for all of versions in this store. Once first version become online, the number will be assigned.
        lowWatermark - EOIP control message timestamp of the most recent incremental push that has been marked successful
        enableWrites - If a store is disabled from writing, new version can not be created for it.
        enableReads - If a store is disabled from being read, none of versions under this store could serve read requests.
        storageQuotaInByte - Maximum capacity a store version is able to have, and default is 20GB
        persistenceType - Type of persistence storage engine, and default is 'ROCKS_DB'
        routingStrategy - How to route the key to partition, and default is 'CONSISTENT_HASH'
        readStrategy - How to read data from multiple replications, and default is 'ANY_OF_ONLINE'
        offlinePushStrategy - When doing off-line push, how to decide the data is ready to serve, and default is 'WAIT_N_MINUS_ONE_REPLCIA_PER_PARTITION'
        largestUsedVersionNumber - The largest version number ever used before for this store.
        readQuotaInCU - Quota for read request hit this store. Measurement is capacity unit.
        hybridConfig - Properties related to Hybrid Store behavior. If absent (null), then the store is not hybrid.
        views - A map of views which describe and configure a downstream view of a venice store. Keys in this map are for convenience of managing configs.
        accessControlled - Store-level ACL switch. When disabled, Venice Router should accept every request.
        compressionStrategy - Strategy used to compress/decompress Record's value, and default is 'NO_OP'
        clientDecompressionEnabled - le/Disable client-side record decompression (default: true)
        chunkingEnabled - Whether current store supports large value (typically more than 1MB). By default, the chunking feature is disabled.
        rmdChunkingEnabled - Whether current store supports large replication metadata (typically more than 1MB). By default, the chunking feature is disabled.
        batchGetLimit - Batch get key number limit, and Venice will use cluster-level config if it is not positive.
        numVersionsToPreserve - How many versions this store preserve at most. By default it's 0 means we use the cluster level config to determine how many version is preserved.
        incrementalPushEnabled - Flag to see if the store supports incremental push or not
        migrating - Whether or not the store is in the process of migration.
        writeComputationEnabled - Whether or not write-path computation feature is enabled for this store.
        readComputationEnabled - Whether read-path computation is enabled for this store.
        bootstrapToOnlineTimeoutInHours - Maximum number of hours allowed for the store to transition from bootstrap to online state.
        leaderFollowerModelEnabled - Whether or not to use leader follower state transition model for upcoming version.
        nativeReplicationEnabled - Whether or not native should be enabled for this store. Will only successfully apply if leaderFollowerModelEnabled is also true either in this update or a previous version of the store.
        replicationMetadataVersionID - RMD (Replication metadata) version ID on the store-level. Default -1 means NOT_SET and the cluster-level RMD version ID should be used for stores.
        pushStreamSourceAddress - Address to the kafka broker which holds the source of truth topic for this store version.
        backupStrategy - Strategies to store backup versions, and default is 'DELETE_ON_NEW_PUSH_START'
        schemaAutoRegisteFromPushJobEnabled - Whether or not value schema auto registration enabled from push job for this store.
        latestSuperSetValueSchemaId - For read compute stores with auto super-set schema enabled, stores the latest super-set value schema ID.
        hybridStoreDiskQuotaEnabled - Whether or not storage disk quota is enabled for a hybrid store. This store config cannot be enabled until the routers and servers in the corresponding cluster are upgraded to the right version: 0.2.249 or above for routers and servers.
        storeMetadataSystemStoreEnabled - Whether or not the store metadata system store is enabled for this store.
        etlConfig - Properties related to ETL Store behavior.
        partitionerConfig - The new value for partitionerConfig
        incrementalPushPolicy - Incremental Push Policy to reconcile with real time pushes, and default is 'PUSH_TO_VERSION_TOPIC'
        latestVersionPromoteToCurrentTimestamp - This is used to track the time when a new version is promoted to current version. For now, it is mostly to decide whether a backup version can be removed or not based on retention. For the existing store before this code change, it will be set to be current timestamp.
        backupVersionRetentionMs - Backup retention time, and if it is not set (-1), Venice Controller will use the default configured retention. ConfigKeys.CONTROLLER_BACKUP_VERSION_DEFAULT_RETENTION_MS.
        replicationFactor - The number of replica each store version will keep.
        migrationDuplicateStore - Whether or not the store is a duplicate store in the process of migration.
        nativeReplicationSourceFabric - The source fabric name to be uses in native replication. Remote consumption will happen from kafka in this fabric.
        daVinciPushStatusStoreEnabled - Whether or not davinci push status store is enabled.
        storeMetaSystemStoreEnabled - Whether or not the store meta system store is enabled for this store.
        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
        applyTargetVersionFilterForIncPush - Whether or not the target version field in Kafka messages will be used in increment push to RT policy
        minCompactionLagSeconds - Store level min compaction lag config and if not specified, it will use the global config for version topics
        maxCompactionLagSeconds - Store level max compaction lag config and if not specified, 'max.compaction.lag.ms' config won't be setup in the corresponding version topics
        maxRecordSizeBytes - Store-level max record size in bytes. If not set (-1) and chunking is enabled, a default value of 10MB will be enforced.
        unusedSchemaDeletionEnabled - Store level config to indicate whether unused schema deletion is enabled or not.
        versions - List of non-retired versions. It's currently sorted and there is code run under the assumption that the last element in the list is the largest. Check out {VeniceHelixAdmin#getIncrementalPushVersion}, and please make it in mind if you want to change this logic
        systemStores - This field is used to maintain a mapping between each type of system store and the corresponding distinct properties
        storageNodeReadQuotaEnabled - Controls the storage node read quota enforcement for the given Venice store
        blobTransferEnabled - Flag to indicate if the blob transfer is allowed or not
    • 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
      • getName

        public java.lang.CharSequence getName()
        Gets the value of the 'name' field.
        Returns:
        Store name.
      • setName

        public void setName​(java.lang.CharSequence value)
        Sets the value of the 'name' field. Store name.
        Parameters:
        value - the value to set.
      • getOwner

        public java.lang.CharSequence getOwner()
        Gets the value of the 'owner' field.
        Returns:
        Owner of this store.
      • setOwner

        public void setOwner​(java.lang.CharSequence value)
        Sets the value of the 'owner' field. Owner of this store.
        Parameters:
        value - the value to set.
      • getCreatedTime

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

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

        public int getCurrentVersion()
        Gets the value of the 'currentVersion' field.
        Returns:
        The number of version which is used currently.
      • setCurrentVersion

        public void setCurrentVersion​(int value)
        Sets the value of the 'currentVersion' field. The number of version which is used currently.
        Parameters:
        value - the value to set.
      • getPartitionCount

        public int getPartitionCount()
        Gets the value of the 'partitionCount' field.
        Returns:
        Default partition count for all of versions in this store. Once first version become online, the number will be assigned.
      • setPartitionCount

        public void setPartitionCount​(int value)
        Sets the value of the 'partitionCount' field. Default partition count for all of versions in this store. Once first version become online, the number will be assigned.
        Parameters:
        value - the value to set.
      • getLowWatermark

        public long getLowWatermark()
        Gets the value of the 'lowWatermark' field.
        Returns:
        EOIP control message timestamp of the most recent incremental push that has been marked successful
      • setLowWatermark

        public void setLowWatermark​(long value)
        Sets the value of the 'lowWatermark' field. EOIP control message timestamp of the most recent incremental push that has been marked successful
        Parameters:
        value - the value to set.
      • getEnableWrites

        public boolean getEnableWrites()
        Gets the value of the 'enableWrites' field.
        Returns:
        If a store is disabled from writing, new version can not be created for it.
      • setEnableWrites

        public void setEnableWrites​(boolean value)
        Sets the value of the 'enableWrites' field. If a store is disabled from writing, new version can not be created for it.
        Parameters:
        value - the value to set.
      • getEnableReads

        public boolean getEnableReads()
        Gets the value of the 'enableReads' field.
        Returns:
        If a store is disabled from being read, none of versions under this store could serve read requests.
      • setEnableReads

        public void setEnableReads​(boolean value)
        Sets the value of the 'enableReads' field. If a store is disabled from being read, none of versions under this store could serve read requests.
        Parameters:
        value - the value to set.
      • getStorageQuotaInByte

        public long getStorageQuotaInByte()
        Gets the value of the 'storageQuotaInByte' field.
        Returns:
        Maximum capacity a store version is able to have, and default is 20GB
      • setStorageQuotaInByte

        public void setStorageQuotaInByte​(long value)
        Sets the value of the 'storageQuotaInByte' field. Maximum capacity a store version is able to have, and default is 20GB
        Parameters:
        value - the value to set.
      • getPersistenceType

        public int getPersistenceType()
        Gets the value of the 'persistenceType' field.
        Returns:
        Type of persistence storage engine, and default is 'ROCKS_DB'
      • setPersistenceType

        public void setPersistenceType​(int value)
        Sets the value of the 'persistenceType' field. Type of persistence storage engine, and default is 'ROCKS_DB'
        Parameters:
        value - the value to set.
      • getRoutingStrategy

        public int getRoutingStrategy()
        Gets the value of the 'routingStrategy' field.
        Returns:
        How to route the key to partition, and default is 'CONSISTENT_HASH'
      • setRoutingStrategy

        public void setRoutingStrategy​(int value)
        Sets the value of the 'routingStrategy' field. How to route the key to partition, and default is 'CONSISTENT_HASH'
        Parameters:
        value - the value to set.
      • getReadStrategy

        public int getReadStrategy()
        Gets the value of the 'readStrategy' field.
        Returns:
        How to read data from multiple replications, and default is 'ANY_OF_ONLINE'
      • setReadStrategy

        public void setReadStrategy​(int value)
        Sets the value of the 'readStrategy' field. How to read data from multiple replications, and default is 'ANY_OF_ONLINE'
        Parameters:
        value - the value to set.
      • getOfflinePushStrategy

        public int getOfflinePushStrategy()
        Gets the value of the 'offlinePushStrategy' field.
        Returns:
        When doing off-line push, how to decide the data is ready to serve, and default is 'WAIT_N_MINUS_ONE_REPLCIA_PER_PARTITION'
      • setOfflinePushStrategy

        public void setOfflinePushStrategy​(int value)
        Sets the value of the 'offlinePushStrategy' field. When doing off-line push, how to decide the data is ready to serve, and default is 'WAIT_N_MINUS_ONE_REPLCIA_PER_PARTITION'
        Parameters:
        value - the value to set.
      • getLargestUsedVersionNumber

        public int getLargestUsedVersionNumber()
        Gets the value of the 'largestUsedVersionNumber' field.
        Returns:
        The largest version number ever used before for this store.
      • setLargestUsedVersionNumber

        public void setLargestUsedVersionNumber​(int value)
        Sets the value of the 'largestUsedVersionNumber' field. The largest version number ever used before for this store.
        Parameters:
        value - the value to set.
      • getReadQuotaInCU

        public long getReadQuotaInCU()
        Gets the value of the 'readQuotaInCU' field.
        Returns:
        Quota for read request hit this store. Measurement is capacity unit.
      • setReadQuotaInCU

        public void setReadQuotaInCU​(long value)
        Sets the value of the 'readQuotaInCU' field. Quota for read request hit this store. Measurement is capacity unit.
        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.
      • getViews

        public java.util.Map<java.lang.CharSequence,​StoreViewConfig> getViews()
        Gets the value of the 'views' field.
        Returns:
        A map of views which describe and configure a downstream view of a venice store. Keys in this map are for convenience of managing configs.
      • setViews

        public void setViews​(java.util.Map<java.lang.CharSequence,​StoreViewConfig> value)
        Sets the value of the 'views' field. A map of views which describe and configure a downstream view of a venice store. Keys in this map are for convenience of managing configs.
        Parameters:
        value - the value to set.
      • getAccessControlled

        public boolean getAccessControlled()
        Gets the value of the 'accessControlled' field.
        Returns:
        Store-level ACL switch. When disabled, Venice Router should accept every request.
      • setAccessControlled

        public void setAccessControlled​(boolean value)
        Sets the value of the 'accessControlled' field. Store-level ACL switch. When disabled, Venice Router should accept every request.
        Parameters:
        value - the value to set.
      • getCompressionStrategy

        public int getCompressionStrategy()
        Gets the value of the 'compressionStrategy' field.
        Returns:
        Strategy 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. Strategy used to compress/decompress Record's value, and default is 'NO_OP'
        Parameters:
        value - the value to set.
      • getClientDecompressionEnabled

        public boolean getClientDecompressionEnabled()
        Gets the value of the 'clientDecompressionEnabled' field.
        Returns:
        le/Disable client-side record decompression (default: true)
      • setClientDecompressionEnabled

        public void setClientDecompressionEnabled​(boolean value)
        Sets the value of the 'clientDecompressionEnabled' field. le/Disable client-side record decompression (default: true)
        Parameters:
        value - the value to set.
      • getChunkingEnabled

        public boolean getChunkingEnabled()
        Gets the value of the 'chunkingEnabled' field.
        Returns:
        Whether current store supports large value (typically more than 1MB). By default, the chunking feature is disabled.
      • setChunkingEnabled

        public void setChunkingEnabled​(boolean value)
        Sets the value of the 'chunkingEnabled' field. Whether current store supports large value (typically more than 1MB). By default, the chunking feature is disabled.
        Parameters:
        value - the value to set.
      • getRmdChunkingEnabled

        public boolean getRmdChunkingEnabled()
        Gets the value of the 'rmdChunkingEnabled' field.
        Returns:
        Whether current store supports large replication metadata (typically more than 1MB). By default, the chunking feature is disabled.
      • setRmdChunkingEnabled

        public void setRmdChunkingEnabled​(boolean value)
        Sets the value of the 'rmdChunkingEnabled' field. Whether current store supports large replication metadata (typically more than 1MB). By default, the chunking feature is disabled.
        Parameters:
        value - the value to set.
      • getBatchGetLimit

        public int getBatchGetLimit()
        Gets the value of the 'batchGetLimit' field.
        Returns:
        Batch get key number limit, and Venice will use cluster-level config if it is not positive.
      • setBatchGetLimit

        public void setBatchGetLimit​(int value)
        Sets the value of the 'batchGetLimit' field. Batch get key number limit, and Venice will use cluster-level config if it is not positive.
        Parameters:
        value - the value to set.
      • getNumVersionsToPreserve

        public int getNumVersionsToPreserve()
        Gets the value of the 'numVersionsToPreserve' field.
        Returns:
        How many versions this store preserve at most. By default it's 0 means we use the cluster level config to determine how many version is preserved.
      • setNumVersionsToPreserve

        public void setNumVersionsToPreserve​(int value)
        Sets the value of the 'numVersionsToPreserve' field. How many versions this store preserve at most. By default it's 0 means we use the cluster level config to determine how many version is preserved.
        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.
      • getMigrating

        public boolean getMigrating()
        Gets the value of the 'migrating' field.
        Returns:
        Whether or not the store is in the process of migration.
      • setMigrating

        public void setMigrating​(boolean value)
        Sets the value of the 'migrating' field. Whether or not the store is in the process of migration.
        Parameters:
        value - the value to set.
      • getWriteComputationEnabled

        public boolean getWriteComputationEnabled()
        Gets the value of the 'writeComputationEnabled' field.
        Returns:
        Whether or not write-path computation feature is enabled for this store.
      • setWriteComputationEnabled

        public void setWriteComputationEnabled​(boolean value)
        Sets the value of the 'writeComputationEnabled' field. Whether or not write-path computation feature is enabled for this store.
        Parameters:
        value - the value to set.
      • getReadComputationEnabled

        public boolean getReadComputationEnabled()
        Gets the value of the 'readComputationEnabled' field.
        Returns:
        Whether read-path computation is enabled for this store.
      • setReadComputationEnabled

        public void setReadComputationEnabled​(boolean value)
        Sets the value of the 'readComputationEnabled' field. Whether read-path computation is enabled for this store.
        Parameters:
        value - the value to set.
      • getBootstrapToOnlineTimeoutInHours

        public int getBootstrapToOnlineTimeoutInHours()
        Gets the value of the 'bootstrapToOnlineTimeoutInHours' field.
        Returns:
        Maximum number of hours allowed for the store to transition from bootstrap to online state.
      • setBootstrapToOnlineTimeoutInHours

        public void setBootstrapToOnlineTimeoutInHours​(int value)
        Sets the value of the 'bootstrapToOnlineTimeoutInHours' field. Maximum number of hours allowed for the store to transition from bootstrap to online state.
        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 model for upcoming version.
      • setLeaderFollowerModelEnabled

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

        public boolean getNativeReplicationEnabled()
        Gets the value of the 'nativeReplicationEnabled' field.
        Returns:
        Whether or not native should be enabled for this store. Will only successfully apply if leaderFollowerModelEnabled is also true either in this update or a previous version of the store.
      • setNativeReplicationEnabled

        public void setNativeReplicationEnabled​(boolean value)
        Sets the value of the 'nativeReplicationEnabled' field. Whether or not native should be enabled for this store. Will only successfully apply if leaderFollowerModelEnabled is also true either in this update or a previous version of the store.
        Parameters:
        value - the value to set.
      • getReplicationMetadataVersionID

        public int getReplicationMetadataVersionID()
        Gets the value of the 'replicationMetadataVersionID' field.
        Returns:
        RMD (Replication metadata) version ID on the store-level. Default -1 means NOT_SET and the cluster-level RMD version ID should be used for stores.
      • setReplicationMetadataVersionID

        public void setReplicationMetadataVersionID​(int value)
        Sets the value of the 'replicationMetadataVersionID' field. RMD (Replication metadata) version ID on the store-level. Default -1 means NOT_SET and the cluster-level RMD version ID should be used for stores.
        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.
      • getBackupStrategy

        public int getBackupStrategy()
        Gets the value of the 'backupStrategy' field.
        Returns:
        Strategies to store backup versions, and default is 'DELETE_ON_NEW_PUSH_START'
      • setBackupStrategy

        public void setBackupStrategy​(int value)
        Sets the value of the 'backupStrategy' field. Strategies to store backup versions, and default is 'DELETE_ON_NEW_PUSH_START'
        Parameters:
        value - the value to set.
      • getSchemaAutoRegisteFromPushJobEnabled

        public boolean getSchemaAutoRegisteFromPushJobEnabled()
        Gets the value of the 'schemaAutoRegisteFromPushJobEnabled' field.
        Returns:
        Whether or not value schema auto registration enabled from push job for this store.
      • setSchemaAutoRegisteFromPushJobEnabled

        public void setSchemaAutoRegisteFromPushJobEnabled​(boolean value)
        Sets the value of the 'schemaAutoRegisteFromPushJobEnabled' field. Whether or not value schema auto registration enabled from push job for this store.
        Parameters:
        value - the value to set.
      • getLatestSuperSetValueSchemaId

        public int getLatestSuperSetValueSchemaId()
        Gets the value of the 'latestSuperSetValueSchemaId' field.
        Returns:
        For read compute stores with auto super-set schema enabled, stores the latest super-set value schema ID.
      • setLatestSuperSetValueSchemaId

        public void setLatestSuperSetValueSchemaId​(int value)
        Sets the value of the 'latestSuperSetValueSchemaId' field. For read compute stores with auto super-set schema enabled, stores the latest super-set value schema ID.
        Parameters:
        value - the value to set.
      • getHybridStoreDiskQuotaEnabled

        public boolean getHybridStoreDiskQuotaEnabled()
        Gets the value of the 'hybridStoreDiskQuotaEnabled' field.
        Returns:
        Whether or not storage disk quota is enabled for a hybrid store. This store config cannot be enabled until the routers and servers in the corresponding cluster are upgraded to the right version: 0.2.249 or above for routers and servers.
      • setHybridStoreDiskQuotaEnabled

        public void setHybridStoreDiskQuotaEnabled​(boolean value)
        Sets the value of the 'hybridStoreDiskQuotaEnabled' field. Whether or not storage disk quota is enabled for a hybrid store. This store config cannot be enabled until the routers and servers in the corresponding cluster are upgraded to the right version: 0.2.249 or above for routers and servers.
        Parameters:
        value - the value to set.
      • getStoreMetadataSystemStoreEnabled

        public boolean getStoreMetadataSystemStoreEnabled()
        Gets the value of the 'storeMetadataSystemStoreEnabled' field.
        Returns:
        Whether or not the store metadata system store is enabled for this store.
      • setStoreMetadataSystemStoreEnabled

        public void setStoreMetadataSystemStoreEnabled​(boolean value)
        Sets the value of the 'storeMetadataSystemStoreEnabled' field. Whether or not the store metadata system store is enabled for this store.
        Parameters:
        value - the value to set.
      • getEtlConfig

        public StoreETLConfig getEtlConfig()
        Gets the value of the 'etlConfig' field.
        Returns:
        Properties related to ETL Store behavior.
      • setEtlConfig

        public void setEtlConfig​(StoreETLConfig value)
        Sets the value of the 'etlConfig' field. Properties related to ETL Store behavior.
        Parameters:
        value - the value to set.
      • getPartitionerConfig

        public StorePartitionerConfig getPartitionerConfig()
        Gets the value of the 'partitionerConfig' field.
        Returns:
        The value of the 'partitionerConfig' field.
      • setPartitionerConfig

        public void setPartitionerConfig​(StorePartitionerConfig value)
        Sets the value of the 'partitionerConfig' field.
        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.
      • getLatestVersionPromoteToCurrentTimestamp

        public long getLatestVersionPromoteToCurrentTimestamp()
        Gets the value of the 'latestVersionPromoteToCurrentTimestamp' field.
        Returns:
        This is used to track the time when a new version is promoted to current version. For now, it is mostly to decide whether a backup version can be removed or not based on retention. For the existing store before this code change, it will be set to be current timestamp.
      • setLatestVersionPromoteToCurrentTimestamp

        public void setLatestVersionPromoteToCurrentTimestamp​(long value)
        Sets the value of the 'latestVersionPromoteToCurrentTimestamp' field. This is used to track the time when a new version is promoted to current version. For now, it is mostly to decide whether a backup version can be removed or not based on retention. For the existing store before this code change, it will be set to be current timestamp.
        Parameters:
        value - the value to set.
      • getBackupVersionRetentionMs

        public long getBackupVersionRetentionMs()
        Gets the value of the 'backupVersionRetentionMs' field.
        Returns:
        Backup retention time, and if it is not set (-1), Venice Controller will use the default configured retention. ConfigKeys.CONTROLLER_BACKUP_VERSION_DEFAULT_RETENTION_MS.
      • setBackupVersionRetentionMs

        public void setBackupVersionRetentionMs​(long value)
        Sets the value of the 'backupVersionRetentionMs' field. Backup retention time, and if it is not set (-1), Venice Controller will use the default configured retention. ConfigKeys.CONTROLLER_BACKUP_VERSION_DEFAULT_RETENTION_MS.
        Parameters:
        value - the value to set.
      • getReplicationFactor

        public int getReplicationFactor()
        Gets the value of the 'replicationFactor' field.
        Returns:
        The number of replica each store version will keep.
      • setReplicationFactor

        public void setReplicationFactor​(int value)
        Sets the value of the 'replicationFactor' field. The number of replica each store version will keep.
        Parameters:
        value - the value to set.
      • getMigrationDuplicateStore

        public boolean getMigrationDuplicateStore()
        Gets the value of the 'migrationDuplicateStore' field.
        Returns:
        Whether or not the store is a duplicate store in the process of migration.
      • setMigrationDuplicateStore

        public void setMigrationDuplicateStore​(boolean value)
        Sets the value of the 'migrationDuplicateStore' field. Whether or not the store is a duplicate store in the process of migration.
        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.
      • getDaVinciPushStatusStoreEnabled

        public boolean getDaVinciPushStatusStoreEnabled()
        Gets the value of the 'daVinciPushStatusStoreEnabled' field.
        Returns:
        Whether or not davinci push status store is enabled.
      • setDaVinciPushStatusStoreEnabled

        public void setDaVinciPushStatusStoreEnabled​(boolean value)
        Sets the value of the 'daVinciPushStatusStoreEnabled' field. Whether or not davinci push status store is enabled.
        Parameters:
        value - the value to set.
      • getStoreMetaSystemStoreEnabled

        public boolean getStoreMetaSystemStoreEnabled()
        Gets the value of the 'storeMetaSystemStoreEnabled' field.
        Returns:
        Whether or not the store meta system store is enabled for this store.
      • setStoreMetaSystemStoreEnabled

        public void setStoreMetaSystemStoreEnabled​(boolean value)
        Sets the value of the 'storeMetaSystemStoreEnabled' field. Whether or not the store meta system store is enabled for this store.
        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.
      • getApplyTargetVersionFilterForIncPush

        public boolean getApplyTargetVersionFilterForIncPush()
        Gets the value of the 'applyTargetVersionFilterForIncPush' field.
        Returns:
        Whether or not the target version field in Kafka messages will be used in increment push to RT policy
      • setApplyTargetVersionFilterForIncPush

        public void setApplyTargetVersionFilterForIncPush​(boolean value)
        Sets the value of the 'applyTargetVersionFilterForIncPush' field. Whether or not the target version field in Kafka messages will be used in increment push to RT policy
        Parameters:
        value - the value to set.
      • getMinCompactionLagSeconds

        public long getMinCompactionLagSeconds()
        Gets the value of the 'minCompactionLagSeconds' field.
        Returns:
        Store level min compaction lag config and if not specified, it will use the global config for version topics
      • setMinCompactionLagSeconds

        public void setMinCompactionLagSeconds​(long value)
        Sets the value of the 'minCompactionLagSeconds' field. Store level min compaction lag config and if not specified, it will use the global config for version topics
        Parameters:
        value - the value to set.
      • getMaxCompactionLagSeconds

        public long getMaxCompactionLagSeconds()
        Gets the value of the 'maxCompactionLagSeconds' field.
        Returns:
        Store level max compaction lag config and if not specified, 'max.compaction.lag.ms' config won't be setup in the corresponding version topics
      • setMaxCompactionLagSeconds

        public void setMaxCompactionLagSeconds​(long value)
        Sets the value of the 'maxCompactionLagSeconds' field. Store level max compaction lag config and if not specified, 'max.compaction.lag.ms' config won't be setup in the corresponding version topics
        Parameters:
        value - the value to set.
      • getMaxRecordSizeBytes

        public int getMaxRecordSizeBytes()
        Gets the value of the 'maxRecordSizeBytes' field.
        Returns:
        Store-level max record size in bytes. If not set (-1) and chunking is enabled, a default value of 10MB will be enforced.
      • setMaxRecordSizeBytes

        public void setMaxRecordSizeBytes​(int value)
        Sets the value of the 'maxRecordSizeBytes' field. Store-level max record size in bytes. If not set (-1) and chunking is enabled, a default value of 10MB will be enforced.
        Parameters:
        value - the value to set.
      • getUnusedSchemaDeletionEnabled

        public boolean getUnusedSchemaDeletionEnabled()
        Gets the value of the 'unusedSchemaDeletionEnabled' field.
        Returns:
        Store level config to indicate whether unused schema deletion is enabled or not.
      • setUnusedSchemaDeletionEnabled

        public void setUnusedSchemaDeletionEnabled​(boolean value)
        Sets the value of the 'unusedSchemaDeletionEnabled' field. Store level config to indicate whether unused schema deletion is enabled or not.
        Parameters:
        value - the value to set.
      • getVersions

        public java.util.List<StoreVersion> getVersions()
        Gets the value of the 'versions' field.
        Returns:
        List of non-retired versions. It's currently sorted and there is code run under the assumption that the last element in the list is the largest. Check out {VeniceHelixAdmin#getIncrementalPushVersion}, and please make it in mind if you want to change this logic
      • setVersions

        public void setVersions​(java.util.List<StoreVersion> value)
        Sets the value of the 'versions' field. List of non-retired versions. It's currently sorted and there is code run under the assumption that the last element in the list is the largest. Check out {VeniceHelixAdmin#getIncrementalPushVersion}, and please make it in mind if you want to change this logic
        Parameters:
        value - the value to set.
      • getSystemStores

        public java.util.Map<java.lang.CharSequence,​SystemStoreProperties> getSystemStores()
        Gets the value of the 'systemStores' field.
        Returns:
        This field is used to maintain a mapping between each type of system store and the corresponding distinct properties
      • setSystemStores

        public void setSystemStores​(java.util.Map<java.lang.CharSequence,​SystemStoreProperties> value)
        Sets the value of the 'systemStores' field. This field is used to maintain a mapping between each type of system store and the corresponding distinct properties
        Parameters:
        value - the value to set.
      • getStorageNodeReadQuotaEnabled

        public boolean getStorageNodeReadQuotaEnabled()
        Gets the value of the 'storageNodeReadQuotaEnabled' field.
        Returns:
        Controls the storage node read quota enforcement for the given Venice store
      • setStorageNodeReadQuotaEnabled

        public void setStorageNodeReadQuotaEnabled​(boolean value)
        Sets the value of the 'storageNodeReadQuotaEnabled' field. Controls the storage node read quota enforcement for the given Venice store
        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.
      • 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