http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/utils/RuntimeUtils.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/utils/RuntimeUtils.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/utils/RuntimeUtils.java new file mode 100644 index 0000000..8e3f989 --- /dev/null +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/utils/RuntimeUtils.java @@ -0,0 +1,72 @@ +/* + * 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.runtime.utils; + +import java.net.InetAddress; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.apache.asterix.common.config.CompilerProperties; +import org.apache.hyracks.api.exceptions.HyracksDataException; +import org.apache.hyracks.api.job.JobSpecification; +import org.apache.hyracks.control.cc.ClusterControllerService; +import org.apache.hyracks.control.cc.cluster.INodeManager; + +public class RuntimeUtils { + + private RuntimeUtils() { + } + + public static Set<String> getNodeControllersOnIP(InetAddress ipAddress) throws HyracksDataException { + Map<InetAddress, Set<String>> nodeControllerInfo = getNodeControllerMap(); + return nodeControllerInfo.get(ipAddress); + } + + public static List<String> getAllNodeControllers() throws HyracksDataException { + Collection<Set<String>> nodeControllersCollection = getNodeControllerMap().values(); + List<String> nodeControllers = new ArrayList<>(); + for (Set<String> ncCollection : nodeControllersCollection) { + nodeControllers.addAll(ncCollection); + } + return nodeControllers; + } + + public static Map<InetAddress, Set<String>> getNodeControllerMap() throws HyracksDataException { + Map<InetAddress, Set<String>> map = new HashMap<>(); + AppContextInfo.INSTANCE.getCCApplicationContext().getCCContext().getIPAddressNodeMap(map); + return map; + } + + public static void getNodeControllerMap(Map<InetAddress, Set<String>> map) { + ClusterControllerService ccs = + (ClusterControllerService) AppContextInfo.INSTANCE.getCCApplicationContext().getControllerService(); + INodeManager nodeManager = ccs.getNodeManager(); + map.putAll(nodeManager.getIpAddressNodeNameMap()); + } + + public static JobSpecification createJobSpecification() { + CompilerProperties compilerProperties = AppContextInfo.INSTANCE.getCompilerProperties(); + int frameSize = compilerProperties.getFrameSize(); + return new JobSpecification(frameSize); + } +}
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/asterixdb/asterix-tools/src/test/java/org/apache/asterix/tools/datagen/AdmDataGen.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-tools/src/test/java/org/apache/asterix/tools/datagen/AdmDataGen.java b/asterixdb/asterix-tools/src/test/java/org/apache/asterix/tools/datagen/AdmDataGen.java index 2918575..7dacce3 100644 --- a/asterixdb/asterix-tools/src/test/java/org/apache/asterix/tools/datagen/AdmDataGen.java +++ b/asterixdb/asterix-tools/src/test/java/org/apache/asterix/tools/datagen/AdmDataGen.java @@ -67,7 +67,7 @@ import org.apache.asterix.om.types.AbstractCollectionType; import org.apache.asterix.om.types.BuiltinType; import org.apache.asterix.om.types.IAType; import org.apache.asterix.om.types.TypeSignature; -import org.apache.asterix.om.util.NonTaggedFormatUtil; +import org.apache.asterix.om.utils.NonTaggedFormatUtil; import org.apache.asterix.tools.translator.ADGenDmlTranslator; import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException; import org.apache.hyracks.algebricks.common.exceptions.NotImplementedException; http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/PrimaryIndexOperationTrackerFactory.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/PrimaryIndexOperationTrackerFactory.java b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/PrimaryIndexOperationTrackerFactory.java new file mode 100644 index 0000000..4e12f96 --- /dev/null +++ b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/PrimaryIndexOperationTrackerFactory.java @@ -0,0 +1,45 @@ +/* + * 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.transaction.management.opcallbacks; + +import org.apache.asterix.common.api.IAppRuntimeContext; +import org.apache.asterix.common.api.IDatasetLifecycleManager; +import org.apache.hyracks.api.application.INCApplicationContext; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTracker; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerFactory; + +public class PrimaryIndexOperationTrackerFactory implements ILSMOperationTrackerFactory { + + private static final long serialVersionUID = 1L; + + private final int datasetID; + + public PrimaryIndexOperationTrackerFactory(int datasetID) { + this.datasetID = datasetID; + } + + @Override + public ILSMOperationTracker getOperationTracker(INCApplicationContext ctx) { + IDatasetLifecycleManager dslcManager = ((IAppRuntimeContext) ctx.getApplicationObject()) + .getDatasetLifecycleManager(); + return dslcManager.getOperationTracker(datasetID); + } + +} http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/PrimaryIndexOperationTrackerProvider.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/PrimaryIndexOperationTrackerProvider.java b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/PrimaryIndexOperationTrackerProvider.java deleted file mode 100644 index 03a862c..0000000 --- a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/PrimaryIndexOperationTrackerProvider.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * 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.transaction.management.opcallbacks; - -import org.apache.asterix.common.api.IAppRuntimeContext; -import org.apache.asterix.common.api.IDatasetLifecycleManager; -import org.apache.hyracks.api.context.IHyracksTaskContext; -import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTracker; -import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerProvider; - -public class PrimaryIndexOperationTrackerProvider implements ILSMOperationTrackerProvider { - - private static final long serialVersionUID = 1L; - - private final int datasetID; - - public PrimaryIndexOperationTrackerProvider(int datasetID) { - this.datasetID = datasetID; - } - - @Override - public ILSMOperationTracker getOperationTracker(IHyracksTaskContext ctx) { - IDatasetLifecycleManager dslcManager = ((IAppRuntimeContext) ctx.getJobletContext() - .getApplicationContext().getApplicationObject()).getDatasetLifecycleManager(); - return dslcManager.getOperationTracker(datasetID); - } - -} http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/SecondaryIndexOperationTrackerFactory.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/SecondaryIndexOperationTrackerFactory.java b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/SecondaryIndexOperationTrackerFactory.java new file mode 100644 index 0000000..be98704 --- /dev/null +++ b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/SecondaryIndexOperationTrackerFactory.java @@ -0,0 +1,45 @@ +/* + * 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.transaction.management.opcallbacks; + +import org.apache.asterix.common.api.IAppRuntimeContext; +import org.apache.asterix.common.api.IDatasetLifecycleManager; +import org.apache.asterix.common.context.BaseOperationTracker; +import org.apache.hyracks.api.application.INCApplicationContext; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTracker; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerFactory; + +public class SecondaryIndexOperationTrackerFactory implements ILSMOperationTrackerFactory { + + private static final long serialVersionUID = 1L; + + private final int datasetID; + + public SecondaryIndexOperationTrackerFactory(int datasetID) { + this.datasetID = datasetID; + } + + @Override + public ILSMOperationTracker getOperationTracker(INCApplicationContext ctx) { + IDatasetLifecycleManager dslcManager = ((IAppRuntimeContext) ctx.getApplicationObject()) + .getDatasetLifecycleManager(); + return new BaseOperationTracker(datasetID, dslcManager.getDatasetInfo(datasetID)); + } + +} http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/SecondaryIndexOperationTrackerProvider.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/SecondaryIndexOperationTrackerProvider.java b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/SecondaryIndexOperationTrackerProvider.java deleted file mode 100644 index 6fe71d1..0000000 --- a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/SecondaryIndexOperationTrackerProvider.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * 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.transaction.management.opcallbacks; - -import org.apache.asterix.common.api.IAppRuntimeContext; -import org.apache.asterix.common.api.IDatasetLifecycleManager; -import org.apache.asterix.common.context.BaseOperationTracker; -import org.apache.hyracks.api.context.IHyracksTaskContext; -import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTracker; -import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerProvider; - -public class SecondaryIndexOperationTrackerProvider implements ILSMOperationTrackerProvider { - - private static final long serialVersionUID = 1L; - - private final int datasetID; - - public SecondaryIndexOperationTrackerProvider(int datasetID) { - this.datasetID = datasetID; - } - - @Override - public ILSMOperationTracker getOperationTracker(IHyracksTaskContext ctx) { - IDatasetLifecycleManager dslcManager = ((IAppRuntimeContext) ctx - .getJobletContext().getApplicationContext().getApplicationObject()).getDatasetLifecycleManager(); - return new BaseOperationTracker(datasetID, dslcManager.getDatasetInfo(datasetID)); - } - -} http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/ExternalBTreeLocalResourceMetadata.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/ExternalBTreeLocalResourceMetadata.java b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/ExternalBTreeLocalResourceMetadata.java index 6fd5298..2d6f3c9 100644 --- a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/ExternalBTreeLocalResourceMetadata.java +++ b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/ExternalBTreeLocalResourceMetadata.java @@ -20,19 +20,19 @@ package org.apache.asterix.transaction.management.resource; import java.util.Map; -import org.apache.asterix.common.context.BaseOperationTracker; -import org.apache.asterix.common.dataflow.LSMIndexUtil; -import org.apache.asterix.common.ioopcallbacks.LSMBTreeIOOperationCallbackFactory; -import org.apache.asterix.common.transactions.IAppRuntimeContextProvider; +import org.apache.asterix.common.api.IAppRuntimeContext; +import org.apache.hyracks.api.application.INCApplicationContext; import org.apache.hyracks.api.dataflow.value.IBinaryComparatorFactory; import org.apache.hyracks.api.dataflow.value.ITypeTraits; import org.apache.hyracks.api.exceptions.HyracksDataException; import org.apache.hyracks.api.io.FileReference; import org.apache.hyracks.api.io.IIOManager; -import org.apache.hyracks.storage.am.lsm.btree.impls.LSMBTree; -import org.apache.hyracks.storage.am.lsm.btree.util.LSMBTreeUtils; +import org.apache.hyracks.storage.am.common.api.IMetadataPageManagerFactory; +import org.apache.hyracks.storage.am.lsm.btree.utils.LSMBTreeUtil; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallbackFactory; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndex; import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicyFactory; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerFactory; import org.apache.hyracks.storage.common.file.LocalResource; public class ExternalBTreeLocalResourceMetadata extends LSMBTreeLocalResourceMetadata { @@ -42,26 +42,28 @@ public class ExternalBTreeLocalResourceMetadata extends LSMBTreeLocalResourceMet public ExternalBTreeLocalResourceMetadata(ITypeTraits[] typeTraits, IBinaryComparatorFactory[] cmpFactories, int[] bloomFilterKeyFields, boolean isPrimary, int datasetID, int partition, ILSMMergePolicyFactory mergePolicyFactory, - Map<String, String> mergePolicyProperties) { + Map<String, String> mergePolicyProperties, ILSMOperationTrackerFactory opTrackerProvider, + ILSMIOOperationCallbackFactory ioOpCallbackFactory, + IMetadataPageManagerFactory metadataPageManagerFactory) { super(typeTraits, cmpFactories, bloomFilterKeyFields, isPrimary, datasetID, partition, mergePolicyFactory, - mergePolicyProperties, null, null, null, null); + mergePolicyProperties, null, null, null, null, opTrackerProvider, ioOpCallbackFactory, + metadataPageManagerFactory); } @Override - public ILSMIndex createIndexInstance(IAppRuntimeContextProvider runtimeContextProvider, + public ILSMIndex createIndexInstance(INCApplicationContext appCtx, LocalResource resource) throws HyracksDataException { + IAppRuntimeContext runtimeContextProvider = (IAppRuntimeContext) appCtx.getApplicationObject(); IIOManager ioManager = runtimeContextProvider.getIOManager(); FileReference file = ioManager.resolve(resource.getPath()); - LSMBTree lsmBTree = LSMBTreeUtils.createExternalBTree(ioManager, file, runtimeContextProvider.getBufferCache(), + return LSMBTreeUtil.createExternalBTree(ioManager, file, runtimeContextProvider.getBufferCache(), runtimeContextProvider.getFileMapManager(), typeTraits, cmpFactories, bloomFilterKeyFields, runtimeContextProvider.getBloomFilterFalsePositiveRate(), mergePolicyFactory.createMergePolicy(mergePolicyProperties, runtimeContextProvider.getDatasetLifecycleManager()), - new BaseOperationTracker(datasetId(), - runtimeContextProvider.getDatasetLifecycleManager().getDatasetInfo(datasetId())), + opTrackerProvider.getOperationTracker(appCtx), runtimeContextProvider.getLSMIOScheduler(), - LSMBTreeIOOperationCallbackFactory.INSTANCE.createIOOperationCallback(), -1, true, - LSMIndexUtil.getMetadataPageManagerFactory()); - return lsmBTree; + ioOpCallbackFactory.createIOOperationCallback(), -1, true, + metadataPageManagerFactory); } } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/ExternalBTreeLocalResourceMetadataFactory.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/ExternalBTreeLocalResourceMetadataFactory.java b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/ExternalBTreeLocalResourceMetadataFactory.java index 61d19c3..ea25aab 100644 --- a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/ExternalBTreeLocalResourceMetadataFactory.java +++ b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/ExternalBTreeLocalResourceMetadataFactory.java @@ -23,7 +23,10 @@ import java.util.Map; import org.apache.asterix.common.transactions.Resource; import org.apache.hyracks.api.dataflow.value.IBinaryComparatorFactory; import org.apache.hyracks.api.dataflow.value.ITypeTraits; +import org.apache.hyracks.storage.am.common.api.IMetadataPageManagerFactory; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallbackFactory; import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicyFactory; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerFactory; public class ExternalBTreeLocalResourceMetadataFactory extends LSMBTreeLocalResourceMetadataFactory { @@ -32,14 +35,18 @@ public class ExternalBTreeLocalResourceMetadataFactory extends LSMBTreeLocalReso public ExternalBTreeLocalResourceMetadataFactory(ITypeTraits[] typeTraits, IBinaryComparatorFactory[] cmpFactories, int[] bloomFilterKeyFields, boolean isPrimary, int datasetID, ILSMMergePolicyFactory mergePolicyFactory, - Map<String, String> mergePolicyProperties) { + Map<String, String> mergePolicyProperties, ILSMOperationTrackerFactory opTrackerProvider, + ILSMIOOperationCallbackFactory ioOpCallbackFactory, + IMetadataPageManagerFactory metadataPageManagerFactory) { super(typeTraits, cmpFactories, bloomFilterKeyFields, isPrimary, datasetID, mergePolicyFactory, - mergePolicyProperties, null, null, null, null); + mergePolicyProperties, null, null, null, null, opTrackerProvider, ioOpCallbackFactory, + metadataPageManagerFactory); } @Override public Resource resource(int partition) { return new ExternalBTreeLocalResourceMetadata(filterTypeTraits, filterCmpFactories, bloomFilterKeyFields, - isPrimary, datasetId, partition, mergePolicyFactory, mergePolicyProperties); + isPrimary, datasetId, partition, mergePolicyFactory, mergePolicyProperties, opTrackerProvider, + ioOpCallbackFactory, metadataPageManagerFactory); } } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/ExternalBTreeWithBuddyLocalResourceMetadata.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/ExternalBTreeWithBuddyLocalResourceMetadata.java b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/ExternalBTreeWithBuddyLocalResourceMetadata.java index 1e029a9..e411f8b 100644 --- a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/ExternalBTreeWithBuddyLocalResourceMetadata.java +++ b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/ExternalBTreeWithBuddyLocalResourceMetadata.java @@ -20,19 +20,20 @@ package org.apache.asterix.transaction.management.resource; import java.util.Map; -import org.apache.asterix.common.context.BaseOperationTracker; -import org.apache.asterix.common.dataflow.LSMIndexUtil; -import org.apache.asterix.common.ioopcallbacks.LSMBTreeWithBuddyIOOperationCallbackFactory; -import org.apache.asterix.common.transactions.IAppRuntimeContextProvider; +import org.apache.asterix.common.api.IAppRuntimeContext; import org.apache.asterix.common.transactions.Resource; +import org.apache.hyracks.api.application.INCApplicationContext; import org.apache.hyracks.api.dataflow.value.IBinaryComparatorFactory; import org.apache.hyracks.api.dataflow.value.ITypeTraits; import org.apache.hyracks.api.exceptions.HyracksDataException; import org.apache.hyracks.api.io.FileReference; import org.apache.hyracks.api.io.IIOManager; -import org.apache.hyracks.storage.am.lsm.btree.util.LSMBTreeUtils; +import org.apache.hyracks.storage.am.common.api.IMetadataPageManagerFactory; +import org.apache.hyracks.storage.am.lsm.btree.utils.LSMBTreeUtil; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallbackFactory; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndex; import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicyFactory; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerFactory; import org.apache.hyracks.storage.common.file.LocalResource; /** @@ -51,8 +52,11 @@ public class ExternalBTreeWithBuddyLocalResourceMetadata extends Resource { public ExternalBTreeWithBuddyLocalResourceMetadata(int datasetID, int partition, IBinaryComparatorFactory[] btreeCmpFactories, ITypeTraits[] typeTraits, ILSMMergePolicyFactory mergePolicyFactory, - Map<String, String> mergePolicyProperties, int[] buddyBtreeFields) { - super(datasetID, partition, null, null, null); + Map<String, String> mergePolicyProperties, int[] buddyBtreeFields, + ILSMOperationTrackerFactory opTrackerProvider, ILSMIOOperationCallbackFactory ioOpCallbackFactory, + IMetadataPageManagerFactory metadataPageManagerFactory) { + super(datasetID, partition, null, null, null, opTrackerProvider, ioOpCallbackFactory, + metadataPageManagerFactory); this.btreeCmpFactories = btreeCmpFactories; this.typeTraits = typeTraits; this.mergePolicyFactory = mergePolicyFactory; @@ -61,19 +65,21 @@ public class ExternalBTreeWithBuddyLocalResourceMetadata extends Resource { } @Override - public ILSMIndex createIndexInstance(IAppRuntimeContextProvider runtimeContextProvider, - LocalResource resource) throws HyracksDataException { - IIOManager ioManager = runtimeContextProvider.getIOManager(); + public ILSMIndex createIndexInstance(INCApplicationContext appCtx, LocalResource resource) + throws HyracksDataException { + IAppRuntimeContext appRuntimeCtx = (IAppRuntimeContext) appCtx.getApplicationObject(); + IIOManager ioManager = appCtx.getIoManager(); FileReference file = ioManager.resolve(resource.getPath()); - return LSMBTreeUtils.createExternalBTreeWithBuddy(ioManager, file, runtimeContextProvider.getBufferCache(), - runtimeContextProvider.getFileMapManager(), typeTraits, btreeCmpFactories, - runtimeContextProvider.getBloomFilterFalsePositiveRate(), - mergePolicyFactory.createMergePolicy(mergePolicyProperties, - runtimeContextProvider.getDatasetLifecycleManager()), - new BaseOperationTracker(datasetId(), - runtimeContextProvider.getDatasetLifecycleManager().getDatasetInfo(datasetId())), - runtimeContextProvider.getLSMIOScheduler(), - LSMBTreeWithBuddyIOOperationCallbackFactory.INSTANCE.createIOOperationCallback(), buddyBtreeFields, -1, - true, LSMIndexUtil.getMetadataPageManagerFactory()); + return LSMBTreeUtil.createExternalBTreeWithBuddy( + ioManager, file, appRuntimeCtx.getBufferCache(), + appRuntimeCtx.getFileMapManager(), typeTraits, btreeCmpFactories, + appRuntimeCtx.getBloomFilterFalsePositiveRate(), + mergePolicyFactory.createMergePolicy( + mergePolicyProperties, + appRuntimeCtx.getDatasetLifecycleManager()), + opTrackerProvider.getOperationTracker(appCtx), + appRuntimeCtx.getLSMIOScheduler(), + ioOpCallbackFactory.createIOOperationCallback(), buddyBtreeFields, -1, + true, metadataPageManagerFactory); } } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/ExternalBTreeWithBuddyLocalResourceMetadataFactory.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/ExternalBTreeWithBuddyLocalResourceMetadataFactory.java b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/ExternalBTreeWithBuddyLocalResourceMetadataFactory.java index 836bcf4..98cd6dc 100644 --- a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/ExternalBTreeWithBuddyLocalResourceMetadataFactory.java +++ b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/ExternalBTreeWithBuddyLocalResourceMetadataFactory.java @@ -24,7 +24,10 @@ import org.apache.asterix.common.transactions.Resource; import org.apache.asterix.common.transactions.ResourceFactory; import org.apache.hyracks.api.dataflow.value.IBinaryComparatorFactory; import org.apache.hyracks.api.dataflow.value.ITypeTraits; +import org.apache.hyracks.storage.am.common.api.IMetadataPageManagerFactory; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallbackFactory; import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicyFactory; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerFactory; public class ExternalBTreeWithBuddyLocalResourceMetadataFactory extends ResourceFactory { private static final long serialVersionUID = 1L; @@ -37,8 +40,11 @@ public class ExternalBTreeWithBuddyLocalResourceMetadataFactory extends Resource public ExternalBTreeWithBuddyLocalResourceMetadataFactory(int datasetID, IBinaryComparatorFactory[] btreeCmpFactories, ITypeTraits[] typeTraits, ILSMMergePolicyFactory mergePolicyFactory, - Map<String, String> mergePolicyProperties, int[] buddyBtreeFields) { - super(datasetID, null, null, null); + Map<String, String> mergePolicyProperties, int[] buddyBtreeFields, + ILSMOperationTrackerFactory opTrackerProvider, + ILSMIOOperationCallbackFactory ioOpCallbackFactory, + IMetadataPageManagerFactory metadataPageManagerFactory) { + super(datasetID, null, null, null, opTrackerProvider, ioOpCallbackFactory, metadataPageManagerFactory); this.btreeCmpFactories = btreeCmpFactories; this.typeTraits = typeTraits; this.mergePolicyFactory = mergePolicyFactory; @@ -49,6 +55,7 @@ public class ExternalBTreeWithBuddyLocalResourceMetadataFactory extends Resource @Override public Resource resource(int partition) { return new ExternalBTreeWithBuddyLocalResourceMetadata(datasetId, partition, btreeCmpFactories, typeTraits, - mergePolicyFactory, mergePolicyProperties, buddyBtreeFields); + mergePolicyFactory, mergePolicyProperties, buddyBtreeFields, opTrackerProvider, ioOpCallbackFactory, + metadataPageManagerFactory); } } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/ExternalRTreeLocalResourceMetadata.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/ExternalRTreeLocalResourceMetadata.java b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/ExternalRTreeLocalResourceMetadata.java index 1667bbd..3de3a58 100644 --- a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/ExternalRTreeLocalResourceMetadata.java +++ b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/ExternalRTreeLocalResourceMetadata.java @@ -20,20 +20,21 @@ package org.apache.asterix.transaction.management.resource; import java.util.Map; -import org.apache.asterix.common.context.BaseOperationTracker; -import org.apache.asterix.common.dataflow.LSMIndexUtil; -import org.apache.asterix.common.ioopcallbacks.LSMRTreeIOOperationCallbackFactory; -import org.apache.asterix.common.transactions.IAppRuntimeContextProvider; +import org.apache.asterix.common.api.IAppRuntimeContext; +import org.apache.hyracks.api.application.INCApplicationContext; import org.apache.hyracks.api.dataflow.value.IBinaryComparatorFactory; import org.apache.hyracks.api.dataflow.value.ILinearizeComparatorFactory; import org.apache.hyracks.api.dataflow.value.ITypeTraits; import org.apache.hyracks.api.exceptions.HyracksDataException; import org.apache.hyracks.api.io.FileReference; import org.apache.hyracks.api.io.IIOManager; +import org.apache.hyracks.storage.am.common.api.IMetadataPageManagerFactory; import org.apache.hyracks.storage.am.common.api.IPrimitiveValueProviderFactory; import org.apache.hyracks.storage.am.common.api.TreeIndexException; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallbackFactory; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndex; import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicyFactory; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerFactory; import org.apache.hyracks.storage.am.lsm.rtree.utils.LSMRTreeUtils; import org.apache.hyracks.storage.am.rtree.frames.RTreePolicyType; import org.apache.hyracks.storage.common.file.LocalResource; @@ -49,15 +50,18 @@ public class ExternalRTreeLocalResourceMetadata extends LSMRTreeLocalResourceMet IBinaryComparatorFactory[] btreeCmpFactories, IPrimitiveValueProviderFactory[] valueProviderFactories, RTreePolicyType rtreePolicyType, ILinearizeComparatorFactory linearizeCmpFactory, int datasetID, int partition, ILSMMergePolicyFactory mergePolicyFactory, Map<String, String> mergePolicyProperties, - int[] btreeFields, boolean isPointMBR) { + int[] btreeFields, boolean isPointMBR, ILSMOperationTrackerFactory opTrackerProvider, + ILSMIOOperationCallbackFactory ioOpCallbackFactory, + IMetadataPageManagerFactory metadataPageManagerFactory) { super(typeTraits, rtreeCmpFactories, btreeCmpFactories, valueProviderFactories, rtreePolicyType, linearizeCmpFactory, datasetID, partition, mergePolicyFactory, mergePolicyProperties, null, null, null, - btreeFields, null, isPointMBR); + btreeFields, null, isPointMBR, opTrackerProvider, ioOpCallbackFactory, metadataPageManagerFactory); } @Override - public ILSMIndex createIndexInstance(IAppRuntimeContextProvider runtimeContextProvider, + public ILSMIndex createIndexInstance(INCApplicationContext appCtx, LocalResource resource) throws HyracksDataException { + IAppRuntimeContext runtimeContextProvider = (IAppRuntimeContext) appCtx.getApplicationObject(); IIOManager ioManager = runtimeContextProvider.getIOManager(); FileReference file = ioManager.resolve(resource.getPath()); try { @@ -66,11 +70,10 @@ public class ExternalRTreeLocalResourceMetadata extends LSMRTreeLocalResourceMet valueProviderFactories, rtreePolicyType, runtimeContextProvider.getBloomFilterFalsePositiveRate(), mergePolicyFactory.createMergePolicy(mergePolicyProperties, runtimeContextProvider.getDatasetLifecycleManager()), - new BaseOperationTracker(datasetId(), - runtimeContextProvider.getDatasetLifecycleManager().getDatasetInfo(datasetId())), + opTrackerProvider.getOperationTracker(appCtx), runtimeContextProvider.getLSMIOScheduler(), - LSMRTreeIOOperationCallbackFactory.INSTANCE.createIOOperationCallback(), linearizeCmpFactory, - btreeFields, -1, true, isPointMBR, LSMIndexUtil.getMetadataPageManagerFactory()); + ioOpCallbackFactory.createIOOperationCallback(), linearizeCmpFactory, + btreeFields, -1, true, isPointMBR, metadataPageManagerFactory); } catch (TreeIndexException e) { throw new HyracksDataException(e); } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/ExternalRTreeLocalResourceMetadataFactory.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/ExternalRTreeLocalResourceMetadataFactory.java b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/ExternalRTreeLocalResourceMetadataFactory.java index 076fef1..e46729a 100644 --- a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/ExternalRTreeLocalResourceMetadataFactory.java +++ b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/ExternalRTreeLocalResourceMetadataFactory.java @@ -24,8 +24,11 @@ import org.apache.asterix.common.transactions.Resource; import org.apache.hyracks.api.dataflow.value.IBinaryComparatorFactory; import org.apache.hyracks.api.dataflow.value.ILinearizeComparatorFactory; import org.apache.hyracks.api.dataflow.value.ITypeTraits; +import org.apache.hyracks.storage.am.common.api.IMetadataPageManagerFactory; import org.apache.hyracks.storage.am.common.api.IPrimitiveValueProviderFactory; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallbackFactory; import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicyFactory; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerFactory; import org.apache.hyracks.storage.am.rtree.frames.RTreePolicyType; public class ExternalRTreeLocalResourceMetadataFactory extends LSMRTreeLocalResourceMetadataFactory { @@ -37,17 +40,20 @@ public class ExternalRTreeLocalResourceMetadataFactory extends LSMRTreeLocalReso IBinaryComparatorFactory[] btreeCmpFactories, IPrimitiveValueProviderFactory[] valueProviderFactories, RTreePolicyType rtreePolicyType, ILinearizeComparatorFactory linearizeCmpFactory, int datasetID, ILSMMergePolicyFactory mergePolicyFactory, Map<String, String> mergePolicyProperties, - int[] btreeFields, boolean isPointMBR) { + int[] btreeFields, boolean isPointMBR, ILSMOperationTrackerFactory opTrackerProvider, + ILSMIOOperationCallbackFactory ioOpCallbackFactory, + IMetadataPageManagerFactory metadataPageManagerFactory) { super(typeTraits, rtreeCmpFactories, btreeCmpFactories, valueProviderFactories, rtreePolicyType, linearizeCmpFactory, datasetID, mergePolicyFactory, mergePolicyProperties, null, null, null, - btreeFields, null, isPointMBR); + btreeFields, null, isPointMBR, opTrackerProvider, ioOpCallbackFactory, metadataPageManagerFactory); } @Override public Resource resource(int partition) { return new ExternalRTreeLocalResourceMetadata(filterTypeTraits, rtreeCmpFactories, btreeCmpFactories, valueProviderFactories, rtreePolicyType, linearizeCmpFactory, datasetId, partition, mergePolicyFactory, - mergePolicyProperties, btreeFields, isPointMBR); + mergePolicyProperties, btreeFields, isPointMBR, opTrackerProvider, ioOpCallbackFactory, + metadataPageManagerFactory); } } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/LSMBTreeLocalResourceMetadata.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/LSMBTreeLocalResourceMetadata.java b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/LSMBTreeLocalResourceMetadata.java index 35263ce..0ecb396 100644 --- a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/LSMBTreeLocalResourceMetadata.java +++ b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/LSMBTreeLocalResourceMetadata.java @@ -20,21 +20,21 @@ package org.apache.asterix.transaction.management.resource; import java.util.Map; +import org.apache.asterix.common.api.IAppRuntimeContext; import org.apache.asterix.common.api.IDatasetLifecycleManager; -import org.apache.asterix.common.context.BaseOperationTracker; -import org.apache.asterix.common.dataflow.LSMIndexUtil; -import org.apache.asterix.common.ioopcallbacks.LSMBTreeIOOperationCallbackFactory; -import org.apache.asterix.common.transactions.IAppRuntimeContextProvider; import org.apache.asterix.common.transactions.Resource; +import org.apache.hyracks.api.application.INCApplicationContext; import org.apache.hyracks.api.dataflow.value.IBinaryComparatorFactory; import org.apache.hyracks.api.dataflow.value.ITypeTraits; import org.apache.hyracks.api.exceptions.HyracksDataException; import org.apache.hyracks.api.io.FileReference; import org.apache.hyracks.api.io.IIOManager; -import org.apache.hyracks.storage.am.lsm.btree.impls.LSMBTree; -import org.apache.hyracks.storage.am.lsm.btree.util.LSMBTreeUtils; +import org.apache.hyracks.storage.am.common.api.IMetadataPageManagerFactory; +import org.apache.hyracks.storage.am.lsm.btree.utils.LSMBTreeUtil; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallbackFactory; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndex; import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicyFactory; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerFactory; import org.apache.hyracks.storage.common.file.LocalResource; public class LSMBTreeLocalResourceMetadata extends Resource { @@ -51,10 +51,13 @@ public class LSMBTreeLocalResourceMetadata extends Resource { public LSMBTreeLocalResourceMetadata(ITypeTraits[] typeTraits, IBinaryComparatorFactory[] cmpFactories, int[] bloomFilterKeyFields, boolean isPrimary, int datasetID, int partition, - ILSMMergePolicyFactory mergePolicyFactory, - Map<String, String> mergePolicyProperties, ITypeTraits[] filterTypeTraits, - IBinaryComparatorFactory[] filterCmpFactories, int[] btreeFields, int[] filterFields) { - super(datasetID, partition, filterTypeTraits, filterCmpFactories, filterFields); + ILSMMergePolicyFactory mergePolicyFactory, Map<String, String> mergePolicyProperties, + ITypeTraits[] filterTypeTraits, IBinaryComparatorFactory[] filterCmpFactories, int[] btreeFields, + int[] filterFields, ILSMOperationTrackerFactory opTrackerProvider, + ILSMIOOperationCallbackFactory ioOpCallbackFactory, + IMetadataPageManagerFactory metadataPageManagerFactory) { + super(datasetID, partition, filterTypeTraits, filterCmpFactories, filterFields, opTrackerProvider, + ioOpCallbackFactory, metadataPageManagerFactory); this.typeTraits = typeTraits; this.cmpFactories = cmpFactories; this.bloomFilterKeyFields = bloomFilterKeyFields; @@ -72,24 +75,22 @@ public class LSMBTreeLocalResourceMetadata extends Resource { } @Override - public ILSMIndex createIndexInstance(IAppRuntimeContextProvider runtimeContextProvider, - LocalResource resource) throws HyracksDataException { - IIOManager ioManager = runtimeContextProvider.getIOManager(); + public ILSMIndex createIndexInstance(INCApplicationContext appCtx, LocalResource resource) + throws HyracksDataException { + IAppRuntimeContext appRuntimeCtx = (IAppRuntimeContext) appCtx.getApplicationObject(); + IIOManager ioManager = appRuntimeCtx.getIOManager(); FileReference file = ioManager.resolve(resource.getPath()); int ioDeviceNum = Resource.getIoDeviceNum(ioManager, file.getDeviceHandle()); - final IDatasetLifecycleManager datasetLifecycleManager = runtimeContextProvider.getDatasetLifecycleManager(); - LSMBTree lsmBTree = LSMBTreeUtils.createLSMTree(ioManager, datasetLifecycleManager.getVirtualBufferCaches( - datasetId(), - ioDeviceNum), file, runtimeContextProvider.getBufferCache(), runtimeContextProvider.getFileMapManager(), - typeTraits, cmpFactories, bloomFilterKeyFields, runtimeContextProvider + final IDatasetLifecycleManager datasetLifecycleManager = appRuntimeCtx.getDatasetLifecycleManager(); + return LSMBTreeUtil.createLSMTree(ioManager, datasetLifecycleManager.getVirtualBufferCaches( + datasetId(), ioDeviceNum), file, appRuntimeCtx.getBufferCache(), appRuntimeCtx + .getFileMapManager(), + typeTraits, cmpFactories, bloomFilterKeyFields, appRuntimeCtx .getBloomFilterFalsePositiveRate(), mergePolicyFactory.createMergePolicy(mergePolicyProperties, datasetLifecycleManager), - isPrimary ? runtimeContextProvider.getLSMBTreeOperationTracker(datasetId()) - : new BaseOperationTracker(datasetId(), datasetLifecycleManager.getDatasetInfo(datasetId())), - runtimeContextProvider.getLSMIOScheduler(), - LSMBTreeIOOperationCallbackFactory.INSTANCE.createIOOperationCallback(), isPrimary, filterTypeTraits, - filterCmpFactories, btreeFields, filterFields, true, LSMIndexUtil - .getMetadataPageManagerFactory()); - return lsmBTree; + opTrackerProvider.getOperationTracker(appCtx), + appRuntimeCtx.getLSMIOScheduler(), + ioOpCallbackFactory.createIOOperationCallback(), isPrimary, filterTypeTraits, + filterCmpFactories, btreeFields, filterFields, true, metadataPageManagerFactory); } } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/LSMBTreeLocalResourceMetadataFactory.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/LSMBTreeLocalResourceMetadataFactory.java b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/LSMBTreeLocalResourceMetadataFactory.java index 34d646d..3100d6c 100644 --- a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/LSMBTreeLocalResourceMetadataFactory.java +++ b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/LSMBTreeLocalResourceMetadataFactory.java @@ -24,7 +24,10 @@ import org.apache.asterix.common.transactions.Resource; import org.apache.asterix.common.transactions.ResourceFactory; import org.apache.hyracks.api.dataflow.value.IBinaryComparatorFactory; import org.apache.hyracks.api.dataflow.value.ITypeTraits; +import org.apache.hyracks.storage.am.common.api.IMetadataPageManagerFactory; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallbackFactory; import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicyFactory; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerFactory; public class LSMBTreeLocalResourceMetadataFactory extends ResourceFactory { @@ -41,8 +44,12 @@ public class LSMBTreeLocalResourceMetadataFactory extends ResourceFactory { int[] bloomFilterKeyFields, boolean isPrimary, int datasetID, ILSMMergePolicyFactory mergePolicyFactory, Map<String, String> mergePolicyProperties, ITypeTraits[] filterTypeTraits, - IBinaryComparatorFactory[] filterCmpFactories, int[] btreeFields, int[] filterFields) { - super(datasetID, filterTypeTraits, filterCmpFactories, filterFields); + IBinaryComparatorFactory[] filterCmpFactories, int[] btreeFields, int[] filterFields, + ILSMOperationTrackerFactory opTrackerProvider, + ILSMIOOperationCallbackFactory ioOpCallbackFactory, + IMetadataPageManagerFactory metadataPageManagerFactory) { + super(datasetID, filterTypeTraits, filterCmpFactories, filterFields, opTrackerProvider, ioOpCallbackFactory, + metadataPageManagerFactory); this.typeTraits = typeTraits; this.cmpFactories = cmpFactories; this.bloomFilterKeyFields = bloomFilterKeyFields; @@ -56,6 +63,6 @@ public class LSMBTreeLocalResourceMetadataFactory extends ResourceFactory { public Resource resource(int partition) { return new LSMBTreeLocalResourceMetadata(typeTraits, cmpFactories, bloomFilterKeyFields, isPrimary, datasetId, partition, mergePolicyFactory, mergePolicyProperties, typeTraits, filterCmpFactories, btreeFields, - filterFields); + filterFields, opTrackerProvider, ioOpCallbackFactory, metadataPageManagerFactory); } } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/LSMInvertedIndexLocalResourceMetadata.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/LSMInvertedIndexLocalResourceMetadata.java b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/LSMInvertedIndexLocalResourceMetadata.java index c80437f..097c922 100644 --- a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/LSMInvertedIndexLocalResourceMetadata.java +++ b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/LSMInvertedIndexLocalResourceMetadata.java @@ -21,19 +21,20 @@ package org.apache.asterix.transaction.management.resource; import java.util.List; import java.util.Map; -import org.apache.asterix.common.context.BaseOperationTracker; -import org.apache.asterix.common.dataflow.LSMIndexUtil; -import org.apache.asterix.common.ioopcallbacks.LSMInvertedIndexIOOperationCallbackFactory; -import org.apache.asterix.common.transactions.IAppRuntimeContextProvider; +import org.apache.asterix.common.api.IAppRuntimeContext; import org.apache.asterix.common.transactions.Resource; +import org.apache.hyracks.api.application.INCApplicationContext; import org.apache.hyracks.api.dataflow.value.IBinaryComparatorFactory; import org.apache.hyracks.api.dataflow.value.ITypeTraits; import org.apache.hyracks.api.exceptions.HyracksDataException; import org.apache.hyracks.api.io.FileReference; import org.apache.hyracks.api.io.IIOManager; +import org.apache.hyracks.storage.am.common.api.IMetadataPageManagerFactory; import org.apache.hyracks.storage.am.common.api.IndexException; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallbackFactory; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndex; import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicyFactory; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerFactory; import org.apache.hyracks.storage.am.lsm.common.api.IVirtualBufferCache; import org.apache.hyracks.storage.am.lsm.invertedindex.tokenizers.IBinaryTokenizerFactory; import org.apache.hyracks.storage.am.lsm.invertedindex.util.InvertedIndexUtils; @@ -61,8 +62,11 @@ public class LSMInvertedIndexLocalResourceMetadata extends Resource { boolean isPartitioned, int datasetID, int partition, ILSMMergePolicyFactory mergePolicyFactory, Map<String, String> mergePolicyProperties, ITypeTraits[] filterTypeTraits, IBinaryComparatorFactory[] filterCmpFactories, int[] invertedIndexFields, int[] filterFields, - int[] filterFieldsForNonBulkLoadOps, int[] invertedIndexFieldsForNonBulkLoadOps) { - super(datasetID, partition, filterTypeTraits, filterCmpFactories, filterFields); + int[] filterFieldsForNonBulkLoadOps, int[] invertedIndexFieldsForNonBulkLoadOps, + ILSMOperationTrackerFactory opTrackerProvider, ILSMIOOperationCallbackFactory ioOpCallbackFactory, + IMetadataPageManagerFactory metadataPageManagerFactory) { + super(datasetID, partition, filterTypeTraits, filterCmpFactories, filterFields, opTrackerProvider, + ioOpCallbackFactory, metadataPageManagerFactory); this.invListTypeTraits = invListTypeTraits; this.invListCmpFactories = invListCmpFactories; this.tokenTypeTraits = tokenTypeTraits; @@ -77,13 +81,14 @@ public class LSMInvertedIndexLocalResourceMetadata extends Resource { } @Override - public ILSMIndex createIndexInstance(IAppRuntimeContextProvider runtimeContextProvider, - LocalResource resource) throws HyracksDataException { + public ILSMIndex createIndexInstance(INCApplicationContext appCtx, LocalResource resource) + throws HyracksDataException { + IAppRuntimeContext runtimeContextProvider = (IAppRuntimeContext) appCtx.getApplicationObject(); IIOManager ioManager = runtimeContextProvider.getIOManager(); FileReference file = ioManager.resolve(resource.getPath()); int ioDeviceNum = Resource.getIoDeviceNum(ioManager, file.getDeviceHandle()); - List<IVirtualBufferCache> virtualBufferCaches = runtimeContextProvider.getDatasetLifecycleManager() - .getVirtualBufferCaches(datasetId(), ioDeviceNum); + List<IVirtualBufferCache> virtualBufferCaches = + runtimeContextProvider.getDatasetLifecycleManager().getVirtualBufferCaches(datasetId(), ioDeviceNum); try { if (isPartitioned) { return InvertedIndexUtils.createPartitionedLSMInvertedIndex(ioManager, virtualBufferCaches, @@ -92,13 +97,10 @@ public class LSMInvertedIndexLocalResourceMetadata extends Resource { file.getAbsolutePath(), runtimeContextProvider.getBloomFilterFalsePositiveRate(), mergePolicyFactory.createMergePolicy(mergePolicyProperties, runtimeContextProvider.getDatasetLifecycleManager()), - new BaseOperationTracker(datasetId(), - runtimeContextProvider.getDatasetLifecycleManager().getDatasetInfo(datasetId())), - runtimeContextProvider.getLSMIOScheduler(), - LSMInvertedIndexIOOperationCallbackFactory.INSTANCE.createIOOperationCallback(), - invertedIndexFields, filterTypeTraits, filterCmpFactories, filterFields, - filterFieldsForNonBulkLoadOps, invertedIndexFieldsForNonBulkLoadOps, true, LSMIndexUtil - .getMetadataPageManagerFactory()); + opTrackerProvider.getOperationTracker(appCtx), runtimeContextProvider.getLSMIOScheduler(), + ioOpCallbackFactory.createIOOperationCallback(), invertedIndexFields, filterTypeTraits, + filterCmpFactories, filterFields, filterFieldsForNonBulkLoadOps, + invertedIndexFieldsForNonBulkLoadOps, true, metadataPageManagerFactory); } else { return InvertedIndexUtils.createLSMInvertedIndex(ioManager, virtualBufferCaches, runtimeContextProvider.getFileMapManager(), invListTypeTraits, invListCmpFactories, @@ -106,13 +108,10 @@ public class LSMInvertedIndexLocalResourceMetadata extends Resource { file.getAbsolutePath(), runtimeContextProvider.getBloomFilterFalsePositiveRate(), mergePolicyFactory.createMergePolicy(mergePolicyProperties, runtimeContextProvider.getDatasetLifecycleManager()), - new BaseOperationTracker(datasetId(), - runtimeContextProvider.getDatasetLifecycleManager().getDatasetInfo(datasetId())), - runtimeContextProvider.getLSMIOScheduler(), - LSMInvertedIndexIOOperationCallbackFactory.INSTANCE.createIOOperationCallback(), - invertedIndexFields, filterTypeTraits, filterCmpFactories, filterFields, - filterFieldsForNonBulkLoadOps, invertedIndexFieldsForNonBulkLoadOps, true, LSMIndexUtil - .getMetadataPageManagerFactory()); + opTrackerProvider.getOperationTracker(appCtx), runtimeContextProvider.getLSMIOScheduler(), + ioOpCallbackFactory.createIOOperationCallback(), invertedIndexFields, filterTypeTraits, + filterCmpFactories, filterFields, filterFieldsForNonBulkLoadOps, + invertedIndexFieldsForNonBulkLoadOps, true, metadataPageManagerFactory); } } catch (IndexException e) { throw new HyracksDataException(e); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/LSMInvertedIndexLocalResourceMetadataFactory.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/LSMInvertedIndexLocalResourceMetadataFactory.java b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/LSMInvertedIndexLocalResourceMetadataFactory.java index a5a6c2a..2d55357 100644 --- a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/LSMInvertedIndexLocalResourceMetadataFactory.java +++ b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/LSMInvertedIndexLocalResourceMetadataFactory.java @@ -24,7 +24,10 @@ import org.apache.asterix.common.transactions.Resource; import org.apache.asterix.common.transactions.ResourceFactory; import org.apache.hyracks.api.dataflow.value.IBinaryComparatorFactory; import org.apache.hyracks.api.dataflow.value.ITypeTraits; +import org.apache.hyracks.storage.am.common.api.IMetadataPageManagerFactory; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallbackFactory; import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicyFactory; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerFactory; import org.apache.hyracks.storage.am.lsm.invertedindex.tokenizers.IBinaryTokenizerFactory; public class LSMInvertedIndexLocalResourceMetadataFactory extends ResourceFactory { @@ -48,8 +51,12 @@ public class LSMInvertedIndexLocalResourceMetadataFactory extends ResourceFactor boolean isPartitioned, int datasetID, ILSMMergePolicyFactory mergePolicyFactory, Map<String, String> mergePolicyProperties, ITypeTraits[] filterTypeTraits, IBinaryComparatorFactory[] filterCmpFactories, int[] invertedIndexFields, int[] filterFields, - int[] filterFieldsForNonBulkLoadOps, int[] invertedIndexFieldsForNonBulkLoadOps) { - super(datasetID, filterTypeTraits, filterCmpFactories, filterFields); + int[] filterFieldsForNonBulkLoadOps, int[] invertedIndexFieldsForNonBulkLoadOps, + ILSMOperationTrackerFactory opTrackerProvider, + ILSMIOOperationCallbackFactory ioOpCallbackFactory, + IMetadataPageManagerFactory metadataPageManagerFactory) { + super(datasetID, filterTypeTraits, filterCmpFactories, filterFields, opTrackerProvider, ioOpCallbackFactory, + metadataPageManagerFactory); this.invListTypeTraits = invListTypeTraits; this.invListCmpFactories = invListCmpFactories; this.tokenTypeTraits = tokenTypeTraits; @@ -68,7 +75,8 @@ public class LSMInvertedIndexLocalResourceMetadataFactory extends ResourceFactor return new LSMInvertedIndexLocalResourceMetadata(invListTypeTraits, invListCmpFactories, tokenTypeTraits, tokenCmpFactories, tokenizerFactory, isPartitioned, datasetId, partition, mergePolicyFactory, mergePolicyProperties, filterTypeTraits, filterCmpFactories, invertedIndexFields, - filterFields, filterFieldsForNonBulkLoadOps, invertedIndexFieldsForNonBulkLoadOps); + filterFields, filterFieldsForNonBulkLoadOps, invertedIndexFieldsForNonBulkLoadOps, opTrackerProvider, + ioOpCallbackFactory, metadataPageManagerFactory); } } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/LSMRTreeLocalResourceMetadata.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/LSMRTreeLocalResourceMetadata.java b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/LSMRTreeLocalResourceMetadata.java index 2fc3022..c9c5d25 100644 --- a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/LSMRTreeLocalResourceMetadata.java +++ b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/LSMRTreeLocalResourceMetadata.java @@ -21,21 +21,22 @@ package org.apache.asterix.transaction.management.resource; import java.util.List; import java.util.Map; -import org.apache.asterix.common.context.BaseOperationTracker; -import org.apache.asterix.common.dataflow.LSMIndexUtil; -import org.apache.asterix.common.ioopcallbacks.LSMRTreeIOOperationCallbackFactory; -import org.apache.asterix.common.transactions.IAppRuntimeContextProvider; +import org.apache.asterix.common.api.IAppRuntimeContext; import org.apache.asterix.common.transactions.Resource; +import org.apache.hyracks.api.application.INCApplicationContext; import org.apache.hyracks.api.dataflow.value.IBinaryComparatorFactory; import org.apache.hyracks.api.dataflow.value.ILinearizeComparatorFactory; import org.apache.hyracks.api.dataflow.value.ITypeTraits; import org.apache.hyracks.api.exceptions.HyracksDataException; import org.apache.hyracks.api.io.FileReference; import org.apache.hyracks.api.io.IIOManager; +import org.apache.hyracks.storage.am.common.api.IMetadataPageManagerFactory; import org.apache.hyracks.storage.am.common.api.IPrimitiveValueProviderFactory; import org.apache.hyracks.storage.am.common.api.TreeIndexException; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallbackFactory; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndex; import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicyFactory; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerFactory; import org.apache.hyracks.storage.am.lsm.common.api.IVirtualBufferCache; import org.apache.hyracks.storage.am.lsm.rtree.utils.LSMRTreeUtils; import org.apache.hyracks.storage.am.rtree.frames.RTreePolicyType; @@ -62,8 +63,11 @@ public class LSMRTreeLocalResourceMetadata extends Resource { RTreePolicyType rtreePolicyType, ILinearizeComparatorFactory linearizeCmpFactory, int datasetID, int partition, ILSMMergePolicyFactory mergePolicyFactory, Map<String, String> mergePolicyProperties, ITypeTraits[] filterTypeTraits, IBinaryComparatorFactory[] filterCmpFactories, int[] rtreeFields, - int[] btreeFields, int[] filterFields, boolean isPointMBR) { - super(datasetID, partition, filterTypeTraits, filterCmpFactories, filterFields); + int[] btreeFields, int[] filterFields, boolean isPointMBR, ILSMOperationTrackerFactory opTrackerProvider, + ILSMIOOperationCallbackFactory ioOpCallbackFactory, + IMetadataPageManagerFactory metadataPageManagerFactory) { + super(datasetID, partition, filterTypeTraits, filterCmpFactories, filterFields, opTrackerProvider, + ioOpCallbackFactory, metadataPageManagerFactory); this.typeTraits = typeTraits; this.rtreeCmpFactories = rtreeCmpFactories; this.btreeCmpFactories = btreeCmpFactories; @@ -78,25 +82,23 @@ public class LSMRTreeLocalResourceMetadata extends Resource { } @Override - public ILSMIndex createIndexInstance(IAppRuntimeContextProvider runtimeContextProvider, - LocalResource resource) throws HyracksDataException { + public ILSMIndex createIndexInstance(INCApplicationContext appCtx, LocalResource resource) + throws HyracksDataException { + IAppRuntimeContext runtimeContextProvider = (IAppRuntimeContext) appCtx.getApplicationObject(); IIOManager ioManager = runtimeContextProvider.getIOManager(); FileReference file = ioManager.resolve(resource.getPath()); int ioDeviceNum = Resource.getIoDeviceNum(ioManager, file.getDeviceHandle()); - List<IVirtualBufferCache> virtualBufferCaches = runtimeContextProvider.getDatasetLifecycleManager() - .getVirtualBufferCaches(datasetId(), ioDeviceNum); + List<IVirtualBufferCache> virtualBufferCaches = + runtimeContextProvider.getDatasetLifecycleManager().getVirtualBufferCaches(datasetId(), ioDeviceNum); try { return LSMRTreeUtils.createLSMTreeWithAntiMatterTuples(ioManager, virtualBufferCaches, file, runtimeContextProvider.getBufferCache(), runtimeContextProvider.getFileMapManager(), typeTraits, rtreeCmpFactories, btreeCmpFactories, valueProviderFactories, rtreePolicyType, mergePolicyFactory.createMergePolicy(mergePolicyProperties, runtimeContextProvider.getDatasetLifecycleManager()), - new BaseOperationTracker(datasetId(), - runtimeContextProvider.getDatasetLifecycleManager().getDatasetInfo(datasetId())), - runtimeContextProvider.getLSMIOScheduler(), - LSMRTreeIOOperationCallbackFactory.INSTANCE.createIOOperationCallback(), linearizeCmpFactory, - rtreeFields, filterTypeTraits, filterCmpFactories, filterFields, true, isPointMBR, - LSMIndexUtil.getMetadataPageManagerFactory()); + opTrackerProvider.getOperationTracker(appCtx), runtimeContextProvider.getLSMIOScheduler(), + ioOpCallbackFactory.createIOOperationCallback(), linearizeCmpFactory, rtreeFields, + filterTypeTraits, filterCmpFactories, filterFields, true, isPointMBR, metadataPageManagerFactory); } catch (TreeIndexException e) { throw new HyracksDataException(e); } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/LSMRTreeLocalResourceMetadataFactory.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/LSMRTreeLocalResourceMetadataFactory.java b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/LSMRTreeLocalResourceMetadataFactory.java index 0ecf0aa..f05d28a 100644 --- a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/LSMRTreeLocalResourceMetadataFactory.java +++ b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/LSMRTreeLocalResourceMetadataFactory.java @@ -25,8 +25,11 @@ import org.apache.asterix.common.transactions.ResourceFactory; import org.apache.hyracks.api.dataflow.value.IBinaryComparatorFactory; import org.apache.hyracks.api.dataflow.value.ILinearizeComparatorFactory; import org.apache.hyracks.api.dataflow.value.ITypeTraits; +import org.apache.hyracks.storage.am.common.api.IMetadataPageManagerFactory; import org.apache.hyracks.storage.am.common.api.IPrimitiveValueProviderFactory; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallbackFactory; import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicyFactory; +import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerFactory; import org.apache.hyracks.storage.am.rtree.frames.RTreePolicyType; public class LSMRTreeLocalResourceMetadataFactory extends ResourceFactory { @@ -50,8 +53,11 @@ public class LSMRTreeLocalResourceMetadataFactory extends ResourceFactory { RTreePolicyType rtreePolicyType, ILinearizeComparatorFactory linearizeCmpFactory, int datasetID, ILSMMergePolicyFactory mergePolicyFactory, Map<String, String> mergePolicyProperties, ITypeTraits[] filterTypeTraits, IBinaryComparatorFactory[] filterCmpFactories, int[] rtreeFields, - int[] btreeFields, int[] filterFields, boolean isPointMBR) { - super(datasetID, filterTypeTraits, filterCmpFactories, filterFields); + int[] btreeFields, int[] filterFields, boolean isPointMBR, ILSMOperationTrackerFactory opTrackerProvider, + ILSMIOOperationCallbackFactory ioOpCallbackFactory, + IMetadataPageManagerFactory metadataPageManagerFactory) { + super(datasetID, filterTypeTraits, filterCmpFactories, filterFields, opTrackerProvider, ioOpCallbackFactory, + metadataPageManagerFactory); this.typeTraits = typeTraits; this.rtreeCmpFactories = rtreeCmpFactories; this.btreeCmpFactories = btreeCmpFactories; @@ -70,6 +76,6 @@ public class LSMRTreeLocalResourceMetadataFactory extends ResourceFactory { return new LSMRTreeLocalResourceMetadata(typeTraits, rtreeCmpFactories, btreeCmpFactories, valueProviderFactories, rtreePolicyType, linearizeCmpFactory, datasetId, partition, mergePolicyFactory, mergePolicyProperties, filterTypeTraits, filterCmpFactories, rtreeFields, btreeFields, filterFields, - isPointMBR); + isPointMBR, opTrackerProvider, ioOpCallbackFactory, metadataPageManagerFactory); } } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/PersistentLocalResourceRepository.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/PersistentLocalResourceRepository.java b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/PersistentLocalResourceRepository.java index 517292a..f7023b3 100644 --- a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/PersistentLocalResourceRepository.java +++ b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/PersistentLocalResourceRepository.java @@ -43,8 +43,8 @@ import java.util.logging.Logger; import org.apache.asterix.common.cluster.ClusterPartition; import org.apache.asterix.common.config.MetadataProperties; import org.apache.asterix.common.exceptions.AsterixException; -import org.apache.asterix.common.replication.ReplicationJob; import org.apache.asterix.common.replication.IReplicationManager; +import org.apache.asterix.common.replication.ReplicationJob; import org.apache.asterix.common.utils.StorageConstants; import org.apache.asterix.common.utils.StoragePathUtil; import org.apache.commons.io.FileUtils; @@ -72,8 +72,8 @@ public class PersistentLocalResourceRepository implements ILocalResourceReposito private static final String STORAGE_METADATA_FILE_NAME_PREFIX = "." + StorageConstants.METADATA_ROOT; private static final long STORAGE_LOCAL_RESOURCE_ID = -4321; private static final int MAX_CACHED_RESOURCES = 1000; - private static final FilenameFilter METADATA_FILES_FILTER = (File dir, String name) -> name - .equalsIgnoreCase(METADATA_FILE_NAME); + private static final FilenameFilter METADATA_FILES_FILTER = + (File dir, String name) -> name.equalsIgnoreCase(METADATA_FILE_NAME); // Finals private final IIOManager ioManager; private final String[] mountPoints; @@ -164,8 +164,7 @@ public class PersistentLocalResourceRepository implements ILocalResourceReposito } LocalResource rootLocalResource = new LocalResource(STORAGE_LOCAL_RESOURCE_ID, - storageMetadataFile.getRelativePath(), 0, ITreeIndexFrame.Constants.VERSION, - storageRootDirPath); + storageMetadataFile.getRelativePath(), 0, ITreeIndexFrame.Constants.VERSION, storageRootDirPath); insert(rootLocalResource); LOGGER.log(Level.INFO, "created the root-metadata-file: " + storageMetadataFile.getAbsolutePath()); } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogBuffer.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogBuffer.java b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogBuffer.java index 1245674..424e800 100644 --- a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogBuffer.java +++ b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogBuffer.java @@ -32,20 +32,21 @@ import org.apache.asterix.common.transactions.DatasetId; import org.apache.asterix.common.transactions.ILogBuffer; import org.apache.asterix.common.transactions.ILogRecord; import org.apache.asterix.common.transactions.ITransactionContext; +import org.apache.asterix.common.transactions.ITransactionSubsystem; import org.apache.asterix.common.transactions.JobId; import org.apache.asterix.common.transactions.LogRecord; import org.apache.asterix.common.transactions.LogSource; import org.apache.asterix.common.transactions.LogType; import org.apache.asterix.common.transactions.MutableLong; +import org.apache.asterix.common.utils.TransactionUtil; import org.apache.asterix.transaction.management.service.transaction.TransactionManagementConstants.LockManagerConstants.LockMode; -import org.apache.asterix.transaction.management.service.transaction.TransactionSubsystem; import org.apache.hyracks.api.exceptions.HyracksDataException; public class LogBuffer implements ILogBuffer { public static final boolean IS_DEBUG_MODE = false;//true private static final Logger LOGGER = Logger.getLogger(LogBuffer.class.getName()); - private final TransactionSubsystem txnSubsystem; + private final ITransactionSubsystem txnSubsystem; private final LogBufferTailReader logBufferTailReader; private final int logPageSize; private final MutableLong flushLSN; @@ -64,7 +65,7 @@ public class LogBuffer implements ILogBuffer { private final DatasetId reusableDsId; private final JobId reusableJobId; - public LogBuffer(TransactionSubsystem txnSubsystem, int logPageSize, MutableLong flushLSN) { + public LogBuffer(ITransactionSubsystem txnSubsystem, int logPageSize, MutableLong flushLSN) { this.txnSubsystem = txnSubsystem; this.logPageSize = logPageSize; this.flushLSN = flushLSN; @@ -266,7 +267,7 @@ public class LogBuffer implements ILogBuffer { // since this operation consisted of delete and insert, we need to notify the optracker twice txnCtx.notifyOptracker(false); } - if (TransactionSubsystem.IS_PROFILE_MODE) { + if (TransactionUtil.PROFILE_MODE) { txnSubsystem.incrementEntityCommitCount(); } } else if (logRecord.getLogType() == LogType.JOB_COMMIT http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogManager.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogManager.java b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogManager.java index 25096f6..613808f 100644 --- a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogManager.java +++ b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogManager.java @@ -45,18 +45,18 @@ import org.apache.asterix.common.transactions.ILogReader; import org.apache.asterix.common.transactions.ILogRecord; import org.apache.asterix.common.transactions.ITransactionContext; import org.apache.asterix.common.transactions.ITransactionManager; +import org.apache.asterix.common.transactions.ITransactionSubsystem; import org.apache.asterix.common.transactions.LogManagerProperties; import org.apache.asterix.common.transactions.LogType; import org.apache.asterix.common.transactions.MutableLong; import org.apache.asterix.common.transactions.TxnLogFile; -import org.apache.asterix.transaction.management.service.transaction.TransactionSubsystem; import org.apache.hyracks.api.lifecycle.ILifeCycleComponent; public class LogManager implements ILogManager, ILifeCycleComponent { public static final boolean IS_DEBUG_MODE = false;// true private static final Logger LOGGER = Logger.getLogger(LogManager.class.getName()); - private final TransactionSubsystem txnSubsystem; + private final ITransactionSubsystem txnSubsystem; private final LogManagerProperties logManagerProperties; protected final long logFileSize; @@ -80,7 +80,7 @@ public class LogManager implements ILogManager, ILifeCycleComponent { private final FlushLogsLogger flushLogsLogger; private final HashMap<Long, Integer> txnLogFileId2ReaderCount = new HashMap<>(); - public LogManager(TransactionSubsystem txnSubsystem) { + public LogManager(ITransactionSubsystem txnSubsystem) { this.txnSubsystem = txnSubsystem; logManagerProperties = new LogManagerProperties(this.txnSubsystem.getTransactionProperties(), this.txnSubsystem.getId()); @@ -251,7 +251,7 @@ public class LogManager implements ILogManager, ILifeCycleComponent { return logManagerProperties; } - public TransactionSubsystem getTransactionSubsystem() { + public ITransactionSubsystem getTransactionSubsystem() { return txnSubsystem; } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ef9be0f9/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogManagerWithReplication.java ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogManagerWithReplication.java b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogManagerWithReplication.java index c81225f..a248f77 100644 --- a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogManagerWithReplication.java +++ b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogManagerWithReplication.java @@ -23,15 +23,15 @@ import org.apache.asterix.common.replication.IReplicationManager; import org.apache.asterix.common.transactions.ILogRecord; import org.apache.asterix.common.transactions.ITransactionContext; import org.apache.asterix.common.transactions.ITransactionManager; +import org.apache.asterix.common.transactions.ITransactionSubsystem; import org.apache.asterix.common.transactions.LogSource; import org.apache.asterix.common.transactions.LogType; -import org.apache.asterix.transaction.management.service.transaction.TransactionSubsystem; public class LogManagerWithReplication extends LogManager { private IReplicationManager replicationManager; - public LogManagerWithReplication(TransactionSubsystem txnSubsystem) { + public LogManagerWithReplication(ITransactionSubsystem txnSubsystem) { super(txnSubsystem); }
