Class AbstractStoreBufferService
- java.lang.Object
-
- com.linkedin.venice.service.AbstractVeniceService
-
- com.linkedin.davinci.kafka.consumer.AbstractStoreBufferService
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
- Direct Known Subclasses:
SeparatedStoreBufferService
,StoreBufferService
public abstract class AbstractStoreBufferService extends AbstractVeniceService
Abstract class capturing the responsibilities of drainers threads doing store ingestion.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.linkedin.venice.service.AbstractVeniceService
AbstractVeniceService.ServiceState
-
-
Field Summary
-
Fields inherited from class com.linkedin.venice.service.AbstractVeniceService
logger, serviceState
-
-
Constructor Summary
Constructors Constructor Description AbstractStoreBufferService()
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description abstract void
drainBufferedRecordsFromTopicPartition(PubSubTopicPartition topicPartition)
This method will wait for all the messages to be processed (persisted to disk) that are already queued up to drainer till now.abstract java.util.concurrent.CompletableFuture<java.lang.Void>
execSyncOffsetCommandAsync(PubSubTopicPartition topicPartition, StoreIngestionTask ingestionTask)
abstract long
getMaxMemoryUsagePerDrainer()
abstract long
getMinMemoryUsagePerDrainer()
abstract long
getTotalMemoryUsage()
abstract long
getTotalRemainingMemory()
abstract void
putConsumerRecord(PubSubMessage<KafkaKey,KafkaMessageEnvelope,java.lang.Long> consumerRecord, StoreIngestionTask ingestionTask, LeaderProducedRecordContext leaderProducedRecordContext, int partition, java.lang.String kafkaUrl, long beforeProcessingRecordTimestampNs)
-
Methods inherited from class com.linkedin.venice.service.AbstractVeniceService
close, getName, isRunning, start, startInner, stop, stopInner
-
-
-
-
Method Detail
-
putConsumerRecord
public abstract void putConsumerRecord(PubSubMessage<KafkaKey,KafkaMessageEnvelope,java.lang.Long> consumerRecord, StoreIngestionTask ingestionTask, LeaderProducedRecordContext leaderProducedRecordContext, int partition, java.lang.String kafkaUrl, long beforeProcessingRecordTimestampNs) throws java.lang.InterruptedException
- Throws:
java.lang.InterruptedException
-
drainBufferedRecordsFromTopicPartition
public abstract void drainBufferedRecordsFromTopicPartition(PubSubTopicPartition topicPartition) throws java.lang.InterruptedException
This method will wait for all the messages to be processed (persisted to disk) that are already queued up to drainer till now.- Throws:
java.lang.InterruptedException
-
getTotalMemoryUsage
public abstract long getTotalMemoryUsage()
-
getTotalRemainingMemory
public abstract long getTotalRemainingMemory()
-
getMaxMemoryUsagePerDrainer
public abstract long getMaxMemoryUsagePerDrainer()
-
getMinMemoryUsagePerDrainer
public abstract long getMinMemoryUsagePerDrainer()
-
execSyncOffsetCommandAsync
public abstract java.util.concurrent.CompletableFuture<java.lang.Void> execSyncOffsetCommandAsync(PubSubTopicPartition topicPartition, StoreIngestionTask ingestionTask) throws java.lang.InterruptedException
- Throws:
java.lang.InterruptedException
-
-