Class CompositeVeniceWriter<K,V,U>
java.lang.Object
com.linkedin.venice.writer.AbstractVeniceWriter<K,V,U>
com.linkedin.venice.hadoop.task.datawriter.CompositeVeniceWriter<K,V,U>
- All Implemented Interfaces:
Closeable
,AutoCloseable
The composite writer contains a main writer and multiple child writers. The main writer will only perform the write
once all of its child writers are complete. Child writers are
ComplexVeniceWriter
.
This is to provide chunking support during NR pass-through. All records produced by the ComplexVeniceWriter
's
main writer is expected to carry the
PubSubMessageHeaders.VENICE_VIEW_PARTITIONS_MAP_HEADER
.-
Field Summary
Fields inherited from class com.linkedin.venice.writer.AbstractVeniceWriter
topicName
-
Constructor Summary
ConstructorsConstructorDescriptionCompositeVeniceWriter
(String topicName, VeniceWriter<K, V, U> mainWriter, ComplexVeniceWriter<K, V, U>[] childWriters, PubSubProducerCallback childCallback, BiFunction<V, Integer, org.apache.avro.generic.GenericRecord> valueExtractor) -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
void
close
(boolean gracefulClose) delete
(K key, PubSubProducerCallback callback, DeleteMetadata deleteMetadata) In VPJ, only re-push can trigger this function.void
flush()
put
(K key, V value, int valueSchemaId, PubSubProducerCallback callback) put
(K key, V value, int valueSchemaId, PubSubProducerCallback callback, PutMetadata putMetadata) update
(K key, U update, int valueSchemaId, int derivedSchemaId, PubSubProducerCallback callback) The main use of theCompositeVeniceWriter
for now is to write batch portion of a store version to VT and materialized view topic in the NR fabric.Methods inherited from class com.linkedin.venice.writer.AbstractVeniceWriter
getTopicName, put
-
Constructor Details
-
CompositeVeniceWriter
public CompositeVeniceWriter(String topicName, VeniceWriter<K, V, U> mainWriter, ComplexVeniceWriter<K, V, U>[] childWriters, PubSubProducerCallback childCallback, BiFunction<V, Integer, org.apache.avro.generic.GenericRecord> valueExtractor)
-
-
Method Details
-
close
- Specified by:
close
in classAbstractVeniceWriter<K,
V, U> - Throws:
IOException
-
put
public CompletableFuture<PubSubProduceResult> put(K key, V value, int valueSchemaId, PubSubProducerCallback callback) - Specified by:
put
in classAbstractVeniceWriter<K,
V, U>
-
put
public CompletableFuture<PubSubProduceResult> put(K key, V value, int valueSchemaId, PubSubProducerCallback callback, PutMetadata putMetadata) - Specified by:
put
in classAbstractVeniceWriter<K,
V, U>
-
delete
public CompletableFuture<PubSubProduceResult> delete(K key, PubSubProducerCallback callback, DeleteMetadata deleteMetadata) In VPJ, only re-push can trigger this function. During re-push the deletion to view topics are useless and should be ignored.- Specified by:
delete
in classAbstractVeniceWriter<K,
V, U>
-
update
public Future<PubSubProduceResult> update(K key, U update, int valueSchemaId, int derivedSchemaId, PubSubProducerCallback callback) The main use of theCompositeVeniceWriter
for now is to write batch portion of a store version to VT and materialized view topic in the NR fabric. Updates should never go through theCompositeVeniceWriter
because it should be written to RT (hybrid writes or incremental push) and handled by view writers in L/F or A/A SIT.- Specified by:
update
in classAbstractVeniceWriter<K,
V, U>
-
flush
public void flush()- Specified by:
flush
in classAbstractVeniceWriter<K,
V, U>
-
close
- Throws:
IOException
-