[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;
                         }