/* This file is part of VoltDB. * Copyright (C) 2008-2017 VoltDB Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with VoltDB. If not, see <http://www.gnu.org/licenses/>. */ package org.voltdb.sysprocs; import org.voltdb.VoltSystemProcedure; public class SysProcFragmentId { // @LastCommittedTransaction public static final long PF_lastCommittedScan = 1; public static final long PF_lastCommittedResults = 2; // @UpdateLogging public static final long PF_updateLoggers = 3; // @Statistics public static final long PF_starvationData = 4; public static final long PF_starvationDataAggregator = 5; public static final long PF_tableData = 6; public static final long PF_tableAggregator = 7; public static final long PF_indexData = 8; public static final long PF_indexAggregator = 9; public static final long PF_nodeMemory = 10; public static final long PF_nodeMemoryAggregator = 11; public static final long PF_procedureData = 13; public static final long PF_procedureAggregator = 14; public static final long PF_initiatorData = 15; public static final long PF_initiatorAggregator = 16; public static final long PF_partitionCount = 17; public static final long PF_ioData = 18; public static final long PF_ioDataAggregator = 19; public static final long PF_liveClientData = 20; public static final long PF_liveClientDataAggregator = 21; public static final long PF_plannerData = 22; public static final long PF_plannerAggregator = 23; // @Shutdown public static final long PF_shutdownSync = 26; public static final long PF_shutdownSyncDone = 27; public static final long PF_shutdownCommand = 28; public static final long PF_procedureDone = 29; // @AdHoc public static final long PF_runAdHocFragment = 31; // @SnapshotSave /* * Create and distribute tasks and targets to each EE */ public static final long PF_createSnapshotTargets = 42; /* * Confirm the targets were successfully created */ public static final long PF_createSnapshotTargetsResults = 43; public static boolean isSnapshotSaveFragment(byte[] planHash) { long fragId = VoltSystemProcedure.hashToFragId(planHash); return (fragId == PF_createSnapshotTargets); } public static boolean isFirstSnapshotFragment(byte[] planHash) { return isSnapshotSaveFragment(planHash); } //This method exists because there is no procedure name in fragment task message // for sysprocs and we cant distinguish if this needs to be replayed or not. public static boolean isDurableFragment(byte[] planHash) { long fragId = VoltSystemProcedure.hashToFragId(planHash); return (fragId == PF_prepBalancePartitions || fragId == PF_balancePartitions || fragId == PF_balancePartitionsData || fragId == PF_balancePartitionsClearIndex || fragId == PF_distribute || fragId == PF_applyBinaryLog); } // @LoadMultipartitionTable public static final long PF_distribute = 50; public static final long PF_aggregate = 51; // @SnapshotRestore public static final long PF_restoreScan = 60; public static final long PF_restoreScanResults = 61; public static final long PF_restoreDigestScan = 62; public static final long PF_restoreDigestScanResults = 63; public static final long PF_restoreDistributeExportAndPartitionSequenceNumbers = 64; public static final long PF_restoreDistributeExportAndPartitionSequenceNumbersResults = 65; public static final long PF_restoreAsyncRunLoop = 66; public static final long PF_restoreAsyncRunLoopResults = 67; public static final long PF_restoreLoadTable = 70; // called by 4 distribute cases, to load received table public static final long PF_restoreReceiveResultTables = 71; // union received result tables public static final long PF_restoreLoadReplicatedTable = 72; // special case for replicated-to-replicated public static final long PF_restoreDistributeReplicatedTableAsReplicated = 73; // replicated to replicated public static final long PF_restoreDistributePartitionedTableAsPartitioned = 74; // partitioned to partitioned public static final long PF_restoreDistributePartitionedTableAsReplicated = 75; // partitioned to replicated public static final long PF_restoreDistributeReplicatedTableAsPartitioned = 76; // replicated to replicated public static final long PF_restoreHashinatorScan = 77; public static final long PF_restoreHashinatorScanResults = 78; public static final long PF_restoreDistributeHashinator = 79; public static final long PF_restoreDistributeHashinatorResults = 80; // @StartSampler public static final long PF_startSampler = 90; // @Quiesce public static final long PF_quiesce_sites = 100; public static final long PF_quiesce_processed_sites = 101; // @SnapshotScan public static final long PF_snapshotDigestScan = 124; public static final long PF_snapshotDigestScanResults = 125; public static final long PF_snapshotScan = 120; public static final long PF_snapshotScanResults = 121; public static final long PF_hostDiskFreeScan = 122; public static final long PF_hostDiskFreeScanResults = 123; // @SnapshotScan public static final long PF_snapshotDelete = 130; public static final long PF_snapshotDeleteResults = 131; // @InstanceId public static final long PF_retrieveInstanceId = 160; public static final long PF_retrieveInstanceIdAggregator = 161; public static final long PF_setInstanceId = 162; public static final long PF_setInstanceIdAggregator = 163; // @Rejoin public static final long PF_rejoinBlock = 170; public static final long PF_rejoinPrepare = 171; public static final long PF_rejoinCommit = 172; public static final long PF_rejoinRollback = 173; public static final long PF_rejoinAggregate = 174; // @SystemInformation public static final long PF_systemInformationDeployment = 190; public static final long PF_systemInformationAggregate = 191; public static final long PF_systemInformationOverview = 192; public static final long PF_systemInformationOverviewAggregate = 193; // @Update application catalog public static final long PF_updateCatalogPrecheckAndSync = 210; public static final long PF_updateCatalogPrecheckAndSyncAggregate = 211; public static final long PF_updateCatalog = 212; public static final long PF_updateCatalogAggregate = 213; public static boolean isCatalogUpdateFragment(byte[] planHash) { long fragId = VoltSystemProcedure.hashToFragId(planHash); return (fragId == PF_updateCatalog || fragId == PF_updateCatalogAggregate || fragId == PF_updateCatalogPrecheckAndSync || fragId == PF_updateCatalogPrecheckAndSyncAggregate); } // @BalancePartitions public static final long PF_prepBalancePartitions = 228; public static final long PF_prepBalancePartitionsAggregate = 229; public static final long PF_balancePartitions = 230; public static final long PF_balancePartitionsAggregate = 231; public static final long PF_balancePartitionsData = 232; public static final long PF_balancePartitionsClearIndex = 233; public static final long PF_balancePartitionsClearIndexAggregate = 234; // @ValidatePartitioning public static final long PF_validatePartitioning = 240; public static final long PF_validatePartitioningResults = 241; // @MatchesHashinator public static final long PF_matchesHashinator = 250; public static final long PF_matchesHashinatorResults = 251; // @ApplyBinaryLog public static final long PF_applyBinaryLog = 260; public static final long PF_applyBinaryLogAggregate = 261; // @LoadVoltTable public static final long PF_loadVoltTable = 270; public static final long PF_loadVoltTableAggregate = 271; // @ResetDR public static final long PF_preResetDR = 280; public static final long PF_preResetDRAggregate = 281; public static final long PF_postResetDR = 282; public static final long PF_postResetDRAggregate = 283; // @ResetDRSingle public static final long PF_preResetDRSingle = 284; public static final long PF_preResetDRSingleAggregate = 285; public static final long PF_postResetDRSingle = 286; public static final long PF_postResetDRSingleAggregate = 287; // @ExecuteTask public static final long PF_executeTask = 290; public static final long PF_executeTaskAggregate = 291; // @UpdatedSettings public static final long PF_updateSettingsBarrier = 300; public static final long PF_updateSettingsBarrierAggregate = 301; public static final long PF_updateSettings = 302; public static final long PF_updateSettingsAggregate = 303; // @PrepareShutdown public static final long PF_prepareShutdown = 310; public static final long PF_prepareShutdownAggregate = 311; // @SwapTables public static final long PF_swapTables = 320; public static final long PF_swapTablesAggregate = 321; }