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() 
 -