Package com.linkedin.davinci.consumer
Class BootstrappingVeniceChangelogConsumerDaVinciRecordTransformerImpl.DaVinciRecordTransformerBootstrappingChangelogConsumer
java.lang.Object
com.linkedin.davinci.client.DaVinciRecordTransformer<K,V,V>
com.linkedin.davinci.consumer.BootstrappingVeniceChangelogConsumerDaVinciRecordTransformerImpl.DaVinciRecordTransformerBootstrappingChangelogConsumer
- All Implemented Interfaces:
Closeable
,AutoCloseable
- Enclosing class:
- BootstrappingVeniceChangelogConsumerDaVinciRecordTransformerImpl<K,
V>
public class BootstrappingVeniceChangelogConsumerDaVinciRecordTransformerImpl.DaVinciRecordTransformerBootstrappingChangelogConsumer
extends DaVinciRecordTransformer<K,V,V>
-
Constructor Summary
ConstructorsConstructorDescriptionDaVinciRecordTransformerBootstrappingChangelogConsumer
(String storeName, int storeVersion, org.apache.avro.Schema keySchema, org.apache.avro.Schema inputValueSchema, org.apache.avro.Schema outputValueSchema, DaVinciRecordTransformerConfig recordTransformerConfig) -
Method Summary
Modifier and TypeMethodDescriptionvoid
addMessageToBuffer
(K key, V value, int partitionId) void
close()
void
onHeartbeat
(int partitionId, long heartbeatTimestamp) Receive heartbeat timestamp for a partition and update latest seen time.void
onStartVersionIngestion
(boolean isCurrentVersion) Callback invoked before consuming records forDaVinciRecordTransformer.storeVersion
.void
onVersionSwap
(int currentVersion, int futureVersion, int partitionId) void
processDelete
(Lazy<K> key, int partitionId) Optional callback for delete events (for example, remove from an external system).void
processPut
(Lazy<K> key, Lazy<V> value, int partitionId) Callback for put/update events (for example, write to an external system).Callback to transform records before they are stored.Methods inherited from class com.linkedin.davinci.client.DaVinciRecordTransformer
getAlwaysBootstrapFromVersionTopic, getClassHash, getInputValueSchema, getKeySchema, getOutputValueSchema, getRecordTransformerUtility, getStoreName, getStoreRecordsInDaVinci, getStoreVersion, onEndVersionIngestion, onRecovery, prependSchemaIdToHeader, prependSchemaIdToHeader, transformAndProcessPut, useUniformInputValueSchema
-
Constructor Details
-
DaVinciRecordTransformerBootstrappingChangelogConsumer
public DaVinciRecordTransformerBootstrappingChangelogConsumer(String storeName, int storeVersion, org.apache.avro.Schema keySchema, org.apache.avro.Schema inputValueSchema, org.apache.avro.Schema outputValueSchema, DaVinciRecordTransformerConfig recordTransformerConfig)
-
-
Method Details
-
onStartVersionIngestion
public void onStartVersionIngestion(boolean isCurrentVersion) Description copied from class:DaVinciRecordTransformer
Callback invoked before consuming records forDaVinciRecordTransformer.storeVersion
. Use this to open connections, create tables, or initialize resources. By default, it's a no-op.- Overrides:
onStartVersionIngestion
in classDaVinciRecordTransformer<K,
V, V> - Parameters:
isCurrentVersion
- whether the version being started is the current serving version; if not it's a future version
-
transform
Description copied from class:DaVinciRecordTransformer
Callback to transform records before they are stored. This can be useful for tasks such as filtering out unused fields to save storage space. Result types: - SKIP: drop the record - UNCHANGED: keep the original value; useful when only callbacks/notifications are needed - TRANSFORMED: record has been transformed and should be persisted to disk- Specified by:
transform
in classDaVinciRecordTransformer<K,
V, V> - Parameters:
key
- the key of the record to be transformedvalue
- the value of the record to be transformedpartitionId
- what partition the record came from- Returns:
DaVinciRecordTransformerResult
-
addMessageToBuffer
-
processPut
Description copied from class:DaVinciRecordTransformer
Callback for put/update events (for example, write to an external system). Invoked afterDaVinciRecordTransformer.transform(Lazy, Lazy, int)
when the result is UNCHANGED or TRANSFORMED. Also invoked during startup/recovery when Da Vinci replays records persisted on disk to rehydrate external systems.- Specified by:
processPut
in classDaVinciRecordTransformer<K,
V, V> - Parameters:
key
- the key of the record to be putvalue
- the value of the record to be put, either the original value or the transformed valuepartitionId
- what partition the record came from
-
processDelete
Description copied from class:DaVinciRecordTransformer
Optional callback for delete events (for example, remove from an external system). By default, this is a no-op.- Overrides:
processDelete
in classDaVinciRecordTransformer<K,
V, V> - Parameters:
key
- the key of the record to be deletedpartitionId
- what partition the record is being deleted from
-
onVersionSwap
public void onVersionSwap(int currentVersion, int futureVersion, int partitionId) -
onHeartbeat
public void onHeartbeat(int partitionId, long heartbeatTimestamp) Receive heartbeat timestamp for a partition and update latest seen time. -
close
- Throws:
IOException
-