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 TypeMethodDescriptionvoidclose()voidclose(boolean gracefulClose) delete(K key, long logicalTimestamp, PubSubProducerCallback callback) delete(K key, PubSubProducerCallback callback) delete(K key, PubSubProducerCallback callback, DeleteMetadata deleteMetadata) In VPJ, only re-push can trigger this function.voidflush()put(K key, V value, int valueSchemaId, long logicalTimestamp, PubSubProducerCallback callback) put(K key, V value, int valueSchemaId, long logicalTimestamp, PubSubProducerCallback callback, PutMetadata putMetadata) 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, long logicalTimestamp, PubSubProducerCallback callback) update(K key, U update, int valueSchemaId, int derivedSchemaId, PubSubProducerCallback callback) The main use of theCompositeVeniceWriterfor 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:
closein classAbstractVeniceWriter<K,V, U> - Throws:
IOException
-
put
public CompletableFuture<PubSubProduceResult> put(K key, V value, int valueSchemaId, PubSubProducerCallback callback) - Specified by:
putin classAbstractVeniceWriter<K,V, U>
-
put
public CompletableFuture<PubSubProduceResult> put(K key, V value, int valueSchemaId, long logicalTimestamp, PubSubProducerCallback callback) - Specified by:
putin classAbstractVeniceWriter<K,V, U>
-
put
public CompletableFuture<PubSubProduceResult> put(K key, V value, int valueSchemaId, PubSubProducerCallback callback, PutMetadata putMetadata) - Specified by:
putin classAbstractVeniceWriter<K,V, U>
-
put
public CompletableFuture<PubSubProduceResult> put(K key, V value, int valueSchemaId, long logicalTimestamp, PubSubProducerCallback callback, PutMetadata putMetadata) - Specified by:
putin 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:
deletein classAbstractVeniceWriter<K,V, U>
-
update
public Future<PubSubProduceResult> update(K key, U update, int valueSchemaId, int derivedSchemaId, PubSubProducerCallback callback) The main use of theCompositeVeniceWriterfor 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 theCompositeVeniceWriterbecause 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:
updatein classAbstractVeniceWriter<K,V, U>
-
update
public CompletableFuture<PubSubProduceResult> update(K key, U update, int valueSchemaId, int derivedSchemaId, long logicalTimestamp, PubSubProducerCallback callback) - Specified by:
updatein classAbstractVeniceWriter<K,V, U>
-
delete
- Specified by:
deletein classAbstractVeniceWriter<K,V, U>
-
delete
public CompletableFuture<PubSubProduceResult> delete(K key, long logicalTimestamp, PubSubProducerCallback callback) - Specified by:
deletein classAbstractVeniceWriter<K,V, U>
-
flush
public void flush()- Specified by:
flushin classAbstractVeniceWriter<K,V, U>
-
close
- Throws:
IOException
-