Class RequestBasedMetadata
java.lang.Object
com.linkedin.venice.fastclient.meta.AbstractStoreMetadata
com.linkedin.venice.fastclient.meta.RequestBasedMetadata
- All Implemented Interfaces:
StoreMetadata
,SchemaReader
,Closeable
,AutoCloseable
Store metadata class that uses the server's endpoint to fetch metadata and keep the local cache up to date.
-
Field Summary
Modifier and TypeFieldDescriptionstatic final long
static final long
Fields inherited from class com.linkedin.venice.fastclient.meta.AbstractStoreMetadata
routingStrategy, storeName
-
Constructor Summary
ConstructorDescriptionRequestBasedMetadata
(ClientConfig clientConfig, D2TransportClient d2TransportClient) -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
int
getCompressor
(CompressionStrategy compressionStrategy, int version) int
org.apache.avro.Schema
org.apache.avro.Schema
Get the latest value schema id.int
getPartitionId
(int version, ByteBuffer key) long
getReplicas
(int version, int partitionId) org.apache.avro.Schema
getUpdateSchema
(int valueSchemaId) org.apache.avro.Schema
getValueSchema
(int id) int
getValueSchemaId
(org.apache.avro.Schema schema) Return the schema ID of any schema that has the same parsing canonical form as the schema provided.boolean
isReady()
void
setD2ServiceDiscovery
(D2ServiceDiscovery d2ServiceDiscovery) Used for test onlyvoid
setIsReadyLatch
(CountDownLatch isReadyLatch) void
setRefreshIntervalInSeconds
(long refreshIntervalInSeconds) void
setScheduler
(ScheduledExecutorService scheduler) void
setWarmUpInstancesFutures
(Map<String, CompletableFuture> warmUpInstancesFutures) void
start()
Methods inherited from class com.linkedin.venice.fastclient.meta.AbstractStoreMetadata
getCompressor, getInstanceHealthMonitor, getPartitionId, getReplicas, getStoreName, setRoutingStrategy, setRoutingStrategy, trackHealthBasedOnRequestToInstance
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.linkedin.venice.fastclient.meta.StoreMetadata
getReplicas
-
Field Details
-
DEFAULT_REFRESH_INTERVAL_IN_SECONDS
public static final long DEFAULT_REFRESH_INTERVAL_IN_SECONDS- See Also:
-
DEFAULT_CONN_WARMUP_TIMEOUT_IN_SECONDS_DEFAULT
public static final long DEFAULT_CONN_WARMUP_TIMEOUT_IN_SECONDS_DEFAULT- See Also:
-
-
Constructor Details
-
RequestBasedMetadata
-
-
Method Details
-
getClusterName
-
getCurrentStoreVersion
public int getCurrentStoreVersion() -
getPartitionId
-
getReplicas
-
start
public void start() -
close
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Overrides:
close
in classAbstractStoreMetadata
- Throws:
IOException
-
getCompressor
-
getKeySchema
public org.apache.avro.Schema getKeySchema() -
getValueSchema
public org.apache.avro.Schema getValueSchema(int id) -
getValueSchemaId
public int getValueSchemaId(org.apache.avro.Schema schema) Description copied from interface:SchemaReader
Return the schema ID of any schema that has the same parsing canonical form as the schema provided.- Parameters:
schema
- The schema for which the schema ID is needed- Returns:
- The ID of the schema that has the same parsing canonical form as the schema provided
-
getLatestValueSchema
public org.apache.avro.Schema getLatestValueSchema() -
getLatestValueSchemaId
Description copied from interface:SchemaReader
Get the latest value schema id. This may be different from the value schema with the largest id if the superset schema is not the value schema with the largest id -
getUpdateSchema
public org.apache.avro.Schema getUpdateSchema(int valueSchemaId) -
getLatestUpdateSchema
-
isReady
public boolean isReady() -
getBatchGetLimit
public int getBatchGetLimit()- Specified by:
getBatchGetLimit
in interfaceStoreMetadata
- Overrides:
getBatchGetLimit
in classAbstractStoreMetadata
-
setD2ServiceDiscovery
Used for test only- Parameters:
d2ServiceDiscovery
-
-
setScheduler
-
getScheduler
-
setIsReadyLatch
-
getIsReadyLatch
-
setRefreshIntervalInSeconds
public void setRefreshIntervalInSeconds(long refreshIntervalInSeconds) -
getRefreshIntervalInSeconds
public long getRefreshIntervalInSeconds() -
getWarmUpInstancesFutures
-
setWarmUpInstancesFutures
-