Class AbstractVeniceProducer<K,​V>

    • Constructor Detail

      • AbstractVeniceProducer

        public AbstractVeniceProducer()
    • Method Detail

      • configure

        protected void configure​(java.lang.String storeName,
                                 VeniceProperties producerConfigs,
                                 io.tehuti.metrics.MetricsRepository metricsRepository,
                                 SchemaReader schemaReader,
                                 SchemaReader kmeSchemaReader)
      • constructVeniceWriter

        protected VeniceWriter<byte[],​byte[],​byte[]> constructVeniceWriter​(java.util.Properties properties,
                                                                                       VeniceWriterOptions writerOptions)
      • getSerializer

        protected RecordSerializer<java.lang.Object> getSerializer​(org.apache.avro.Schema schema)
      • asyncPut

        public java.util.concurrent.CompletableFuture<DurableWrite> asyncPut​(K key,
                                                                             V value)
        Description copied from interface: VeniceProducer
        A write operation where a full value is written to replace the existing value.
        Specified by:
        asyncPut in interface VeniceProducer<K,​V>
        Parameters:
        key - Key of the record that needs to be updated
        value - The full value that needs to be written
        Returns:
        A CompletableFuture that completes when the write operation is durable. It does not imply that the data is available to readers.
      • asyncPut

        public java.util.concurrent.CompletableFuture<DurableWrite> asyncPut​(long logicalTime,
                                                                             K key,
                                                                             V value)
        Description copied from interface: VeniceProducer
        A write operation where a full value is written to replace the existing value. It offers the writers to specify a logical time. This value is used to specify the ordering of operations and perform conflict resolution in Active/Active replication.
        Specified by:
        asyncPut in interface VeniceProducer<K,​V>
        Parameters:
        logicalTime - The value used during conflict resolution in Active/Active replication
        key - Key of the record that needs to be updated
        value - The full value that needs to be written
        Returns:
        A CompletableFuture that completes when the write operation is durable. It does not imply that the data is available to readers.
      • asyncDelete

        public java.util.concurrent.CompletableFuture<DurableWrite> asyncDelete​(K key)
        Description copied from interface: VeniceProducer
        A write operation to delete the record for a key.
        Specified by:
        asyncDelete in interface VeniceProducer<K,​V>
        Parameters:
        key - The key associated with the record that should be deleted
        Returns:
        A CompletableFuture that completes when the write operation is durable. It does not imply that the data is available to readers.
      • asyncDelete

        public java.util.concurrent.CompletableFuture<DurableWrite> asyncDelete​(long logicalTime,
                                                                                K key)
        Description copied from interface: VeniceProducer
        A write operation to delete the record for a key. It offers the writers to specify a logical time. This value is used to specify the ordering of operations and perform conflict resolution in Active/Active replication.
        Specified by:
        asyncDelete in interface VeniceProducer<K,​V>
        Parameters:
        logicalTime - The value used during conflict resolution in Active/Active replication
        key - Key of the record that needs to be deleted
        Returns:
        A CompletableFuture that completes when the write operation is durable. It does not imply that the data is available to readers.
      • asyncUpdate

        public java.util.concurrent.CompletableFuture<DurableWrite> asyncUpdate​(K key,
                                                                                java.util.function.Consumer<UpdateBuilder> updateFunction)
        Description copied from interface: VeniceProducer
        A write operation to modify a subset of fields in the record for a key.
        Specified by:
        asyncUpdate in interface VeniceProducer<K,​V>
        Parameters:
        key - Key of the record that needs to be updated
        updateFunction - A Consumer that takes in an UpdateBuilder object and updates it to specify which fields to modify and the operations that must be done on them.
        Returns:
        A CompletableFuture that completes when the write operation is durable. It does not imply that the data is available to readers.
      • asyncUpdate

        public java.util.concurrent.CompletableFuture<DurableWrite> asyncUpdate​(long logicalTime,
                                                                                K key,
                                                                                java.util.function.Consumer<UpdateBuilder> updateFunction)
        Description copied from interface: VeniceProducer
        A write operation to modify a subset of fields in the record for a key. It offers the writers to specify a logical time. This value is used to specify the ordering of operations and perform conflict resolution in Active/Active replication.
        Specified by:
        asyncUpdate in interface VeniceProducer<K,​V>
        Parameters:
        logicalTime - The value used during conflict resolution in Active/Active replication
        key - Key of the record that needs to be updated
        updateFunction - A Consumer that takes in an UpdateBuilder object and updates it to specify which fields to modify and the operations that must be done on them.
        Returns:
        A CompletableFuture that completes when the write operation is durable. It does not imply that the data is available to readers.
      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Throws:
        java.io.IOException
      • isClosed

        protected boolean isClosed()