Interface IracVersionGenerator
- All Superinterfaces:
Lifecycle
- All Known Implementing Classes:
DefaultIracVersionGenerator,NoOpIracVersionGenerator
A version generator for the IRAC protocol.
The version is segment based and the new version is also after than the previous one.
- Since:
- 11.0
- Author:
- Pedro Ruivo
-
Method Summary
Modifier and TypeMethodDescriptiongenerateMetadataWithCurrentVersion(int segment) Generate a newIracMetadatafor a givensegment.generateNewMetadata(int segment) Generates a newIracMetadatafor a givensegment.generateNewMetadata(int segment, IracEntryVersion versionSeen) Same asgenerateNewMetadata(int)but it makes sure the new version is higher thanversionSeen.voidonTopologyChange(CacheTopology newTopology) Invoked when a topology change occurs in the cluster.voidupdateVersion(int segment, IracEntryVersion remoteVersion) Updates the version for thesegmentwith a newremoteVersionseen.
-
Method Details
-
generateNewMetadata
Generates a newIracMetadatafor a givensegment.The
IracEntryVersioncreated is always higher than the previous one for the samesegment.- Parameters:
segment- The segment.- Returns:
- The
IracMetadatacreated.
-
generateMetadataWithCurrentVersion
Generate a newIracMetadatafor a givensegment.The
IracEntryVersioncreated will be the same as the previous one for the samesegment. If there was no version prior then it will create an initial version.- Parameters:
segment- The segment.- Returns:
- The
IracMetadatacreated.
-
generateNewMetadata
Same asgenerateNewMetadata(int)but it makes sure the new version is higher thanversionSeen.- Parameters:
segment- The segment.versionSeen- TheIracEntryVersionseen before. Can benull.- Returns:
- The
IracMetadatacreated.
-
updateVersion
Updates the version for thesegmentwith a newremoteVersionseen.This method should merge both the current version internally stored and the
remoteVersionto achieve anIracEntryVersionhigher than both.- Parameters:
segment- The segment.remoteVersion- The remoteIracEntryVersionreceived.
-
onTopologyChange
Invoked when a topology change occurs in the cluster.- Parameters:
newTopology- The newCacheTopology
-