Class RequestBasedMetadata

  • All Implemented Interfaces:
    StoreMetadata, SchemaReader, java.io.Closeable, java.lang.AutoCloseable

    public class RequestBasedMetadata
    extends AbstractStoreMetadata
    Store metadata class that uses the server's endpoint to fetch metadata and keep the local cache up to date.
    • Field Detail

      • DEFAULT_REFRESH_INTERVAL_IN_SECONDS

        public static final long DEFAULT_REFRESH_INTERVAL_IN_SECONDS
        See Also:
        Constant Field Values
      • DEFAULT_CONN_WARMUP_TIMEOUT_IN_SECONDS_DEFAULT

        public static final long DEFAULT_CONN_WARMUP_TIMEOUT_IN_SECONDS_DEFAULT
        See Also:
        Constant Field Values
    • Method Detail

      • getClusterName

        public java.lang.String getClusterName()
      • getCurrentStoreVersion

        public int getCurrentStoreVersion()
      • getPartitionId

        public int getPartitionId​(int version,
                                  java.nio.ByteBuffer key)
      • getReplicas

        public java.util.List<java.lang.String> getReplicas​(int version,
                                                            int partitionId)
      • start

        public void start()
      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Overrides:
        close in class AbstractStoreMetadata
        Throws:
        java.io.IOException
      • 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

        public java.lang.Integer 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)
      • isReady

        public boolean isReady()
      • setD2ServiceDiscovery

        public void setD2ServiceDiscovery​(D2ServiceDiscovery d2ServiceDiscovery)
        Used for test only
        Parameters:
        d2ServiceDiscovery -
      • setScheduler

        public void setScheduler​(java.util.concurrent.ScheduledExecutorService scheduler)
      • getScheduler

        public java.util.concurrent.ScheduledExecutorService getScheduler()
      • setIsReadyLatch

        public void setIsReadyLatch​(java.util.concurrent.CountDownLatch isReadyLatch)
      • getIsReadyLatch

        public java.util.concurrent.CountDownLatch getIsReadyLatch()
      • setRefreshIntervalInSeconds

        public void setRefreshIntervalInSeconds​(long refreshIntervalInSeconds)
      • getRefreshIntervalInSeconds

        public long getRefreshIntervalInSeconds()
      • getWarmUpInstancesFutures

        public java.util.Map<java.lang.String,​java.util.concurrent.CompletableFuture> getWarmUpInstancesFutures()
      • setWarmUpInstancesFutures

        public void setWarmUpInstancesFutures​(java.util.Map<java.lang.String,​java.util.concurrent.CompletableFuture> warmUpInstancesFutures)