Interface DataSourceMetadata
-
- All Known Implementing Classes:
ObjectMetadata
public interface DataSourceMetadataCommit metadata for a dataSource. Used byIndexerMetadataStorageCoordinator.commitSegmentsAndMetadata(Set, DataSourceMetadata, DataSourceMetadata)to provide metadata transactions for segment inserts. Two metadata instances can be added together, and any conflicts are resolved in favor of the right-hand side. This means metadata can be partitioned.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description DataSourceMetadataasStartMetadata()As inIndexerMetadataStorageCoordinator.commitSegments(java.util.Set<org.apache.druid.timeline.DataSegment>), this class can represent start and end of a sequence.booleanisValidStart()Returns true if this instance should be considered a valid starting point for a new dataSource that has no existing metadata.booleanmatches(DataSourceMetadata other)Returns true if any information present in this instance matches analogous information from "other" and so they are conflict-free.DataSourceMetadataminus(DataSourceMetadata other)Returns a copy of this instance with "other" subtracted.DataSourceMetadataplus(DataSourceMetadata other)Returns a copy of this instance with "other" merged in.
-
-
-
Method Detail
-
isValidStart
boolean isValidStart()
Returns true if this instance should be considered a valid starting point for a new dataSource that has no existing metadata.
-
asStartMetadata
DataSourceMetadata asStartMetadata()
As inIndexerMetadataStorageCoordinator.commitSegments(java.util.Set<org.apache.druid.timeline.DataSegment>), this class can represent start and end of a sequence. This method converts itself into the one for start of a sequence. Most implementations can simply returnthis.
-
matches
boolean matches(DataSourceMetadata other)
Returns true if any information present in this instance matches analogous information from "other" and so they are conflict-free. In other words, "one.plus(two)" and "two.plus(one)" should return equal instances if "one" matches "two". One simple way to implement this is to make it the same as "equals", although that doesn't allow for partitioned metadata. Behavior is undefined if you pass in an instance of a different class from this one.- Parameters:
other- another instance- Returns:
- true or false
-
plus
DataSourceMetadata plus(DataSourceMetadata other)
Returns a copy of this instance with "other" merged in. Any conflicts should be resolved in favor of information from "other". Behavior is undefined if you pass in an instance of a different class from this one.- Parameters:
other- another instance- Returns:
- merged copy
-
minus
DataSourceMetadata minus(DataSourceMetadata other)
Returns a copy of this instance with "other" subtracted. Behavior is undefined if you pass in an instance of a different class from this one.- Parameters:
other- another instance- Returns:
- subtracted copy
-
-