THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
Table of Contents |
---|
Status
Current state: "Under DiscussionAdopted"
Discussion thread: here
JIRA: here
...
Code Block |
---|
public interface StandbyUpdateListener { enum SuspendReason { MIGRATED, PROMOTED; } /** * MethodA calledcallback whenthat Standbywill Processingbe startsinvoked forafter aregistering giventhe Statechangelogs Storefor Partition. each state store in a *standby * @param topicPartition the TopicPartition of the Standby Task. * @param storeName the name of the store being watched by this Standby Task.task. It is guaranteed to always be invoked before any records are loaded into the standby store. * * @param earliestOffset topicPartition the earliestchangelog offsetTopicPartition availablefor onthis the Changelog topic.standby task * @param startingOffset storeName the last offset written toname of the state store as determined from the checkpointbeing loaded * file, or -1 if there is no previous state. * @param currentEndOffset the current latest offset on the associated changelog partition.@param startingOffset the offset from which the standby task begins consuming from the changelog */ void onStandbyUpdateStartonUpdateStart(final TopicPartition topicPartition, final String storeName, final long earliestOffset, final long startingOffset, final long currentEndOffset); /** * Method called after loading a batch of records from the changelog into the Standby State Store. * In this case the maximum size of the batch is whatever determined by* the value of the MAX_POLL_RECORDS is set to. * <n> * This method is called after loading each batch and it is advised to keep processing to a minimum. * Any heavy processing will block holdthe upstate loadingupdater thethread nextand batch,slow reducingdown the throughputrate of thestandby Statetask Updater * Thread. * loading. * IfTherefore, if you need to do any extended processing or connectingconnect to an external service, * consider doing so asynchronously. * * @param topicPartition the TopicPartition containing the values to restore * @param storeName the name of the store undergoing restoration * @param batchEndOffset batchEndOffset the inclusivechangelog endingend offset (inclusive) forof the currentbatch restoredthat batchwas forjust this TopicPartitionloaded * @param numRestoredbatchSize the total number of records restored in thisthe batch that forwas thisjust TopicPartitionloaded * @param currentEndOffset the current end offset of the changelog topic partition. */ void onBatchLoaded(final TopicPartition topicPartition, final String storeName, final TaskId taskId, final long batchEndOffset, final long numRestoredbatchSize, final long currentEndOffset); /** * This method Methodis called afterwhen updatesthe tocorresponding astandby Standbytask Statestops Store ceaseupdating, eitherfor because the Standbyprovided Taskreason. was promoted to * <p> * an Active Task* orIf because the Standbytask Taskwas was{@code migratedMIGRATED} to another instance, this callback will be invoked after this * state store (and the task itself) are closed (in which case the data will be cleaned up after * be cleaned up after* state.cleanup.delay.ms). * If the task was {@code PROMOTED} to an active task, the state store will not be closed, and the * callback will be invoked after unregistering it as a standby task but before re-registering it as an active task * and beginning restoration. In other words, this will always called before the corresponding * {@link StateRestoreListener#onRestoreStart} call is made. * * @param topicPartition the TopicPartition containing the values to restore * @param storeName the name of the store undergoing restoration * @param storeOffset is the offset of the last changelog record that was read and put into the store at the time * of suspension. * @param currentEndOffset the current end offset of the changelog topic partition. * @param reason is the reason why the standby task was suspended. */ void onStandbyUpdateSuspendedonUpdateSuspended(final TopicPartition topicPartition, final String storeName, final long storeOffset, final long currentEndOffset, final SuspendReason reason); } |
...