Package com.linkedin.venice.pushmonitor
Class OfflinePushStatus
java.lang.Object
com.linkedin.venice.pushmonitor.OfflinePushStatus
Class stores all the statuses and history of one offline push.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionOfflinePushStatus(String kafkaTopic, int numberOfPartition, int replicationFactor, OfflinePushStrategy strategy) -
Method Summary
Modifier and TypeMethodDescriptionbooleangetIncrementalPushStatus(PartitionAssignment partitionAssignment, String incrementalPushVersion) Returns map of partitionId -> list of status history for all working replicas of that partitiongetLatestIncrementalPushVersion(PartitionAssignment partitionAssignment) intgetPartitionStatus(int partitionId) intprotected longNecessary for the JSON serdelongbooleaninthashCode()booleanisEOPReceivedInEveryPartition(boolean isDataRecovery) Checks whether at least one replica of each partition has returnedExecutionStatus.END_OF_PUSH_RECEIVEDThis is intended forOfflinePushStatusinstances which belong to Hybrid Stores, though there should be no negative side-effects if called on an instance tied to a non-hybrid store.voidsetCurrentStatus(ExecutionStatus currentStatus) voidsetIncrementalPushVersion(String incrementalPushVersion) voidsetPartitionStatus(PartitionStatus partitionStatus) voidsetPartitionStatus(PartitionStatus partitionStatus, boolean updateDetails) voidsetPartitionStatuses(List<PartitionStatus> partitionStatuses) voidsetPushProperties(Map<String, String> pushProperties) voidsetStatusDetails(String statusDetails) Necessary for the JSON serdevoidsetStatusHistory(List<StatusSnapshot> statusHistory) voidsetSuccessfulPushDurationInSecs(long successfulPushDurationInSecs) toString()voidupdateStatus(ExecutionStatus newStatus) voidupdateStatus(ExecutionStatus newStatus, Optional<String> newStatusDetails) booleanvalidatePushStatusTransition(ExecutionStatus newStatus) Judge whether current status could be transferred to the new status.
-
Field Details
-
HELIX_RESOURCE_NOT_CREATED
- See Also:
-
HELIX_ASSIGNMENT_COMPLETED
- See Also:
-
-
Constructor Details
-
OfflinePushStatus
public OfflinePushStatus(String kafkaTopic, int numberOfPartition, int replicationFactor, OfflinePushStrategy strategy)
-
-
Method Details
-
updateStatus
-
updateStatus
-
getStartTimeSec
protected long getStartTimeSec() -
validatePushStatusTransition
Judge whether current status could be transferred to the new status.Push's state machine:
- NOT_STARTED->STARTED
- NOT_STARTED->ERROR
- STARTED->STARTED
- STARTED->COMPLETED
- STARTED->ERROR
- STARTED->END_OF_PUSH_RECEIVED
- END_OF_PUSH_RECEIVED->COMPLETED
- END_OF_PUSH_RECEIVED->ERROR
- COMPLETED->ARCHIVED
- ERROR->ARCHIVED
- Parameters:
newStatus-- Returns:
-
setPartitionStatus
-
setPartitionStatus
-
getIncrementalPushStatus
public Map<Integer,Map<CharSequence, getIncrementalPushStatusInteger>> (PartitionAssignment partitionAssignment, String incrementalPushVersion) Returns map of partitionId -> list of status history for all working replicas of that partition -
getLatestIncrementalPushVersion
-
hasFatalDataValidationError
public boolean hasFatalDataValidationError() -
getKafkaTopic
-
getNumberOfPartition
public int getNumberOfPartition() -
getReplicationFactor
public int getReplicationFactor() -
getStrategy
-
getCurrentStatus
-
setCurrentStatus
-
getOptionalStatusDetails
-
getStatusDetails
Necessary for the JSON serde -
setStatusDetails
Necessary for the JSON serde -
getStatusHistory
-
setStatusHistory
-
setPartitionStatuses
-
getIncrementalPushVersion
-
setIncrementalPushVersion
-
getSuccessfulPushDurationInSecs
public long getSuccessfulPushDurationInSecs() -
setSuccessfulPushDurationInSecs
public void setSuccessfulPushDurationInSecs(long successfulPushDurationInSecs) -
clonePushStatus
-
getProgress
- Returns:
- a map which's id is replica id and value is the offset that replica already consumed.
-
getPartitionStatuses
-
getPartitionStatus
-
isEOPReceivedInEveryPartition
public boolean isEOPReceivedInEveryPartition(boolean isDataRecovery) Checks whether at least one replica of each partition has returnedExecutionStatus.END_OF_PUSH_RECEIVEDThis is intended forOfflinePushStatusinstances which belong to Hybrid Stores, though there should be no negative side-effects if called on an instance tied to a non-hybrid store.- Returns:
- true if at least one replica of each partition has consumed an EOP control message, false otherwise
-
getPushProperties
-
setPushProperties
-
getStatusUpdateTimestamp
- Returns:
- the UNIX Epoch time corresponding to the earliest time in which
getStatusHistory()contained anExecutionStatusequal to thegetCurrentStatus(), or null if not available.
-
equals
-
hashCode
public int hashCode() -
toString
-