GG-11860 Implement snapshot status on platform level -refactoring: extracting snapshot operation
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/92821167 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/92821167 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/92821167 Branch: refs/heads/ignite-gg-8.0.3.ea6-clients-test Commit: 92821167ad884266728a2fae83799d1dfa17e07d Parents: 63e6a21 Author: EdShangGG <[email protected]> Authored: Wed Feb 15 21:11:30 2017 +0300 Committer: EdShangGG <[email protected]> Committed: Wed Feb 15 21:11:30 2017 +0300 ---------------------------------------------------------------------- .../pagemem/snapshot/SnapshotOperation.java | 100 +++++++++++++++++++ .../pagemem/snapshot/SnapshotOperationType.java | 30 ++++++ .../StartFullSnapshotAckDiscoveryMessage.java | 64 ++---------- .../StartFullSnapshotDiscoveryMessage.java | 70 ++++--------- 4 files changed, 157 insertions(+), 107 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/92821167/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotOperation.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotOperation.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotOperation.java new file mode 100644 index 0000000..8163049 --- /dev/null +++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotOperation.java @@ -0,0 +1,100 @@ +/* + * 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.ignite.internal.pagemem.snapshot; + +import java.io.Serializable; +import java.util.Set; + +/** + * Description and parameters of snapshot operation + */ +public class SnapshotOperation implements Serializable { + /** */ + private static final long serialVersionUID = 0L; + + /** */ + private final SnapshotOperationType type; + + /** + * Snapshot ID (the timestamp of snapshot creation). + */ + private final long snapshotId; + + /** */ + private final Set<String> cacheNames; + + /** Message. */ + private final String msg; + + /** Additional parameter. */ + private final Object extraParam; + + /** + * @param type Type. + * @param snapshotId Snapshot id. + * @param cacheNames Cache names. + * @param msg + * @param extraParam Additional parameter. + */ + public SnapshotOperation(SnapshotOperationType type, long snapshotId, Set<String> cacheNames, String msg, Object extraParam) { + this.type = type; + this.snapshotId = snapshotId; + this.cacheNames = cacheNames; + this.msg = msg; + this.extraParam = extraParam; + } + + /** + * + */ + public SnapshotOperationType type() { + return type; + } + + /** + * Snapshot ID (the timestamp of snapshot creation). + * + * @return Snapshot ID. + */ + public long id() { + return snapshotId; + } + + /** + * Cache names included to this snapshot. + * + * @return Cache names. + */ + public Set<String> cacheNames() { + return cacheNames; + } + + /** + * Additional info which was provided by client + */ + public String message() { + return msg; + } + + /** + * + */ + public Object extraParameter() { + return extraParam; + } +} http://git-wip-us.apache.org/repos/asf/ignite/blob/92821167/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotOperationType.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotOperationType.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotOperationType.java new file mode 100644 index 0000000..8866bdb --- /dev/null +++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/SnapshotOperationType.java @@ -0,0 +1,30 @@ +/* + * 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.ignite.internal.pagemem.snapshot; + +/** */ +public enum SnapshotOperationType { + /** Create. */ + CREATE, + /** Restore. */ + RESTORE, + /** Move. */ + MOVE, + /** Delete. */ + DELETE +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/92821167/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/StartFullSnapshotAckDiscoveryMessage.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/StartFullSnapshotAckDiscoveryMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/StartFullSnapshotAckDiscoveryMessage.java index 08082de..32a3dae 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/StartFullSnapshotAckDiscoveryMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/StartFullSnapshotAckDiscoveryMessage.java @@ -35,27 +35,18 @@ public class StartFullSnapshotAckDiscoveryMessage implements DiscoveryCustomMess /** */ private static final long serialVersionUID = 0L; - /** Message. */ - private final String msg; + + private SnapshotOperation snapshotOperation; /** Custom message ID. */ private IgniteUuid id = IgniteUuid.randomUuid(); /** */ - private long globalSnapshotId; - - /** */ private Exception err; /** */ - private Collection<String> cacheNames; - - /** */ private UUID initiatorNodeId; - /** Full snapshot. */ - private boolean fullSnapshot; - /** Last full snapshot id for cache. */ private Map<Integer, Long> lastFullSnapshotIdForCache; @@ -63,43 +54,21 @@ public class StartFullSnapshotAckDiscoveryMessage implements DiscoveryCustomMess private Map<Integer, Long> lastSnapshotIdForCache; /** - * @param globalSnapshotId Snapshot ID. + * @param snapshotOperation Snapshot Operation. * @param err Error. - * @param cacheNames Cache names. */ public StartFullSnapshotAckDiscoveryMessage( - long globalSnapshotId, - boolean fullSnapshot, + SnapshotOperation snapshotOperation, Map<Integer, Long> lastFullSnapshotIdForCache, Map<Integer, Long> lastSnapshotIdForCache, - Collection<String> cacheNames, Exception err, - UUID initiatorNodeId, - String msg + UUID initiatorNodeId ) { - this.globalSnapshotId = globalSnapshotId; - this.fullSnapshot = fullSnapshot; + this.snapshotOperation = snapshotOperation; this.lastFullSnapshotIdForCache = lastFullSnapshotIdForCache; this.lastSnapshotIdForCache = lastSnapshotIdForCache; this.err = err; - this.cacheNames = cacheNames; this.initiatorNodeId = initiatorNodeId; - this.msg = msg; - - for (String cacheName : cacheNames) { - int i = CU.cacheId(cacheName); - - if (lastFullSnapshotIdForCache.get(i) == null || lastSnapshotIdForCache.get(i) == null) { - throw new AssertionError(); - } - } - } - - /** - * @return Cache names. - */ - public Collection<String> cacheNames() { - return cacheNames; } /** {@inheritDoc} */ @@ -128,25 +97,8 @@ public class StartFullSnapshotAckDiscoveryMessage implements DiscoveryCustomMess return err != null; } - /** - * @return Snapshot ID. - */ - public long globalSnapshotId() { - return globalSnapshotId; - } - - /** - * - */ - public boolean fullSnapshot() { - return fullSnapshot; - } - - /** - * - */ - public String message() { - return msg; + public SnapshotOperation snapshotOperation() { + return snapshotOperation; } /** http://git-wip-us.apache.org/repos/asf/ignite/blob/92821167/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/StartFullSnapshotDiscoveryMessage.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/StartFullSnapshotDiscoveryMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/StartFullSnapshotDiscoveryMessage.java index bd6d97f..2a977f4 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/StartFullSnapshotDiscoveryMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/snapshot/StartFullSnapshotDiscoveryMessage.java @@ -35,17 +35,11 @@ public class StartFullSnapshotDiscoveryMessage implements DiscoveryCustomMessage /** */ private static final long serialVersionUID = 0L; - /** Message. */ - private final String msg; - /** Custom message ID. */ private IgniteUuid id = IgniteUuid.randomUuid(); - /** Snapshot ID. */ - private long globalSnapshotId; - - /** */ - private Collection<String> cacheNames; + /** Snapshot operation. */ + private SnapshotOperation snapshotOperation; /** */ private UUID initiatorId; @@ -53,9 +47,6 @@ public class StartFullSnapshotDiscoveryMessage implements DiscoveryCustomMessage /** Error. */ private Exception err; - /** Full snapshot. */ - private boolean fullSnapshot; - /** Last full snapshot id for cache. */ private Map<Integer, Long> lastFullSnapshotIdForCache = new HashMap<>(); @@ -63,21 +54,22 @@ public class StartFullSnapshotDiscoveryMessage implements DiscoveryCustomMessage private Map<Integer, Long> lastSnapshotIdForCache = new HashMap<>(); /** - * @param cacheNames Cache names. - * @param msg message to log + * @param snapshotOperation Snapshot operation + * @param initiatorId initiator node id */ public StartFullSnapshotDiscoveryMessage( - long globalSnapshotId, - Collection<String> cacheNames, - UUID initiatorId, - boolean fullSnapshot, - String msg + SnapshotOperation snapshotOperation, + UUID initiatorId ) { - this.globalSnapshotId = globalSnapshotId; - this.cacheNames = cacheNames; + this.snapshotOperation = snapshotOperation; this.initiatorId = initiatorId; - this.fullSnapshot = fullSnapshot; - this.msg = msg; + } + + /** + * + */ + public SnapshotOperation snapshotOperation() { + return snapshotOperation; } /** @@ -116,27 +108,6 @@ public class StartFullSnapshotDiscoveryMessage implements DiscoveryCustomMessage } /** - * @return Backup ID. - */ - public long globalSnapshotId() { - return globalSnapshotId; - } - - /** - * @return Cache names. - */ - public Collection<String> cacheNames() { - return cacheNames; - } - - /** - * - */ - public boolean fullSnapshot() { - return fullSnapshot; - } - - /** * @param cacheId Cache id. */ public Long lastFullSnapshotId(int cacheId) { @@ -169,14 +140,11 @@ public class StartFullSnapshotDiscoveryMessage implements DiscoveryCustomMessage /** {@inheritDoc} */ @Nullable @Override public DiscoveryCustomMessage ackMessage() { return new StartFullSnapshotAckDiscoveryMessage( - globalSnapshotId, - fullSnapshot, + snapshotOperation, lastFullSnapshotIdForCache, lastSnapshotIdForCache, - cacheNames, err, - initiatorId, - msg); + initiatorId); } /** {@inheritDoc} */ @@ -185,10 +153,10 @@ public class StartFullSnapshotDiscoveryMessage implements DiscoveryCustomMessage } /** - * @param full full snapshot. + * @param snapshotOperation new snapshot operation */ - public void fullSnapshot(boolean full) { - fullSnapshot = full; + public void snapshotOperation(SnapshotOperation snapshotOperation) { + this.snapshotOperation = snapshotOperation; } /** {@inheritDoc} */
