Class DualReadAvroGenericStoreClient<K,​V>

  • All Implemented Interfaces:
    AvroGenericReadComputeStoreClient<K,​V>, AvroGenericStoreClient<K,​V>, java.io.Closeable, java.lang.AutoCloseable
    Direct Known Subclasses:
    DualReadAvroSpecificStoreClient

    public class DualReadAvroGenericStoreClient<K,​V>
    extends DelegatingAvroStoreClient<K,​V>
    The following class has capability to send dual read requests via Fast-client and Thin-client. 1. If both of them succeed, return the faster one. 2. If one of them fails, return the succeeded one. 3. If both of them fail, throw exception. Currently, this implementation only supports dual-read for single-get and batch-get requests. Compute requests have not been implemented for two reasons: 1. We prefer to do a gradual ramp of the feature as dual reads can lead to extra load on the storage nodes 2. The complexity of implementing dual reads for compute is higher and needs extra work to convert a StreamingCallback into a Future.