This is an automated email from the ASF dual-hosted git repository.
mhubail pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git
The following commit(s) were added to refs/heads/master by this push:
new 9fdf5fdc21 [ASTERIXDB-3394][STO] Introducing size bounded concurrent
merge policy
9fdf5fdc21 is described below
commit 9fdf5fdc217ae54508d1f64a6a7cb2c7cb26f4bb
Author: Ritik Raj <[email protected]>
AuthorDate: Sat May 4 02:22:21 2024 +0530
[ASTERIXDB-3394][STO] Introducing size bounded concurrent merge policy
- user model changes: yes
- storage format changes: no
- interface changes: no
Details:
- Added storage property to set max mergable component size.
- The new merge policy will schedule merges similar to the current
ConcurrentMergePolicy but it will consider the max mergable component size.
Change-Id: I0cf0cfcfe5e7ff0131430ce2039ba89929fda274
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18264
Integration-Tests: Jenkins <[email protected]>
Tested-by: Jenkins <[email protected]>
Reviewed-by: Ritik Raj <[email protected]>
Reviewed-by: Wail Alkowaileet <[email protected]>
---
.../asterix/app/io/PersistedResourceRegistry.java | 2 +
.../apache/asterix/app/nc/NCAppRuntimeContext.java | 4 +-
.../dataset_with_meta-1.3.query.sqlpp | 20 +-
.../dataset_with_meta-2.3.query.sqlpp | 20 +-
.../dataset_with_meta-3.3.query.sqlpp | 20 +-
.../dataset_with_meta-4.3.query.sqlpp | 20 +-
.../dataset_with_meta-5.3.query.sqlpp | 20 +-
.../issue_251_dataset_hint_2.3.query.sqlpp | 18 +-
.../issue_251_dataset_hint_3.3.query.sqlpp | 18 +-
.../issue_251_dataset_hint_4.3.query.sqlpp | 18 +-
.../queries/basic/meta02/meta02.3.query.sqlpp | 19 +-
.../queries/basic/meta09/meta09.3.query.sqlpp | 19 +-
.../metadata_dataset.3.query.sqlpp | 18 +-
.../dataset_with_meta-1/dataset_with_meta-1.1.adm | 2 +-
.../dataset_with_meta-2/dataset_with_meta-2.1.adm | 2 +-
.../dataset_with_meta-3/dataset_with_meta-2.3.adm | 2 +-
.../dataset_with_meta-4/dataset_with_meta-4.3.adm | 2 +-
.../dataset_with_meta-5/dataset_with_meta-5.3.adm | 2 +-
.../issue_251_dataset_hint_2.1.adm | 2 +-
.../issue_251_dataset_hint_3.1.adm | 2 +-
.../issue_251_dataset_hint_4.1.adm | 2 +-
.../metadata/results/basic/meta02/meta02.1.adm | 2 +-
.../metadata/results/basic/meta09/meta09.1.adm | 2 +-
.../metadata_compaction_policy.1.adm | 1 +
.../basic/metadata_dataset/metadata_dataset.1.adm | 34 +--
.../cross-dv02/cross-dv02.3.query.sqlpp | 2 -
.../cross-dv04/cross-dv04.3.query.sqlpp | 2 -
.../cross-dv19/cross-dv19.3.query.sqlpp | 2 -
.../udf23/udf23.3.query.sqlpp | 15 +-
.../cross-dataverse/cross-dv02/cross-dv02.1.adm | 8 +-
.../cross-dataverse/cross-dv04/cross-dv04.1.adm | 8 +-
.../cross-dataverse/cross-dv19/cross-dv19.1.adm | 14 +-
.../user-defined-functions/udf23/udf23.1.adm | 12 +-
.../cross-dataverse/cross-dv02/cross-dv02.1.adm | 8 +-
.../cross-dataverse/cross-dv04/cross-dv04.1.adm | 8 +-
.../cross-dataverse/cross-dv19/cross-dv19.1.adm | 14 +-
.../user-defined-functions/udf23/udf23.1.adm | 12 +-
.../cross-dataverse/cross-dv02/cross-dv02.3.ast | 10 -
.../cross-dataverse/cross-dv04/cross-dv04.3.ast | 10 -
.../cross-dataverse/cross-dv19/cross-dv19.3.ast | 10 -
.../user-defined-functions/udf23/udf23.3.ast | 73 +++++-
.../asterix/common/config/StorageProperties.java | 9 +-
.../storage/SizeBoundedConcurrentMergePolicy.java | 255 +++++++++++++++++++++
.../SizeBoundedConcurrentMergePolicyFactory.java | 73 ++++++
.../asterix/common/utils/StorageConstants.java | 14 +-
.../test/SizeBoundedConcurrentMergePolicyTest.java | 212 +++++++++++++++++
.../common/util/DatasetDeclParametersUtil.java | 2 +-
.../metadata/bootstrap/MetadataBootstrap.java | 21 +-
48 files changed, 910 insertions(+), 155 deletions(-)
diff --git
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/io/PersistedResourceRegistry.java
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/io/PersistedResourceRegistry.java
index e754c77175..093b4c1b38 100644
---
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/io/PersistedResourceRegistry.java
+++
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/io/PersistedResourceRegistry.java
@@ -35,6 +35,7 @@ import
org.apache.asterix.common.ioopcallbacks.AtomicLSMIndexIOOperationCallback
import
org.apache.asterix.common.ioopcallbacks.LSMIndexIOOperationCallbackFactory;
import
org.apache.asterix.common.ioopcallbacks.LSMIndexPageWriteCallbackFactory;
import org.apache.asterix.common.library.LibraryDescriptor;
+import
org.apache.asterix.common.storage.SizeBoundedConcurrentMergePolicyFactory;
import org.apache.asterix.common.transactions.Checkpoint;
import org.apache.asterix.dataflow.data.common.AListElementTokenFactory;
import
org.apache.asterix.dataflow.data.common.AOrderedListBinaryTokenizerFactory;
@@ -165,6 +166,7 @@ public class PersistedResourceRegistry implements
IPersistedResourceRegistry {
registeredClasses.put("NoMergePolicyFactory",
NoMergePolicyFactory.class);
registeredClasses.put("PrefixMergePolicyFactory",
PrefixMergePolicyFactory.class);
registeredClasses.put("ConcurrentMergePolicyFactory",
ConcurrentMergePolicyFactory.class);
+ registeredClasses.put("SizeBoundedConcurrentMergePolicy",
SizeBoundedConcurrentMergePolicyFactory.class);
registeredClasses.put("ConstantMergePolicyFactory",
ConstantMergePolicyFactory.class);
registeredClasses.put("CorrelatedPrefixMergePolicyFactory",
CorrelatedPrefixMergePolicyFactory.class);
diff --git
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCAppRuntimeContext.java
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCAppRuntimeContext.java
index eee344f6e1..cd52b9dd90 100644
---
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCAppRuntimeContext.java
+++
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCAppRuntimeContext.java
@@ -68,6 +68,7 @@ import
org.apache.asterix.common.replication.IReplicationManager;
import org.apache.asterix.common.replication.IReplicationStrategyFactory;
import org.apache.asterix.common.storage.IIndexCheckpointManagerProvider;
import org.apache.asterix.common.storage.IReplicaManager;
+import
org.apache.asterix.common.storage.SizeBoundedConcurrentMergePolicyFactory;
import org.apache.asterix.common.transactions.IRecoveryManager;
import org.apache.asterix.common.transactions.IRecoveryManager.SystemState;
import org.apache.asterix.common.transactions.IRecoveryManagerFactory;
@@ -107,7 +108,6 @@ import
org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationScheduler;
import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicyFactory;
import org.apache.hyracks.storage.am.lsm.common.api.IVirtualBufferCache;
import org.apache.hyracks.storage.am.lsm.common.impls.AsynchronousScheduler;
-import
org.apache.hyracks.storage.am.lsm.common.impls.ConcurrentMergePolicyFactory;
import org.apache.hyracks.storage.am.lsm.common.impls.GreedyScheduler;
import org.apache.hyracks.storage.common.ILocalResourceRepository;
import org.apache.hyracks.storage.common.buffercache.BufferCache;
@@ -229,7 +229,7 @@ public class NCAppRuntimeContext implements
INcApplicationContext {
IPageReplacementStrategy prs = new
ClockPageReplacementStrategy(bufferAllocator, pageAllocator,
storageProperties.getBufferCachePageSize(),
storageProperties.getBufferCacheNumPages());
lsmIOScheduler = createIoScheduler(storageProperties);
- metadataMergePolicyFactory = new ConcurrentMergePolicyFactory();
+ metadataMergePolicyFactory = new
SizeBoundedConcurrentMergePolicyFactory();
indexCheckpointManagerProvider = new
IndexCheckpointManagerProvider(persistenceIOManager);
ILocalResourceRepositoryFactory
persistentLocalResourceRepositoryFactory =
new
PersistentLocalResourceRepositoryFactory(persistenceIOManager,
indexCheckpointManagerProvider,
diff --git
a/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/dataset_with_meta-1/dataset_with_meta-1.3.query.sqlpp
b/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/dataset_with_meta-1/dataset_with_meta-1.3.query.sqlpp
index 6c78eaaca1..2f4a774394 100644
---
a/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/dataset_with_meta-1/dataset_with_meta-1.3.query.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/dataset_with_meta-1/dataset_with_meta-1.3.query.sqlpp
@@ -17,6 +17,20 @@
* under the License.
*/
-SELECT VALUE ds
-FROM Metadata.`Dataset` ds
-WHERE ds.DataverseName='test';
+SELECT l.DataverseName,
+ l.DatasetName,
+ l.DatatypeDataverseName,
+ l.DatatypeName,
+ l.DatasetType,
+ l.GroupName,
+ l.InternalDetails,
+ l.`Hints`,
+ l.Timestamp,
+ l.DatasetId,
+ l.PendingOp,
+ l.MetatypeDataverseName,
+ l.MetatypeName,
+ l.BlockLevelStorageCompression,
+ l.DatasetFormat
+FROM Metadata.`Dataset` l
+WHERE l.DataverseName='test';
diff --git
a/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/dataset_with_meta-2/dataset_with_meta-2.3.query.sqlpp
b/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/dataset_with_meta-2/dataset_with_meta-2.3.query.sqlpp
index 6c78eaaca1..2f4a774394 100644
---
a/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/dataset_with_meta-2/dataset_with_meta-2.3.query.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/dataset_with_meta-2/dataset_with_meta-2.3.query.sqlpp
@@ -17,6 +17,20 @@
* under the License.
*/
-SELECT VALUE ds
-FROM Metadata.`Dataset` ds
-WHERE ds.DataverseName='test';
+SELECT l.DataverseName,
+ l.DatasetName,
+ l.DatatypeDataverseName,
+ l.DatatypeName,
+ l.DatasetType,
+ l.GroupName,
+ l.InternalDetails,
+ l.`Hints`,
+ l.Timestamp,
+ l.DatasetId,
+ l.PendingOp,
+ l.MetatypeDataverseName,
+ l.MetatypeName,
+ l.BlockLevelStorageCompression,
+ l.DatasetFormat
+FROM Metadata.`Dataset` l
+WHERE l.DataverseName='test';
diff --git
a/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/dataset_with_meta-3/dataset_with_meta-3.3.query.sqlpp
b/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/dataset_with_meta-3/dataset_with_meta-3.3.query.sqlpp
index ad4853513c..6a4771add9 100644
---
a/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/dataset_with_meta-3/dataset_with_meta-3.3.query.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/dataset_with_meta-3/dataset_with_meta-3.3.query.sqlpp
@@ -17,6 +17,20 @@
* under the License.
*/
-SELECT VALUE ds
-FROM Metadata.`Dataset` ds
-WHERE ds.DataverseName='test';
\ No newline at end of file
+SELECT l.DataverseName,
+ l.DatasetName,
+ l.DatatypeDataverseName,
+ l.DatatypeName,
+ l.DatasetType,
+ l.GroupName,
+ l.InternalDetails,
+ l.`Hints`,
+ l.Timestamp,
+ l.DatasetId,
+ l.PendingOp,
+ l.MetatypeDataverseName,
+ l.MetatypeName,
+ l.BlockLevelStorageCompression,
+ l.DatasetFormat
+FROM Metadata.`Dataset` l
+WHERE l.DataverseName='test';
\ No newline at end of file
diff --git
a/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/dataset_with_meta-4/dataset_with_meta-4.3.query.sqlpp
b/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/dataset_with_meta-4/dataset_with_meta-4.3.query.sqlpp
index 6c78eaaca1..2f4a774394 100644
---
a/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/dataset_with_meta-4/dataset_with_meta-4.3.query.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/dataset_with_meta-4/dataset_with_meta-4.3.query.sqlpp
@@ -17,6 +17,20 @@
* under the License.
*/
-SELECT VALUE ds
-FROM Metadata.`Dataset` ds
-WHERE ds.DataverseName='test';
+SELECT l.DataverseName,
+ l.DatasetName,
+ l.DatatypeDataverseName,
+ l.DatatypeName,
+ l.DatasetType,
+ l.GroupName,
+ l.InternalDetails,
+ l.`Hints`,
+ l.Timestamp,
+ l.DatasetId,
+ l.PendingOp,
+ l.MetatypeDataverseName,
+ l.MetatypeName,
+ l.BlockLevelStorageCompression,
+ l.DatasetFormat
+FROM Metadata.`Dataset` l
+WHERE l.DataverseName='test';
diff --git
a/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/dataset_with_meta-5/dataset_with_meta-5.3.query.sqlpp
b/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/dataset_with_meta-5/dataset_with_meta-5.3.query.sqlpp
index 6c78eaaca1..2f4a774394 100644
---
a/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/dataset_with_meta-5/dataset_with_meta-5.3.query.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/dataset_with_meta-5/dataset_with_meta-5.3.query.sqlpp
@@ -17,6 +17,20 @@
* under the License.
*/
-SELECT VALUE ds
-FROM Metadata.`Dataset` ds
-WHERE ds.DataverseName='test';
+SELECT l.DataverseName,
+ l.DatasetName,
+ l.DatatypeDataverseName,
+ l.DatatypeName,
+ l.DatasetType,
+ l.GroupName,
+ l.InternalDetails,
+ l.`Hints`,
+ l.Timestamp,
+ l.DatasetId,
+ l.PendingOp,
+ l.MetatypeDataverseName,
+ l.MetatypeName,
+ l.BlockLevelStorageCompression,
+ l.DatasetFormat
+FROM Metadata.`Dataset` l
+WHERE l.DataverseName='test';
diff --git
a/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/issue_251_dataset_hint_2/issue_251_dataset_hint_2.3.query.sqlpp
b/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/issue_251_dataset_hint_2/issue_251_dataset_hint_2.3.query.sqlpp
index 9ccb9d43f8..c51961327d 100644
---
a/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/issue_251_dataset_hint_2/issue_251_dataset_hint_2.3.query.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/issue_251_dataset_hint_2/issue_251_dataset_hint_2.3.query.sqlpp
@@ -23,6 +23,18 @@
* Issue : 251
*/
-SELECT VALUE ds
-FROM Metadata.`Dataset` ds
-WHERE ds.DataverseName='test';
+SELECT l.DataverseName,
+ l.DatasetName,
+ l.DatatypeDataverseName,
+ l.DatatypeName,
+ l.DatasetType,
+ l.GroupName,
+ l.InternalDetails,
+ l.`Hints`,
+ l.Timestamp,
+ l.DatasetId,
+ l.PendingOp,
+ l.BlockLevelStorageCompression,
+ l.DatasetFormat
+FROM Metadata.`Dataset` l
+WHERE l.DataverseName='test';
diff --git
a/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/issue_251_dataset_hint_3/issue_251_dataset_hint_3.3.query.sqlpp
b/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/issue_251_dataset_hint_3/issue_251_dataset_hint_3.3.query.sqlpp
index 797048ff65..b04a07b046 100644
---
a/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/issue_251_dataset_hint_3/issue_251_dataset_hint_3.3.query.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/issue_251_dataset_hint_3/issue_251_dataset_hint_3.3.query.sqlpp
@@ -23,6 +23,18 @@
* Issue : 251
*/
-SELECT VALUE ds
-FROM Metadata.`Dataset` ds
-WHERE ds.DataverseName='test';
+SELECT l.DataverseName,
+ l.DatasetName,
+ l.DatatypeDataverseName,
+ l.DatatypeName,
+ l.DatasetType,
+ l.GroupName,
+ l.InternalDetails,
+ l.`Hints`,
+ l.Timestamp,
+ l.DatasetId,
+ l.PendingOp,
+ l.BlockLevelStorageCompression,
+ l.DatasetFormat
+FROM Metadata.`Dataset` l
+WHERE l.DataverseName='test';
diff --git
a/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/issue_251_dataset_hint_4/issue_251_dataset_hint_4.3.query.sqlpp
b/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/issue_251_dataset_hint_4/issue_251_dataset_hint_4.3.query.sqlpp
index 80da3ccb35..e1c354488e 100644
---
a/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/issue_251_dataset_hint_4/issue_251_dataset_hint_4.3.query.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/issue_251_dataset_hint_4/issue_251_dataset_hint_4.3.query.sqlpp
@@ -24,6 +24,18 @@
*/
-SELECT VALUE ds
-FROM Metadata.`Dataset` ds
-WHERE ds.DataverseName='test';
+SELECT l.DataverseName,
+ l.DatasetName,
+ l.DatatypeDataverseName,
+ l.DatatypeName,
+ l.DatasetType,
+ l.GroupName,
+ l.InternalDetails,
+ l.`Hints`,
+ l.Timestamp,
+ l.DatasetId,
+ l.PendingOp,
+ l.BlockLevelStorageCompression,
+ l.DatasetFormat
+FROM Metadata.`Dataset` l
+WHERE l.DataverseName='test';
diff --git
a/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/meta02/meta02.3.query.sqlpp
b/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/meta02/meta02.3.query.sqlpp
index c52822523d..9608008343 100644
---
a/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/meta02/meta02.3.query.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/meta02/meta02.3.query.sqlpp
@@ -22,7 +22,20 @@
* Date : 15 Sep 2012
*/
-SELECT VALUE ds
-FROM Metadata.`Dataset` ds
-WHERE ds.DataverseName = 'testdv' AND ds.DatasetName = 'dst01';
+SELECT l.DataverseName,
+ l.DatasetName,
+ l.DatatypeDataverseName,
+ l.DatatypeName,
+ l.DatasetType,
+ l.GroupName,
+ l.ExternalDetails,
+ l.InternalDetails,
+ l.`Hints`,
+ l.Timestamp,
+ l.DatasetId,
+ l.PendingOp,
+ l.BlockLevelStorageCompression,
+ l.DatasetFormat
+FROM Metadata.`Dataset` l
+WHERE l.DataverseName = 'testdv' AND l.DatasetName = 'dst01';
diff --git
a/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/meta09/meta09.3.query.sqlpp
b/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/meta09/meta09.3.query.sqlpp
index d3f038ada8..02b876a86d 100644
---
a/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/meta09/meta09.3.query.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/meta09/meta09.3.query.sqlpp
@@ -22,6 +22,19 @@
* Date : Sep 17 2012
*/
-SELECT VALUE ds
-FROM Metadata.`Dataset` ds
-WHERE ds.DataverseName='test' and ds.DatasetName='t1';
\ No newline at end of file
+SELECT l.DataverseName,
+ l.DatasetName,
+ l.DatatypeDataverseName,
+ l.DatatypeName,
+ l.DatasetType,
+ l.GroupName,
+ l.ExternalDetails,
+ l.InternalDetails,
+ l.`Hints`,
+ l.Timestamp,
+ l.DatasetId,
+ l.PendingOp,
+ l.BlockLevelStorageCompression,
+ l.DatasetFormat
+FROM Metadata.`Dataset` l
+WHERE l.DataverseName='test' and l.DatasetName='t1';
\ No newline at end of file
diff --git
a/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/metadata_dataset/metadata_dataset.3.query.sqlpp
b/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/metadata_dataset/metadata_dataset.3.query.sqlpp
index 7046f2a54f..d0e6f9ff02 100644
---
a/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/metadata_dataset/metadata_dataset.3.query.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/metadata/queries/basic/metadata_dataset/metadata_dataset.3.query.sqlpp
@@ -18,7 +18,19 @@
*/
use Metadata;
-SELECT VALUE ds
-FROM `Dataset` ds
-WHERE ds.DataverseName = 'Metadata';
+SELECT l.DataverseName,
+ l.DatasetName,
+ l.DatatypeDataverseName,
+ l.DatatypeName,
+ l.DatasetType,
+ l.GroupName,
+ l.ExternalDetails,
+ l.InternalDetails,
+ l.`Hints`,
+ l.Timestamp,
+ l.DatasetId,
+ l.PendingOp,
+ l.DatasetFormat
+FROM `Dataset` l
+WHERE l.DataverseName = 'Metadata';
diff --git
a/asterixdb/asterix-app/src/test/resources/metadata/results/basic/dataset_with_meta-1/dataset_with_meta-1.1.adm
b/asterixdb/asterix-app/src/test/resources/metadata/results/basic/dataset_with_meta-1/dataset_with_meta-1.1.adm
index 96ca16e47f..5f20f4edcd 100644
---
a/asterixdb/asterix-app/src/test/resources/metadata/results/basic/dataset_with_meta-1/dataset_with_meta-1.1.adm
+++
b/asterixdb/asterix-app/src/test/resources/metadata/results/basic/dataset_with_meta-1/dataset_with_meta-1.1.adm
@@ -1 +1 @@
-{ "DataverseName": "test", "DatasetName": "Book", "DatatypeDataverseName":
"test", "DatatypeName": "LineType", "DatasetType": "INTERNAL", "GroupName":
"test.Book", "CompactionPolicy": "concurrent", "CompactionPolicyProperties": [
{ "Name": "max-component-count", "Value": "30" }, { "Name":
"min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": "BTREE", "Partition [...]
+{ "DataverseName": "test", "DatasetName": "Book", "DatatypeDataverseName":
"test", "DatatypeName": "LineType", "DatasetType": "INTERNAL", "GroupName":
"test.Book", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "id" ] ], "PrimaryKey":
[ [ "id" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Sun Jun
30 09:05:04 PDT 2019", "DatasetId": 102, "PendingOp": 0,
"MetatypeDataverseName": "test", "MetatypeName": "AuxiliaryType", [...]
\ No newline at end of file
diff --git
a/asterixdb/asterix-app/src/test/resources/metadata/results/basic/dataset_with_meta-2/dataset_with_meta-2.1.adm
b/asterixdb/asterix-app/src/test/resources/metadata/results/basic/dataset_with_meta-2/dataset_with_meta-2.1.adm
index ce2dc7c628..9db69f8b44 100644
---
a/asterixdb/asterix-app/src/test/resources/metadata/results/basic/dataset_with_meta-2/dataset_with_meta-2.1.adm
+++
b/asterixdb/asterix-app/src/test/resources/metadata/results/basic/dataset_with_meta-2/dataset_with_meta-2.1.adm
@@ -1 +1 @@
-{ "DataverseName": "test", "DatasetName": "Book", "DatatypeDataverseName":
"test", "DatatypeName": "LineType", "DatasetType": "INTERNAL", "GroupName":
"test.Book", "CompactionPolicy": "concurrent", "CompactionPolicyProperties": [
{ "Name": "max-component-count", "Value": "30" }, { "Name":
"min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": "BTREE", "Partition [...]
+{ "DataverseName": "test", "DatasetName": "Book", "DatatypeDataverseName":
"test", "DatatypeName": "LineType", "DatasetType": "INTERNAL", "GroupName":
"test.Book", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "id" ] ], "PrimaryKey":
[ [ "id" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Sun Jun
30 09:05:04 PDT 2019", "DatasetId": 103, "PendingOp": 0,
"MetatypeDataverseName": "meta", "MetatypeName": "AuxiliaryType", [...]
\ No newline at end of file
diff --git
a/asterixdb/asterix-app/src/test/resources/metadata/results/basic/dataset_with_meta-3/dataset_with_meta-2.3.adm
b/asterixdb/asterix-app/src/test/resources/metadata/results/basic/dataset_with_meta-3/dataset_with_meta-2.3.adm
index 71072f4705..8ed807dd7c 100644
---
a/asterixdb/asterix-app/src/test/resources/metadata/results/basic/dataset_with_meta-3/dataset_with_meta-2.3.adm
+++
b/asterixdb/asterix-app/src/test/resources/metadata/results/basic/dataset_with_meta-3/dataset_with_meta-2.3.adm
@@ -1 +1 @@
-{ "DataverseName": "test", "DatasetName": "Book", "DatatypeDataverseName":
"test", "DatatypeName": "LineType", "DatasetType": "INTERNAL", "GroupName":
"test.Book", "CompactionPolicy": "concurrent", "CompactionPolicyProperties": [
{ "Name": "max-component-count", "Value": "30" }, { "Name":
"min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": "BTREE", "Partition [...]
+{ "DataverseName": "test", "DatasetName": "Book", "DatatypeDataverseName":
"test", "DatatypeName": "LineType", "DatasetType": "INTERNAL", "GroupName":
"test.Book", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "id" ] ], "PrimaryKey":
[ [ "id" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Tue Jun
21 15:54:26 PDT 2016", "DatasetId": 103, "PendingOp": 0,
"MetatypeDataverseName": "test", "MetatypeName": "LineType", "Bloc [...]
diff --git
a/asterixdb/asterix-app/src/test/resources/metadata/results/basic/dataset_with_meta-4/dataset_with_meta-4.3.adm
b/asterixdb/asterix-app/src/test/resources/metadata/results/basic/dataset_with_meta-4/dataset_with_meta-4.3.adm
index f2e03199d1..433a96c538 100644
---
a/asterixdb/asterix-app/src/test/resources/metadata/results/basic/dataset_with_meta-4/dataset_with_meta-4.3.adm
+++
b/asterixdb/asterix-app/src/test/resources/metadata/results/basic/dataset_with_meta-4/dataset_with_meta-4.3.adm
@@ -1 +1 @@
-{ "DataverseName": "test", "DatasetName": "Book", "DatatypeDataverseName":
"test", "DatatypeName": "LineType", "DatasetType": "INTERNAL", "GroupName":
"test.Book", "CompactionPolicy": "concurrent", "CompactionPolicyProperties": [
{ "Name": "max-component-count", "Value": "30" }, { "Name":
"min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": "BTREE", "Partition [...]
+{ "DataverseName": "test", "DatasetName": "Book", "DatatypeDataverseName":
"test", "DatatypeName": "LineType", "DatasetType": "INTERNAL", "GroupName":
"test.Book", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "id" ] ], "PrimaryKey":
[ [ "id" ] ], "Autogenerated": false, "KeySourceIndicator": [ 1 ] }, "Hints":
{{ }}, "Timestamp": "Tue Jun 21 15:54:26 PDT 2016", "DatasetId": 104,
"PendingOp": 0, "MetatypeDataverseName": "test", "Met [...]
\ No newline at end of file
diff --git
a/asterixdb/asterix-app/src/test/resources/metadata/results/basic/dataset_with_meta-5/dataset_with_meta-5.3.adm
b/asterixdb/asterix-app/src/test/resources/metadata/results/basic/dataset_with_meta-5/dataset_with_meta-5.3.adm
index 7c2d1ae706..641332e64d 100644
---
a/asterixdb/asterix-app/src/test/resources/metadata/results/basic/dataset_with_meta-5/dataset_with_meta-5.3.adm
+++
b/asterixdb/asterix-app/src/test/resources/metadata/results/basic/dataset_with_meta-5/dataset_with_meta-5.3.adm
@@ -1 +1 @@
-{ "DataverseName": "test", "DatasetName": "Book", "DatatypeDataverseName":
"test", "DatatypeName": "LineType", "DatasetType": "INTERNAL", "GroupName":
"test.Book", "CompactionPolicy": "concurrent", "CompactionPolicyProperties": [
{ "Name": "max-component-count", "Value": "30" }, { "Name":
"min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": "BTREE", "Partition [...]
+{ "DataverseName": "test", "DatasetName": "Book", "DatatypeDataverseName":
"test", "DatatypeName": "LineType", "DatasetType": "INTERNAL", "GroupName":
"test.Book", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "key" ] ], "PrimaryKey":
[ [ "key" ] ], "Autogenerated": false, "KeySourceIndicator": [ 1 ] }, "Hints":
{{ }}, "Timestamp": "Tue Jun 21 15:54:26 PDT 2016", "DatasetId": 105,
"PendingOp": 0, "MetatypeDataverseName": "test", "M [...]
\ No newline at end of file
diff --git
a/asterixdb/asterix-app/src/test/resources/metadata/results/basic/issue_251_dataset_hint_2/issue_251_dataset_hint_2.1.adm
b/asterixdb/asterix-app/src/test/resources/metadata/results/basic/issue_251_dataset_hint_2/issue_251_dataset_hint_2.1.adm
index 792935f11a..1047ca5ef7 100644
---
a/asterixdb/asterix-app/src/test/resources/metadata/results/basic/issue_251_dataset_hint_2/issue_251_dataset_hint_2.1.adm
+++
b/asterixdb/asterix-app/src/test/resources/metadata/results/basic/issue_251_dataset_hint_2/issue_251_dataset_hint_2.1.adm
@@ -1 +1 @@
-{ "DataverseName": "test", "DatasetName": "Book", "DatatypeDataverseName":
"test", "DatatypeName": "LineType", "DatasetType": "INTERNAL", "GroupName":
"test.Book", "CompactionPolicy": "concurrent", "CompactionPolicyProperties": [
{ "Name": "max-component-count", "Value": "30" }, { "Name":
"min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": "BTREE", "Partition [...]
+{ "DataverseName": "test", "DatasetName": "Book", "DatatypeDataverseName":
"test", "DatatypeName": "LineType", "DatasetType": "INTERNAL", "GroupName":
"test.Book", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "id" ] ], "PrimaryKey":
[ [ "id" ] ], "Autogenerated": false }, "Hints": {{ { "Name": "CARDINALITY",
"Value": "2000" } }}, "Timestamp": "Tue Jun 21 15:54:28 PDT 2016", "DatasetId":
114, "PendingOp": 0, "BlockLevelStorageCompre [...]
\ No newline at end of file
diff --git
a/asterixdb/asterix-app/src/test/resources/metadata/results/basic/issue_251_dataset_hint_3/issue_251_dataset_hint_3.1.adm
b/asterixdb/asterix-app/src/test/resources/metadata/results/basic/issue_251_dataset_hint_3/issue_251_dataset_hint_3.1.adm
index e612895ceb..cc18eba9b3 100644
---
a/asterixdb/asterix-app/src/test/resources/metadata/results/basic/issue_251_dataset_hint_3/issue_251_dataset_hint_3.1.adm
+++
b/asterixdb/asterix-app/src/test/resources/metadata/results/basic/issue_251_dataset_hint_3/issue_251_dataset_hint_3.1.adm
@@ -1 +1 @@
-{ "DataverseName": "test", "DatasetName": "Book", "DatatypeDataverseName":
"test", "DatatypeName": "LineType", "DatasetType": "INTERNAL", "GroupName":
"test.Book", "CompactionPolicy": "concurrent", "CompactionPolicyProperties": [
{ "Name": "max-component-count", "Value": "30" }, { "Name":
"min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": "BTREE", "Partition [...]
+{ "DataverseName": "test", "DatasetName": "Book", "DatatypeDataverseName":
"test", "DatatypeName": "LineType", "DatasetType": "INTERNAL", "GroupName":
"test.Book", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "id" ] ], "PrimaryKey":
[ [ "id" ] ], "Autogenerated": false }, "Hints": {{ { "Name": "CARDINALITY",
"Value": "2000" } }}, "Timestamp": "Tue Jun 21 15:54:28 PDT 2016", "DatasetId":
115, "PendingOp": 0, "BlockLevelStorageCompre [...]
diff --git
a/asterixdb/asterix-app/src/test/resources/metadata/results/basic/issue_251_dataset_hint_4/issue_251_dataset_hint_4.1.adm
b/asterixdb/asterix-app/src/test/resources/metadata/results/basic/issue_251_dataset_hint_4/issue_251_dataset_hint_4.1.adm
index ac171aaa9e..b2358ceac0 100644
---
a/asterixdb/asterix-app/src/test/resources/metadata/results/basic/issue_251_dataset_hint_4/issue_251_dataset_hint_4.1.adm
+++
b/asterixdb/asterix-app/src/test/resources/metadata/results/basic/issue_251_dataset_hint_4/issue_251_dataset_hint_4.1.adm
@@ -1 +1 @@
-{ "DataverseName": "test", "DatasetName": "Book", "DatatypeDataverseName":
"test", "DatatypeName": "LineType", "DatasetType": "INTERNAL", "GroupName":
"test.Book", "CompactionPolicy": "concurrent", "CompactionPolicyProperties": [
{ "Name": "max-component-count", "Value": "30" }, { "Name":
"min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": "BTREE", "Partition [...]
+{ "DataverseName": "test", "DatasetName": "Book", "DatatypeDataverseName":
"test", "DatatypeName": "LineType", "DatasetType": "INTERNAL", "GroupName":
"test.Book", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "id" ] ], "PrimaryKey":
[ [ "id" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Tue Jun
21 15:54:28 PDT 2016", "DatasetId": 116, "PendingOp": 0,
"BlockLevelStorageCompression": { "DatasetCompressionScheme": "sna [...]
\ No newline at end of file
diff --git
a/asterixdb/asterix-app/src/test/resources/metadata/results/basic/meta02/meta02.1.adm
b/asterixdb/asterix-app/src/test/resources/metadata/results/basic/meta02/meta02.1.adm
index 39391caaf5..6af4e368a9 100644
---
a/asterixdb/asterix-app/src/test/resources/metadata/results/basic/meta02/meta02.1.adm
+++
b/asterixdb/asterix-app/src/test/resources/metadata/results/basic/meta02/meta02.1.adm
@@ -1 +1 @@
-{ "DataverseName": "testdv", "DatasetName": "dst01", "DatatypeDataverseName":
"testdv", "DatatypeName": "testtype", "DatasetType": "INTERNAL", "GroupName":
"testdv.dst01", "CompactionPolicy": "concurrent", "CompactionPolicyProperties":
[ { "Name": "max-component-count", "Value": "30" }, { "Name":
"min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": "BTREE", "P [...]
+{ "DataverseName": "testdv", "DatasetName": "dst01", "DatatypeDataverseName":
"testdv", "DatatypeName": "testtype", "DatasetType": "INTERNAL", "GroupName":
"testdv.dst01", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "id" ] ], "PrimaryKey":
[ [ "id" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Tue Jun
21 15:54:27 PDT 2016", "DatasetId": 108, "PendingOp": 0,
"BlockLevelStorageCompression": { "DatasetCompressionSchem [...]
diff --git
a/asterixdb/asterix-app/src/test/resources/metadata/results/basic/meta09/meta09.1.adm
b/asterixdb/asterix-app/src/test/resources/metadata/results/basic/meta09/meta09.1.adm
index c63e98e338..70f437e706 100644
---
a/asterixdb/asterix-app/src/test/resources/metadata/results/basic/meta09/meta09.1.adm
+++
b/asterixdb/asterix-app/src/test/resources/metadata/results/basic/meta09/meta09.1.adm
@@ -1 +1 @@
-{ "DataverseName": "test", "DatasetName": "t1", "DatatypeDataverseName":
"test", "DatatypeName": "testtype", "DatasetType": "INTERNAL", "GroupName":
"test.t1", "CompactionPolicy": "concurrent", "CompactionPolicyProperties": [ {
"Name": "max-component-count", "Value": "30" }, { "Name":
"min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": "BTREE", "PartitioningS [...]
+{ "DataverseName": "test", "DatasetName": "t1", "DatatypeDataverseName":
"test", "DatatypeName": "testtype", "DatasetType": "INTERNAL", "GroupName":
"test.t1", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "id" ] ], "PrimaryKey":
[ [ "id" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Tue Jun
21 15:54:27 PDT 2016", "DatasetId": 110, "PendingOp": 0,
"BlockLevelStorageCompression": { "DatasetCompressionScheme": "snappy" [...]
diff --git
a/asterixdb/asterix-app/src/test/resources/metadata/results/basic/metadata_compaction_policy/metadata_compaction_policy.1.adm
b/asterixdb/asterix-app/src/test/resources/metadata/results/basic/metadata_compaction_policy/metadata_compaction_policy.1.adm
index e8dbbe90b1..4f537a68c2 100644
---
a/asterixdb/asterix-app/src/test/resources/metadata/results/basic/metadata_compaction_policy/metadata_compaction_policy.1.adm
+++
b/asterixdb/asterix-app/src/test/resources/metadata/results/basic/metadata_compaction_policy/metadata_compaction_policy.1.adm
@@ -3,3 +3,4 @@
{ "DataverseName": "Metadata", "CompactionPolicy": "correlated-prefix",
"Classname":
"org.apache.asterix.common.context.CorrelatedPrefixMergePolicyFactory" }
{ "DataverseName": "Metadata", "CompactionPolicy": "no-merge", "Classname":
"org.apache.hyracks.storage.am.lsm.common.impls.NoMergePolicyFactory" }
{ "DataverseName": "Metadata", "CompactionPolicy": "prefix", "Classname":
"org.apache.hyracks.storage.am.lsm.common.impls.PrefixMergePolicyFactory" }
+{ "DataverseName": "Metadata", "CompactionPolicy": "size-bounded-concurrent",
"Classname":
"org.apache.asterix.common.storage.SizeBoundedConcurrentMergePolicyFactory" }
\ No newline at end of file
diff --git
a/asterixdb/asterix-app/src/test/resources/metadata/results/basic/metadata_dataset/metadata_dataset.1.adm
b/asterixdb/asterix-app/src/test/resources/metadata/results/basic/metadata_dataset/metadata_dataset.1.adm
index ca995353b6..6b6e4dd01d 100644
---
a/asterixdb/asterix-app/src/test/resources/metadata/results/basic/metadata_dataset/metadata_dataset.1.adm
+++
b/asterixdb/asterix-app/src/test/resources/metadata/results/basic/metadata_dataset/metadata_dataset.1.adm
@@ -1,17 +1,17 @@
-{ "DataverseName": "Metadata", "DatasetName": "CompactionPolicy",
"DatatypeDataverseName": "Metadata", "DatatypeName":
"CompactionPolicyRecordType", "DatasetType": "INTERNAL", "GroupName":
"MetadataGroup", "CompactionPolicy": "concurrent",
"CompactionPolicyProperties": [ { "Name": "max-component-count", "Value": "30"
}, { "Name": "min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetail [...]
-{ "DataverseName": "Metadata", "DatasetName": "Dataset",
"DatatypeDataverseName": "Metadata", "DatatypeName": "DatasetRecordType",
"DatasetType": "INTERNAL", "GroupName": "MetadataGroup", "CompactionPolicy":
"concurrent", "CompactionPolicyProperties": [ { "Name": "max-component-count",
"Value": "30" }, { "Name": "min-merge-component-count", "Value": "3" }, {
"Name": "max-merge-component-count", "Value": "10" }, { "Name": "size-ratio",
"Value": "1.2" } ], "InternalDetails": { "FileStructu [...]
-{ "DataverseName": "Metadata", "DatasetName": "DatasourceAdapter",
"DatatypeDataverseName": "Metadata", "DatatypeName":
"DatasourceAdapterRecordType", "DatasetType": "INTERNAL", "GroupName":
"MetadataGroup", "CompactionPolicy": "concurrent",
"CompactionPolicyProperties": [ { "Name": "max-component-count", "Value": "30"
}, { "Name": "min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDeta [...]
-{ "DataverseName": "Metadata", "DatasetName": "Datatype",
"DatatypeDataverseName": "Metadata", "DatatypeName": "DatatypeRecordType",
"DatasetType": "INTERNAL", "GroupName": "MetadataGroup", "CompactionPolicy":
"concurrent", "CompactionPolicyProperties": [ { "Name": "max-component-count",
"Value": "30" }, { "Name": "min-merge-component-count", "Value": "3" }, {
"Name": "max-merge-component-count", "Value": "10" }, { "Name": "size-ratio",
"Value": "1.2" } ], "InternalDetails": { "FileStruc [...]
-{ "DataverseName": "Metadata", "DatasetName": "Dataverse",
"DatatypeDataverseName": "Metadata", "DatatypeName": "DataverseRecordType",
"DatasetType": "INTERNAL", "GroupName": "MetadataGroup", "CompactionPolicy":
"concurrent", "CompactionPolicyProperties": [ { "Name": "max-component-count",
"Value": "30" }, { "Name": "min-merge-component-count", "Value": "3" }, {
"Name": "max-merge-component-count", "Value": "10" }, { "Name": "size-ratio",
"Value": "1.2" } ], "InternalDetails": { "FileStr [...]
-{ "DataverseName": "Metadata", "DatasetName": "ExternalFile",
"DatatypeDataverseName": "Metadata", "DatatypeName": "ExternalFileRecordType",
"DatasetType": "INTERNAL", "GroupName": "MetadataGroup", "CompactionPolicy":
"concurrent", "CompactionPolicyProperties": [ { "Name": "max-component-count",
"Value": "30" }, { "Name": "min-merge-component-count", "Value": "3" }, {
"Name": "max-merge-component-count", "Value": "10" }, { "Name": "size-ratio",
"Value": "1.2" } ], "InternalDetails": { "F [...]
-{ "DataverseName": "Metadata", "DatasetName": "Feed", "DatatypeDataverseName":
"Metadata", "DatatypeName": "FeedRecordType", "DatasetType": "INTERNAL",
"GroupName": "MetadataGroup", "CompactionPolicy": "concurrent",
"CompactionPolicyProperties": [ { "Name": "max-component-count", "Value": "30"
}, { "Name": "min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": " [...]
-{ "DataverseName": "Metadata", "DatasetName": "FeedConnection",
"DatatypeDataverseName": "Metadata", "DatatypeName":
"FeedConnectionRecordType", "DatasetType": "INTERNAL", "GroupName":
"MetadataGroup", "CompactionPolicy": "concurrent",
"CompactionPolicyProperties": [ { "Name": "max-component-count", "Value": "30"
}, { "Name": "min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": [...]
-{ "DataverseName": "Metadata", "DatasetName": "FeedPolicy",
"DatatypeDataverseName": "Metadata", "DatatypeName": "FeedPolicyRecordType",
"DatasetType": "INTERNAL", "GroupName": "MetadataGroup", "CompactionPolicy":
"concurrent", "CompactionPolicyProperties": [ { "Name": "max-component-count",
"Value": "30" }, { "Name": "min-merge-component-count", "Value": "3" }, {
"Name": "max-merge-component-count", "Value": "10" }, { "Name": "size-ratio",
"Value": "1.2" } ], "InternalDetails": { "FileS [...]
-{ "DataverseName": "Metadata", "DatasetName": "FullTextConfig",
"DatatypeDataverseName": "Metadata", "DatatypeName":
"FullTextConfigRecordType", "DatasetType": "INTERNAL", "GroupName":
"MetadataGroup", "CompactionPolicy": "concurrent",
"CompactionPolicyProperties": [ { "Name": "max-component-count", "Value": "30"
}, { "Name": "min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": [...]
-{ "DataverseName": "Metadata", "DatasetName": "FullTextFilter",
"DatatypeDataverseName": "Metadata", "DatatypeName":
"FullTextFilterRecordType", "DatasetType": "INTERNAL", "GroupName":
"MetadataGroup", "CompactionPolicy": "concurrent",
"CompactionPolicyProperties": [ { "Name": "max-component-count", "Value": "30"
}, { "Name": "min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": [...]
-{ "DataverseName": "Metadata", "DatasetName": "Function",
"DatatypeDataverseName": "Metadata", "DatatypeName": "FunctionRecordType",
"DatasetType": "INTERNAL", "GroupName": "MetadataGroup", "CompactionPolicy":
"concurrent", "CompactionPolicyProperties": [ { "Name": "max-component-count",
"Value": "30" }, { "Name": "min-merge-component-count", "Value": "3" }, {
"Name": "max-merge-component-count", "Value": "10" }, { "Name": "size-ratio",
"Value": "1.2" } ], "InternalDetails": { "FileStruc [...]
-{ "DataverseName": "Metadata", "DatasetName": "Index",
"DatatypeDataverseName": "Metadata", "DatatypeName": "IndexRecordType",
"DatasetType": "INTERNAL", "GroupName": "MetadataGroup", "CompactionPolicy":
"concurrent", "CompactionPolicyProperties": [ { "Name": "max-component-count",
"Value": "30" }, { "Name": "min-merge-component-count", "Value": "3" }, {
"Name": "max-merge-component-count", "Value": "10" }, { "Name": "size-ratio",
"Value": "1.2" } ], "InternalDetails": { "FileStructure": [...]
-{ "DataverseName": "Metadata", "DatasetName": "Library",
"DatatypeDataverseName": "Metadata", "DatatypeName": "LibraryRecordType",
"DatasetType": "INTERNAL", "GroupName": "MetadataGroup", "CompactionPolicy":
"concurrent", "CompactionPolicyProperties": [ { "Name": "max-component-count",
"Value": "30" }, { "Name": "min-merge-component-count", "Value": "3" }, {
"Name": "max-merge-component-count", "Value": "10" }, { "Name": "size-ratio",
"Value": "1.2" } ], "InternalDetails": { "FileStructu [...]
-{ "DataverseName": "Metadata", "DatasetName": "Node", "DatatypeDataverseName":
"Metadata", "DatatypeName": "NodeRecordType", "DatasetType": "INTERNAL",
"GroupName": "MetadataGroup", "CompactionPolicy": "concurrent",
"CompactionPolicyProperties": [ { "Name": "max-component-count", "Value": "30"
}, { "Name": "min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": " [...]
-{ "DataverseName": "Metadata", "DatasetName": "Nodegroup",
"DatatypeDataverseName": "Metadata", "DatatypeName": "NodeGroupRecordType",
"DatasetType": "INTERNAL", "GroupName": "MetadataGroup", "CompactionPolicy":
"concurrent", "CompactionPolicyProperties": [ { "Name": "max-component-count",
"Value": "30" }, { "Name": "min-merge-component-count", "Value": "3" }, {
"Name": "max-merge-component-count", "Value": "10" }, { "Name": "size-ratio",
"Value": "1.2" } ], "InternalDetails": { "FileStr [...]
-{ "DataverseName": "Metadata", "DatasetName": "Synonym",
"DatatypeDataverseName": "Metadata", "DatatypeName": "SynonymRecordType",
"DatasetType": "INTERNAL", "GroupName": "MetadataGroup", "CompactionPolicy":
"concurrent", "CompactionPolicyProperties": [ { "Name": "max-component-count",
"Value": "30" }, { "Name": "min-merge-component-count", "Value": "3" }, {
"Name": "max-merge-component-count", "Value": "10" }, { "Name": "size-ratio",
"Value": "1.2" } ], "InternalDetails": { "FileStructu [...]
\ No newline at end of file
+{ "DataverseName": "Metadata", "DatasetName": "CompactionPolicy",
"DatatypeDataverseName": "Metadata", "DatatypeName":
"CompactionPolicyRecordType", "DatasetType": "INTERNAL", "GroupName":
"MetadataGroup", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "DataverseName" ], [
"CompactionPolicy" ] ], "PrimaryKey": [ [ "DataverseName" ], [
"CompactionPolicy" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp":
"Fri Oct 21 10:29:21 [...]
+{ "DataverseName": "Metadata", "DatasetName": "Dataset",
"DatatypeDataverseName": "Metadata", "DatatypeName": "DatasetRecordType",
"DatasetType": "INTERNAL", "GroupName": "MetadataGroup", "InternalDetails": {
"FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [
[ "DataverseName" ], [ "DatasetName" ] ], "PrimaryKey": [ [ "DataverseName" ],
[ "DatasetName" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp":
"Fri Oct 21 10:29:21 PDT 2016", "DatasetId": 2, [...]
+{ "DataverseName": "Metadata", "DatasetName": "DatasourceAdapter",
"DatatypeDataverseName": "Metadata", "DatatypeName":
"DatasourceAdapterRecordType", "DatasetType": "INTERNAL", "GroupName":
"MetadataGroup", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "DataverseName" ], [
"Name" ] ], "PrimaryKey": [ [ "DataverseName" ], [ "Name" ] ], "Autogenerated":
false }, "Hints": {{ }}, "Timestamp": "Fri Oct 21 10:29:21 PDT 2016",
"DatasetId [...]
+{ "DataverseName": "Metadata", "DatasetName": "Datatype",
"DatatypeDataverseName": "Metadata", "DatatypeName": "DatatypeRecordType",
"DatasetType": "INTERNAL", "GroupName": "MetadataGroup", "InternalDetails": {
"FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [
[ "DataverseName" ], [ "DatatypeName" ] ], "PrimaryKey": [ [ "DataverseName" ],
[ "DatatypeName" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp":
"Fri Oct 21 10:29:21 PDT 2016", "DatasetId": [...]
+{ "DataverseName": "Metadata", "DatasetName": "Dataverse",
"DatatypeDataverseName": "Metadata", "DatatypeName": "DataverseRecordType",
"DatasetType": "INTERNAL", "GroupName": "MetadataGroup", "InternalDetails": {
"FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [
[ "DataverseName" ] ], "PrimaryKey": [ [ "DataverseName" ] ], "Autogenerated":
false }, "Hints": {{ }}, "Timestamp": "Fri Oct 21 10:29:21 PDT 2016",
"DatasetId": 1, "PendingOp": 0, "DatasetFormat": { [...]
+{ "DataverseName": "Metadata", "DatasetName": "ExternalFile",
"DatatypeDataverseName": "Metadata", "DatatypeName": "ExternalFileRecordType",
"DatasetType": "INTERNAL", "GroupName": "MetadataGroup", "InternalDetails": {
"FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [
[ "DataverseName" ], [ "DatasetName" ], [ "FileNumber" ] ], "PrimaryKey": [ [
"DataverseName" ], [ "DatasetName" ], [ "FileNumber" ] ], "Autogenerated":
false }, "Hints": {{ }}, "Timestamp": "F [...]
+{ "DataverseName": "Metadata", "DatasetName": "Feed", "DatatypeDataverseName":
"Metadata", "DatatypeName": "FeedRecordType", "DatasetType": "INTERNAL",
"GroupName": "MetadataGroup", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "DataverseName" ], [
"FeedName" ] ], "PrimaryKey": [ [ "DataverseName" ], [ "FeedName" ] ],
"Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Fri Oct 21 10:29:21
PDT 2016", "DatasetId": 10, "PendingOp" [...]
+{ "DataverseName": "Metadata", "DatasetName": "FeedConnection",
"DatatypeDataverseName": "Metadata", "DatatypeName":
"FeedConnectionRecordType", "DatasetType": "INTERNAL", "GroupName":
"MetadataGroup", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "DataverseName" ], [
"FeedName" ], [ "DatasetName" ] ], "PrimaryKey": [ [ "DataverseName" ], [
"FeedName" ], [ "DatasetName" ] ], "Autogenerated": false }, "Hints": {{ }},
"Timestamp": "F [...]
+{ "DataverseName": "Metadata", "DatasetName": "FeedPolicy",
"DatatypeDataverseName": "Metadata", "DatatypeName": "FeedPolicyRecordType",
"DatasetType": "INTERNAL", "GroupName": "MetadataGroup", "InternalDetails": {
"FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [
[ "DataverseName" ], [ "PolicyName" ] ], "PrimaryKey": [ [ "DataverseName" ], [
"PolicyName" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Fri
Oct 21 10:29:21 PDT 2016", "DatasetId": [...]
+{ "DataverseName": "Metadata", "DatasetName": "FullTextConfig",
"DatatypeDataverseName": "Metadata", "DatatypeName":
"FullTextConfigRecordType", "DatasetType": "INTERNAL", "GroupName":
"MetadataGroup", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "DataverseName" ], [
"FullTextConfigName" ] ], "PrimaryKey": [ [ "DataverseName" ], [
"FullTextConfigName" ] ], "Autogenerated": false }, "Hints": {{ }},
"Timestamp": "Thu Oct 29 16:14:12 [...]
+{ "DataverseName": "Metadata", "DatasetName": "FullTextFilter",
"DatatypeDataverseName": "Metadata", "DatatypeName":
"FullTextFilterRecordType", "DatasetType": "INTERNAL", "GroupName":
"MetadataGroup", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "DataverseName" ], [
"FullTextFilterName" ] ], "PrimaryKey": [ [ "DataverseName" ], [
"FullTextFilterName" ] ], "Autogenerated": false }, "Hints": {{ }},
"Timestamp": "Thu Oct 29 16:14:12 [...]
+{ "DataverseName": "Metadata", "DatasetName": "Function",
"DatatypeDataverseName": "Metadata", "DatatypeName": "FunctionRecordType",
"DatasetType": "INTERNAL", "GroupName": "MetadataGroup", "InternalDetails": {
"FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [
[ "DataverseName" ], [ "Name" ], [ "Arity" ] ], "PrimaryKey": [ [
"DataverseName" ], [ "Name" ], [ "Arity" ] ], "Autogenerated": false },
"Hints": {{ }}, "Timestamp": "Fri Oct 21 10:29:21 PDT 2016", "D [...]
+{ "DataverseName": "Metadata", "DatasetName": "Index",
"DatatypeDataverseName": "Metadata", "DatatypeName": "IndexRecordType",
"DatasetType": "INTERNAL", "GroupName": "MetadataGroup", "InternalDetails": {
"FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [
[ "DataverseName" ], [ "DatasetName" ], [ "IndexName" ] ], "PrimaryKey": [ [
"DataverseName" ], [ "DatasetName" ], [ "IndexName" ] ], "Autogenerated": false
}, "Hints": {{ }}, "Timestamp": "Fri Oct 21 10:29: [...]
+{ "DataverseName": "Metadata", "DatasetName": "Library",
"DatatypeDataverseName": "Metadata", "DatatypeName": "LibraryRecordType",
"DatasetType": "INTERNAL", "GroupName": "MetadataGroup", "InternalDetails": {
"FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [
[ "DataverseName" ], [ "Name" ] ], "PrimaryKey": [ [ "DataverseName" ], [
"Name" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Fri Oct 21
10:29:21 PDT 2016", "DatasetId": 9, "PendingOp": 0 [...]
+{ "DataverseName": "Metadata", "DatasetName": "Node", "DatatypeDataverseName":
"Metadata", "DatatypeName": "NodeRecordType", "DatasetType": "INTERNAL",
"GroupName": "MetadataGroup", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "NodeName" ] ],
"PrimaryKey": [ [ "NodeName" ] ], "Autogenerated": false }, "Hints": {{ }},
"Timestamp": "Fri Oct 21 10:29:21 PDT 2016", "DatasetId": 5, "PendingOp": 0,
"DatasetFormat": { "Format": "ROW" } }
+{ "DataverseName": "Metadata", "DatasetName": "Nodegroup",
"DatatypeDataverseName": "Metadata", "DatatypeName": "NodeGroupRecordType",
"DatasetType": "INTERNAL", "GroupName": "MetadataGroup", "InternalDetails": {
"FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [
[ "GroupName" ] ], "PrimaryKey": [ [ "GroupName" ] ], "Autogenerated": false },
"Hints": {{ }}, "Timestamp": "Fri Oct 21 10:29:21 PDT 2016", "DatasetId": 6,
"PendingOp": 0, "DatasetFormat": { "Format [...]
+{ "DataverseName": "Metadata", "DatasetName": "Synonym",
"DatatypeDataverseName": "Metadata", "DatatypeName": "SynonymRecordType",
"DatasetType": "INTERNAL", "GroupName": "MetadataGroup", "InternalDetails": {
"FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [
[ "DataverseName" ], [ "SynonymName" ] ], "PrimaryKey": [ [ "DataverseName" ],
[ "SynonymName" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp":
"Tue Dec 17 10:36:07 PST 2019", "DatasetId": 15, [...]
\ No newline at end of file
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cross-dataverse/cross-dv02/cross-dv02.3.query.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cross-dataverse/cross-dv02/cross-dv02.3.query.sqlpp
index d71e6f5cca..22f7d8b1ec 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cross-dataverse/cross-dv02/cross-dv02.3.query.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cross-dataverse/cross-dv02/cross-dv02.3.query.sqlpp
@@ -30,8 +30,6 @@ select l.DataverseName,
l.DatatypeName,
l.DatasetType,
l.GroupName,
- l.CompactionPolicy,
- l.CompactionPolicyProperties,
l.InternalDetails,
l.`Hints`,
l.Timestamp,
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cross-dataverse/cross-dv04/cross-dv04.3.query.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cross-dataverse/cross-dv04/cross-dv04.3.query.sqlpp
index 5435d9ea57..d078f57423 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cross-dataverse/cross-dv04/cross-dv04.3.query.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cross-dataverse/cross-dv04/cross-dv04.3.query.sqlpp
@@ -33,8 +33,6 @@ select l.DataverseName,
l.DatatypeName,
l.DatasetType,
l.GroupName,
- l.CompactionPolicy,
- l.CompactionPolicyProperties,
l.InternalDetails,
l.`Hints`,
l.Timestamp,
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cross-dataverse/cross-dv19/cross-dv19.3.query.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cross-dataverse/cross-dv19/cross-dv19.3.query.sqlpp
index c7ef7cdb20..5def8ec874 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cross-dataverse/cross-dv19/cross-dv19.3.query.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cross-dataverse/cross-dv19/cross-dv19.3.query.sqlpp
@@ -28,8 +28,6 @@ select l.DataverseName,
l.DatatypeName,
l.DatasetType,
l.GroupName,
- l.CompactionPolicy,
- l.CompactionPolicyProperties,
l.ExternalDetails,
l.InternalDetails,
l.`Hints`,
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/udf23/udf23.3.query.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/udf23/udf23.3.query.sqlpp
index 91359a71d4..6cf32380e2 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/udf23/udf23.3.query.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/user-defined-functions/udf23/udf23.3.query.sqlpp
@@ -25,7 +25,20 @@
use test;
-select element l
+select l.DatabaseName,
+ l.DataverseName,
+ l.DatasetName,
+ l.DatatypeDataverseName,
+ l.DatatypeName,
+ l.DatasetType,
+ l.GroupName,
+ l.InternalDetails,
+ l.`Hints`,
+ l.Timestamp,
+ l.DatasetId,
+ l.PendingOp,
+ l.DatatypeDatabaseName,
+ l.DatasetFormat
from `Metadata`.`Dataset` as l
where (l.DataverseName = 'Metadata')
order by l.DatasetName
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv02/cross-dv02.1.adm
b/asterixdb/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv02/cross-dv02.1.adm
index 57f1f411a9..59b046b6ad 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv02/cross-dv02.1.adm
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv02/cross-dv02.1.adm
@@ -1,4 +1,4 @@
-{ "DataverseName": "student", "DatasetName": "gdstd", "DatatypeDataverseName":
"student", "DatatypeName": "stdType", "DatasetType": "INTERNAL", "GroupName":
"student.gdstd", "CompactionPolicy": "concurrent",
"CompactionPolicyProperties": [ { "Name": "max-component-count", "Value": "30"
}, { "Name": "min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": "BTREE", [...]
-{ "DataverseName": "teacher", "DatasetName": "prof", "DatatypeDataverseName":
"teacher", "DatatypeName": "tchrType", "DatasetType": "INTERNAL", "GroupName":
"teacher.prof", "CompactionPolicy": "concurrent", "CompactionPolicyProperties":
[ { "Name": "max-component-count", "Value": "30" }, { "Name":
"min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": "BTREE", " [...]
-{ "DataverseName": "teacher", "DatasetName": "pstdoc",
"DatatypeDataverseName": "teacher", "DatatypeName": "tchrType", "DatasetType":
"INTERNAL", "GroupName": "teacher.pstdoc", "CompactionPolicy": "concurrent",
"CompactionPolicyProperties": [ { "Name": "max-component-count", "Value": "30"
}, { "Name": "min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": "BTREE [...]
-{ "DataverseName": "student", "DatasetName": "ugdstd",
"DatatypeDataverseName": "student", "DatatypeName": "stdType", "DatasetType":
"INTERNAL", "GroupName": "student.ugdstd", "CompactionPolicy": "concurrent",
"CompactionPolicyProperties": [ { "Name": "max-component-count", "Value": "30"
}, { "Name": "min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": "BTREE" [...]
+{ "DataverseName": "student", "DatasetName": "gdstd", "DatatypeDataverseName":
"student", "DatatypeName": "stdType", "DatasetType": "INTERNAL", "GroupName":
"student.gdstd", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "id" ] ], "PrimaryKey":
[ [ "id" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Thu Jun
27 05:50:01 UTC 2019", "DatasetId": 3091, "PendingOp": 0 }
+{ "DataverseName": "teacher", "DatasetName": "prof", "DatatypeDataverseName":
"teacher", "DatatypeName": "tchrType", "DatasetType": "INTERNAL", "GroupName":
"teacher.prof", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "id" ] ], "PrimaryKey":
[ [ "id" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Tue Jun
21 16:06:36 PDT 2016", "DatasetId": 1861, "PendingOp": 0 }
+{ "DataverseName": "teacher", "DatasetName": "pstdoc",
"DatatypeDataverseName": "teacher", "DatatypeName": "tchrType", "DatasetType":
"INTERNAL", "GroupName": "teacher.pstdoc", "InternalDetails": {
"FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [
[ "id" ] ], "PrimaryKey": [ [ "id" ] ], "Autogenerated": false }, "Hints": {{
}}, "Timestamp": "Tue Jun 21 16:06:36 PDT 2016", "DatasetId": 1862,
"PendingOp": 0 }
+{ "DataverseName": "student", "DatasetName": "ugdstd",
"DatatypeDataverseName": "student", "DatatypeName": "stdType", "DatasetType":
"INTERNAL", "GroupName": "student.ugdstd", "InternalDetails": {
"FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [
[ "id" ] ], "PrimaryKey": [ [ "id" ] ], "Autogenerated": false }, "Hints": {{
}}, "Timestamp": "Tue Jun 21 16:06:36 PDT 2016", "DatasetId": 1859,
"PendingOp": 0 }
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv04/cross-dv04.1.adm
b/asterixdb/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv04/cross-dv04.1.adm
index 57f1f411a9..59b046b6ad 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv04/cross-dv04.1.adm
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv04/cross-dv04.1.adm
@@ -1,4 +1,4 @@
-{ "DataverseName": "student", "DatasetName": "gdstd", "DatatypeDataverseName":
"student", "DatatypeName": "stdType", "DatasetType": "INTERNAL", "GroupName":
"student.gdstd", "CompactionPolicy": "concurrent",
"CompactionPolicyProperties": [ { "Name": "max-component-count", "Value": "30"
}, { "Name": "min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": "BTREE", [...]
-{ "DataverseName": "teacher", "DatasetName": "prof", "DatatypeDataverseName":
"teacher", "DatatypeName": "tchrType", "DatasetType": "INTERNAL", "GroupName":
"teacher.prof", "CompactionPolicy": "concurrent", "CompactionPolicyProperties":
[ { "Name": "max-component-count", "Value": "30" }, { "Name":
"min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": "BTREE", " [...]
-{ "DataverseName": "teacher", "DatasetName": "pstdoc",
"DatatypeDataverseName": "teacher", "DatatypeName": "tchrType", "DatasetType":
"INTERNAL", "GroupName": "teacher.pstdoc", "CompactionPolicy": "concurrent",
"CompactionPolicyProperties": [ { "Name": "max-component-count", "Value": "30"
}, { "Name": "min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": "BTREE [...]
-{ "DataverseName": "student", "DatasetName": "ugdstd",
"DatatypeDataverseName": "student", "DatatypeName": "stdType", "DatasetType":
"INTERNAL", "GroupName": "student.ugdstd", "CompactionPolicy": "concurrent",
"CompactionPolicyProperties": [ { "Name": "max-component-count", "Value": "30"
}, { "Name": "min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": "BTREE" [...]
+{ "DataverseName": "student", "DatasetName": "gdstd", "DatatypeDataverseName":
"student", "DatatypeName": "stdType", "DatasetType": "INTERNAL", "GroupName":
"student.gdstd", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "id" ] ], "PrimaryKey":
[ [ "id" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Thu Jun
27 05:50:01 UTC 2019", "DatasetId": 3091, "PendingOp": 0 }
+{ "DataverseName": "teacher", "DatasetName": "prof", "DatatypeDataverseName":
"teacher", "DatatypeName": "tchrType", "DatasetType": "INTERNAL", "GroupName":
"teacher.prof", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "id" ] ], "PrimaryKey":
[ [ "id" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Tue Jun
21 16:06:36 PDT 2016", "DatasetId": 1861, "PendingOp": 0 }
+{ "DataverseName": "teacher", "DatasetName": "pstdoc",
"DatatypeDataverseName": "teacher", "DatatypeName": "tchrType", "DatasetType":
"INTERNAL", "GroupName": "teacher.pstdoc", "InternalDetails": {
"FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [
[ "id" ] ], "PrimaryKey": [ [ "id" ] ], "Autogenerated": false }, "Hints": {{
}}, "Timestamp": "Tue Jun 21 16:06:36 PDT 2016", "DatasetId": 1862,
"PendingOp": 0 }
+{ "DataverseName": "student", "DatasetName": "ugdstd",
"DatatypeDataverseName": "student", "DatatypeName": "stdType", "DatasetType":
"INTERNAL", "GroupName": "student.ugdstd", "InternalDetails": {
"FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [
[ "id" ] ], "PrimaryKey": [ [ "id" ] ], "Autogenerated": false }, "Hints": {{
}}, "Timestamp": "Tue Jun 21 16:06:36 PDT 2016", "DatasetId": 1859,
"PendingOp": 0 }
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv19/cross-dv19.1.adm
b/asterixdb/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv19/cross-dv19.1.adm
index e8e2aac324..0fd3c66d3e 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv19/cross-dv19.1.adm
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/results/cross-dataverse/cross-dv19/cross-dv19.1.adm
@@ -1,7 +1,7 @@
-{ "DataverseName": "test1", "DatasetName": "TwitterData",
"DatatypeDataverseName": "test1", "DatatypeName": "Tweet", "DatasetType":
"EXTERNAL", "GroupName": "test1.TwitterData", "CompactionPolicy": "concurrent",
"CompactionPolicyProperties": [ { "Name": "max-component-count", "Value": "30"
}, { "Name": "min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "ExternalDetails": { "DatasourceAdapter": " [...]
-{ "DataverseName": "test1", "DatasetName": "t1", "DatatypeDataverseName":
"test1", "DatatypeName": "testtype", "DatasetType": "INTERNAL", "GroupName":
"test1.t1", "CompactionPolicy": "concurrent", "CompactionPolicyProperties": [ {
"Name": "max-component-count", "Value": "30" }, { "Name":
"min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": "BTREE", "Partitioni [...]
-{ "DataverseName": "test1", "DatasetName": "t2", "DatatypeDataverseName":
"test1", "DatatypeName": "testtype", "DatasetType": "INTERNAL", "GroupName":
"test1.t2", "CompactionPolicy": "concurrent", "CompactionPolicyProperties": [ {
"Name": "max-component-count", "Value": "30" }, { "Name":
"min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": "BTREE", "Partitioni [...]
-{ "DataverseName": "test1", "DatasetName": "t3", "DatatypeDataverseName":
"test1", "DatatypeName": "testtype", "DatasetType": "INTERNAL", "GroupName":
"test1.t3", "CompactionPolicy": "concurrent", "CompactionPolicyProperties": [ {
"Name": "max-component-count", "Value": "30" }, { "Name":
"min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": "BTREE", "Partitioni [...]
-{ "DataverseName": "test2", "DatasetName": "t2", "DatatypeDataverseName":
"test2", "DatatypeName": "testtype", "DatasetType": "INTERNAL", "GroupName":
"test2.t2", "CompactionPolicy": "concurrent", "CompactionPolicyProperties": [ {
"Name": "max-component-count", "Value": "30" }, { "Name":
"min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": "BTREE", "Partitioni [...]
-{ "DataverseName": "test2", "DatasetName": "t3", "DatatypeDataverseName":
"test2", "DatatypeName": "testtype", "DatasetType": "INTERNAL", "GroupName":
"test2.t3", "CompactionPolicy": "concurrent", "CompactionPolicyProperties": [ {
"Name": "max-component-count", "Value": "30" }, { "Name":
"min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": "BTREE", "Partitioni [...]
-{ "DataverseName": "test2", "DatasetName": "t4", "DatatypeDataverseName":
"test2", "DatatypeName": "testtype", "DatasetType": "INTERNAL", "GroupName":
"test2.t4", "CompactionPolicy": "concurrent", "CompactionPolicyProperties": [ {
"Name": "max-component-count", "Value": "30" }, { "Name":
"min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": "BTREE", "Partitioni [...]
+{ "DataverseName": "test1", "DatasetName": "TwitterData",
"DatatypeDataverseName": "test1", "DatatypeName": "Tweet", "DatasetType":
"EXTERNAL", "GroupName": "test1.TwitterData", "ExternalDetails": {
"DatasourceAdapter": "localfs", "Properties": [ { "Name": "path", "Value":
"asterix_nc1://data/twitter/extrasmalltweets.txt" }, { "Name": "format",
"Value": "adm" } ], "LastRefreshTime": datetime("2019-06-28T05:02:44.665Z"),
"TransactionState": 0 }, "Hints": {{ }}, "Timestamp": "Thu Jun 27 2 [...]
+{ "DataverseName": "test1", "DatasetName": "t1", "DatatypeDataverseName":
"test1", "DatatypeName": "testtype", "DatasetType": "INTERNAL", "GroupName":
"test1.t1", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "id" ] ], "PrimaryKey":
[ [ "id" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Thu Jun
27 22:02:44 PDT 2019", "DatasetId": 122, "PendingOp": 0 }
+{ "DataverseName": "test1", "DatasetName": "t2", "DatatypeDataverseName":
"test1", "DatatypeName": "testtype", "DatasetType": "INTERNAL", "GroupName":
"test1.t2", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "id" ] ], "PrimaryKey":
[ [ "id" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Thu Jun
27 22:02:44 PDT 2019", "DatasetId": 125, "PendingOp": 0 }
+{ "DataverseName": "test1", "DatasetName": "t3", "DatatypeDataverseName":
"test1", "DatatypeName": "testtype", "DatasetType": "INTERNAL", "GroupName":
"test1.t3", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "id" ] ], "PrimaryKey":
[ [ "id" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Thu Jun
27 22:02:44 PDT 2019", "DatasetId": 126, "PendingOp": 0 }
+{ "DataverseName": "test2", "DatasetName": "t2", "DatatypeDataverseName":
"test2", "DatatypeName": "testtype", "DatasetType": "INTERNAL", "GroupName":
"test2.t2", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "id" ] ], "PrimaryKey":
[ [ "id" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Thu Jun
27 22:02:44 PDT 2019", "DatasetId": 123, "PendingOp": 0 }
+{ "DataverseName": "test2", "DatasetName": "t3", "DatatypeDataverseName":
"test2", "DatatypeName": "testtype", "DatasetType": "INTERNAL", "GroupName":
"test2.t3", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "id" ] ], "PrimaryKey":
[ [ "id" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Thu Jun
27 22:02:44 PDT 2019", "DatasetId": 124, "PendingOp": 0 }
+{ "DataverseName": "test2", "DatasetName": "t4", "DatatypeDataverseName":
"test2", "DatatypeName": "testtype", "DatasetType": "INTERNAL", "GroupName":
"test2.t4", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "id" ] ], "PrimaryKey":
[ [ "id" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Thu Jun
27 22:02:44 PDT 2019", "DatasetId": 127, "PendingOp": 0 }
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/udf23/udf23.1.adm
b/asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/udf23/udf23.1.adm
index c69e050242..aa1085277f 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/udf23/udf23.1.adm
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/udf23/udf23.1.adm
@@ -1,6 +1,6 @@
-{ "DataverseName": "Metadata", "DatasetName": "CompactionPolicy",
"DatatypeDataverseName": "Metadata", "DatatypeName":
"CompactionPolicyRecordType", "DatasetType": "INTERNAL", "GroupName":
"MetadataGroup", "CompactionPolicy": "concurrent",
"CompactionPolicyProperties": [ { "Name": "max-component-count", "Value": "30"
}, { "Name": "min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetail [...]
-{ "DataverseName": "Metadata", "DatasetName": "Dataset",
"DatatypeDataverseName": "Metadata", "DatatypeName": "DatasetRecordType",
"DatasetType": "INTERNAL", "GroupName": "MetadataGroup", "CompactionPolicy":
"concurrent", "CompactionPolicyProperties": [ { "Name": "max-component-count",
"Value": "30" }, { "Name": "min-merge-component-count", "Value": "3" }, {
"Name": "max-merge-component-count", "Value": "10" }, { "Name": "size-ratio",
"Value": "1.2" } ], "InternalDetails": { "FileStructu [...]
-{ "DataverseName": "Metadata", "DatasetName": "DatasourceAdapter",
"DatatypeDataverseName": "Metadata", "DatatypeName":
"DatasourceAdapterRecordType", "DatasetType": "INTERNAL", "GroupName":
"MetadataGroup", "CompactionPolicy": "concurrent",
"CompactionPolicyProperties": [ { "Name": "max-component-count", "Value": "30"
}, { "Name": "min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDeta [...]
-{ "DataverseName": "Metadata", "DatasetName": "Datatype",
"DatatypeDataverseName": "Metadata", "DatatypeName": "DatatypeRecordType",
"DatasetType": "INTERNAL", "GroupName": "MetadataGroup", "CompactionPolicy":
"concurrent", "CompactionPolicyProperties": [ { "Name": "max-component-count",
"Value": "30" }, { "Name": "min-merge-component-count", "Value": "3" }, {
"Name": "max-merge-component-count", "Value": "10" }, { "Name": "size-ratio",
"Value": "1.2" } ], "InternalDetails": { "FileStruc [...]
-{ "DataverseName": "Metadata", "DatasetName": "Dataverse",
"DatatypeDataverseName": "Metadata", "DatatypeName": "DataverseRecordType",
"DatasetType": "INTERNAL", "GroupName": "MetadataGroup", "CompactionPolicy":
"concurrent", "CompactionPolicyProperties": [ { "Name": "max-component-count",
"Value": "30" }, { "Name": "min-merge-component-count", "Value": "3" }, {
"Name": "max-merge-component-count", "Value": "10" }, { "Name": "size-ratio",
"Value": "1.2" } ], "InternalDetails": { "FileStr [...]
-{ "DataverseName": "Metadata", "DatasetName": "ExternalFile",
"DatatypeDataverseName": "Metadata", "DatatypeName": "ExternalFileRecordType",
"DatasetType": "INTERNAL", "GroupName": "MetadataGroup", "CompactionPolicy":
"concurrent", "CompactionPolicyProperties": [ { "Name": "max-component-count",
"Value": "30" }, { "Name": "min-merge-component-count", "Value": "3" }, {
"Name": "max-merge-component-count", "Value": "10" }, { "Name": "size-ratio",
"Value": "1.2" } ], "InternalDetails": { "F [...]
+{ "DataverseName": "Metadata", "DatasetName": "CompactionPolicy",
"DatatypeDataverseName": "Metadata", "DatatypeName":
"CompactionPolicyRecordType", "DatasetType": "INTERNAL", "GroupName":
"MetadataGroup", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "DataverseName" ], [
"CompactionPolicy" ] ], "PrimaryKey": [ [ "DataverseName" ], [
"CompactionPolicy" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp":
"Fri May 19 12:41:05 [...]
+{ "DataverseName": "Metadata", "DatasetName": "Dataset",
"DatatypeDataverseName": "Metadata", "DatatypeName": "DatasetRecordType",
"DatasetType": "INTERNAL", "GroupName": "MetadataGroup", "InternalDetails": {
"FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [
[ "DataverseName" ], [ "DatasetName" ] ], "PrimaryKey": [ [ "DataverseName" ],
[ "DatasetName" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp":
"Fri May 19 12:41:05 PDT 2023", "DatasetId": 2, [...]
+{ "DataverseName": "Metadata", "DatasetName": "DatasourceAdapter",
"DatatypeDataverseName": "Metadata", "DatatypeName":
"DatasourceAdapterRecordType", "DatasetType": "INTERNAL", "GroupName":
"MetadataGroup", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "DataverseName" ], [
"Name" ] ], "PrimaryKey": [ [ "DataverseName" ], [ "Name" ] ], "Autogenerated":
false }, "Hints": {{ }}, "Timestamp": "Fri May 19 12:41:05 PDT 2023",
"DatasetId [...]
+{ "DataverseName": "Metadata", "DatasetName": "Datatype",
"DatatypeDataverseName": "Metadata", "DatatypeName": "DatatypeRecordType",
"DatasetType": "INTERNAL", "GroupName": "MetadataGroup", "InternalDetails": {
"FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [
[ "DataverseName" ], [ "DatatypeName" ] ], "PrimaryKey": [ [ "DataverseName" ],
[ "DatatypeName" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp":
"Fri May 19 12:41:05 PDT 2023", "DatasetId": [...]
+{ "DataverseName": "Metadata", "DatasetName": "Dataverse",
"DatatypeDataverseName": "Metadata", "DatatypeName": "DataverseRecordType",
"DatasetType": "INTERNAL", "GroupName": "MetadataGroup", "InternalDetails": {
"FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [
[ "DataverseName" ] ], "PrimaryKey": [ [ "DataverseName" ] ], "Autogenerated":
false }, "Hints": {{ }}, "Timestamp": "Fri May 19 12:41:05 PDT 2023",
"DatasetId": 1, "PendingOp": 0, "DatasetFormat": { [...]
+{ "DataverseName": "Metadata", "DatasetName": "ExternalFile",
"DatatypeDataverseName": "Metadata", "DatatypeName": "ExternalFileRecordType",
"DatasetType": "INTERNAL", "GroupName": "MetadataGroup", "InternalDetails": {
"FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [
[ "DataverseName" ], [ "DatasetName" ], [ "FileNumber" ] ], "PrimaryKey": [ [
"DataverseName" ], [ "DatasetName" ], [ "FileNumber" ] ], "Autogenerated":
false }, "Hints": {{ }}, "Timestamp": "F [...]
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/results_cloud/cross-dataverse/cross-dv02/cross-dv02.1.adm
b/asterixdb/asterix-app/src/test/resources/runtimets/results_cloud/cross-dataverse/cross-dv02/cross-dv02.1.adm
index 95c9207dcc..72b4b85135 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/results_cloud/cross-dataverse/cross-dv02/cross-dv02.1.adm
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/results_cloud/cross-dataverse/cross-dv02/cross-dv02.1.adm
@@ -1,4 +1,4 @@
-{ "DataverseName": "student", "DatasetName": "gdstd", "DatatypeDataverseName":
"student", "DatatypeName": "stdType", "DatasetType": "INTERNAL", "GroupName":
"Default.student.gdstd", "CompactionPolicy": "concurrent",
"CompactionPolicyProperties": [ { "Name": "max-component-count", "Value": "30"
}, { "Name": "min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": " [...]
-{ "DataverseName": "teacher", "DatasetName": "prof", "DatatypeDataverseName":
"teacher", "DatatypeName": "tchrType", "DatasetType": "INTERNAL", "GroupName":
"Default.teacher.prof", "CompactionPolicy": "concurrent",
"CompactionPolicyProperties": [ { "Name": "max-component-count", "Value": "30"
}, { "Name": "min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": "B [...]
-{ "DataverseName": "teacher", "DatasetName": "pstdoc",
"DatatypeDataverseName": "teacher", "DatatypeName": "tchrType", "DatasetType":
"INTERNAL", "GroupName": "Default.teacher.pstdoc", "CompactionPolicy":
"concurrent", "CompactionPolicyProperties": [ { "Name": "max-component-count",
"Value": "30" }, { "Name": "min-merge-component-count", "Value": "3" }, {
"Name": "max-merge-component-count", "Value": "10" }, { "Name": "size-ratio",
"Value": "1.2" } ], "InternalDetails": { "FileStructure" [...]
-{ "DataverseName": "student", "DatasetName": "ugdstd",
"DatatypeDataverseName": "student", "DatatypeName": "stdType", "DatasetType":
"INTERNAL", "GroupName": "Default.student.ugdstd", "CompactionPolicy":
"concurrent", "CompactionPolicyProperties": [ { "Name": "max-component-count",
"Value": "30" }, { "Name": "min-merge-component-count", "Value": "3" }, {
"Name": "max-merge-component-count", "Value": "10" }, { "Name": "size-ratio",
"Value": "1.2" } ], "InternalDetails": { "FileStructure": [...]
\ No newline at end of file
+{ "DataverseName": "student", "DatasetName": "gdstd", "DatatypeDataverseName":
"student", "DatatypeName": "stdType", "DatasetType": "INTERNAL", "GroupName":
"Default.student.gdstd", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "id" ] ], "PrimaryKey":
[ [ "id" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Thu Nov
09 23:39:28 PST 2023", "DatasetId": 103, "PendingOp": 0 }
+{ "DataverseName": "teacher", "DatasetName": "prof", "DatatypeDataverseName":
"teacher", "DatatypeName": "tchrType", "DatasetType": "INTERNAL", "GroupName":
"Default.teacher.prof", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "id" ] ], "PrimaryKey":
[ [ "id" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Thu Nov
09 23:39:28 PST 2023", "DatasetId": 104, "PendingOp": 0 }
+{ "DataverseName": "teacher", "DatasetName": "pstdoc",
"DatatypeDataverseName": "teacher", "DatatypeName": "tchrType", "DatasetType":
"INTERNAL", "GroupName": "Default.teacher.pstdoc", "InternalDetails": {
"FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [
[ "id" ] ], "PrimaryKey": [ [ "id" ] ], "Autogenerated": false }, "Hints": {{
}}, "Timestamp": "Thu Nov 09 23:39:28 PST 2023", "DatasetId": 105, "PendingOp":
0 }
+{ "DataverseName": "student", "DatasetName": "ugdstd",
"DatatypeDataverseName": "student", "DatatypeName": "stdType", "DatasetType":
"INTERNAL", "GroupName": "Default.student.ugdstd", "InternalDetails": {
"FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [
[ "id" ] ], "PrimaryKey": [ [ "id" ] ], "Autogenerated": false }, "Hints": {{
}}, "Timestamp": "Thu Nov 09 23:39:27 PST 2023", "DatasetId": 102, "PendingOp":
0 }
\ No newline at end of file
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/results_cloud/cross-dataverse/cross-dv04/cross-dv04.1.adm
b/asterixdb/asterix-app/src/test/resources/runtimets/results_cloud/cross-dataverse/cross-dv04/cross-dv04.1.adm
index d20b7d6cbb..8f90b6ebbe 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/results_cloud/cross-dataverse/cross-dv04/cross-dv04.1.adm
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/results_cloud/cross-dataverse/cross-dv04/cross-dv04.1.adm
@@ -1,4 +1,4 @@
-{ "DataverseName": "student", "DatasetName": "gdstd", "DatatypeDataverseName":
"student", "DatatypeName": "stdType", "DatasetType": "INTERNAL", "GroupName":
"Default.student.gdstd", "CompactionPolicy": "concurrent",
"CompactionPolicyProperties": [ { "Name": "max-component-count", "Value": "30"
}, { "Name": "min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": " [...]
-{ "DataverseName": "teacher", "DatasetName": "prof", "DatatypeDataverseName":
"teacher", "DatatypeName": "tchrType", "DatasetType": "INTERNAL", "GroupName":
"Default.teacher.prof", "CompactionPolicy": "concurrent",
"CompactionPolicyProperties": [ { "Name": "max-component-count", "Value": "30"
}, { "Name": "min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": "B [...]
-{ "DataverseName": "teacher", "DatasetName": "pstdoc",
"DatatypeDataverseName": "teacher", "DatatypeName": "tchrType", "DatasetType":
"INTERNAL", "GroupName": "Default.teacher.pstdoc", "CompactionPolicy":
"concurrent", "CompactionPolicyProperties": [ { "Name": "max-component-count",
"Value": "30" }, { "Name": "min-merge-component-count", "Value": "3" }, {
"Name": "max-merge-component-count", "Value": "10" }, { "Name": "size-ratio",
"Value": "1.2" } ], "InternalDetails": { "FileStructure" [...]
-{ "DataverseName": "student", "DatasetName": "ugdstd",
"DatatypeDataverseName": "student", "DatatypeName": "stdType", "DatasetType":
"INTERNAL", "GroupName": "Default.student.ugdstd", "CompactionPolicy":
"concurrent", "CompactionPolicyProperties": [ { "Name": "max-component-count",
"Value": "30" }, { "Name": "min-merge-component-count", "Value": "3" }, {
"Name": "max-merge-component-count", "Value": "10" }, { "Name": "size-ratio",
"Value": "1.2" } ], "InternalDetails": { "FileStructure": [...]
\ No newline at end of file
+{ "DataverseName": "student", "DatasetName": "gdstd", "DatatypeDataverseName":
"student", "DatatypeName": "stdType", "DatasetType": "INTERNAL", "GroupName":
"Default.student.gdstd", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "id" ] ], "PrimaryKey":
[ [ "id" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Thu Nov
09 23:39:32 PST 2023", "DatasetId": 111, "PendingOp": 0 }
+{ "DataverseName": "teacher", "DatasetName": "prof", "DatatypeDataverseName":
"teacher", "DatatypeName": "tchrType", "DatasetType": "INTERNAL", "GroupName":
"Default.teacher.prof", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "id" ] ], "PrimaryKey":
[ [ "id" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Thu Nov
09 23:39:32 PST 2023", "DatasetId": 112, "PendingOp": 0 }
+{ "DataverseName": "teacher", "DatasetName": "pstdoc",
"DatatypeDataverseName": "teacher", "DatatypeName": "tchrType", "DatasetType":
"INTERNAL", "GroupName": "Default.teacher.pstdoc", "InternalDetails": {
"FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [
[ "id" ] ], "PrimaryKey": [ [ "id" ] ], "Autogenerated": false }, "Hints": {{
}}, "Timestamp": "Thu Nov 09 23:39:33 PST 2023", "DatasetId": 113, "PendingOp":
0 }
+{ "DataverseName": "student", "DatasetName": "ugdstd",
"DatatypeDataverseName": "student", "DatatypeName": "stdType", "DatasetType":
"INTERNAL", "GroupName": "Default.student.ugdstd", "InternalDetails": {
"FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [
[ "id" ] ], "PrimaryKey": [ [ "id" ] ], "Autogenerated": false }, "Hints": {{
}}, "Timestamp": "Thu Nov 09 23:39:32 PST 2023", "DatasetId": 110, "PendingOp":
0 }
\ No newline at end of file
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/results_cloud/cross-dataverse/cross-dv19/cross-dv19.1.adm
b/asterixdb/asterix-app/src/test/resources/runtimets/results_cloud/cross-dataverse/cross-dv19/cross-dv19.1.adm
index 6c7097a440..2c50ddc633 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/results_cloud/cross-dataverse/cross-dv19/cross-dv19.1.adm
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/results_cloud/cross-dataverse/cross-dv19/cross-dv19.1.adm
@@ -1,7 +1,7 @@
-{ "DataverseName": "test1", "DatasetName": "TwitterData",
"DatatypeDataverseName": "test1", "DatatypeName": "Tweet", "DatasetType":
"EXTERNAL", "GroupName": "Default.test1.TwitterData", "CompactionPolicy":
"concurrent", "CompactionPolicyProperties": [ { "Name": "max-component-count",
"Value": "30" }, { "Name": "min-merge-component-count", "Value": "3" }, {
"Name": "max-merge-component-count", "Value": "10" }, { "Name": "size-ratio",
"Value": "1.2" } ], "ExternalDetails": { "DatasourceAda [...]
-{ "DataverseName": "test1", "DatasetName": "t1", "DatatypeDataverseName":
"test1", "DatatypeName": "testtype", "DatasetType": "INTERNAL", "GroupName":
"Default.test1.t1", "CompactionPolicy": "concurrent",
"CompactionPolicyProperties": [ { "Name": "max-component-count", "Value": "30"
}, { "Name": "min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": "BTREE", "Pa [...]
-{ "DataverseName": "test1", "DatasetName": "t2", "DatatypeDataverseName":
"test1", "DatatypeName": "testtype", "DatasetType": "INTERNAL", "GroupName":
"Default.test1.t2", "CompactionPolicy": "concurrent",
"CompactionPolicyProperties": [ { "Name": "max-component-count", "Value": "30"
}, { "Name": "min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": "BTREE", "Pa [...]
-{ "DataverseName": "test1", "DatasetName": "t3", "DatatypeDataverseName":
"test1", "DatatypeName": "testtype", "DatasetType": "INTERNAL", "GroupName":
"Default.test1.t3", "CompactionPolicy": "concurrent",
"CompactionPolicyProperties": [ { "Name": "max-component-count", "Value": "30"
}, { "Name": "min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": "BTREE", "Pa [...]
-{ "DataverseName": "test2", "DatasetName": "t2", "DatatypeDataverseName":
"test2", "DatatypeName": "testtype", "DatasetType": "INTERNAL", "GroupName":
"Default.test2.t2", "CompactionPolicy": "concurrent",
"CompactionPolicyProperties": [ { "Name": "max-component-count", "Value": "30"
}, { "Name": "min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": "BTREE", "Pa [...]
-{ "DataverseName": "test2", "DatasetName": "t3", "DatatypeDataverseName":
"test2", "DatatypeName": "testtype", "DatasetType": "INTERNAL", "GroupName":
"Default.test2.t3", "CompactionPolicy": "concurrent",
"CompactionPolicyProperties": [ { "Name": "max-component-count", "Value": "30"
}, { "Name": "min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": "BTREE", "Pa [...]
-{ "DataverseName": "test2", "DatasetName": "t4", "DatatypeDataverseName":
"test2", "DatatypeName": "testtype", "DatasetType": "INTERNAL", "GroupName":
"Default.test2.t4", "CompactionPolicy": "concurrent",
"CompactionPolicyProperties": [ { "Name": "max-component-count", "Value": "30"
}, { "Name": "min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
"1.2" } ], "InternalDetails": { "FileStructure": "BTREE", "Pa [...]
\ No newline at end of file
+{ "DataverseName": "test1", "DatasetName": "TwitterData",
"DatatypeDataverseName": "test1", "DatatypeName": "Tweet", "DatasetType":
"EXTERNAL", "GroupName": "Default.test1.TwitterData", "ExternalDetails": {
"DatasourceAdapter": "localfs", "Properties": [ { "Name": "path", "Value":
"asterix_nc1://data/twitter/extrasmalltweets.txt" }, { "Name": "format",
"Value": "adm" } ], "LastRefreshTime": datetime("2023-11-10T07:39:34.975"),
"TransactionState": 0 }, "Hints": {{ }}, "Timestamp": "Thu N [...]
+{ "DataverseName": "test1", "DatasetName": "t1", "DatatypeDataverseName":
"test1", "DatatypeName": "testtype", "DatasetType": "INTERNAL", "GroupName":
"Default.test1.t1", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "id" ] ], "PrimaryKey":
[ [ "id" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Thu Nov
09 23:39:33 PST 2023", "DatasetId": 114, "PendingOp": 0 }
+{ "DataverseName": "test1", "DatasetName": "t2", "DatatypeDataverseName":
"test1", "DatatypeName": "testtype", "DatasetType": "INTERNAL", "GroupName":
"Default.test1.t2", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "id" ] ], "PrimaryKey":
[ [ "id" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Thu Nov
09 23:39:34 PST 2023", "DatasetId": 117, "PendingOp": 0 }
+{ "DataverseName": "test1", "DatasetName": "t3", "DatatypeDataverseName":
"test1", "DatatypeName": "testtype", "DatasetType": "INTERNAL", "GroupName":
"Default.test1.t3", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "id" ] ], "PrimaryKey":
[ [ "id" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Thu Nov
09 23:39:34 PST 2023", "DatasetId": 118, "PendingOp": 0 }
+{ "DataverseName": "test2", "DatasetName": "t2", "DatatypeDataverseName":
"test2", "DatatypeName": "testtype", "DatasetType": "INTERNAL", "GroupName":
"Default.test2.t2", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "id" ] ], "PrimaryKey":
[ [ "id" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Thu Nov
09 23:39:33 PST 2023", "DatasetId": 115, "PendingOp": 0 }
+{ "DataverseName": "test2", "DatasetName": "t3", "DatatypeDataverseName":
"test2", "DatatypeName": "testtype", "DatasetType": "INTERNAL", "GroupName":
"Default.test2.t3", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "id" ] ], "PrimaryKey":
[ [ "id" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Thu Nov
09 23:39:34 PST 2023", "DatasetId": 116, "PendingOp": 0 }
+{ "DataverseName": "test2", "DatasetName": "t4", "DatatypeDataverseName":
"test2", "DatatypeName": "testtype", "DatasetType": "INTERNAL", "GroupName":
"Default.test2.t4", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "id" ] ], "PrimaryKey":
[ [ "id" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Thu Nov
09 23:39:34 PST 2023", "DatasetId": 119, "PendingOp": 0 }
\ No newline at end of file
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/results_cloud/user-defined-functions/udf23/udf23.1.adm
b/asterixdb/asterix-app/src/test/resources/runtimets/results_cloud/user-defined-functions/udf23/udf23.1.adm
index 784e825ee8..6f8a5565af 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/results_cloud/user-defined-functions/udf23/udf23.1.adm
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/results_cloud/user-defined-functions/udf23/udf23.1.adm
@@ -1,6 +1,6 @@
-{ "DatabaseName": "System", "DataverseName": "Metadata", "DatasetName":
"CompactionPolicy", "DatatypeDataverseName": "Metadata", "DatatypeName":
"CompactionPolicyRecordType", "DatasetType": "INTERNAL", "GroupName":
"MetadataGroup", "CompactionPolicy": "concurrent",
"CompactionPolicyProperties": [ { "Name": "max-component-count", "Value": "30"
}, { "Name": "min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value":
[...]
-{ "DatabaseName": "System", "DataverseName": "Metadata", "DatasetName":
"Database", "DatatypeDataverseName": "Metadata", "DatatypeName":
"DatabaseRecordType", "DatasetType": "INTERNAL", "GroupName": "MetadataGroup",
"CompactionPolicy": "concurrent", "CompactionPolicyProperties": [ { "Name":
"max-component-count", "Value": "30" }, { "Name": "min-merge-component-count",
"Value": "3" }, { "Name": "max-merge-component-count", "Value": "10" }, {
"Name": "size-ratio", "Value": "1.2" } ], "Inte [...]
-{ "DatabaseName": "System", "DataverseName": "Metadata", "DatasetName":
"Dataset", "DatatypeDataverseName": "Metadata", "DatatypeName":
"DatasetRecordType", "DatasetType": "INTERNAL", "GroupName": "MetadataGroup",
"CompactionPolicy": "concurrent", "CompactionPolicyProperties": [ { "Name":
"max-component-count", "Value": "30" }, { "Name": "min-merge-component-count",
"Value": "3" }, { "Name": "max-merge-component-count", "Value": "10" }, {
"Name": "size-ratio", "Value": "1.2" } ], "Intern [...]
-{ "DatabaseName": "System", "DataverseName": "Metadata", "DatasetName":
"DatasourceAdapter", "DatatypeDataverseName": "Metadata", "DatatypeName":
"DatasourceAdapterRecordType", "DatasetType": "INTERNAL", "GroupName":
"MetadataGroup", "CompactionPolicy": "concurrent",
"CompactionPolicyProperties": [ { "Name": "max-component-count", "Value": "30"
}, { "Name": "min-merge-component-count", "Value": "3" }, { "Name":
"max-merge-component-count", "Value": "10" }, { "Name": "size-ratio", "Value"
[...]
-{ "DatabaseName": "System", "DataverseName": "Metadata", "DatasetName":
"Datatype", "DatatypeDataverseName": "Metadata", "DatatypeName":
"DatatypeRecordType", "DatasetType": "INTERNAL", "GroupName": "MetadataGroup",
"CompactionPolicy": "concurrent", "CompactionPolicyProperties": [ { "Name":
"max-component-count", "Value": "30" }, { "Name": "min-merge-component-count",
"Value": "3" }, { "Name": "max-merge-component-count", "Value": "10" }, {
"Name": "size-ratio", "Value": "1.2" } ], "Inte [...]
-{ "DatabaseName": "System", "DataverseName": "Metadata", "DatasetName":
"Dataverse", "DatatypeDataverseName": "Metadata", "DatatypeName":
"DataverseRecordType", "DatasetType": "INTERNAL", "GroupName": "MetadataGroup",
"CompactionPolicy": "concurrent", "CompactionPolicyProperties": [ { "Name":
"max-component-count", "Value": "30" }, { "Name": "min-merge-component-count",
"Value": "3" }, { "Name": "max-merge-component-count", "Value": "10" }, {
"Name": "size-ratio", "Value": "1.2" } ], "In [...]
+{ "DatabaseName": "System", "DataverseName": "Metadata", "DatasetName":
"CompactionPolicy", "DatatypeDataverseName": "Metadata", "DatatypeName":
"CompactionPolicyRecordType", "DatasetType": "INTERNAL", "GroupName":
"MetadataGroup", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "DatabaseName" ], [
"DataverseName" ], [ "CompactionPolicy" ] ], "PrimaryKey": [ [ "DatabaseName"
], [ "DataverseName" ], [ "CompactionPolicy" ] ], "Autogener [...]
+{ "DatabaseName": "System", "DataverseName": "Metadata", "DatasetName":
"Database", "DatatypeDataverseName": "Metadata", "DatatypeName":
"DatabaseRecordType", "DatasetType": "INTERNAL", "GroupName": "MetadataGroup",
"InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH",
"PartitioningKey": [ [ "DatabaseName" ] ], "PrimaryKey": [ [ "DatabaseName" ]
], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Tue Oct 03 12:04:25
PDT 2023", "DatasetId": 18, "PendingOp" [...]
+{ "DatabaseName": "System", "DataverseName": "Metadata", "DatasetName":
"Dataset", "DatatypeDataverseName": "Metadata", "DatatypeName":
"DatasetRecordType", "DatasetType": "INTERNAL", "GroupName": "MetadataGroup",
"InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH",
"PartitioningKey": [ [ "DatabaseName" ], [ "DataverseName" ], [ "DatasetName" ]
], "PrimaryKey": [ [ "DatabaseName" ], [ "DataverseName" ], [ "DatasetName" ]
], "Autogenerated": false }, "Hints": {{ [...]
+{ "DatabaseName": "System", "DataverseName": "Metadata", "DatasetName":
"DatasourceAdapter", "DatatypeDataverseName": "Metadata", "DatatypeName":
"DatasourceAdapterRecordType", "DatasetType": "INTERNAL", "GroupName":
"MetadataGroup", "InternalDetails": { "FileStructure": "BTREE",
"PartitioningStrategy": "HASH", "PartitioningKey": [ [ "DatabaseName" ], [
"DataverseName" ], [ "Name" ] ], "PrimaryKey": [ [ "DatabaseName" ], [
"DataverseName" ], [ "Name" ] ], "Autogenerated": false }, "Hints [...]
+{ "DatabaseName": "System", "DataverseName": "Metadata", "DatasetName":
"Datatype", "DatatypeDataverseName": "Metadata", "DatatypeName":
"DatatypeRecordType", "DatasetType": "INTERNAL", "GroupName": "MetadataGroup",
"InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH",
"PartitioningKey": [ [ "DatabaseName" ], [ "DataverseName" ], [ "DatatypeName"
] ], "PrimaryKey": [ [ "DatabaseName" ], [ "DataverseName" ], [ "DatatypeName"
] ], "Autogenerated": false }, "Hints": [...]
+{ "DatabaseName": "System", "DataverseName": "Metadata", "DatasetName":
"Dataverse", "DatatypeDataverseName": "Metadata", "DatatypeName":
"DataverseRecordType", "DatasetType": "INTERNAL", "GroupName": "MetadataGroup",
"InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH",
"PartitioningKey": [ [ "DatabaseName" ], [ "DataverseName" ] ], "PrimaryKey": [
[ "DatabaseName" ], [ "DataverseName" ] ], "Autogenerated": false }, "Hints":
{{ }}, "Timestamp": "Tue Oct 03 12:0 [...]
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/cross-dataverse/cross-dv02/cross-dv02.3.ast
b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/cross-dataverse/cross-dv02/cross-dv02.3.ast
index c3f5b77caf..09b313a3fc 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/cross-dataverse/cross-dv02/cross-dv02.3.ast
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/cross-dataverse/cross-dv02/cross-dv02.3.ast
@@ -30,16 +30,6 @@ FieldAccessor [
Field=GroupName
]
GroupName
-FieldAccessor [
- Variable [ Name=$l ]
- Field=CompactionPolicy
-]
-CompactionPolicy
-FieldAccessor [
- Variable [ Name=$l ]
- Field=CompactionPolicyProperties
-]
-CompactionPolicyProperties
FieldAccessor [
Variable [ Name=$l ]
Field=InternalDetails
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/cross-dataverse/cross-dv04/cross-dv04.3.ast
b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/cross-dataverse/cross-dv04/cross-dv04.3.ast
index c3f5b77caf..09b313a3fc 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/cross-dataverse/cross-dv04/cross-dv04.3.ast
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/cross-dataverse/cross-dv04/cross-dv04.3.ast
@@ -30,16 +30,6 @@ FieldAccessor [
Field=GroupName
]
GroupName
-FieldAccessor [
- Variable [ Name=$l ]
- Field=CompactionPolicy
-]
-CompactionPolicy
-FieldAccessor [
- Variable [ Name=$l ]
- Field=CompactionPolicyProperties
-]
-CompactionPolicyProperties
FieldAccessor [
Variable [ Name=$l ]
Field=InternalDetails
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/cross-dataverse/cross-dv19/cross-dv19.3.ast
b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/cross-dataverse/cross-dv19/cross-dv19.3.ast
index b3796f1730..26e97e67c9 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/cross-dataverse/cross-dv19/cross-dv19.3.ast
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/cross-dataverse/cross-dv19/cross-dv19.3.ast
@@ -30,16 +30,6 @@ FieldAccessor [
Field=GroupName
]
GroupName
-FieldAccessor [
- Variable [ Name=$l ]
- Field=CompactionPolicy
-]
-CompactionPolicy
-FieldAccessor [
- Variable [ Name=$l ]
- Field=CompactionPolicyProperties
-]
-CompactionPolicyProperties
FieldAccessor [
Variable [ Name=$l ]
Field=ExternalDetails
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/user-defined-functions/udf23/udf23.3.ast
b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/user-defined-functions/udf23/udf23.3.ast
index cf9ed5f62b..18ceb10013 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/user-defined-functions/udf23/udf23.3.ast
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/user-defined-functions/udf23/udf23.3.ast
@@ -1,7 +1,76 @@
DataverseUse test
Query:
-SELECT ELEMENT [
-Variable [ Name=$l ]
+SELECT [
+FieldAccessor [
+ Variable [ Name=$l ]
+ Field=DatabaseName
+]
+DatabaseName
+FieldAccessor [
+ Variable [ Name=$l ]
+ Field=DataverseName
+]
+DataverseName
+FieldAccessor [
+ Variable [ Name=$l ]
+ Field=DatasetName
+]
+DatasetName
+FieldAccessor [
+ Variable [ Name=$l ]
+ Field=DatatypeDataverseName
+]
+DatatypeDataverseName
+FieldAccessor [
+ Variable [ Name=$l ]
+ Field=DatatypeName
+]
+DatatypeName
+FieldAccessor [
+ Variable [ Name=$l ]
+ Field=DatasetType
+]
+DatasetType
+FieldAccessor [
+ Variable [ Name=$l ]
+ Field=GroupName
+]
+GroupName
+FieldAccessor [
+ Variable [ Name=$l ]
+ Field=InternalDetails
+]
+InternalDetails
+FieldAccessor [
+ Variable [ Name=$l ]
+ Field=Hints
+]
+Hints
+FieldAccessor [
+ Variable [ Name=$l ]
+ Field=Timestamp
+]
+Timestamp
+FieldAccessor [
+ Variable [ Name=$l ]
+ Field=DatasetId
+]
+DatasetId
+FieldAccessor [
+ Variable [ Name=$l ]
+ Field=PendingOp
+]
+PendingOp
+FieldAccessor [
+ Variable [ Name=$l ]
+ Field=DatatypeDatabaseName
+]
+DatatypeDatabaseName
+FieldAccessor [
+ Variable [ Name=$l ]
+ Field=DatasetFormat
+]
+DatasetFormat
]
FROM [ FunctionCall asterix.dataset@1[
LiteralExpr [STRING] [Metadata.Dataset]
diff --git
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/StorageProperties.java
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/StorageProperties.java
index a1ca5719d8..6fe0eb89e4 100644
---
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/StorageProperties.java
+++
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/StorageProperties.java
@@ -69,7 +69,8 @@ public class StorageProperties extends AbstractProperties {
STORAGE_COLUMN_MAX_LEAF_NODE_SIZE(INTEGER_BYTE_UNIT,
StorageUtil.getIntSizeInBytes(10, MEGABYTE)),
STORAGE_FORMAT(STRING, "row"),
STORAGE_PARTITIONING(STRING, "dynamic"),
- STORAGE_PARTITIONS_COUNT(INTEGER, 8);
+ STORAGE_PARTITIONS_COUNT(INTEGER, 8),
+ STORAGE_MAX_COMPONENT_SIZE(LONG_BYTE_UNIT,
StorageUtil.getLongSizeInBytes(1, StorageUtil.StorageUnit.TERABYTE));
private final IOptionType interpreter;
private final Object defaultValue;
@@ -159,6 +160,8 @@ public class StorageProperties extends AbstractProperties {
case STORAGE_PARTITIONS_COUNT:
return "The number of storage partitions to use for static
partitioning. This value should not be"
+ " changed after any dataset has been created";
+ case STORAGE_MAX_COMPONENT_SIZE:
+ return "The resultant disk component after a merge must
not exceed the specified maximum size.";
default:
throw new IllegalStateException("NYI: " + this);
}
@@ -319,4 +322,8 @@ public class StorageProperties extends AbstractProperties {
public int getStoragePartitionsCount() {
return accessor.getInt(Option.STORAGE_PARTITIONS_COUNT);
}
+
+ public long getStorageMaxComponentSize() {
+ return accessor.getLong(Option.STORAGE_MAX_COMPONENT_SIZE);
+ }
}
diff --git
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/SizeBoundedConcurrentMergePolicy.java
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/SizeBoundedConcurrentMergePolicy.java
new file mode 100644
index 0000000000..1384f39925
--- /dev/null
+++
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/SizeBoundedConcurrentMergePolicy.java
@@ -0,0 +1,255 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.asterix.common.storage;
+
+import static
org.apache.asterix.common.storage.SizeBoundedConcurrentMergePolicy.Range.isRangeMergable;
+
+import java.util.List;
+import java.util.Map;
+
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.storage.am.common.impls.NoOpIndexAccessParameters;
+import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponent;
+import org.apache.hyracks.storage.am.lsm.common.api.ILSMDiskComponent;
+import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndex;
+import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicy;
+
+/**
+ * This merge policy deals with the constraint that the resultant merged
component
+ * should not exceed the specified maxResultantComponentSize.
+ */
+public class SizeBoundedConcurrentMergePolicy implements ILSMMergePolicy {
+ private final long maxComponentSize;
+ private int minMergeComponentCount;
+ private int maxMergeComponentCount;
+ private int maxComponentCount;
+ private double sizeRatio;
+
+ public SizeBoundedConcurrentMergePolicy(long maxComponentSize) {
+ this.maxComponentSize = maxComponentSize;
+ }
+
+ @Override
+ public void diskComponentAdded(ILSMIndex index, boolean
fullMergeIsRequested) throws HyracksDataException {
+ if (fullMergeIsRequested) {
+ throw new
IllegalArgumentException("SizeBoundedConcurrentMergePolicy does not support
fullMerge.");
+ }
+
+ scheduleMerge(index, false);
+ }
+
+ @Override
+ public void configure(Map<String, String> properties) {
+ minMergeComponentCount =
+
Integer.parseInt(properties.get(SizeBoundedConcurrentMergePolicyFactory.MIN_MERGE_COMPONENT_COUNT));
+ maxMergeComponentCount =
+
Integer.parseInt(properties.get(SizeBoundedConcurrentMergePolicyFactory.MAX_MERGE_COMPONENT_COUNT));
+ sizeRatio =
Double.parseDouble(properties.get(SizeBoundedConcurrentMergePolicyFactory.SIZE_RATIO));
+ maxComponentCount =
+
Integer.parseInt(properties.get(SizeBoundedConcurrentMergePolicyFactory.MAX_COMPONENT_COUNT));
+ }
+
+ // hold flush when the componentCount reaches maxComponentCount, and try
to find the suitable range
+ @Override
+ public boolean isMergeLagging(ILSMIndex index) throws HyracksDataException
{
+ List<ILSMDiskComponent> diskComponents = index.getDiskComponents();
+ MergableSolution mergableSolutionWithComponentCount =
+ getMergableIndexesRange(index.getDiskComponents(),
minMergeComponentCount, true);
+ if (mergableSolutionWithComponentCount.getComponentsCount() <
maxComponentCount) {
+ // not reach the component threshold, simply return false
+ return false;
+ } else {
+ if (diskComponents.stream().anyMatch(d -> d.getState() ==
ILSMComponent.ComponentState.READABLE_MERGING)) {
+ // reach the component threshold and some components are being
merged, return true (stop flushing)
+ return true;
+ } else {
+ // reach the component threshold but no components are being
merged
+ // this can happen in two cases: (1) the system just recovers;
(2) maxComponentCount is too small
+ if (!diskComponents.stream()
+ .allMatch(d -> d.getState() ==
ILSMComponent.ComponentState.READABLE_UNWRITABLE)) {
+ throw new IllegalStateException("Illegal disk component
states in isMergeLagging");
+ }
+
+ if (scheduleMerge(index, false)) {
+ return true;
+ }
+ // desperate request to merge any two disk components, while
satisfying the maxComponentSize criterion
+ // if unable to schedule a merge, don't block the component
flush.
+ return scheduleMerge(index, true);
+ }
+ }
+ }
+
+ // In case of no-force merge, we try to find the largestIndexRange which
satisfies the merge-policy rules.
+ // but in case of force, there is desperate request for merge, hence try
finding as low as 2 components to merge.
+ private boolean scheduleMerge(ILSMIndex index, boolean force) throws
HyracksDataException {
+ List<ILSMDiskComponent> diskComponents = index.getDiskComponents();
+ MergableSolution mergableSolutionWithRange;
+ if (force) {
+ mergableSolutionWithRange =
getMergableIndexesRange(diskComponents, 2, false);
+ } else {
+ mergableSolutionWithRange =
getMergableIndexesRange(diskComponents, minMergeComponentCount, false);
+ }
+ if (mergableSolutionWithRange.getRange() != null) {
+ triggerScheduleMerge(index, diskComponents,
mergableSolutionWithRange.getRange().getStartIndex(),
+ mergableSolutionWithRange.getRange().getEndIndex());
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ // getMergableIndexesRange gives the [startComponentIndex,
endComponentIndex] which can be merged based on the provided condition
+ // 1. localMinMergeComponentCount <= range(startComponentIndex,
endComponentIndex) <= maxMergeComponentCount
+ // 2. sumOfComponents(startComponentIndex, endComponentIndex) <
maxComponentSize
+ // In order to satisfy range(startComponentIndex, endComponentIndex) <=
maxMergeComponentCount, the search range is bounded by leftBoundary, and if we
reach the maxComponentSize before
+ // reaching the leftBoundary, we get our boundary where startIndex >
leftBoundary.
+ // but in case the components in the range does not contribute enough to
exceed maxComponentSize then the candidate range
+ // will be [leftBoundary, endComponentIndex] which satisfies both 1 & 2.
+ private MergableSolution getMergableIndexesRange(List<ILSMDiskComponent>
diskComponents,
+ int localMinMergeComponentCount, boolean
getMergableComponentsCount) {
+ int numComponents = diskComponents.size();
+ int candidateComponentsCount = 0;
+ for (; candidateComponentsCount < numComponents;
candidateComponentsCount++) {
+ if (diskComponents.get(candidateComponentsCount)
+ .getState() !=
ILSMComponent.ComponentState.READABLE_UNWRITABLE) {
+ break;
+ }
+ }
+
+ if (candidateComponentsCount < localMinMergeComponentCount) {
+ return new MergableSolution(null, 0);
+ }
+
+ // count the total number of non-overlapping components that can be
merged.
+ // eg: if there are two possible ranges, total non-overlapping
components will be [0,2],[4,7] = 3 + 4 = 7
+ int totalMergableComponentsCount = 0;
+
+ int endComponentIndex = candidateComponentsCount - 1;
+ while (endComponentIndex >= localMinMergeComponentCount - 1) {
+ // acting as a branching condition for advancing the
endComponentIndex to prevRange's startIndex - 1.
+ // thus allowing to get non-overlapping ranges.
+ // TODO(merge-policy): Need refactoring for better readability
+ boolean aRangeFound = false;
+
+ long lastComponentSize =
diskComponents.get(endComponentIndex).getComponentSize();
+ long resultantComponentSize = lastComponentSize;
+
+ int probableStartIndex = endComponentIndex - 1;
+ int leftBoundaryIndex = Math.max(endComponentIndex -
maxMergeComponentCount, 0);
+
+ for (; probableStartIndex >= leftBoundaryIndex;
probableStartIndex--) {
+ long currentComponentSize =
diskComponents.get(probableStartIndex).getComponentSize();
+ resultantComponentSize += currentComponentSize;
+
+ if (resultantComponentSize >= maxComponentSize) {
+ // since the resultComponentSize after merging index from
[probableStartIndex, endComponentIndex]
+ // exceeds the maxComponentSize, the appropriate range
should be (probableStartIndex, endComponentIndex]
+ if (isRangeMergable(probableStartIndex + 1,
endComponentIndex, localMinMergeComponentCount,
+ (resultantComponentSize - currentComponentSize -
lastComponentSize), sizeRatio,
+ lastComponentSize)) {
+ int mergableRangeCount = endComponentIndex -
probableStartIndex;
+ if (!getMergableComponentsCount) {
+ return new MergableSolution(new
Range(probableStartIndex + 1, endComponentIndex),
+ mergableRangeCount);
+ } else {
+ aRangeFound = true;
+ endComponentIndex = probableStartIndex;
+ totalMergableComponentsCount += mergableRangeCount;
+ }
+ }
+ // break as we already exceeded the maxComponentSize, and
still haven't found the suitable range,
+ break;
+ }
+ }
+
+ // since we exceeded the leftBoundary, and still we are within
maxComponentCount
+ // [leftBoundaryIndex, endComponentIndex] can be a probable
solution
+ if (probableStartIndex == leftBoundaryIndex - 1) {
+ if (isRangeMergable(leftBoundaryIndex, endComponentIndex,
localMinMergeComponentCount,
+ (resultantComponentSize - lastComponentSize),
sizeRatio, lastComponentSize)) {
+ int mergableRangeCount = endComponentIndex -
leftBoundaryIndex + 1;
+ if (!getMergableComponentsCount) {
+ return new MergableSolution(new
Range(leftBoundaryIndex, endComponentIndex),
+ mergableRangeCount);
+ } else {
+ aRangeFound = true;
+ endComponentIndex = probableStartIndex;
+ totalMergableComponentsCount += mergableRangeCount;
+ }
+ }
+ }
+
+ if (!aRangeFound) {
+ --endComponentIndex;
+ }
+ }
+
+ return new MergableSolution(null, totalMergableComponentsCount);
+ }
+
+ private void triggerScheduleMerge(ILSMIndex index, List<ILSMDiskComponent>
diskComponents, int startIndex,
+ int endIndex) throws HyracksDataException {
+ List<ILSMDiskComponent> mergableComponents =
diskComponents.subList(startIndex, endIndex + 1);
+
index.createAccessor(NoOpIndexAccessParameters.INSTANCE).scheduleMerge(mergableComponents);
+ }
+
+ static class MergableSolution {
+ private final Range range;
+ private final int componentsCount;
+
+ MergableSolution(Range range, int componentsCount) {
+ this.range = range;
+ this.componentsCount = componentsCount;
+ }
+
+ public Range getRange() {
+ return range;
+ }
+
+ public int getComponentsCount() {
+ return componentsCount;
+ }
+ }
+
+ static class Range {
+ private final int startIndex;
+ private final int endIndex;
+
+ public Range(int startIndex, int endIndex) {
+ this.startIndex = startIndex;
+ this.endIndex = endIndex;
+ }
+
+ public int getStartIndex() {
+ return startIndex;
+ }
+
+ public int getEndIndex() {
+ return endIndex;
+ }
+
+ static boolean isRangeMergable(int startIndexInclusive, int
endIndexInclusive, int localMinMergeComponentCount,
+ long resultantComponentSizeExcludingEndComponent, double
sizeRatio, long endComponentSize) {
+ int mergableRangeCount = endIndexInclusive - startIndexInclusive +
1;
+ return mergableRangeCount >= localMinMergeComponentCount
+ && ((resultantComponentSizeExcludingEndComponent *
sizeRatio) >= endComponentSize);
+ }
+ }
+}
diff --git
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/SizeBoundedConcurrentMergePolicyFactory.java
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/SizeBoundedConcurrentMergePolicyFactory.java
new file mode 100644
index 0000000000..56c0b3dcbd
--- /dev/null
+++
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/SizeBoundedConcurrentMergePolicyFactory.java
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.asterix.common.storage;
+
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.asterix.common.api.INcApplicationContext;
+import org.apache.hyracks.api.application.INCServiceContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.api.io.IJsonSerializable;
+import org.apache.hyracks.api.io.IPersistedResourceRegistry;
+import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicy;
+import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicyFactory;
+
+import com.fasterxml.jackson.databind.JsonNode;
+
+public class SizeBoundedConcurrentMergePolicyFactory implements
ILSMMergePolicyFactory {
+
+ private static final long serialVersionUID = 1L;
+ public static final String NAME = "size-bounded-concurrent";
+ public static final String MIN_MERGE_COMPONENT_COUNT =
"min-merge-component-count";
+ public static final String MAX_MERGE_COMPONENT_COUNT =
"max-merge-component-count";
+ public static final String MAX_COMPONENT_COUNT = "max-component-count";
+ public static final String SIZE_RATIO = "size-ratio";
+ public static final Set<String> PROPERTIES_NAMES =
+ Set.of(MIN_MERGE_COMPONENT_COUNT, MAX_MERGE_COMPONENT_COUNT,
SIZE_RATIO, MAX_COMPONENT_COUNT);
+
+ @Override
+ public ILSMMergePolicy createMergePolicy(Map<String, String>
configuration, INCServiceContext ctx) {
+ long maxComponentSize = ((INcApplicationContext)
ctx.getApplicationContext()).getStorageProperties()
+ .getStorageMaxComponentSize();
+ ILSMMergePolicy policy = new
SizeBoundedConcurrentMergePolicy(maxComponentSize);
+ policy.configure(configuration);
+ return policy;
+ }
+
+ @Override
+ public String getName() {
+ return NAME;
+ }
+
+ @Override
+ public Set<String> getPropertiesNames() {
+ return PROPERTIES_NAMES;
+ }
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) throws
HyracksDataException {
+ return registry.getClassIdentifier(getClass(), serialVersionUID);
+ }
+
+ @SuppressWarnings("squid:S1172") // unused parameter
+ public static IJsonSerializable fromJson(IPersistedResourceRegistry
registry, JsonNode json) {
+ return new SizeBoundedConcurrentMergePolicyFactory();
+ }
+}
diff --git
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/utils/StorageConstants.java
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/utils/StorageConstants.java
index eb39f23521..bd67b11382 100644
---
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/utils/StorageConstants.java
+++
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/utils/StorageConstants.java
@@ -21,9 +21,9 @@ package org.apache.asterix.common.utils;
import java.util.LinkedHashMap;
import java.util.Map;
+import
org.apache.asterix.common.storage.SizeBoundedConcurrentMergePolicyFactory;
import org.apache.hyracks.storage.am.common.api.ITreeIndexFrame;
import
org.apache.hyracks.storage.am.lsm.common.impls.AbstractLSMIndexFileManager;
-import
org.apache.hyracks.storage.am.lsm.common.impls.ConcurrentMergePolicyFactory;
/**
* A static class that stores storage constants
@@ -46,7 +46,7 @@ public class StorageConstants {
public static final String MASK_FILE_PREFIX = ".mask_";
public static final String COMPONENT_MASK_FILE_PREFIX = MASK_FILE_PREFIX +
"C_";
public static final float DEFAULT_TREE_FILL_FACTOR = 1.00f;
- public static final String DEFAULT_COMPACTION_POLICY_NAME =
ConcurrentMergePolicyFactory.NAME;
+ public static final String DEFAULT_COMPACTION_POLICY_NAME =
SizeBoundedConcurrentMergePolicyFactory.NAME;
public static final String DEFAULT_FILTERED_DATASET_COMPACTION_POLICY_NAME
= "correlated-prefix";
public static final Map<String, String>
DEFAULT_COMPACTION_POLICY_PROPERTIES;
public static final int METADATA_PARTITION = -1;
@@ -64,10 +64,12 @@ public class StorageConstants {
static {
DEFAULT_COMPACTION_POLICY_PROPERTIES = new LinkedHashMap<>();
-
DEFAULT_COMPACTION_POLICY_PROPERTIES.put(ConcurrentMergePolicyFactory.MAX_COMPONENT_COUNT,
"30");
-
DEFAULT_COMPACTION_POLICY_PROPERTIES.put(ConcurrentMergePolicyFactory.MIN_MERGE_COMPONENT_COUNT,
"3");
-
DEFAULT_COMPACTION_POLICY_PROPERTIES.put(ConcurrentMergePolicyFactory.MAX_MERGE_COMPONENT_COUNT,
"10");
-
DEFAULT_COMPACTION_POLICY_PROPERTIES.put(ConcurrentMergePolicyFactory.SIZE_RATIO,
"1.2");
+
DEFAULT_COMPACTION_POLICY_PROPERTIES.put(SizeBoundedConcurrentMergePolicyFactory.MIN_MERGE_COMPONENT_COUNT,
+ "3");
+
DEFAULT_COMPACTION_POLICY_PROPERTIES.put(SizeBoundedConcurrentMergePolicyFactory.MAX_MERGE_COMPONENT_COUNT,
+ "10");
+
DEFAULT_COMPACTION_POLICY_PROPERTIES.put(SizeBoundedConcurrentMergePolicyFactory.SIZE_RATIO,
"1.2");
+
DEFAULT_COMPACTION_POLICY_PROPERTIES.put(SizeBoundedConcurrentMergePolicyFactory.MAX_COMPONENT_COUNT,
"30");
}
private StorageConstants() {
diff --git
a/asterixdb/asterix-common/src/test/java/org/apache/asterix/test/SizeBoundedConcurrentMergePolicyTest.java
b/asterixdb/asterix-common/src/test/java/org/apache/asterix/test/SizeBoundedConcurrentMergePolicyTest.java
new file mode 100644
index 0000000000..b6f8450596
--- /dev/null
+++
b/asterixdb/asterix-common/src/test/java/org/apache/asterix/test/SizeBoundedConcurrentMergePolicyTest.java
@@ -0,0 +1,212 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.asterix.test;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.asterix.common.storage.SizeBoundedConcurrentMergePolicy;
+import
org.apache.asterix.common.storage.SizeBoundedConcurrentMergePolicyFactory;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponent;
+import org.apache.hyracks.storage.am.lsm.common.api.ILSMDiskComponent;
+import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndex;
+import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexAccessor;
+import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicy;
+import org.apache.hyracks.storage.common.IIndexAccessParameters;
+import org.junit.Assert;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
+
+public class SizeBoundedConcurrentMergePolicyTest {
+
+ private static final int MIN_MERGE_COMPONENT_COUNT = 3;
+ private static final int MAX_MERGE_COMPONENT_COUNT = 5;
+ private static final int MAX_COMPONENT_COUNT = 10;
+ private static final long MAX_STORAGE_COMPONENT_SIZE = 30L;
+ private static final double SIZE_RATIO = 1.0;
+
+ @Test
+ public void testBasic() throws HyracksDataException {
+ List<Long> sizes = new ArrayList<>(List.of(1L, 2L, 3L, 6L));
+ List<Long> resultSizes = new ArrayList<>();
+ ILSMIndex index = mockIndex(sizes, resultSizes);
+ ILSMMergePolicy policy = createMergePolicy();
+ policy.diskComponentAdded(index, false);
+
+ Assert.assertEquals(sizes, resultSizes);
+ }
+
+ @Test
+ public void testNotEnoughComponents() throws HyracksDataException {
+ List<Long> sizes = new ArrayList<>(Arrays.asList(1L, 2L));
+ List<Long> resultSizes = new ArrayList<>();
+ ILSMIndex index = mockIndex(sizes, resultSizes);
+ ILSMMergePolicy policy = createMergePolicy();
+ policy.diskComponentAdded(index, false);
+
+ Assert.assertTrue(resultSizes.isEmpty());
+ }
+
+ @Test
+ public void testNoFullMergeAllowed() throws HyracksDataException {
+ List<Long> sizes = new ArrayList<>(Arrays.asList(1L, 2L));
+ List<Long> resultSizes = new ArrayList<>();
+ ILSMIndex index = mockIndex(sizes, resultSizes);
+ ILSMMergePolicy policy = createMergePolicy();
+
+ IllegalArgumentException fullMergeException =
Assert.assertThrows(IllegalArgumentException.class, () -> {
+ policy.diskComponentAdded(index, true);
+ });
+
+ Assert.assertEquals("SizeBoundedConcurrentMergePolicy does not support
fullMerge.",
+ fullMergeException.getMessage());
+ }
+
+ // [ 1, 2, 3] [7] -> this is not a valid range, as (1 + 2 + 3) *
1(size-ratio) >= 7
+ // [ 1, 2] [3] -> A valid range, as 1+2+3 < 30 (max component count) &&
(1+2) * 1 >= 3
+ @Test
+ public void testSkipLargeComponent() throws HyracksDataException {
+ List<Long> sizes = new ArrayList<>(Arrays.asList(1L, 2L, 3L, 7L));
+ List<Long> resultSizes = new ArrayList<>();
+ ILSMIndex index = mockIndex(sizes, resultSizes);
+ ILSMMergePolicy policy = createMergePolicy();
+ policy.diskComponentAdded(index, false);
+
+ Assert.assertEquals(sizes.subList(0, 3), resultSizes);
+ }
+
+ @Test
+ public void testSkipMergeComponent0_2() throws HyracksDataException {
+ List<Long> sizes = new ArrayList<>(Arrays.asList(1L, 2L, 17L, 20L));
+ List<Long> resultSizes = new ArrayList<>();
+ ILSMIndex index = mockIndex(sizes, resultSizes);
+ ILSMMergePolicy policy = createMergePolicy();
+ policy.diskComponentAdded(index, false);
+
+ Assert.assertTrue(resultSizes.isEmpty());
+ }
+
+ @Test
+ public void testAvoidExceedingMaxSize() throws HyracksDataException {
+ List<Long> sizes = new ArrayList<>(Arrays.asList(3L, 9L, 11L, 20L));
+ List<Long> resultSizes = new ArrayList<>();
+ ILSMIndex index = mockIndex(sizes, resultSizes);
+ ILSMMergePolicy policy = createMergePolicy();
+ policy.diskComponentAdded(index, false);
+
+ Assert.assertEquals(sizes.subList(0, 3), resultSizes);
+ }
+
+ @Test
+ public void testNoMergableComponents() throws HyracksDataException {
+ List<Long> sizes = new ArrayList<>(Arrays.asList(15L, 16L, 15L, 16L));
+ List<Long> resultSizes = new ArrayList<>();
+ ILSMIndex index = mockIndex(sizes, resultSizes);
+ ILSMMergePolicy policy = createMergePolicy();
+ policy.diskComponentAdded(index, false);
+
+ Assert.assertTrue(resultSizes.isEmpty());
+ }
+
+ @Test
+ public void testConcurrentMerge() throws HyracksDataException {
+ List<Long> sizes = new ArrayList<>(Arrays.asList(1L, 2L, 3L, 4L, 5L,
6L, 7L, 100L));
+ List<Long> resultSizes = new ArrayList<>();
+ ILSMIndex index = mockIndex(sizes, resultSizes);
+ ILSMMergePolicy policy = createMergePolicy();
+ // component 5L is merging
+ Mockito.when(index.getDiskComponents().get(4).getState())
+ .thenReturn(ILSMComponent.ComponentState.READABLE_MERGING);
+
+ policy.diskComponentAdded(index, false);
+ Assert.assertEquals(sizes.subList(0, 4), resultSizes);
+ }
+
+ @Test
+ public void testMergeLagging() throws HyracksDataException {
+ List<Long> sizes = new ArrayList<>(
+ Arrays.asList(1L, 2L, 3L, 4L, 29L, 1L, 2L, 3L, 4L, 29L, 1L,
2L, 3L, 4L, 29L, 1L, 2L, 3L, 4L, 29L));
+ List<Long> resultSizes = new ArrayList<>();
+ ILSMIndex index = mockIndex(sizes, resultSizes);
+ ILSMMergePolicy policy = createMergePolicy();
+ Assert.assertTrue(policy.isMergeLagging(index));
+ Assert.assertEquals(sizes.subList(15, 19), resultSizes);
+ }
+
+ @Test
+ public void testNoMergeLagging() throws HyracksDataException {
+ List<Long> sizes = new ArrayList<>(Arrays.asList(1L, 2L, 3L, 4L, 29L,
1L, 2L, 3L, 4L));
+ List<Long> resultSizes = new ArrayList<>();
+ ILSMIndex index = mockIndex(sizes, resultSizes);
+ ILSMMergePolicy policy = createMergePolicy();
+ Assert.assertFalse(policy.isMergeLagging(index));
+ }
+
+ private ILSMMergePolicy createMergePolicy() {
+ Map<String, String> properties = new HashMap<>();
+
properties.put(SizeBoundedConcurrentMergePolicyFactory.MIN_MERGE_COMPONENT_COUNT,
+ String.valueOf(MIN_MERGE_COMPONENT_COUNT));
+
properties.put(SizeBoundedConcurrentMergePolicyFactory.MAX_MERGE_COMPONENT_COUNT,
+ String.valueOf(MAX_MERGE_COMPONENT_COUNT));
+ properties.put(SizeBoundedConcurrentMergePolicyFactory.SIZE_RATIO,
String.valueOf(SIZE_RATIO));
+
properties.put(SizeBoundedConcurrentMergePolicyFactory.MAX_COMPONENT_COUNT,
+ String.valueOf(MAX_COMPONENT_COUNT));
+
+ ILSMMergePolicy policy = new
SizeBoundedConcurrentMergePolicy(MAX_STORAGE_COMPONENT_SIZE);
+ policy.configure(properties);
+ return policy;
+ }
+
+ private ILSMIndex mockIndex(List<Long> componentSizes, List<Long>
mergedSizes) throws HyracksDataException {
+ List<ILSMDiskComponent> components = new ArrayList<>();
+ for (Long size : componentSizes) {
+ ILSMDiskComponent component =
Mockito.mock(ILSMDiskComponent.class);
+ Mockito.when(component.getComponentSize()).thenReturn(size);
+
Mockito.when(component.getState()).thenReturn(ILSMComponent.ComponentState.READABLE_UNWRITABLE);
+ components.add(component);
+ }
+
+ ILSMIndex index = Mockito.mock(ILSMIndex.class);
+ Mockito.when(index.getDiskComponents()).thenReturn(components);
+
+ ILSMIndexAccessor accessor = Mockito.mock(ILSMIndexAccessor.class);
+
+ Mockito.doAnswer(new Answer<Void>() {
+ @Override
+ public Void answer(InvocationOnMock invocation) throws Throwable {
+ List<ILSMDiskComponent> mergedComponents =
invocation.getArgument(0);
+ mergedComponents.forEach(component -> {
+ mergedSizes.add(component.getComponentSize());
+ });
+ return null;
+ }
+
}).when(accessor).scheduleMerge(Mockito.anyListOf(ILSMDiskComponent.class));
+
+
Mockito.when(index.createAccessor(Mockito.any(IIndexAccessParameters.class))).thenReturn(accessor);
+
+ return index;
+ }
+}
diff --git
a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/DatasetDeclParametersUtil.java
b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/DatasetDeclParametersUtil.java
index 7bb6f119f6..95b53a875b 100644
---
a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/DatasetDeclParametersUtil.java
+++
b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/DatasetDeclParametersUtil.java
@@ -122,7 +122,7 @@ public class DatasetDeclParametersUtil {
AUnionType.createUnknownableType(BuiltinType.ADOUBLE),
AUnionType.createUnknownableType(BuiltinType.AINT64),
AUnionType.createUnknownableType(BuiltinType.AINT64),
- AUnionType.createUnknownableType(BuiltinType.AINT64) };
+ AUnionType.createUnknownableType(BuiltinType.AINT64), };
final ARecordType parameters =
new ARecordType(MERGE_POLICY_PARAMETERS_PARAMETER_NAME,
parameterNames, parametersTypes, false);
diff --git
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataBootstrap.java
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataBootstrap.java
index 843d7c3b11..71458f9fe7 100644
---
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataBootstrap.java
+++
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataBootstrap.java
@@ -24,6 +24,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import org.apache.asterix.common.api.ILSMComponentIdGeneratorFactory;
import org.apache.asterix.common.api.INamespacePathResolver;
@@ -43,6 +44,7 @@ import
org.apache.asterix.common.ioopcallbacks.LSMIndexIOOperationCallbackFactor
import
org.apache.asterix.common.ioopcallbacks.LSMIndexPageWriteCallbackFactory;
import org.apache.asterix.common.metadata.MetadataConstants;
import org.apache.asterix.common.metadata.MetadataUtil;
+import
org.apache.asterix.common.storage.SizeBoundedConcurrentMergePolicyFactory;
import org.apache.asterix.common.utils.StorageConstants;
import org.apache.asterix.common.utils.StoragePathUtil;
import org.apache.asterix.external.adapter.factory.GenericAdapterFactory;
@@ -285,7 +287,8 @@ public class MetadataBootstrap {
throws AlgebricksException {
String[] builtInCompactionPolicyClassNames = new String[] {
ConstantMergePolicyFactory.class.getName(),
PrefixMergePolicyFactory.class.getName(),
ConcurrentMergePolicyFactory.class.getName(),
- NoMergePolicyFactory.class.getName(),
CorrelatedPrefixMergePolicyFactory.class.getName() };
+ NoMergePolicyFactory.class.getName(),
CorrelatedPrefixMergePolicyFactory.class.getName(),
+ SizeBoundedConcurrentMergePolicyFactory.class.getName() };
for (String policyClassName : builtInCompactionPolicyClassNames) {
CompactionPolicy compactionPolicy =
getCompactionPolicyEntity(policyClassName);
MetadataManager.INSTANCE.addCompactionPolicy(mdTxnCtx,
compactionPolicy);
@@ -305,6 +308,13 @@ public class MetadataBootstrap {
CompactionPolicy compactionPolicy =
getCompactionPolicyEntity(ConcurrentMergePolicyFactory.class.getName());
MetadataManager.INSTANCE.addCompactionPolicy(mdTxnCtx,
compactionPolicy);
}
+
+ if (MetadataManager.INSTANCE.getCompactionPolicy(mdTxnCtx,
MetadataConstants.SYSTEM_DATABASE,
+ MetadataConstants.METADATA_DATAVERSE_NAME,
SizeBoundedConcurrentMergePolicyFactory.NAME) == null) {
+ CompactionPolicy compactionPolicy =
+
getCompactionPolicyEntity(SizeBoundedConcurrentMergePolicyFactory.class.getName());
+ MetadataManager.INSTANCE.addCompactionPolicy(mdTxnCtx,
compactionPolicy);
+ }
}
private static void
insertSynonymEntitiesIfNotExist(MetadataTransactionContext mdTxnCtx,
@@ -436,15 +446,18 @@ public class MetadataBootstrap {
if (createMetadataDataset) {
final double bloomFilterFalsePositiveRate =
appContext.getStorageProperties().getBloomFilterFalsePositiveRate();
+ Map<String, String> defaultCompactionPolicyProperties =
+ StorageConstants.DEFAULT_COMPACTION_POLICY_PROPERTIES;
+
LSMBTreeLocalResourceFactory lsmBtreeFactory =
new
LSMBTreeLocalResourceFactory(storageComponentProvider.getStorageManager(),
typeTraits,
cmpFactories, null, null, null, opTrackerFactory,
ioOpCallbackFactory,
pageWriteCallbackFactory,
storageComponentProvider.getMetadataPageManagerFactory(),
new AsterixVirtualBufferCacheProvider(datasetId),
storageComponentProvider.getIoOperationSchedulerProvider(),
- appContext.getMetadataMergePolicyFactory(),
-
StorageConstants.DEFAULT_COMPACTION_POLICY_PROPERTIES, true,
bloomFilterKeyFields,
- bloomFilterFalsePositiveRate, true, null,
NoOpCompressorDecompressorFactory.INSTANCE, true,
+ appContext.getMetadataMergePolicyFactory(),
defaultCompactionPolicyProperties, true,
+ bloomFilterKeyFields,
bloomFilterFalsePositiveRate, true, null,
+ NoOpCompressorDecompressorFactory.INSTANCE, true,
TypeTraitProvider.INSTANCE.getTypeTrait(BuiltinType.ANULL),
NullIntrospector.INSTANCE,
false, appContext.isCloudDeployment());
DatasetLocalResourceFactory dsLocalResourceFactory =