Package com.linkedin.venice.producer
Class AbstractVeniceProducer<K,V>
java.lang.Object
com.linkedin.venice.producer.AbstractVeniceProducer<K,V>
- All Implemented Interfaces:
VeniceProducer<K,,V> Closeable,AutoCloseable
- Direct Known Subclasses:
OnlineVeniceProducer
A generic implementation of the
VeniceProducer interface- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionasyncDelete(long logicalTime, K key) A write operation to delete the record for a key.asyncDelete(K key) A write operation to delete the record for a key.A write operation where a full value is written to replace the existing value.A write operation where a full value is written to replace the existing value.asyncUpdate(long logicalTime, K key, Consumer<UpdateBuilder> updateFunction) A write operation to modify a subset of fields in the record for a key.asyncUpdate(K key, Consumer<UpdateBuilder> updateFunction) A write operation to modify a subset of fields in the record for a key.voidclose()protected voidconfigure(String storeName, VeniceProperties producerConfigs, io.tehuti.metrics.MetricsRepository metricsRepository, SchemaReader schemaReader, SchemaReader kmeSchemaReader) protected VeniceWriter<byte[],byte[], byte[]> constructVeniceWriter(Properties properties, VeniceWriterOptions writerOptions) protected RecordSerializer<Object>getSerializer(org.apache.avro.Schema schema) protected booleanisClosed()protected abstract VersionCreationResponseThis function should return aVersionCreationResponseto determine the PubSub topic and the characteristics that the producer should follow.
-
Constructor Details
-
AbstractVeniceProducer
public AbstractVeniceProducer()
-
-
Method Details
-
configure
protected void configure(String storeName, VeniceProperties producerConfigs, io.tehuti.metrics.MetricsRepository metricsRepository, SchemaReader schemaReader, SchemaReader kmeSchemaReader) -
constructVeniceWriter
protected VeniceWriter<byte[],byte[], constructVeniceWriterbyte[]> (Properties properties, VeniceWriterOptions writerOptions) -
getSerializer
-
asyncPut
Description copied from interface:VeniceProducerA write operation where a full value is written to replace the existing value.- Specified by:
asyncPutin interfaceVeniceProducer<K,V> - Parameters:
key- Key of the record that needs to be updatedvalue- The full value that needs to be written- Returns:
- A
CompletableFuturethat completes when the write operation is durable. It does not imply that the data is available to readers.
-
asyncPut
Description copied from interface:VeniceProducerA 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:
asyncPutin interfaceVeniceProducer<K,V> - Parameters:
logicalTime- The value used during conflict resolution in Active/Active replicationkey- Key of the record that needs to be updatedvalue- The full value that needs to be written- Returns:
- A
CompletableFuturethat completes when the write operation is durable. It does not imply that the data is available to readers.
-
asyncDelete
Description copied from interface:VeniceProducerA write operation to delete the record for a key.- Specified by:
asyncDeletein interfaceVeniceProducer<K,V> - Parameters:
key- The key associated with the record that should be deleted- Returns:
- A
CompletableFuturethat completes when the write operation is durable. It does not imply that the data is available to readers.
-
asyncDelete
Description copied from interface:VeniceProducerA 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:
asyncDeletein interfaceVeniceProducer<K,V> - Parameters:
logicalTime- The value used during conflict resolution in Active/Active replicationkey- Key of the record that needs to be deleted- Returns:
- A
CompletableFuturethat completes when the write operation is durable. It does not imply that the data is available to readers.
-
asyncUpdate
Description copied from interface:VeniceProducerA write operation to modify a subset of fields in the record for a key.- Specified by:
asyncUpdatein interfaceVeniceProducer<K,V> - Parameters:
key- Key of the record that needs to be updatedupdateFunction- AConsumerthat takes in anUpdateBuilderobject and updates it to specify which fields to modify and the operations that must be done on them.- Returns:
- A
CompletableFuturethat completes when the write operation is durable. It does not imply that the data is available to readers.
-
asyncUpdate
public CompletableFuture<DurableWrite> asyncUpdate(long logicalTime, K key, Consumer<UpdateBuilder> updateFunction) Description copied from interface:VeniceProducerA 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:
asyncUpdatein interfaceVeniceProducer<K,V> - Parameters:
logicalTime- The value used during conflict resolution in Active/Active replicationkey- Key of the record that needs to be updatedupdateFunction- AConsumerthat takes in anUpdateBuilderobject and updates it to specify which fields to modify and the operations that must be done on them.- Returns:
- A
CompletableFuturethat completes when the write operation is durable. It does not imply that the data is available to readers.
-
requestTopic
This function should return aVersionCreationResponseto determine the PubSub topic and the characteristics that the producer should follow. -
close
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Throws:
IOException
-
isClosed
protected boolean isClosed()
-