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
-
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.void
close()
protected void
configure
(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 boolean
isClosed()
protected abstract VersionCreationResponse
This function should return aVersionCreationResponse
to 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:VeniceProducer
A write operation where a full value is written to replace the existing value.- Specified by:
asyncPut
in interfaceVeniceProducer<K,
V> - Parameters:
key
- Key of the record that needs to be updatedvalue
- 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
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 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
CompletableFuture
that completes when the write operation is durable. It does not imply that the data is available to readers.
-
asyncDelete
Description copied from interface:VeniceProducer
A write operation to delete the record for a key.- Specified by:
asyncDelete
in interfaceVeniceProducer<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
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 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
CompletableFuture
that completes when the write operation is durable. It does not imply that the data is available to readers.
-
asyncUpdate
Description copied from interface:VeniceProducer
A write operation to modify a subset of fields in the record for a key.- Specified by:
asyncUpdate
in interfaceVeniceProducer<K,
V> - Parameters:
key
- Key of the record that needs to be updatedupdateFunction
- AConsumer
that takes in anUpdateBuilder
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 CompletableFuture<DurableWrite> asyncUpdate(long logicalTime, K key, 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 interfaceVeniceProducer<K,
V> - Parameters:
logicalTime
- The value used during conflict resolution in Active/Active replicationkey
- Key of the record that needs to be updatedupdateFunction
- AConsumer
that takes in anUpdateBuilder
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.
-
requestTopic
This function should return aVersionCreationResponse
to determine the PubSub topic and the characteristics that the producer should follow. -
close
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Throws:
IOException
-
isClosed
protected boolean isClosed()
-