[ASTERIXDB-2503][MD] Consider Datasets Alternating ID
- user model changes: no
- storage format changes: no
- interface changes: no
Details:
- When initializing the DatasetIdFactory, consider the
alternating id of datasets to avoid reusing ids.
Change-Id: I2a3ee8f3b998c92afef5e793c7b697682fbf1f17
Reviewed-on: https://asterix-gerrit.ics.uci.edu/3099
Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Till Westmann <tillw@apache.org>
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataNode.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataNode.java
index abea47f..8cecb9e 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataNode.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataNode.java
@@ -1371,7 +1371,8 @@
rangeCursor.next();
final ITupleReference ref = rangeCursor.getTuple();
final Dataset ds = valueExtractor.getValue(txnId, ref);
- int datasetId = ds.getDatasetId();
+ int datasetId = Math.max(ds.getDatasetId(),
+ DatasetIdFactory.generateAlternatingDatasetId(ds.getDatasetId()));
if (mostRecentDatasetId < datasetId) {
mostRecentDatasetId = datasetId;
}