[GitHub] [ignite] Mmuzaf commented on a change in pull request #6554: IGNITE-11073: Backup page store manager, initial

2020-03-17 Thread GitBox
Mmuzaf commented on a change in pull request #6554: IGNITE-11073: Backup page 
store manager, initial
URL: https://github.com/apache/ignite/pull/6554#discussion_r393970166
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteSnapshotManager.java
 ##
 @@ -0,0 +1,1341 @@
+/*
+ * 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.processors.cache.persistence.snapshot;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.Serializable;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.nio.channels.FileChannel;
+import java.nio.file.Paths;
+import java.util.ArrayDeque;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Queue;
+import java.util.Set;
+import java.util.UUID;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.Executor;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.RejectedExecutionException;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.AtomicReference;
+import java.util.concurrent.atomic.LongAdder;
+import java.util.function.BiConsumer;
+import java.util.function.BiFunction;
+import java.util.function.Consumer;
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.IgniteException;
+import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.binary.BinaryType;
+import org.apache.ignite.cluster.ClusterNode;
+import org.apache.ignite.configuration.DataStorageConfiguration;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.failure.FailureContext;
+import org.apache.ignite.failure.FailureType;
+import org.apache.ignite.internal.GridKernalContext;
+import org.apache.ignite.internal.GridTopic;
+import org.apache.ignite.internal.IgniteInternalFuture;
+import org.apache.ignite.internal.NodeStoppingException;
+import org.apache.ignite.internal.cluster.ClusterTopologyCheckedException;
+import org.apache.ignite.internal.managers.communication.GridIoManager;
+import org.apache.ignite.internal.managers.communication.GridMessageListener;
+import 
org.apache.ignite.internal.managers.communication.TransmissionCancelledException;
+import org.apache.ignite.internal.managers.communication.TransmissionHandler;
+import org.apache.ignite.internal.managers.communication.TransmissionMeta;
+import org.apache.ignite.internal.managers.communication.TransmissionPolicy;
+import org.apache.ignite.internal.managers.eventstorage.DiscoveryEventListener;
+import 
org.apache.ignite.internal.processors.cache.GridCacheSharedManagerAdapter;
+import 
org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager;
+import 
org.apache.ignite.internal.processors.cache.persistence.StorageException;
+import org.apache.ignite.internal.processors.cache.persistence.file.FileIO;
+import 
org.apache.ignite.internal.processors.cache.persistence.file.FileIOFactory;
+import 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStore;
+import 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreFactory;
+import 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager;
+import 
org.apache.ignite.internal.processors.cache.persistence.file.RandomAccessFileIOFactory;
+import 
org.apache.ignite.internal.processors.cache.persistence.filename.PdsFolderSettings;
+import 
org.apache.ignite.internal.processors.cache.persistence.partstate.GroupPartitionId;
+import org.apache.ignite.internal.processors.cache.persistence.tree.io.PageIO;
+import org.apache.ignite.internal.processors.cache.persistence.wal.crc.FastCrc;
+import org.apache.ignite.internal.processors.marshaller.MappedName;
+import org.apache.ignite.internal.processors.metric.impl.LongAdderMetric;
+import org.apache.ignite.internal.util.GridBusyLock;
+import 

[GitHub] [ignite] gvvinblade closed pull request #7540: IGNITE-12792: Calcite integration. Update Calcite version to 1.22.0

2020-03-17 Thread GitBox
gvvinblade closed pull request #7540: IGNITE-12792: Calcite integration. Update 
Calcite version to 1.22.0
URL: https://github.com/apache/ignite/pull/7540
 
 
   


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] tledkov-gridgain closed pull request #7539: GG-27748 [8.5-next]-[GG-27686] SQL: not optimal index is used for query after upgrade from 8.7.6 -> 8.7.10

2020-03-17 Thread GitBox
tledkov-gridgain closed pull request #7539: GG-27748  [8.5-next]-[GG-27686] 
SQL: not optimal index is used for query after upgrade from 8.7.6 -> 8.7.10
URL: https://github.com/apache/ignite/pull/7539
 
 
   


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] tledkov-gridgain closed pull request #7530: GG-27943 Gathers query plan for long running query from Prepared on the fly instead execute separate EXPLAIN query

2020-03-17 Thread GitBox
tledkov-gridgain closed pull request #7530: GG-27943  Gathers query plan 
for long running query from Prepared on the fly instead execute separate 
EXPLAIN query
URL: https://github.com/apache/ignite/pull/7530
 
 
   


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] Mmuzaf commented on a change in pull request #6554: IGNITE-11073: Backup page store manager, initial

2020-03-17 Thread GitBox
Mmuzaf commented on a change in pull request #6554: IGNITE-11073: Backup page 
store manager, initial
URL: https://github.com/apache/ignite/pull/6554#discussion_r393877800
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotFutureTask.java
 ##
 @@ -0,0 +1,884 @@
+/*
+ * 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.processors.cache.persistence.snapshot;
+
+import java.io.Closeable;
+import java.io.File;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.UUID;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicIntegerArray;
+import java.util.concurrent.atomic.AtomicReference;
+import java.util.concurrent.locks.ReadWriteLock;
+import java.util.concurrent.locks.ReentrantReadWriteLock;
+import java.util.function.BooleanSupplier;
+import java.util.function.Consumer;
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.binary.BinaryType;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.internal.pagemem.PageIdUtils;
+import org.apache.ignite.internal.pagemem.store.PageStore;
+import org.apache.ignite.internal.pagemem.store.PageWriteListener;
+import org.apache.ignite.internal.processors.cache.CacheGroupContext;
+import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtLocalPartition;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionState;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionTopology;
+import 
org.apache.ignite.internal.processors.cache.persistence.DbCheckpointListener;
+import 
org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager;
+import org.apache.ignite.internal.processors.cache.persistence.file.FileIO;
+import 
org.apache.ignite.internal.processors.cache.persistence.file.FileIOFactory;
+import 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager;
+import 
org.apache.ignite.internal.processors.cache.persistence.partstate.GroupPartitionId;
+import org.apache.ignite.internal.processors.cache.persistence.tree.io.PageIO;
+import org.apache.ignite.internal.processors.cache.persistence.wal.crc.FastCrc;
+import org.apache.ignite.internal.processors.marshaller.MappedName;
+import org.apache.ignite.internal.util.future.GridFutureAdapter;
+import org.apache.ignite.internal.util.lang.IgniteThrowableRunner;
+import org.apache.ignite.internal.util.tostring.GridToStringExclude;
+import org.apache.ignite.internal.util.typedef.F;
+import org.apache.ignite.internal.util.typedef.internal.A;
+import org.apache.ignite.internal.util.typedef.internal.CU;
+import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+
+import static 
org.apache.ignite.internal.pagemem.PageIdAllocator.INDEX_PARTITION;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.cacheDirName;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.cacheWorkDir;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.getPartitionFile;
+import static 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.partDeltaFile;
+import static 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.relativeNodePath;
+
+/**
+ *
+ */
+class SnapshotFutureTask extends GridFutureAdapter implements 
DbCheckpointListener {
+/** Shared 

[GitHub] [ignite] Mmuzaf commented on a change in pull request #6554: IGNITE-11073: Backup page store manager, initial

2020-03-17 Thread GitBox
Mmuzaf commented on a change in pull request #6554: IGNITE-11073: Backup page 
store manager, initial
URL: https://github.com/apache/ignite/pull/6554#discussion_r393874715
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotFutureTask.java
 ##
 @@ -0,0 +1,884 @@
+/*
+ * 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.processors.cache.persistence.snapshot;
+
+import java.io.Closeable;
+import java.io.File;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.UUID;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicIntegerArray;
+import java.util.concurrent.atomic.AtomicReference;
+import java.util.concurrent.locks.ReadWriteLock;
+import java.util.concurrent.locks.ReentrantReadWriteLock;
+import java.util.function.BooleanSupplier;
+import java.util.function.Consumer;
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.binary.BinaryType;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.internal.pagemem.PageIdUtils;
+import org.apache.ignite.internal.pagemem.store.PageStore;
+import org.apache.ignite.internal.pagemem.store.PageWriteListener;
+import org.apache.ignite.internal.processors.cache.CacheGroupContext;
+import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtLocalPartition;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionState;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionTopology;
+import 
org.apache.ignite.internal.processors.cache.persistence.DbCheckpointListener;
+import 
org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager;
+import org.apache.ignite.internal.processors.cache.persistence.file.FileIO;
+import 
org.apache.ignite.internal.processors.cache.persistence.file.FileIOFactory;
+import 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager;
+import 
org.apache.ignite.internal.processors.cache.persistence.partstate.GroupPartitionId;
+import org.apache.ignite.internal.processors.cache.persistence.tree.io.PageIO;
+import org.apache.ignite.internal.processors.cache.persistence.wal.crc.FastCrc;
+import org.apache.ignite.internal.processors.marshaller.MappedName;
+import org.apache.ignite.internal.util.future.GridFutureAdapter;
+import org.apache.ignite.internal.util.lang.IgniteThrowableRunner;
+import org.apache.ignite.internal.util.tostring.GridToStringExclude;
+import org.apache.ignite.internal.util.typedef.F;
+import org.apache.ignite.internal.util.typedef.internal.A;
+import org.apache.ignite.internal.util.typedef.internal.CU;
+import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+
+import static 
org.apache.ignite.internal.pagemem.PageIdAllocator.INDEX_PARTITION;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.cacheDirName;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.cacheWorkDir;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.getPartitionFile;
+import static 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.partDeltaFile;
+import static 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.relativeNodePath;
+
+/**
+ *
+ */
+class SnapshotFutureTask extends GridFutureAdapter implements 
DbCheckpointListener {
+/** Shared 

[GitHub] [ignite] tkalkirill opened a new pull request #7544: IGNITE-12797 Add command line option to see full stack trace and caus…

2020-03-17 Thread GitBox
tkalkirill opened a new pull request #7544: IGNITE-12797 Add command line 
option to see full stack trace and caus…
URL: https://github.com/apache/ignite/pull/7544
 
 
   …e exception


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] Mmuzaf commented on a change in pull request #6554: IGNITE-11073: Backup page store manager, initial

2020-03-17 Thread GitBox
Mmuzaf commented on a change in pull request #6554: IGNITE-11073: Backup page 
store manager, initial
URL: https://github.com/apache/ignite/pull/6554#discussion_r393871815
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotFutureTask.java
 ##
 @@ -0,0 +1,884 @@
+/*
+ * 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.processors.cache.persistence.snapshot;
+
+import java.io.Closeable;
+import java.io.File;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.UUID;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicIntegerArray;
+import java.util.concurrent.atomic.AtomicReference;
+import java.util.concurrent.locks.ReadWriteLock;
+import java.util.concurrent.locks.ReentrantReadWriteLock;
+import java.util.function.BooleanSupplier;
+import java.util.function.Consumer;
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.binary.BinaryType;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.internal.pagemem.PageIdUtils;
+import org.apache.ignite.internal.pagemem.store.PageStore;
+import org.apache.ignite.internal.pagemem.store.PageWriteListener;
+import org.apache.ignite.internal.processors.cache.CacheGroupContext;
+import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtLocalPartition;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionState;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionTopology;
+import 
org.apache.ignite.internal.processors.cache.persistence.DbCheckpointListener;
+import 
org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager;
+import org.apache.ignite.internal.processors.cache.persistence.file.FileIO;
+import 
org.apache.ignite.internal.processors.cache.persistence.file.FileIOFactory;
+import 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager;
+import 
org.apache.ignite.internal.processors.cache.persistence.partstate.GroupPartitionId;
+import org.apache.ignite.internal.processors.cache.persistence.tree.io.PageIO;
+import org.apache.ignite.internal.processors.cache.persistence.wal.crc.FastCrc;
+import org.apache.ignite.internal.processors.marshaller.MappedName;
+import org.apache.ignite.internal.util.future.GridFutureAdapter;
+import org.apache.ignite.internal.util.lang.IgniteThrowableRunner;
+import org.apache.ignite.internal.util.tostring.GridToStringExclude;
+import org.apache.ignite.internal.util.typedef.F;
+import org.apache.ignite.internal.util.typedef.internal.A;
+import org.apache.ignite.internal.util.typedef.internal.CU;
+import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+
+import static 
org.apache.ignite.internal.pagemem.PageIdAllocator.INDEX_PARTITION;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.cacheDirName;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.cacheWorkDir;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.getPartitionFile;
+import static 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.partDeltaFile;
+import static 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.relativeNodePath;
+
+/**
+ *
+ */
+class SnapshotFutureTask extends GridFutureAdapter implements 
DbCheckpointListener {
+/** Shared 

[GitHub] [ignite] sk0x50 opened a new pull request #7543: GG-28019

2020-03-17 Thread GitBox
sk0x50 opened a new pull request #7543: GG-28019
URL: https://github.com/apache/ignite/pull/7543
 
 
   


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] Mmuzaf commented on a change in pull request #6554: IGNITE-11073: Backup page store manager, initial

2020-03-17 Thread GitBox
Mmuzaf commented on a change in pull request #6554: IGNITE-11073: Backup page 
store manager, initial
URL: https://github.com/apache/ignite/pull/6554#discussion_r393852792
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotFutureTask.java
 ##
 @@ -0,0 +1,884 @@
+/*
+ * 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.processors.cache.persistence.snapshot;
+
+import java.io.Closeable;
+import java.io.File;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.UUID;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicIntegerArray;
+import java.util.concurrent.atomic.AtomicReference;
+import java.util.concurrent.locks.ReadWriteLock;
+import java.util.concurrent.locks.ReentrantReadWriteLock;
+import java.util.function.BooleanSupplier;
+import java.util.function.Consumer;
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.binary.BinaryType;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.internal.pagemem.PageIdUtils;
+import org.apache.ignite.internal.pagemem.store.PageStore;
+import org.apache.ignite.internal.pagemem.store.PageWriteListener;
+import org.apache.ignite.internal.processors.cache.CacheGroupContext;
+import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtLocalPartition;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionState;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionTopology;
+import 
org.apache.ignite.internal.processors.cache.persistence.DbCheckpointListener;
+import 
org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager;
+import org.apache.ignite.internal.processors.cache.persistence.file.FileIO;
+import 
org.apache.ignite.internal.processors.cache.persistence.file.FileIOFactory;
+import 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager;
+import 
org.apache.ignite.internal.processors.cache.persistence.partstate.GroupPartitionId;
+import org.apache.ignite.internal.processors.cache.persistence.tree.io.PageIO;
+import org.apache.ignite.internal.processors.cache.persistence.wal.crc.FastCrc;
+import org.apache.ignite.internal.processors.marshaller.MappedName;
+import org.apache.ignite.internal.util.future.GridFutureAdapter;
+import org.apache.ignite.internal.util.lang.IgniteThrowableRunner;
+import org.apache.ignite.internal.util.tostring.GridToStringExclude;
+import org.apache.ignite.internal.util.typedef.F;
+import org.apache.ignite.internal.util.typedef.internal.A;
+import org.apache.ignite.internal.util.typedef.internal.CU;
+import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+
+import static 
org.apache.ignite.internal.pagemem.PageIdAllocator.INDEX_PARTITION;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.cacheDirName;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.cacheWorkDir;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.getPartitionFile;
+import static 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.partDeltaFile;
+import static 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.relativeNodePath;
+
+/**
+ *
+ */
+class SnapshotFutureTask extends GridFutureAdapter implements 
DbCheckpointListener {
+/** Shared 

[GitHub] [ignite] nizhikov opened a new pull request #7542: IGNITE-12768: MetricRegistryMBean doesn't show histogram values in case when histogram name contains underscore character

2020-03-17 Thread GitBox
nizhikov opened a new pull request #7542: IGNITE-12768: MetricRegistryMBean 
doesn't show histogram values in case when histogram name contains underscore 
character
URL: https://github.com/apache/ignite/pull/7542
 
 
   …se when histogram name contains underscore character


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] nizhikov commented on a change in pull request #7520: IGNITE-12632: Support of cancel command for resource-consuming entities.

2020-03-17 Thread GitBox
nizhikov commented on a change in pull request #7520: IGNITE-12632: Support of 
cancel command for resource-consuming entities.
URL: https://github.com/apache/ignite/pull/7520#discussion_r393772907
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/StopRoutineDiscoveryMessage.java
 ##
 @@ -29,11 +29,24 @@
 /** */
 private static final long serialVersionUID = 0L;
 
+/** {@code True} if stop should be forced. */
+private boolean force;
 
 Review comment:
   fixed.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] Vladsz83 commented on a change in pull request #7531: IGNITE-12779 : Split implementations of Ignite and IgniteMXBean, make behavior of their active(boolean) different

2020-03-17 Thread GitBox
Vladsz83 commented on a change in pull request #7531: IGNITE-12779 : Split 
implementations of Ignite and IgniteMXBean, make behavior of their 
active(boolean) different 
URL: https://github.com/apache/ignite/pull/7531#discussion_r393762012
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/IgniteMXBeanImpl.java
 ##
 @@ -0,0 +1,328 @@
+package org.apache.ignite.internal;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import javax.management.JMException;
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.IgniteException;
+import org.apache.ignite.cluster.ClusterNode;
+import org.apache.ignite.cluster.ClusterState;
+import org.apache.ignite.internal.util.typedef.internal.A;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.mxbean.IgniteMXBean;
+
+import static org.apache.ignite.cluster.ClusterState.ACTIVE;
+import static org.apache.ignite.cluster.ClusterState.INACTIVE;
+import static org.apache.ignite.internal.IgniteVersionUtils.COPYRIGHT;
+
+/** Implementation of Ignite mxBean. */
+public class IgniteMXBeanImpl implements IgniteMXBean {
+/** Ignite core to work with. */
+private final IgniteKernal kernal;
+
+/**
+ * @param kernal Ignite kernel to work with.
+ */
+public IgniteMXBeanImpl(IgniteKernal kernal) {
+this.kernal = kernal;
+}
+
+/** {@inheritDoc} */
+@Override public boolean active() {
+return kernal.active();
+}
+
+/** {@inheritDoc} */
+@Override public void active(boolean active) {
+clusterState(active ? ACTIVE.toString() : INACTIVE.toString(), false);
+}
+
+/** {@inheritDoc} */
+@Override public String getCopyright() {
+return COPYRIGHT;
+}
+
+/** {@inheritDoc} */
+@Override public long getStartTimestamp() {
+return kernal.startTimestamp();
+}
+
+/** {@inheritDoc} */
+@Override public String getStartTimestampFormatted() {
+return kernal.startTimeFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public long getUpTime() {
+return kernal.upTime();
+}
+
+/** {@inheritDoc} */
+@Override public long getLongJVMPausesCount() {
+return kernal.longJVMPausesCount();
+}
+
+/** {@inheritDoc} */
+@Override public long getLongJVMPausesTotalDuration() {
+return kernal.longJVMPausesTotalDuration();
+}
+
+/** {@inheritDoc} */
+@Override public Map getLongJVMPauseLastEvents() {
+return kernal.longJVMPauseLastEvents();
+}
+
+/** {@inheritDoc} */
+@Override public String getUpTimeFormatted() {
+return kernal.upTimeFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getFullVersion() {
+return kernal.fullVersion();
+}
+
+/** {@inheritDoc} */
+@Override public String getCheckpointSpiFormatted() {
+return kernal.checkpointSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getCurrentCoordinatorFormatted() {
+return kernal.currentCoordinatorFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public boolean isNodeInBaseline() {
+   return kernal.nodeInBaseline();
+}
+
+/** {@inheritDoc} */
+@Override public String getCommunicationSpiFormatted() {
+return kernal.communicationSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getDeploymentSpiFormatted() {
+return kernal.deploymentSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getDiscoverySpiFormatted() {
+return kernal.discoverySpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getEventStorageSpiFormatted() {
+return kernal.eventStorageSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getCollisionSpiFormatted() {
+return kernal.collisionSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getFailoverSpiFormatted() {
+return kernal.failoverSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getLoadBalancingSpiFormatted() {
+return kernal.loadBalancingSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getOsInformation() {
+return kernal.osInformation();
+}
+
+/** {@inheritDoc} */
+@Override public String getJdkInformation() {
+return kernal.jdkInformation();
+}
+
+/** {@inheritDoc} */
+@Override public String getOsUser() {
+return kernal.osUser();
+}
+
+/** {@inheritDoc} */
+@Override public void printLastErrors() {
+kernal.printLastErrors();
+}
+
+/** {@inheritDoc} */
+@Override public String getVmName() {
+return kernal.vmName();
+}
+
+/** {@inheritDoc} */
+@Override public String getInstanceName() {
+return 

[GitHub] [ignite] NSAmelchev commented on a change in pull request #7531: IGNITE-12779 : Split implementations of Ignite and IgniteMXBean, make behavior of their active(boolean) different

2020-03-17 Thread GitBox
NSAmelchev commented on a change in pull request #7531: IGNITE-12779 : Split 
implementations of Ignite and IgniteMXBean, make behavior of their 
active(boolean) different 
URL: https://github.com/apache/ignite/pull/7531#discussion_r393760545
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/IgniteMXBeanImpl.java
 ##
 @@ -0,0 +1,328 @@
+package org.apache.ignite.internal;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import javax.management.JMException;
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.IgniteException;
+import org.apache.ignite.cluster.ClusterNode;
+import org.apache.ignite.cluster.ClusterState;
+import org.apache.ignite.internal.util.typedef.internal.A;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.mxbean.IgniteMXBean;
+
+import static org.apache.ignite.cluster.ClusterState.ACTIVE;
+import static org.apache.ignite.cluster.ClusterState.INACTIVE;
+import static org.apache.ignite.internal.IgniteVersionUtils.COPYRIGHT;
+
+/** Implementation of Ignite mxBean. */
+public class IgniteMXBeanImpl implements IgniteMXBean {
+/** Ignite core to work with. */
+private final IgniteKernal kernal;
+
+/**
+ * @param kernal Ignite kernel to work with.
+ */
+public IgniteMXBeanImpl(IgniteKernal kernal) {
+this.kernal = kernal;
+}
+
+/** {@inheritDoc} */
+@Override public boolean active() {
+return kernal.active();
+}
+
+/** {@inheritDoc} */
+@Override public void active(boolean active) {
+clusterState(active ? ACTIVE.toString() : INACTIVE.toString(), false);
+}
+
+/** {@inheritDoc} */
+@Override public String getCopyright() {
+return COPYRIGHT;
+}
+
+/** {@inheritDoc} */
+@Override public long getStartTimestamp() {
+return kernal.startTimestamp();
+}
+
+/** {@inheritDoc} */
+@Override public String getStartTimestampFormatted() {
+return kernal.startTimeFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public long getUpTime() {
+return kernal.upTime();
+}
+
+/** {@inheritDoc} */
+@Override public long getLongJVMPausesCount() {
+return kernal.longJVMPausesCount();
+}
+
+/** {@inheritDoc} */
+@Override public long getLongJVMPausesTotalDuration() {
+return kernal.longJVMPausesTotalDuration();
+}
+
+/** {@inheritDoc} */
+@Override public Map getLongJVMPauseLastEvents() {
+return kernal.longJVMPauseLastEvents();
+}
+
+/** {@inheritDoc} */
+@Override public String getUpTimeFormatted() {
+return kernal.upTimeFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getFullVersion() {
+return kernal.fullVersion();
+}
+
+/** {@inheritDoc} */
+@Override public String getCheckpointSpiFormatted() {
+return kernal.checkpointSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getCurrentCoordinatorFormatted() {
+return kernal.currentCoordinatorFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public boolean isNodeInBaseline() {
+   return kernal.nodeInBaseline();
+}
+
+/** {@inheritDoc} */
+@Override public String getCommunicationSpiFormatted() {
+return kernal.communicationSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getDeploymentSpiFormatted() {
+return kernal.deploymentSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getDiscoverySpiFormatted() {
+return kernal.discoverySpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getEventStorageSpiFormatted() {
+return kernal.eventStorageSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getCollisionSpiFormatted() {
+return kernal.collisionSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getFailoverSpiFormatted() {
+return kernal.failoverSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getLoadBalancingSpiFormatted() {
+return kernal.loadBalancingSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getOsInformation() {
+return kernal.osInformation();
+}
+
+/** {@inheritDoc} */
+@Override public String getJdkInformation() {
+return kernal.jdkInformation();
+}
+
+/** {@inheritDoc} */
+@Override public String getOsUser() {
+return kernal.osUser();
+}
+
+/** {@inheritDoc} */
+@Override public void printLastErrors() {
+kernal.printLastErrors();
+}
+
+/** {@inheritDoc} */
+@Override public String getVmName() {
+return kernal.vmName();
+}
+
+/** {@inheritDoc} */
+@Override public String getInstanceName() {
+return 

[GitHub] [ignite] nizhikov commented on a change in pull request #7520: IGNITE-12632: Support of cancel command for resource-consuming entities.

2020-03-17 Thread GitBox
nizhikov commented on a change in pull request #7520: IGNITE-12632: Support of 
cancel command for resource-consuming entities.
URL: https://github.com/apache/ignite/pull/7520#discussion_r393748169
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorContinuousQueryCancelTaskArg.java
 ##
 @@ -0,0 +1,75 @@
+/*
+ * 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.visor.query;
+
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.util.UUID;
+import org.apache.ignite.internal.processors.task.GridInternal;
+import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.visor.VisorDataTransferObject;
+
+/**
+ * Arguments of task for cancel CONTINUOUS query.
+ */
+@GridInternal
+public class VisorContinuousQueryCancelTaskArg extends VisorDataTransferObject 
{
 
 Review comment:
   fixed.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] nizhikov commented on a change in pull request #7520: IGNITE-12632: Support of cancel command for resource-consuming entities.

2020-03-17 Thread GitBox
nizhikov commented on a change in pull request #7520: IGNITE-12632: Support of 
cancel command for resource-consuming entities.
URL: https://github.com/apache/ignite/pull/7520#discussion_r393747647
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/ServiceMXBeanImpl.java
 ##
 @@ -0,0 +1,76 @@
+/*
+ * 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;
+
+import java.util.UUID;
+import org.apache.ignite.IgniteCompute;
+import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.cluster.ClusterNode;
+import org.apache.ignite.internal.cluster.IgniteClusterImpl;
+import org.apache.ignite.internal.util.typedef.internal.A;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.visor.VisorTaskArgument;
+import org.apache.ignite.internal.visor.service.VisorCancelServiceTask;
+import org.apache.ignite.internal.visor.service.VisorCancelServiceTaskArg;
+import org.apache.ignite.mxbean.ServiceMXBean;
+
+/**
+ * ServiceMXBean implementation.
+ */
+public class ServiceMXBeanImpl implements ServiceMXBean {
+/** */
+private final GridKernalContext ctx;
+
+/** */
+private final IgniteLogger log;
+
+/**
+ * @param ctx Context.
+ */
+public ServiceMXBeanImpl(GridKernalContext ctx) {
+this.ctx = ctx;
+this.log = ctx.log(ServiceMXBeanImpl.class);
+}
+
+/** {@inheritDoc} */
+@Override public void cancel(String name) {
+A.notNull(name, "name");
+
+if (log.isInfoEnabled())
+log.info("Canceling service[name=" + name + ']');
+
+boolean res;
+
+try {
+IgniteClusterImpl cluster = ctx.cluster().get();
+
+IgniteCompute compute = cluster.compute();
+
+ClusterNode srv = U.randomServerNode(ctx);
+
+res = compute.execute(new VisorCancelServiceTask(),
 
 Review comment:
   Yes, we can.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] nizhikov commented on a change in pull request #7520: IGNITE-12632: Support of cancel command for resource-consuming entities.

2020-03-17 Thread GitBox
nizhikov commented on a change in pull request #7520: IGNITE-12632: Support of 
cancel command for resource-consuming entities.
URL: https://github.com/apache/ignite/pull/7520#discussion_r393747287
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/QueryMXBeanImpl.java
 ##
 @@ -0,0 +1,168 @@
+/*
+ * 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;
+
+import java.util.UUID;
+import org.apache.ignite.IgniteCompute;
+import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.cluster.ClusterNode;
+import org.apache.ignite.internal.cluster.IgniteClusterImpl;
+import org.apache.ignite.internal.util.typedef.T2;
+import org.apache.ignite.internal.util.typedef.internal.A;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.visor.VisorTaskArgument;
+import org.apache.ignite.internal.visor.query.VisorContinuousQueryCancelTask;
+import 
org.apache.ignite.internal.visor.query.VisorContinuousQueryCancelTaskArg;
+import org.apache.ignite.internal.visor.query.VisorQueryCancelTask;
+import org.apache.ignite.internal.visor.query.VisorQueryCancelTaskArg;
+import org.apache.ignite.internal.visor.query.VisorScanQueryCancelTask;
+import org.apache.ignite.internal.visor.query.VisorScanQueryCancelTaskArg;
+import org.apache.ignite.mxbean.QueryMXBean;
+
+import static 
org.apache.ignite.internal.sql.command.SqlKillQueryCommand.parseGlobalQueryId;
+
+/**
+ * QueryMXBean implementation.
+ */
+public class QueryMXBeanImpl implements QueryMXBean {
+/** */
+public static final String EXPECTED_GLOBAL_QRY_ID_FORMAT = "Global query 
id should have format " +
+"'{node_id}_{query_id}', e.g. 
'6fa749ee-7cf8-4635-be10-36a1c75267a7_54321'";
+
+/** */
+private final GridKernalContext ctx;
+
+/** */
+private final IgniteLogger log;
+
+/**
+ * @param ctx Context.
+ */
+public QueryMXBeanImpl(GridKernalContext ctx) {
+this.ctx = ctx;
+this.log = ctx.log(QueryMXBeanImpl.class);
+}
+
+/** {@inheritDoc} */
+@Override public void cancelContinuous(String routineId) {
+A.notNull(routineId, "routineId");
+
+cancelContinuous(UUID.fromString(routineId));
+}
+
+/** {@inheritDoc} */
+@Override public void cancelSQL(String id) {
+A.notNull(id, "id");
+
+if (log.isInfoEnabled())
+log.info("Killing sql query[id=" + id + ']');
+
+boolean res;
+
+try {
+IgniteClusterImpl cluster = ctx.cluster().get();
+
+T2 ids = parseGlobalQueryId(id);
+
+if (ids == null)
+throw new IllegalArgumentException("Expected global query id. 
" + EXPECTED_GLOBAL_QRY_ID_FORMAT);
+
+res = cluster.compute().execute(new VisorQueryCancelTask(),
+new VisorTaskArgument<>(ids.get1(), new 
VisorQueryCancelTaskArg(ids.get1(), ids.get2()), false));
+}
+catch (Exception e) {
+throw new RuntimeException(e);
+}
+
+if (!res)
+throw new RuntimeException("Query not found[id=" + id + ']');
+}
+
+/** {@inheritDoc} */
+@Override public void cancelScan(String originNodeId, String cacheName, 
Long id) {
+A.notNullOrEmpty(originNodeId, "originNodeId");
+A.notNullOrEmpty(cacheName, "cacheName");
+A.notNull(id, "id");
+
+if (log.isInfoEnabled())
+log.info("Killing scan query[id=" + id + ",originNodeId=" + 
originNodeId + ']');
+
+cancelScan(UUID.fromString(originNodeId), cacheName, id);
+}
+
+/**
+ * Kills scan query by the identifiers.
+ *
+ * @param originNodeId Originating node id.
+ * @param cacheName Cache name.
+ * @param id Scan query id.
+ */
+public void cancelScan(UUID originNodeId, String cacheName, long id) {
+boolean res;
+
+try {
+IgniteClusterImpl cluster = ctx.cluster().get();
+
+ClusterNode srv = U.randomServerNode(ctx);
 
 Review comment:
   Same of previous:
   
   > Why it's not a good idea to send cancel message to the initiator
   
   My opinion - canceling of the query is the "last line of 

[GitHub] [ignite] nizhikov commented on a change in pull request #7520: IGNITE-12632: Support of cancel command for resource-consuming entities.

2020-03-17 Thread GitBox
nizhikov commented on a change in pull request #7520: IGNITE-12632: Support of 
cancel command for resource-consuming entities.
URL: https://github.com/apache/ignite/pull/7520#discussion_r393742993
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/QueryMXBeanImpl.java
 ##
 @@ -0,0 +1,168 @@
+/*
+ * 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;
+
+import java.util.UUID;
+import org.apache.ignite.IgniteCompute;
+import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.cluster.ClusterNode;
+import org.apache.ignite.internal.cluster.IgniteClusterImpl;
+import org.apache.ignite.internal.util.typedef.T2;
+import org.apache.ignite.internal.util.typedef.internal.A;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.visor.VisorTaskArgument;
+import org.apache.ignite.internal.visor.query.VisorContinuousQueryCancelTask;
+import 
org.apache.ignite.internal.visor.query.VisorContinuousQueryCancelTaskArg;
+import org.apache.ignite.internal.visor.query.VisorQueryCancelTask;
+import org.apache.ignite.internal.visor.query.VisorQueryCancelTaskArg;
+import org.apache.ignite.internal.visor.query.VisorScanQueryCancelTask;
+import org.apache.ignite.internal.visor.query.VisorScanQueryCancelTaskArg;
+import org.apache.ignite.mxbean.QueryMXBean;
+
+import static 
org.apache.ignite.internal.sql.command.SqlKillQueryCommand.parseGlobalQueryId;
+
+/**
+ * QueryMXBean implementation.
+ */
+public class QueryMXBeanImpl implements QueryMXBean {
+/** */
+public static final String EXPECTED_GLOBAL_QRY_ID_FORMAT = "Global query 
id should have format " +
+"'{node_id}_{query_id}', e.g. 
'6fa749ee-7cf8-4635-be10-36a1c75267a7_54321'";
+
+/** */
+private final GridKernalContext ctx;
+
+/** */
+private final IgniteLogger log;
+
+/**
+ * @param ctx Context.
+ */
+public QueryMXBeanImpl(GridKernalContext ctx) {
+this.ctx = ctx;
+this.log = ctx.log(QueryMXBeanImpl.class);
+}
+
+/** {@inheritDoc} */
+@Override public void cancelContinuous(String routineId) {
+A.notNull(routineId, "routineId");
+
+cancelContinuous(UUID.fromString(routineId));
+}
+
+/** {@inheritDoc} */
+@Override public void cancelSQL(String id) {
+A.notNull(id, "id");
+
+if (log.isInfoEnabled())
+log.info("Killing sql query[id=" + id + ']');
+
+boolean res;
+
+try {
+IgniteClusterImpl cluster = ctx.cluster().get();
+
+T2 ids = parseGlobalQueryId(id);
+
+if (ids == null)
+throw new IllegalArgumentException("Expected global query id. 
" + EXPECTED_GLOBAL_QRY_ID_FORMAT);
+
+res = cluster.compute().execute(new VisorQueryCancelTask(),
+new VisorTaskArgument<>(ids.get1(), new 
VisorQueryCancelTaskArg(ids.get1(), ids.get2()), false));
+}
+catch (Exception e) {
+throw new RuntimeException(e);
+}
+
+if (!res)
+throw new RuntimeException("Query not found[id=" + id + ']');
+}
+
+/** {@inheritDoc} */
+@Override public void cancelScan(String originNodeId, String cacheName, 
Long id) {
+A.notNullOrEmpty(originNodeId, "originNodeId");
+A.notNullOrEmpty(cacheName, "cacheName");
+A.notNull(id, "id");
+
+if (log.isInfoEnabled())
+log.info("Killing scan query[id=" + id + ",originNodeId=" + 
originNodeId + ']');
+
+cancelScan(UUID.fromString(originNodeId), cacheName, id);
+}
+
+/**
+ * Kills scan query by the identifiers.
+ *
+ * @param originNodeId Originating node id.
+ * @param cacheName Cache name.
+ * @param id Scan query id.
+ */
+public void cancelScan(UUID originNodeId, String cacheName, long id) {
+boolean res;
+
+try {
+IgniteClusterImpl cluster = ctx.cluster().get();
+
+ClusterNode srv = U.randomServerNode(ctx);
+
+IgniteCompute compute = cluster.compute();
+
+res = compute.execute(new VisorScanQueryCancelTask(),
+new VisorTaskArgument<>(srv.id(),
+

[GitHub] [ignite] rkondakov commented on a change in pull request #7520: IGNITE-12632: Support of cancel command for resource-consuming entities.

2020-03-17 Thread GitBox
rkondakov commented on a change in pull request #7520: IGNITE-12632: Support of 
cancel command for resource-consuming entities.
URL: https://github.com/apache/ignite/pull/7520#discussion_r393737299
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorQueryCancelTask.java
 ##
 @@ -17,22 +17,25 @@
 
 package org.apache.ignite.internal.visor.query;
 
+import java.util.Collection;
 
 Review comment:
   Ok, might be I missed it. You are right.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] nizhikov commented on a change in pull request #7520: IGNITE-12632: Support of cancel command for resource-consuming entities.

2020-03-17 Thread GitBox
nizhikov commented on a change in pull request #7520: IGNITE-12632: Support of 
cancel command for resource-consuming entities.
URL: https://github.com/apache/ignite/pull/7520#discussion_r393731396
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorQueryCancelTask.java
 ##
 @@ -17,22 +17,25 @@
 
 package org.apache.ignite.internal.visor.query;
 
+import java.util.Collection;
 
 Review comment:
   it used in the method `jobNodes`:
   
   ```
   @Override protected Collection 
jobNodes(VisorTaskArgument arg) {
   return Collections.singleton(arg.getArgument().getNodeId());
   }
   ```


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] nizhikov commented on a change in pull request #7520: IGNITE-12632: Support of cancel command for resource-consuming entities.

2020-03-17 Thread GitBox
nizhikov commented on a change in pull request #7520: IGNITE-12632: Support of 
cancel command for resource-consuming entities.
URL: https://github.com/apache/ignite/pull/7520#discussion_r393729454
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorScanQueryCancelTaskArg.java
 ##
 @@ -0,0 +1,101 @@
+/*
+ * 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.visor.query;
+
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.util.UUID;
+import org.apache.ignite.internal.processors.task.GridInternal;
+import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.visor.VisorDataTransferObject;
+
+/**
+ * Arguments of task for cancel SCAN query.
+ */
+@GridInternal
+public class VisorScanQueryCancelTaskArg extends VisorDataTransferObject {
 
 Review comment:
   Fixed.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] rkondakov commented on a change in pull request #7520: IGNITE-12632: Support of cancel command for resource-consuming entities.

2020-03-17 Thread GitBox
rkondakov commented on a change in pull request #7520: IGNITE-12632: Support of 
cancel command for resource-consuming entities.
URL: https://github.com/apache/ignite/pull/7520#discussion_r393725638
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorQueryCancelTask.java
 ##
 @@ -17,22 +17,25 @@
 
 package org.apache.ignite.internal.visor.query;
 
+import java.util.Collection;
 
 Review comment:
   Unused imports. At least my IDE thinks so.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] nizhikov commented on a change in pull request #7520: IGNITE-12632: Support of cancel command for resource-consuming entities.

2020-03-17 Thread GitBox
nizhikov commented on a change in pull request #7520: IGNITE-12632: Support of 
cancel command for resource-consuming entities.
URL: https://github.com/apache/ignite/pull/7520#discussion_r393717443
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorQueryCancelTask.java
 ##
 @@ -17,22 +17,25 @@
 
 package org.apache.ignite.internal.visor.query;
 
+import java.util.Collection;
 
 Review comment:
   What's wrong with it?


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] nizhikov commented on a change in pull request #7520: IGNITE-12632: Support of cancel command for resource-consuming entities.

2020-03-17 Thread GitBox
nizhikov commented on a change in pull request #7520: IGNITE-12632: Support of 
cancel command for resource-consuming entities.
URL: https://github.com/apache/ignite/pull/7520#discussion_r393716433
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
 ##
 @@ -1962,6 +1962,21 @@ public String cacheName() {
 return cacheName;
 }
 
+/**
+ * Cancel scan query.
+ *
+ * @param origNodeId Originating node id.
+ * @param qryId Query id.
+ */
+public boolean cancelScanQuery(UUID origNodeId, long qryId) {
 
 Review comment:
   Fixed. Thanks.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] dmekhanikov opened a new pull request #7541: IGNITE-12794 Fix "Unexpected row key" assertion during scan query.

2020-03-17 Thread GitBox
dmekhanikov opened a new pull request #7541: IGNITE-12794 Fix "Unexpected row 
key" assertion during scan query.
URL: https://github.com/apache/ignite/pull/7541
 
 
   


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] alex-plekhanov commented on a change in pull request #6554: IGNITE-11073: Backup page store manager, initial

2020-03-17 Thread GitBox
alex-plekhanov commented on a change in pull request #6554: IGNITE-11073: 
Backup page store manager, initial
URL: https://github.com/apache/ignite/pull/6554#discussion_r393666211
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotFutureTask.java
 ##
 @@ -0,0 +1,884 @@
+/*
+ * 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.processors.cache.persistence.snapshot;
+
+import java.io.Closeable;
+import java.io.File;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.UUID;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicIntegerArray;
+import java.util.concurrent.atomic.AtomicReference;
+import java.util.concurrent.locks.ReadWriteLock;
+import java.util.concurrent.locks.ReentrantReadWriteLock;
+import java.util.function.BooleanSupplier;
+import java.util.function.Consumer;
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.binary.BinaryType;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.internal.pagemem.PageIdUtils;
+import org.apache.ignite.internal.pagemem.store.PageStore;
+import org.apache.ignite.internal.pagemem.store.PageWriteListener;
+import org.apache.ignite.internal.processors.cache.CacheGroupContext;
+import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtLocalPartition;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionState;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionTopology;
+import 
org.apache.ignite.internal.processors.cache.persistence.DbCheckpointListener;
+import 
org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager;
+import org.apache.ignite.internal.processors.cache.persistence.file.FileIO;
+import 
org.apache.ignite.internal.processors.cache.persistence.file.FileIOFactory;
+import 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager;
+import 
org.apache.ignite.internal.processors.cache.persistence.partstate.GroupPartitionId;
+import org.apache.ignite.internal.processors.cache.persistence.tree.io.PageIO;
+import org.apache.ignite.internal.processors.cache.persistence.wal.crc.FastCrc;
+import org.apache.ignite.internal.processors.marshaller.MappedName;
+import org.apache.ignite.internal.util.future.GridFutureAdapter;
+import org.apache.ignite.internal.util.lang.IgniteThrowableRunner;
+import org.apache.ignite.internal.util.tostring.GridToStringExclude;
+import org.apache.ignite.internal.util.typedef.F;
+import org.apache.ignite.internal.util.typedef.internal.A;
+import org.apache.ignite.internal.util.typedef.internal.CU;
+import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+
+import static 
org.apache.ignite.internal.pagemem.PageIdAllocator.INDEX_PARTITION;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.cacheDirName;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.cacheWorkDir;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.getPartitionFile;
+import static 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.partDeltaFile;
+import static 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.relativeNodePath;
+
+/**
+ *
+ */
+class SnapshotFutureTask extends GridFutureAdapter implements 
DbCheckpointListener {
+/** 

[GitHub] [ignite] alex-plekhanov commented on a change in pull request #6554: IGNITE-11073: Backup page store manager, initial

2020-03-17 Thread GitBox
alex-plekhanov commented on a change in pull request #6554: IGNITE-11073: 
Backup page store manager, initial
URL: https://github.com/apache/ignite/pull/6554#discussion_r393506406
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotFutureTask.java
 ##
 @@ -0,0 +1,884 @@
+/*
+ * 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.processors.cache.persistence.snapshot;
+
+import java.io.Closeable;
+import java.io.File;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.UUID;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicIntegerArray;
+import java.util.concurrent.atomic.AtomicReference;
+import java.util.concurrent.locks.ReadWriteLock;
+import java.util.concurrent.locks.ReentrantReadWriteLock;
+import java.util.function.BooleanSupplier;
+import java.util.function.Consumer;
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.binary.BinaryType;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.internal.pagemem.PageIdUtils;
+import org.apache.ignite.internal.pagemem.store.PageStore;
+import org.apache.ignite.internal.pagemem.store.PageWriteListener;
+import org.apache.ignite.internal.processors.cache.CacheGroupContext;
+import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtLocalPartition;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionState;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionTopology;
+import 
org.apache.ignite.internal.processors.cache.persistence.DbCheckpointListener;
+import 
org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager;
+import org.apache.ignite.internal.processors.cache.persistence.file.FileIO;
+import 
org.apache.ignite.internal.processors.cache.persistence.file.FileIOFactory;
+import 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager;
+import 
org.apache.ignite.internal.processors.cache.persistence.partstate.GroupPartitionId;
+import org.apache.ignite.internal.processors.cache.persistence.tree.io.PageIO;
+import org.apache.ignite.internal.processors.cache.persistence.wal.crc.FastCrc;
+import org.apache.ignite.internal.processors.marshaller.MappedName;
+import org.apache.ignite.internal.util.future.GridFutureAdapter;
+import org.apache.ignite.internal.util.lang.IgniteThrowableRunner;
+import org.apache.ignite.internal.util.tostring.GridToStringExclude;
+import org.apache.ignite.internal.util.typedef.F;
+import org.apache.ignite.internal.util.typedef.internal.A;
+import org.apache.ignite.internal.util.typedef.internal.CU;
+import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+
+import static 
org.apache.ignite.internal.pagemem.PageIdAllocator.INDEX_PARTITION;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.cacheDirName;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.cacheWorkDir;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.getPartitionFile;
+import static 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.partDeltaFile;
+import static 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.relativeNodePath;
+
+/**
+ *
+ */
+class SnapshotFutureTask extends GridFutureAdapter implements 
DbCheckpointListener {
+/** 

[GitHub] [ignite] alex-plekhanov commented on a change in pull request #6554: IGNITE-11073: Backup page store manager, initial

2020-03-17 Thread GitBox
alex-plekhanov commented on a change in pull request #6554: IGNITE-11073: 
Backup page store manager, initial
URL: https://github.com/apache/ignite/pull/6554#discussion_r393507838
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotFutureTask.java
 ##
 @@ -0,0 +1,884 @@
+/*
+ * 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.processors.cache.persistence.snapshot;
+
+import java.io.Closeable;
+import java.io.File;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.UUID;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicIntegerArray;
+import java.util.concurrent.atomic.AtomicReference;
+import java.util.concurrent.locks.ReadWriteLock;
+import java.util.concurrent.locks.ReentrantReadWriteLock;
+import java.util.function.BooleanSupplier;
+import java.util.function.Consumer;
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.binary.BinaryType;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.internal.pagemem.PageIdUtils;
+import org.apache.ignite.internal.pagemem.store.PageStore;
+import org.apache.ignite.internal.pagemem.store.PageWriteListener;
+import org.apache.ignite.internal.processors.cache.CacheGroupContext;
+import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtLocalPartition;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionState;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionTopology;
+import 
org.apache.ignite.internal.processors.cache.persistence.DbCheckpointListener;
+import 
org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager;
+import org.apache.ignite.internal.processors.cache.persistence.file.FileIO;
+import 
org.apache.ignite.internal.processors.cache.persistence.file.FileIOFactory;
+import 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager;
+import 
org.apache.ignite.internal.processors.cache.persistence.partstate.GroupPartitionId;
+import org.apache.ignite.internal.processors.cache.persistence.tree.io.PageIO;
+import org.apache.ignite.internal.processors.cache.persistence.wal.crc.FastCrc;
+import org.apache.ignite.internal.processors.marshaller.MappedName;
+import org.apache.ignite.internal.util.future.GridFutureAdapter;
+import org.apache.ignite.internal.util.lang.IgniteThrowableRunner;
+import org.apache.ignite.internal.util.tostring.GridToStringExclude;
+import org.apache.ignite.internal.util.typedef.F;
+import org.apache.ignite.internal.util.typedef.internal.A;
+import org.apache.ignite.internal.util.typedef.internal.CU;
+import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+
+import static 
org.apache.ignite.internal.pagemem.PageIdAllocator.INDEX_PARTITION;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.cacheDirName;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.cacheWorkDir;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.getPartitionFile;
+import static 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.partDeltaFile;
+import static 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.relativeNodePath;
+
+/**
+ *
+ */
+class SnapshotFutureTask extends GridFutureAdapter implements 
DbCheckpointListener {
+/** 

[GitHub] [ignite] alex-plekhanov commented on a change in pull request #6554: IGNITE-11073: Backup page store manager, initial

2020-03-17 Thread GitBox
alex-plekhanov commented on a change in pull request #6554: IGNITE-11073: 
Backup page store manager, initial
URL: https://github.com/apache/ignite/pull/6554#discussion_r393681791
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotFutureTask.java
 ##
 @@ -0,0 +1,884 @@
+/*
+ * 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.processors.cache.persistence.snapshot;
+
+import java.io.Closeable;
+import java.io.File;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.UUID;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicIntegerArray;
+import java.util.concurrent.atomic.AtomicReference;
+import java.util.concurrent.locks.ReadWriteLock;
+import java.util.concurrent.locks.ReentrantReadWriteLock;
+import java.util.function.BooleanSupplier;
+import java.util.function.Consumer;
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.binary.BinaryType;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.internal.pagemem.PageIdUtils;
+import org.apache.ignite.internal.pagemem.store.PageStore;
+import org.apache.ignite.internal.pagemem.store.PageWriteListener;
+import org.apache.ignite.internal.processors.cache.CacheGroupContext;
+import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtLocalPartition;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionState;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionTopology;
+import 
org.apache.ignite.internal.processors.cache.persistence.DbCheckpointListener;
+import 
org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager;
+import org.apache.ignite.internal.processors.cache.persistence.file.FileIO;
+import 
org.apache.ignite.internal.processors.cache.persistence.file.FileIOFactory;
+import 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager;
+import 
org.apache.ignite.internal.processors.cache.persistence.partstate.GroupPartitionId;
+import org.apache.ignite.internal.processors.cache.persistence.tree.io.PageIO;
+import org.apache.ignite.internal.processors.cache.persistence.wal.crc.FastCrc;
+import org.apache.ignite.internal.processors.marshaller.MappedName;
+import org.apache.ignite.internal.util.future.GridFutureAdapter;
+import org.apache.ignite.internal.util.lang.IgniteThrowableRunner;
+import org.apache.ignite.internal.util.tostring.GridToStringExclude;
+import org.apache.ignite.internal.util.typedef.F;
+import org.apache.ignite.internal.util.typedef.internal.A;
+import org.apache.ignite.internal.util.typedef.internal.CU;
+import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+
+import static 
org.apache.ignite.internal.pagemem.PageIdAllocator.INDEX_PARTITION;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.cacheDirName;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.cacheWorkDir;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.getPartitionFile;
+import static 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.partDeltaFile;
+import static 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.relativeNodePath;
+
+/**
+ *
+ */
+class SnapshotFutureTask extends GridFutureAdapter implements 
DbCheckpointListener {
+/** 

[GitHub] [ignite] alex-plekhanov commented on a change in pull request #6554: IGNITE-11073: Backup page store manager, initial

2020-03-17 Thread GitBox
alex-plekhanov commented on a change in pull request #6554: IGNITE-11073: 
Backup page store manager, initial
URL: https://github.com/apache/ignite/pull/6554#discussion_r393667984
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotFutureTask.java
 ##
 @@ -0,0 +1,884 @@
+/*
+ * 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.processors.cache.persistence.snapshot;
+
+import java.io.Closeable;
+import java.io.File;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.UUID;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicIntegerArray;
+import java.util.concurrent.atomic.AtomicReference;
+import java.util.concurrent.locks.ReadWriteLock;
+import java.util.concurrent.locks.ReentrantReadWriteLock;
+import java.util.function.BooleanSupplier;
+import java.util.function.Consumer;
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.binary.BinaryType;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.internal.pagemem.PageIdUtils;
+import org.apache.ignite.internal.pagemem.store.PageStore;
+import org.apache.ignite.internal.pagemem.store.PageWriteListener;
+import org.apache.ignite.internal.processors.cache.CacheGroupContext;
+import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtLocalPartition;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionState;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionTopology;
+import 
org.apache.ignite.internal.processors.cache.persistence.DbCheckpointListener;
+import 
org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager;
+import org.apache.ignite.internal.processors.cache.persistence.file.FileIO;
+import 
org.apache.ignite.internal.processors.cache.persistence.file.FileIOFactory;
+import 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager;
+import 
org.apache.ignite.internal.processors.cache.persistence.partstate.GroupPartitionId;
+import org.apache.ignite.internal.processors.cache.persistence.tree.io.PageIO;
+import org.apache.ignite.internal.processors.cache.persistence.wal.crc.FastCrc;
+import org.apache.ignite.internal.processors.marshaller.MappedName;
+import org.apache.ignite.internal.util.future.GridFutureAdapter;
+import org.apache.ignite.internal.util.lang.IgniteThrowableRunner;
+import org.apache.ignite.internal.util.tostring.GridToStringExclude;
+import org.apache.ignite.internal.util.typedef.F;
+import org.apache.ignite.internal.util.typedef.internal.A;
+import org.apache.ignite.internal.util.typedef.internal.CU;
+import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+
+import static 
org.apache.ignite.internal.pagemem.PageIdAllocator.INDEX_PARTITION;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.cacheDirName;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.cacheWorkDir;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.getPartitionFile;
+import static 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.partDeltaFile;
+import static 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.relativeNodePath;
+
+/**
+ *
+ */
+class SnapshotFutureTask extends GridFutureAdapter implements 
DbCheckpointListener {
+/** 

[GitHub] [ignite] alex-plekhanov commented on a change in pull request #6554: IGNITE-11073: Backup page store manager, initial

2020-03-17 Thread GitBox
alex-plekhanov commented on a change in pull request #6554: IGNITE-11073: 
Backup page store manager, initial
URL: https://github.com/apache/ignite/pull/6554#discussion_r393510812
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotFutureTask.java
 ##
 @@ -0,0 +1,884 @@
+/*
+ * 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.processors.cache.persistence.snapshot;
+
+import java.io.Closeable;
+import java.io.File;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.UUID;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicIntegerArray;
+import java.util.concurrent.atomic.AtomicReference;
+import java.util.concurrent.locks.ReadWriteLock;
+import java.util.concurrent.locks.ReentrantReadWriteLock;
+import java.util.function.BooleanSupplier;
+import java.util.function.Consumer;
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.binary.BinaryType;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.internal.pagemem.PageIdUtils;
+import org.apache.ignite.internal.pagemem.store.PageStore;
+import org.apache.ignite.internal.pagemem.store.PageWriteListener;
+import org.apache.ignite.internal.processors.cache.CacheGroupContext;
+import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtLocalPartition;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionState;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionTopology;
+import 
org.apache.ignite.internal.processors.cache.persistence.DbCheckpointListener;
+import 
org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager;
+import org.apache.ignite.internal.processors.cache.persistence.file.FileIO;
+import 
org.apache.ignite.internal.processors.cache.persistence.file.FileIOFactory;
+import 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager;
+import 
org.apache.ignite.internal.processors.cache.persistence.partstate.GroupPartitionId;
+import org.apache.ignite.internal.processors.cache.persistence.tree.io.PageIO;
+import org.apache.ignite.internal.processors.cache.persistence.wal.crc.FastCrc;
+import org.apache.ignite.internal.processors.marshaller.MappedName;
+import org.apache.ignite.internal.util.future.GridFutureAdapter;
+import org.apache.ignite.internal.util.lang.IgniteThrowableRunner;
+import org.apache.ignite.internal.util.tostring.GridToStringExclude;
+import org.apache.ignite.internal.util.typedef.F;
+import org.apache.ignite.internal.util.typedef.internal.A;
+import org.apache.ignite.internal.util.typedef.internal.CU;
+import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+
+import static 
org.apache.ignite.internal.pagemem.PageIdAllocator.INDEX_PARTITION;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.cacheDirName;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.cacheWorkDir;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.getPartitionFile;
+import static 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.partDeltaFile;
+import static 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.relativeNodePath;
+
+/**
+ *
+ */
+class SnapshotFutureTask extends GridFutureAdapter implements 
DbCheckpointListener {
+/** 

[GitHub] [ignite] alex-plekhanov commented on a change in pull request #6554: IGNITE-11073: Backup page store manager, initial

2020-03-17 Thread GitBox
alex-plekhanov commented on a change in pull request #6554: IGNITE-11073: 
Backup page store manager, initial
URL: https://github.com/apache/ignite/pull/6554#discussion_r393508328
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotFutureTask.java
 ##
 @@ -0,0 +1,884 @@
+/*
+ * 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.processors.cache.persistence.snapshot;
+
+import java.io.Closeable;
+import java.io.File;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.UUID;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicIntegerArray;
+import java.util.concurrent.atomic.AtomicReference;
+import java.util.concurrent.locks.ReadWriteLock;
+import java.util.concurrent.locks.ReentrantReadWriteLock;
+import java.util.function.BooleanSupplier;
+import java.util.function.Consumer;
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.binary.BinaryType;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.internal.pagemem.PageIdUtils;
+import org.apache.ignite.internal.pagemem.store.PageStore;
+import org.apache.ignite.internal.pagemem.store.PageWriteListener;
+import org.apache.ignite.internal.processors.cache.CacheGroupContext;
+import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtLocalPartition;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionState;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionTopology;
+import 
org.apache.ignite.internal.processors.cache.persistence.DbCheckpointListener;
+import 
org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager;
+import org.apache.ignite.internal.processors.cache.persistence.file.FileIO;
+import 
org.apache.ignite.internal.processors.cache.persistence.file.FileIOFactory;
+import 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager;
+import 
org.apache.ignite.internal.processors.cache.persistence.partstate.GroupPartitionId;
+import org.apache.ignite.internal.processors.cache.persistence.tree.io.PageIO;
+import org.apache.ignite.internal.processors.cache.persistence.wal.crc.FastCrc;
+import org.apache.ignite.internal.processors.marshaller.MappedName;
+import org.apache.ignite.internal.util.future.GridFutureAdapter;
+import org.apache.ignite.internal.util.lang.IgniteThrowableRunner;
+import org.apache.ignite.internal.util.tostring.GridToStringExclude;
+import org.apache.ignite.internal.util.typedef.F;
+import org.apache.ignite.internal.util.typedef.internal.A;
+import org.apache.ignite.internal.util.typedef.internal.CU;
+import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+
+import static 
org.apache.ignite.internal.pagemem.PageIdAllocator.INDEX_PARTITION;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.cacheDirName;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.cacheWorkDir;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.getPartitionFile;
+import static 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.partDeltaFile;
+import static 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.relativeNodePath;
+
+/**
+ *
+ */
+class SnapshotFutureTask extends GridFutureAdapter implements 
DbCheckpointListener {
+/** 

[GitHub] [ignite] alex-plekhanov commented on a change in pull request #6554: IGNITE-11073: Backup page store manager, initial

2020-03-17 Thread GitBox
alex-plekhanov commented on a change in pull request #6554: IGNITE-11073: 
Backup page store manager, initial
URL: https://github.com/apache/ignite/pull/6554#discussion_r393669708
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotFutureTask.java
 ##
 @@ -0,0 +1,884 @@
+/*
+ * 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.processors.cache.persistence.snapshot;
+
+import java.io.Closeable;
+import java.io.File;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.UUID;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicIntegerArray;
+import java.util.concurrent.atomic.AtomicReference;
+import java.util.concurrent.locks.ReadWriteLock;
+import java.util.concurrent.locks.ReentrantReadWriteLock;
+import java.util.function.BooleanSupplier;
+import java.util.function.Consumer;
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.binary.BinaryType;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.internal.pagemem.PageIdUtils;
+import org.apache.ignite.internal.pagemem.store.PageStore;
+import org.apache.ignite.internal.pagemem.store.PageWriteListener;
+import org.apache.ignite.internal.processors.cache.CacheGroupContext;
+import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtLocalPartition;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionState;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionTopology;
+import 
org.apache.ignite.internal.processors.cache.persistence.DbCheckpointListener;
+import 
org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager;
+import org.apache.ignite.internal.processors.cache.persistence.file.FileIO;
+import 
org.apache.ignite.internal.processors.cache.persistence.file.FileIOFactory;
+import 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager;
+import 
org.apache.ignite.internal.processors.cache.persistence.partstate.GroupPartitionId;
+import org.apache.ignite.internal.processors.cache.persistence.tree.io.PageIO;
+import org.apache.ignite.internal.processors.cache.persistence.wal.crc.FastCrc;
+import org.apache.ignite.internal.processors.marshaller.MappedName;
+import org.apache.ignite.internal.util.future.GridFutureAdapter;
+import org.apache.ignite.internal.util.lang.IgniteThrowableRunner;
+import org.apache.ignite.internal.util.tostring.GridToStringExclude;
+import org.apache.ignite.internal.util.typedef.F;
+import org.apache.ignite.internal.util.typedef.internal.A;
+import org.apache.ignite.internal.util.typedef.internal.CU;
+import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+
+import static 
org.apache.ignite.internal.pagemem.PageIdAllocator.INDEX_PARTITION;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.cacheDirName;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.cacheWorkDir;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.getPartitionFile;
+import static 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.partDeltaFile;
+import static 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.relativeNodePath;
+
+/**
+ *
+ */
+class SnapshotFutureTask extends GridFutureAdapter implements 
DbCheckpointListener {
+/** 

[GitHub] [ignite] alex-plekhanov commented on a change in pull request #6554: IGNITE-11073: Backup page store manager, initial

2020-03-17 Thread GitBox
alex-plekhanov commented on a change in pull request #6554: IGNITE-11073: 
Backup page store manager, initial
URL: https://github.com/apache/ignite/pull/6554#discussion_r393507439
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotFutureTask.java
 ##
 @@ -0,0 +1,884 @@
+/*
+ * 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.processors.cache.persistence.snapshot;
+
+import java.io.Closeable;
+import java.io.File;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.UUID;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicIntegerArray;
+import java.util.concurrent.atomic.AtomicReference;
+import java.util.concurrent.locks.ReadWriteLock;
+import java.util.concurrent.locks.ReentrantReadWriteLock;
+import java.util.function.BooleanSupplier;
+import java.util.function.Consumer;
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.binary.BinaryType;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.internal.pagemem.PageIdUtils;
+import org.apache.ignite.internal.pagemem.store.PageStore;
+import org.apache.ignite.internal.pagemem.store.PageWriteListener;
+import org.apache.ignite.internal.processors.cache.CacheGroupContext;
+import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtLocalPartition;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionState;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionTopology;
+import 
org.apache.ignite.internal.processors.cache.persistence.DbCheckpointListener;
+import 
org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager;
+import org.apache.ignite.internal.processors.cache.persistence.file.FileIO;
+import 
org.apache.ignite.internal.processors.cache.persistence.file.FileIOFactory;
+import 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager;
+import 
org.apache.ignite.internal.processors.cache.persistence.partstate.GroupPartitionId;
+import org.apache.ignite.internal.processors.cache.persistence.tree.io.PageIO;
+import org.apache.ignite.internal.processors.cache.persistence.wal.crc.FastCrc;
+import org.apache.ignite.internal.processors.marshaller.MappedName;
+import org.apache.ignite.internal.util.future.GridFutureAdapter;
+import org.apache.ignite.internal.util.lang.IgniteThrowableRunner;
+import org.apache.ignite.internal.util.tostring.GridToStringExclude;
+import org.apache.ignite.internal.util.typedef.F;
+import org.apache.ignite.internal.util.typedef.internal.A;
+import org.apache.ignite.internal.util.typedef.internal.CU;
+import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+
+import static 
org.apache.ignite.internal.pagemem.PageIdAllocator.INDEX_PARTITION;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.cacheDirName;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.cacheWorkDir;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.getPartitionFile;
+import static 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.partDeltaFile;
+import static 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.relativeNodePath;
+
+/**
+ *
+ */
+class SnapshotFutureTask extends GridFutureAdapter implements 
DbCheckpointListener {
+/** 

[GitHub] [ignite] alex-plekhanov commented on a change in pull request #6554: IGNITE-11073: Backup page store manager, initial

2020-03-17 Thread GitBox
alex-plekhanov commented on a change in pull request #6554: IGNITE-11073: 
Backup page store manager, initial
URL: https://github.com/apache/ignite/pull/6554#discussion_r393506517
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotFutureTask.java
 ##
 @@ -0,0 +1,884 @@
+/*
+ * 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.processors.cache.persistence.snapshot;
+
+import java.io.Closeable;
+import java.io.File;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.UUID;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicIntegerArray;
+import java.util.concurrent.atomic.AtomicReference;
+import java.util.concurrent.locks.ReadWriteLock;
+import java.util.concurrent.locks.ReentrantReadWriteLock;
+import java.util.function.BooleanSupplier;
+import java.util.function.Consumer;
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.binary.BinaryType;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.internal.pagemem.PageIdUtils;
+import org.apache.ignite.internal.pagemem.store.PageStore;
+import org.apache.ignite.internal.pagemem.store.PageWriteListener;
+import org.apache.ignite.internal.processors.cache.CacheGroupContext;
+import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtLocalPartition;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionState;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionTopology;
+import 
org.apache.ignite.internal.processors.cache.persistence.DbCheckpointListener;
+import 
org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager;
+import org.apache.ignite.internal.processors.cache.persistence.file.FileIO;
+import 
org.apache.ignite.internal.processors.cache.persistence.file.FileIOFactory;
+import 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager;
+import 
org.apache.ignite.internal.processors.cache.persistence.partstate.GroupPartitionId;
+import org.apache.ignite.internal.processors.cache.persistence.tree.io.PageIO;
+import org.apache.ignite.internal.processors.cache.persistence.wal.crc.FastCrc;
+import org.apache.ignite.internal.processors.marshaller.MappedName;
+import org.apache.ignite.internal.util.future.GridFutureAdapter;
+import org.apache.ignite.internal.util.lang.IgniteThrowableRunner;
+import org.apache.ignite.internal.util.tostring.GridToStringExclude;
+import org.apache.ignite.internal.util.typedef.F;
+import org.apache.ignite.internal.util.typedef.internal.A;
+import org.apache.ignite.internal.util.typedef.internal.CU;
+import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+
+import static 
org.apache.ignite.internal.pagemem.PageIdAllocator.INDEX_PARTITION;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.cacheDirName;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.cacheWorkDir;
+import static 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.getPartitionFile;
+import static 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.partDeltaFile;
+import static 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.relativeNodePath;
+
+/**
+ *
+ */
+class SnapshotFutureTask extends GridFutureAdapter implements 
DbCheckpointListener {
+/** 

[GitHub] [ignite] NSAmelchev commented on a change in pull request #7531: IGNITE-12779 : Split implementations of Ignite and IgniteMXBean, make behavior of their active(boolean) different

2020-03-17 Thread GitBox
NSAmelchev commented on a change in pull request #7531: IGNITE-12779 : Split 
implementations of Ignite and IgniteMXBean, make behavior of their 
active(boolean) different 
URL: https://github.com/apache/ignite/pull/7531#discussion_r393681350
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
 ##
 @@ -3586,6 +3305,26 @@ private void checkNearCacheStarted(IgniteCacheProxy cache) throws IgniteCh
 "(a cache with the same name without near cache is already 
started)");
 }
 
+/**
+ * This method allows manually remove the checkpoint with given {@code 
key}.
+ *
+ * @param key Checkpoint key.
+ * @return {@code true} if specified checkpoint was indeed removed, {@code 
false}
+ *  otherwise.
+ */
+boolean removeCheckpoint(String key) {
 
 Review comment:
   Ok, let's leave it here. And do not move it down in the code.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] NSAmelchev commented on a change in pull request #7531: IGNITE-12779 : Split implementations of Ignite and IgniteMXBean, make behavior of their active(boolean) different

2020-03-17 Thread GitBox
NSAmelchev commented on a change in pull request #7531: IGNITE-12779 : Split 
implementations of Ignite and IgniteMXBean, make behavior of their 
active(boolean) different 
URL: https://github.com/apache/ignite/pull/7531#discussion_r393677792
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
 ##
 @@ -4618,32 +4357,32 @@ private void registerMetrics() {
 
 MetricRegistry reg = 
ctx.metric().registry(GridMetricManager.IGNITE_METRICS);
 
-reg.register("fullVersion", this::getFullVersion, String.class, 
FULL_VER_DESC);
-reg.register("copyright", this::getCopyright, String.class, 
COPYRIGHT_DESC);
+reg.register("fullVersion", this::fullVersion, String.class, 
FULL_VER_DESC);
+reg.register("copyright", () -> COPYRIGHT, String.class, 
COPYRIGHT_DESC);
 
-reg.register("startTimestampFormatted", 
this::getStartTimestampFormatted, String.class,
+reg.register("startTimestampFormatted", this::startTimeFormatted, 
String.class,
 START_TIMESTAMP_FORMATTED_DESC);
 
 reg.register("isRebalanceEnabled", this::isRebalanceEnabled, 
IS_REBALANCE_ENABLED_DESC);
-reg.register("uptimeFormatted", this::getUpTimeFormatted, 
String.class, UPTIME_FORMATTED_DESC);
-reg.register("startTimestamp", this::getStartTimestamp, 
START_TIMESTAMP_DESC);
-reg.register("uptime", this::getUpTime, UPTIME_DESC);
-reg.register("osInformation", this::getOsInformation, String.class, 
OS_INFO_DESC);
-reg.register("jdkInformation", this::getJdkInformation, String.class, 
JDK_INFO_DESC);
-reg.register("osUser", this::getOsUser, String.class, OS_USER_DESC);
-reg.register("vmName", this::getVmName, String.class, VM_NAME_DESC);
-reg.register("instanceName", this::getInstanceName, String.class, 
INSTANCE_NAME_DESC);
-
-reg.register("currentCoordinatorFormatted", 
this::getCurrentCoordinatorFormatted, String.class,
+reg.register("uptimeFormatted", this::upTimeFormatted, String.class, 
UPTIME_FORMATTED_DESC);
+reg.register("startTimestamp", this::startTimestamp, 
START_TIMESTAMP_DESC);
+reg.register("uptime", this::upTime, UPTIME_DESC);
+reg.register("osInformation", this::osInformation, String.class, 
OS_INFO_DESC);
+reg.register("jdkInformation", this::jdkInformation, String.class, 
JDK_INFO_DESC);
+reg.register("osUser", this::osUser, String.class, OS_USER_DESC);
+reg.register("vmName", this::vmName, String.class, VM_NAME_DESC);
+reg.register("instanceName", this::name, String.class, 
INSTANCE_NAME_DESC);
 
 Review comment:
   Ok, lets use `name()`


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] Vladsz83 commented on a change in pull request #7531: IGNITE-12779 : Split implementations of Ignite and IgniteMXBean, make behavior of their active(boolean) different

2020-03-17 Thread GitBox
Vladsz83 commented on a change in pull request #7531: IGNITE-12779 : Split 
implementations of Ignite and IgniteMXBean, make behavior of their 
active(boolean) different 
URL: https://github.com/apache/ignite/pull/7531#discussion_r393676176
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/IgniteMXBeanImpl.java
 ##
 @@ -0,0 +1,341 @@
+package org.apache.ignite.internal;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import javax.management.JMException;
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.IgniteException;
+import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.cluster.ClusterNode;
+import org.apache.ignite.cluster.ClusterState;
+import org.apache.ignite.internal.util.typedef.internal.A;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.mxbean.IgniteMXBean;
+
+import static org.apache.ignite.cluster.ClusterState.ACTIVE;
+import static org.apache.ignite.cluster.ClusterState.INACTIVE;
+import static org.apache.ignite.internal.IgniteVersionUtils.COPYRIGHT;
+
+/** Implementation of Ignite mxBean. */
+public class IgniteMXBeanImpl implements IgniteMXBean {
+/** Ignite core to work with. */
+private final IgniteKernal kernal;
+
+/** Logger, same as for IgniteKernal. */
+private final IgniteLogger log;
+
+/**
+ * @param kernal Ignite kernel to work with.
+ */
+public IgniteMXBeanImpl(IgniteKernal kernal) {
+this.kernal = kernal;
+
+this.log = kernal.context().log(IgniteKernal.class);
+}
+
+/** {@inheritDoc} */
+@Override public boolean active() {
+kernal.context().gateway().readLock();
+
+try {
+return kernal.context().state().publicApiActiveState(true);
 
 Review comment:
   fixed.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] NSAmelchev commented on a change in pull request #7531: IGNITE-12779 : Split implementations of Ignite and IgniteMXBean, make behavior of their active(boolean) different

2020-03-17 Thread GitBox
NSAmelchev commented on a change in pull request #7531: IGNITE-12779 : Split 
implementations of Ignite and IgniteMXBean, make behavior of their 
active(boolean) different 
URL: https://github.com/apache/ignite/pull/7531#discussion_r393673468
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/IgniteMXBeanImpl.java
 ##
 @@ -0,0 +1,341 @@
+package org.apache.ignite.internal;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import javax.management.JMException;
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.IgniteException;
+import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.cluster.ClusterNode;
+import org.apache.ignite.cluster.ClusterState;
+import org.apache.ignite.internal.util.typedef.internal.A;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.mxbean.IgniteMXBean;
+
+import static org.apache.ignite.cluster.ClusterState.ACTIVE;
+import static org.apache.ignite.cluster.ClusterState.INACTIVE;
+import static org.apache.ignite.internal.IgniteVersionUtils.COPYRIGHT;
+
+/** Implementation of Ignite mxBean. */
+public class IgniteMXBeanImpl implements IgniteMXBean {
+/** Ignite core to work with. */
+private final IgniteKernal kernal;
+
+/** Logger, same as for IgniteKernal. */
+private final IgniteLogger log;
+
+/**
+ * @param kernal Ignite kernel to work with.
+ */
+public IgniteMXBeanImpl(IgniteKernal kernal) {
+this.kernal = kernal;
+
+this.log = kernal.context().log(IgniteKernal.class);
+}
+
+/** {@inheritDoc} */
+@Override public boolean active() {
+kernal.context().gateway().readLock();
+
+try {
+return kernal.context().state().publicApiActiveState(true);
 
 Review comment:
   Lets use `kernal.active()` 


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] Vladsz83 commented on a change in pull request #7531: IGNITE-12779 : Split implementations of Ignite and IgniteMXBean, make behavior of their active(boolean) different

2020-03-17 Thread GitBox
Vladsz83 commented on a change in pull request #7531: IGNITE-12779 : Split 
implementations of Ignite and IgniteMXBean, make behavior of their 
active(boolean) different 
URL: https://github.com/apache/ignite/pull/7531#discussion_r393672841
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/managers/IgniteMBeansManager.java
 ##
 @@ -131,7 +132,7 @@ public void registerAllMBeans(
 return;
 
 // Kernal
-registerMBean("Kernal", IgniteKernal.class.getSimpleName(), kernal, 
IgniteMXBean.class);
+registerMBean("Kernal", IgniteKernal.class.getSimpleName(), new 
IgniteMXBeanImpl(kernal), IgniteMXBean.class);
 
 Review comment:
   Fixed.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] Vladsz83 commented on a change in pull request #7531: IGNITE-12779 : Split implementations of Ignite and IgniteMXBean, make behavior of their active(boolean) different

2020-03-17 Thread GitBox
Vladsz83 commented on a change in pull request #7531: IGNITE-12779 : Split 
implementations of Ignite and IgniteMXBean, make behavior of their 
active(boolean) different 
URL: https://github.com/apache/ignite/pull/7531#discussion_r393671431
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/IgniteMXBeanImpl.java
 ##
 @@ -0,0 +1,341 @@
+package org.apache.ignite.internal;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import javax.management.JMException;
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.IgniteException;
+import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.cluster.ClusterNode;
+import org.apache.ignite.cluster.ClusterState;
+import org.apache.ignite.internal.util.typedef.internal.A;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.mxbean.IgniteMXBean;
+
+import static org.apache.ignite.cluster.ClusterState.ACTIVE;
+import static org.apache.ignite.cluster.ClusterState.INACTIVE;
+import static org.apache.ignite.internal.IgniteVersionUtils.COPYRIGHT;
+
+/** Implementation of Ignite mxBean. */
+public class IgniteMXBeanImpl implements IgniteMXBean {
+/** Ignite core to work with. */
+private final IgniteKernal kernal;
+
+/** Logger, same as for IgniteKernal. */
+private final IgniteLogger log;
+
+/**
+ * @param kernal Ignite kernel to work with.
+ */
+public IgniteMXBeanImpl(IgniteKernal kernal) {
+this.kernal = kernal;
+
+this.log = kernal.context().log(IgniteKernal.class);
+}
+
+/** {@inheritDoc} */
+@Override public boolean active() {
+kernal.context().gateway().readLock();
+
+try {
+return kernal.context().state().publicApiActiveState(true);
+}
+finally {
+kernal.context().gateway().readUnlock();
+}
+}
+
+/** {@inheritDoc} */
+@Override public void active(boolean active) {
+clusterState(active ? ACTIVE.toString() : INACTIVE.toString(), false);
+}
+
+/** {@inheritDoc} */
+@Override public String getCopyright() {
+return COPYRIGHT;
+}
+
+/** {@inheritDoc} */
+@Override public long getStartTimestamp() {
+return kernal.startTimestamp();
+}
+
+/** {@inheritDoc} */
+@Override public String getStartTimestampFormatted() {
+return kernal.startTimeFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public long getUpTime() {
+return kernal.upTime();
+}
+
+/** {@inheritDoc} */
+@Override public long getLongJVMPausesCount() {
+return kernal.longJVMPausesCount();
+}
+
+/** {@inheritDoc} */
+@Override public long getLongJVMPausesTotalDuration() {
+return kernal.longJVMPausesTotalDuration();
+}
+
+/** {@inheritDoc} */
+@Override public Map getLongJVMPauseLastEvents() {
+return kernal.longJVMPauseLastEvents();
+}
+
+/** {@inheritDoc} */
+@Override public String getUpTimeFormatted() {
+return kernal.upTimeFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getFullVersion() {
+return kernal.fullVersion();
+}
+
+/** {@inheritDoc} */
+@Override public String getCheckpointSpiFormatted() {
+return kernal.checkpointSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getCurrentCoordinatorFormatted() {
+return kernal.currentCoordinatorFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public boolean isNodeInBaseline() {
+   return kernal.nodeInBaseline();
+}
+
+/** {@inheritDoc} */
+@Override public String getCommunicationSpiFormatted() {
+return kernal.communicationSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getDeploymentSpiFormatted() {
+return kernal.deploymentSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getDiscoverySpiFormatted() {
+return kernal.discoverySpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getEventStorageSpiFormatted() {
+return kernal.eventStorageSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getCollisionSpiFormatted() {
+return kernal.collisionSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getFailoverSpiFormatted() {
+return kernal.failoverSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getLoadBalancingSpiFormatted() {
+return kernal.loadBalancingSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getOsInformation() {
+return kernal.osInformation();
+}
+
+/** {@inheritDoc} */
+@Override public String getJdkInformation() {
+return kernal.jdkInformation();
+}
+
+/** {@inheritDoc} */
+@Override 

[GitHub] [ignite] NSAmelchev commented on a change in pull request #7531: IGNITE-12779 : Split implementations of Ignite and IgniteMXBean, make behavior of their active(boolean) different

2020-03-17 Thread GitBox
NSAmelchev commented on a change in pull request #7531: IGNITE-12779 : Split 
implementations of Ignite and IgniteMXBean, make behavior of their 
active(boolean) different 
URL: https://github.com/apache/ignite/pull/7531#discussion_r393669279
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/IgniteMXBeanImpl.java
 ##
 @@ -0,0 +1,341 @@
+package org.apache.ignite.internal;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import javax.management.JMException;
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.IgniteException;
+import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.cluster.ClusterNode;
+import org.apache.ignite.cluster.ClusterState;
+import org.apache.ignite.internal.util.typedef.internal.A;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.mxbean.IgniteMXBean;
+
+import static org.apache.ignite.cluster.ClusterState.ACTIVE;
+import static org.apache.ignite.cluster.ClusterState.INACTIVE;
+import static org.apache.ignite.internal.IgniteVersionUtils.COPYRIGHT;
+
+/** Implementation of Ignite mxBean. */
+public class IgniteMXBeanImpl implements IgniteMXBean {
+/** Ignite core to work with. */
+private final IgniteKernal kernal;
+
+/** Logger, same as for IgniteKernal. */
+private final IgniteLogger log;
+
+/**
+ * @param kernal Ignite kernel to work with.
+ */
+public IgniteMXBeanImpl(IgniteKernal kernal) {
+this.kernal = kernal;
+
+this.log = kernal.context().log(IgniteKernal.class);
+}
+
+/** {@inheritDoc} */
+@Override public boolean active() {
+kernal.context().gateway().readLock();
+
+try {
+return kernal.context().state().publicApiActiveState(true);
+}
+finally {
+kernal.context().gateway().readUnlock();
+}
+}
+
+/** {@inheritDoc} */
+@Override public void active(boolean active) {
+clusterState(active ? ACTIVE.toString() : INACTIVE.toString(), false);
+}
+
+/** {@inheritDoc} */
+@Override public String getCopyright() {
+return COPYRIGHT;
+}
+
+/** {@inheritDoc} */
+@Override public long getStartTimestamp() {
+return kernal.startTimestamp();
+}
+
+/** {@inheritDoc} */
+@Override public String getStartTimestampFormatted() {
+return kernal.startTimeFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public long getUpTime() {
+return kernal.upTime();
+}
+
+/** {@inheritDoc} */
+@Override public long getLongJVMPausesCount() {
+return kernal.longJVMPausesCount();
+}
+
+/** {@inheritDoc} */
+@Override public long getLongJVMPausesTotalDuration() {
+return kernal.longJVMPausesTotalDuration();
+}
+
+/** {@inheritDoc} */
+@Override public Map getLongJVMPauseLastEvents() {
+return kernal.longJVMPauseLastEvents();
+}
+
+/** {@inheritDoc} */
+@Override public String getUpTimeFormatted() {
+return kernal.upTimeFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getFullVersion() {
+return kernal.fullVersion();
+}
+
+/** {@inheritDoc} */
+@Override public String getCheckpointSpiFormatted() {
+return kernal.checkpointSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getCurrentCoordinatorFormatted() {
+return kernal.currentCoordinatorFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public boolean isNodeInBaseline() {
+   return kernal.nodeInBaseline();
+}
+
+/** {@inheritDoc} */
+@Override public String getCommunicationSpiFormatted() {
+return kernal.communicationSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getDeploymentSpiFormatted() {
+return kernal.deploymentSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getDiscoverySpiFormatted() {
+return kernal.discoverySpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getEventStorageSpiFormatted() {
+return kernal.eventStorageSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getCollisionSpiFormatted() {
+return kernal.collisionSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getFailoverSpiFormatted() {
+return kernal.failoverSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getLoadBalancingSpiFormatted() {
+return kernal.loadBalancingSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getOsInformation() {
+return kernal.osInformation();
+}
+
+/** {@inheritDoc} */
+@Override public String getJdkInformation() {
+return kernal.jdkInformation();
+}
+
+/** {@inheritDoc} */
+@Override 

[GitHub] [ignite] Vladsz83 commented on a change in pull request #7531: IGNITE-12779 : Split implementations of Ignite and IgniteMXBean, make behavior of their active(boolean) different

2020-03-17 Thread GitBox
Vladsz83 commented on a change in pull request #7531: IGNITE-12779 : Split 
implementations of Ignite and IgniteMXBean, make behavior of their 
active(boolean) different 
URL: https://github.com/apache/ignite/pull/7531#discussion_r393668066
 
 

 ##
 File path: modules/core/src/main/java/org/apache/ignite/IgniteCluster.java
 ##
 @@ -455,9 +455,6 @@
 
 /**
  * Changes Ignite grid state to active or inactive.
- * 
 
 Review comment:
   Miss-puss. Fixed.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] Vladsz83 commented on a change in pull request #7531: IGNITE-12779 : Split implementations of Ignite and IgniteMXBean, make behavior of their active(boolean) different

2020-03-17 Thread GitBox
Vladsz83 commented on a change in pull request #7531: IGNITE-12779 : Split 
implementations of Ignite and IgniteMXBean, make behavior of their 
active(boolean) different 
URL: https://github.com/apache/ignite/pull/7531#discussion_r393664767
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
 ##
 @@ -4652,53 +4391,353 @@ private void registerMetrics() {
 reg.register("clusterState", this::clusterState, String.class, 
CLUSTER_STATE_DESC);
 reg.register("lastClusterStateChangeTime", 
this::lastClusterStateChangeTime, LAST_CLUSTER_STATE_CHANGE_TIME_DESC);
 
-reg.register("userAttributesFormatted", 
this::getUserAttributesFormatted, List.class,
+reg.register("userAttributesFormatted", this::userAttributesFormatted, 
List.class,
 USER_ATTRS_FORMATTED_DESC);
 
-reg.register("gridLoggerFormatted", this::getGridLoggerFormatted, 
String.class,
+reg.register("gridLoggerFormatted", this::gridLoggerFormatted, 
String.class,
 GRID_LOG_FORMATTED_DESC);
 
-reg.register("executorServiceFormatted", 
this::getExecutorServiceFormatted, String.class,
+reg.register("executorServiceFormatted", 
this::executorServiceFormatted, String.class,
 EXECUTOR_SRVC_FORMATTED_DESC);
 
-reg.register("igniteHome", this::getIgniteHome, String.class, 
IGNITE_HOME_DESC);
+reg.register("igniteHome", this::igniteHome, String.class, 
IGNITE_HOME_DESC);
 
-reg.register("mBeanServerFormatted", this::getMBeanServerFormatted, 
String.class,
+reg.register("mBeanServerFormatted", this::mbeanServerFormatted, 
String.class,
 MBEAN_SERVER_FORMATTED_DESC);
 
 reg.register("localNodeId", this::getLocalNodeId, UUID.class, 
LOC_NODE_ID_DESC);
 
-reg.register("isPeerClassLoadingEnabled", 
this::isPeerClassLoadingEnabled, Boolean.class,
+reg.register("isPeerClassLoadingEnabled", 
this::peerClassLoadingEnabled, Boolean.class,
 IS_PEER_CLS_LOADING_ENABLED_DESC);
 
-reg.register("lifecycleBeansFormatted", 
this::getLifecycleBeansFormatted, List.class,
+reg.register("lifecycleBeansFormatted", this::lifecycleBeansFormatted, 
List.class,
 LIFECYCLE_BEANS_FORMATTED_DESC);
 
-reg.register("discoverySpiFormatted", this::getDiscoverySpiFormatted, 
String.class,
+reg.register("discoverySpiFormatted", this::discoverySpiFormatted, 
String.class,
 DISCOVERY_SPI_FORMATTED_DESC);
 
-reg.register("communicationSpiFormatted", 
this::getCommunicationSpiFormatted, String.class,
+reg.register("communicationSpiFormatted", 
this::communicationSpiFormatted, String.class,
 COMMUNICATION_SPI_FORMATTED_DESC);
 
-reg.register("deploymentSpiFormatted", 
this::getDeploymentSpiFormatted, String.class,
+reg.register("deploymentSpiFormatted", this::deploymentSpiFormatted, 
String.class,
 DEPLOYMENT_SPI_FORMATTED_DESC);
 
-reg.register("checkpointSpiFormatted", 
this::getCheckpointSpiFormatted, String.class,
+reg.register("checkpointSpiFormatted", this::checkpointSpiFormatted, 
String.class,
 CHECKPOINT_SPI_FORMATTED_DESC);
 
-reg.register("collisionSpiFormatted", this::getCollisionSpiFormatted, 
String.class,
+reg.register("collisionSpiFormatted", this::collisionSpiFormatted, 
String.class,
 COLLISION_SPI_FORMATTED_DESC);
 
-reg.register("eventStorageSpiFormatted", 
this::getEventStorageSpiFormatted, String.class,
+reg.register("eventStorageSpiFormatted", 
this::eventStorageSpiFormatted, String.class,
 EVT_STORAGE_SPI_FORMATTED_DESC);
 
-reg.register("failoverSpiFormatted", this::getFailoverSpiFormatted, 
String.class,
+reg.register("failoverSpiFormatted", this::failoverSpiFormatted, 
String.class,
 FAILOVER_SPI_FORMATTED_DESC);
 
-reg.register("loadBalancingSpiFormatted", 
this::getLoadBalancingSpiFormatted, String.class,
+reg.register("loadBalancingSpiFormatted", 
this::loadBalancingSpiFormatted, String.class,
 LOAD_BALANCING_SPI_FORMATTED_DESC);
 }
 
+/**
+ * @return String representation of version of current Ignite instance.
 
 Review comment:
   Fixed.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] Vladsz83 commented on a change in pull request #7531: IGNITE-12779 : Split implementations of Ignite and IgniteMXBean, make behavior of their active(boolean) different

2020-03-17 Thread GitBox
Vladsz83 commented on a change in pull request #7531: IGNITE-12779 : Split 
implementations of Ignite and IgniteMXBean, make behavior of their 
active(boolean) different 
URL: https://github.com/apache/ignite/pull/7531#discussion_r393663488
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
 ##
 @@ -4618,32 +4357,32 @@ private void registerMetrics() {
 
 MetricRegistry reg = 
ctx.metric().registry(GridMetricManager.IGNITE_METRICS);
 
-reg.register("fullVersion", this::getFullVersion, String.class, 
FULL_VER_DESC);
-reg.register("copyright", this::getCopyright, String.class, 
COPYRIGHT_DESC);
+reg.register("fullVersion", this::fullVersion, String.class, 
FULL_VER_DESC);
+reg.register("copyright", () -> COPYRIGHT, String.class, 
COPYRIGHT_DESC);
 
-reg.register("startTimestampFormatted", 
this::getStartTimestampFormatted, String.class,
+reg.register("startTimestampFormatted", this::startTimeFormatted, 
String.class,
 START_TIMESTAMP_FORMATTED_DESC);
 
 reg.register("isRebalanceEnabled", this::isRebalanceEnabled, 
IS_REBALANCE_ENABLED_DESC);
-reg.register("uptimeFormatted", this::getUpTimeFormatted, 
String.class, UPTIME_FORMATTED_DESC);
-reg.register("startTimestamp", this::getStartTimestamp, 
START_TIMESTAMP_DESC);
-reg.register("uptime", this::getUpTime, UPTIME_DESC);
-reg.register("osInformation", this::getOsInformation, String.class, 
OS_INFO_DESC);
-reg.register("jdkInformation", this::getJdkInformation, String.class, 
JDK_INFO_DESC);
-reg.register("osUser", this::getOsUser, String.class, OS_USER_DESC);
-reg.register("vmName", this::getVmName, String.class, VM_NAME_DESC);
-reg.register("instanceName", this::getInstanceName, String.class, 
INSTANCE_NAME_DESC);
-
-reg.register("currentCoordinatorFormatted", 
this::getCurrentCoordinatorFormatted, String.class,
+reg.register("uptimeFormatted", this::upTimeFormatted, String.class, 
UPTIME_FORMATTED_DESC);
+reg.register("startTimestamp", this::startTimestamp, 
START_TIMESTAMP_DESC);
+reg.register("uptime", this::upTime, UPTIME_DESC);
+reg.register("osInformation", this::osInformation, String.class, 
OS_INFO_DESC);
+reg.register("jdkInformation", this::jdkInformation, String.class, 
JDK_INFO_DESC);
+reg.register("osUser", this::osUser, String.class, OS_USER_DESC);
+reg.register("vmName", this::vmName, String.class, VM_NAME_DESC);
+reg.register("instanceName", this::name, String.class, 
INSTANCE_NAME_DESC);
 
 Review comment:
   > `name` -> `instanceName`
   
   We should not change public api Ignite.name(). And I don't like adding one 
more function for the same. Makes sense?


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] Vladsz83 commented on a change in pull request #7531: IGNITE-12779 : Split implementations of Ignite and IgniteMXBean, make behavior of their active(boolean) different

2020-03-17 Thread GitBox
Vladsz83 commented on a change in pull request #7531: IGNITE-12779 : Split 
implementations of Ignite and IgniteMXBean, make behavior of their 
active(boolean) different 
URL: https://github.com/apache/ignite/pull/7531#discussion_r393663488
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
 ##
 @@ -4618,32 +4357,32 @@ private void registerMetrics() {
 
 MetricRegistry reg = 
ctx.metric().registry(GridMetricManager.IGNITE_METRICS);
 
-reg.register("fullVersion", this::getFullVersion, String.class, 
FULL_VER_DESC);
-reg.register("copyright", this::getCopyright, String.class, 
COPYRIGHT_DESC);
+reg.register("fullVersion", this::fullVersion, String.class, 
FULL_VER_DESC);
+reg.register("copyright", () -> COPYRIGHT, String.class, 
COPYRIGHT_DESC);
 
-reg.register("startTimestampFormatted", 
this::getStartTimestampFormatted, String.class,
+reg.register("startTimestampFormatted", this::startTimeFormatted, 
String.class,
 START_TIMESTAMP_FORMATTED_DESC);
 
 reg.register("isRebalanceEnabled", this::isRebalanceEnabled, 
IS_REBALANCE_ENABLED_DESC);
-reg.register("uptimeFormatted", this::getUpTimeFormatted, 
String.class, UPTIME_FORMATTED_DESC);
-reg.register("startTimestamp", this::getStartTimestamp, 
START_TIMESTAMP_DESC);
-reg.register("uptime", this::getUpTime, UPTIME_DESC);
-reg.register("osInformation", this::getOsInformation, String.class, 
OS_INFO_DESC);
-reg.register("jdkInformation", this::getJdkInformation, String.class, 
JDK_INFO_DESC);
-reg.register("osUser", this::getOsUser, String.class, OS_USER_DESC);
-reg.register("vmName", this::getVmName, String.class, VM_NAME_DESC);
-reg.register("instanceName", this::getInstanceName, String.class, 
INSTANCE_NAME_DESC);
-
-reg.register("currentCoordinatorFormatted", 
this::getCurrentCoordinatorFormatted, String.class,
+reg.register("uptimeFormatted", this::upTimeFormatted, String.class, 
UPTIME_FORMATTED_DESC);
+reg.register("startTimestamp", this::startTimestamp, 
START_TIMESTAMP_DESC);
+reg.register("uptime", this::upTime, UPTIME_DESC);
+reg.register("osInformation", this::osInformation, String.class, 
OS_INFO_DESC);
+reg.register("jdkInformation", this::jdkInformation, String.class, 
JDK_INFO_DESC);
+reg.register("osUser", this::osUser, String.class, OS_USER_DESC);
+reg.register("vmName", this::vmName, String.class, VM_NAME_DESC);
+reg.register("instanceName", this::name, String.class, 
INSTANCE_NAME_DESC);
 
 Review comment:
   > `name` -> `instanceName`
   
   We shoulkd not change public api Ignite.name(). And I don't like adding one 
more function for the same. Makes sense?


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] NSAmelchev commented on a change in pull request #7531: IGNITE-12779 : Split implementations of Ignite and IgniteMXBean, make behavior of their active(boolean) different

2020-03-17 Thread GitBox
NSAmelchev commented on a change in pull request #7531: IGNITE-12779 : Split 
implementations of Ignite and IgniteMXBean, make behavior of their 
active(boolean) different 
URL: https://github.com/apache/ignite/pull/7531#discussion_r393663034
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/IgniteMXBeanImpl.java
 ##
 @@ -0,0 +1,341 @@
+package org.apache.ignite.internal;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import javax.management.JMException;
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.IgniteException;
+import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.cluster.ClusterNode;
+import org.apache.ignite.cluster.ClusterState;
+import org.apache.ignite.internal.util.typedef.internal.A;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.mxbean.IgniteMXBean;
+
+import static org.apache.ignite.cluster.ClusterState.ACTIVE;
+import static org.apache.ignite.cluster.ClusterState.INACTIVE;
+import static org.apache.ignite.internal.IgniteVersionUtils.COPYRIGHT;
+
+/** Implementation of Ignite mxBean. */
+public class IgniteMXBeanImpl implements IgniteMXBean {
+/** Ignite core to work with. */
+private final IgniteKernal kernal;
+
+/** Logger, same as for IgniteKernal. */
+private final IgniteLogger log;
+
+/**
+ * @param kernal Ignite kernel to work with.
+ */
+public IgniteMXBeanImpl(IgniteKernal kernal) {
+this.kernal = kernal;
+
+this.log = kernal.context().log(IgniteKernal.class);
+}
+
+/** {@inheritDoc} */
+@Override public boolean active() {
+kernal.context().gateway().readLock();
+
+try {
+return kernal.context().state().publicApiActiveState(true);
+}
+finally {
+kernal.context().gateway().readUnlock();
+}
+}
+
+/** {@inheritDoc} */
+@Override public void active(boolean active) {
+clusterState(active ? ACTIVE.toString() : INACTIVE.toString(), false);
+}
+
+/** {@inheritDoc} */
+@Override public String getCopyright() {
+return COPYRIGHT;
+}
+
+/** {@inheritDoc} */
+@Override public long getStartTimestamp() {
+return kernal.startTimestamp();
+}
+
+/** {@inheritDoc} */
+@Override public String getStartTimestampFormatted() {
+return kernal.startTimeFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public long getUpTime() {
+return kernal.upTime();
+}
+
+/** {@inheritDoc} */
+@Override public long getLongJVMPausesCount() {
+return kernal.longJVMPausesCount();
+}
+
+/** {@inheritDoc} */
+@Override public long getLongJVMPausesTotalDuration() {
+return kernal.longJVMPausesTotalDuration();
+}
+
+/** {@inheritDoc} */
+@Override public Map getLongJVMPauseLastEvents() {
+return kernal.longJVMPauseLastEvents();
+}
+
+/** {@inheritDoc} */
+@Override public String getUpTimeFormatted() {
+return kernal.upTimeFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getFullVersion() {
+return kernal.fullVersion();
+}
+
+/** {@inheritDoc} */
+@Override public String getCheckpointSpiFormatted() {
+return kernal.checkpointSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getCurrentCoordinatorFormatted() {
+return kernal.currentCoordinatorFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public boolean isNodeInBaseline() {
+   return kernal.nodeInBaseline();
+}
+
+/** {@inheritDoc} */
+@Override public String getCommunicationSpiFormatted() {
+return kernal.communicationSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getDeploymentSpiFormatted() {
+return kernal.deploymentSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getDiscoverySpiFormatted() {
+return kernal.discoverySpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getEventStorageSpiFormatted() {
+return kernal.eventStorageSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getCollisionSpiFormatted() {
+return kernal.collisionSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getFailoverSpiFormatted() {
+return kernal.failoverSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getLoadBalancingSpiFormatted() {
+return kernal.loadBalancingSpiFormatted();
+}
+
+/** {@inheritDoc} */
+@Override public String getOsInformation() {
+return kernal.osInformation();
+}
+
+/** {@inheritDoc} */
+@Override public String getJdkInformation() {
+return kernal.jdkInformation();
+}
+
+/** {@inheritDoc} */
+@Override 

[GitHub] [ignite] Vladsz83 commented on a change in pull request #7531: IGNITE-12779 : Split implementations of Ignite and IgniteMXBean, make behavior of their active(boolean) different

2020-03-17 Thread GitBox
Vladsz83 commented on a change in pull request #7531: IGNITE-12779 : Split 
implementations of Ignite and IgniteMXBean, make behavior of their 
active(boolean) different 
URL: https://github.com/apache/ignite/pull/7531#discussion_r393660377
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
 ##
 @@ -3586,6 +3305,26 @@ private void checkNearCacheStarted(IgniteCacheProxy cache) throws IgniteCh
 "(a cache with the same name without near cache is already 
started)");
 }
 
+/**
+ * This method allows manually remove the checkpoint with given {@code 
key}.
+ *
+ * @param key Checkpoint key.
+ * @return {@code true} if specified checkpoint was indeed removed, {@code 
false}
+ *  otherwise.
+ */
+boolean removeCheckpoint(String key) {
 
 Review comment:
   > I suggest leaving this method only in the bean.
   
   @NSAmelchev, what do you suggest to do with IgniteKernal.checkClusterState() 
?


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] NSAmelchev commented on a change in pull request #7531: IGNITE-12779 : Split implementations of Ignite and IgniteMXBean, make behavior of their active(boolean) different

2020-03-17 Thread GitBox
NSAmelchev commented on a change in pull request #7531: IGNITE-12779 : Split 
implementations of Ignite and IgniteMXBean, make behavior of their 
active(boolean) different 
URL: https://github.com/apache/ignite/pull/7531#discussion_r393649584
 
 

 ##
 File path: modules/core/src/main/java/org/apache/ignite/IgniteCluster.java
 ##
 @@ -455,9 +455,6 @@
 
 /**
  * Changes Ignite grid state to active or inactive.
- * 
 
 Review comment:
   Why this changed?


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] NSAmelchev commented on a change in pull request #7531: IGNITE-12779 : Split implementations of Ignite and IgniteMXBean, make behavior of their active(boolean) different

2020-03-17 Thread GitBox
NSAmelchev commented on a change in pull request #7531: IGNITE-12779 : Split 
implementations of Ignite and IgniteMXBean, make behavior of their 
active(boolean) different 
URL: https://github.com/apache/ignite/pull/7531#discussion_r393646235
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
 ##
 @@ -3586,6 +3305,26 @@ private void checkNearCacheStarted(IgniteCacheProxy cache) throws IgniteCh
 "(a cache with the same name without near cache is already 
started)");
 }
 
+/**
+ * This method allows manually remove the checkpoint with given {@code 
key}.
+ *
+ * @param key Checkpoint key.
+ * @return {@code true} if specified checkpoint was indeed removed, {@code 
false}
+ *  otherwise.
+ */
+boolean removeCheckpoint(String key) {
 
 Review comment:
   I suggest leaving this method only in the bean.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] NSAmelchev commented on a change in pull request #7531: IGNITE-12779 : Split implementations of Ignite and IgniteMXBean, make behavior of their active(boolean) different

2020-03-17 Thread GitBox
NSAmelchev commented on a change in pull request #7531: IGNITE-12779 : Split 
implementations of Ignite and IgniteMXBean, make behavior of their 
active(boolean) different 
URL: https://github.com/apache/ignite/pull/7531#discussion_r393648407
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/managers/IgniteMBeansManager.java
 ##
 @@ -131,7 +132,7 @@ public void registerAllMBeans(
 return;
 
 // Kernal
-registerMBean("Kernal", IgniteKernal.class.getSimpleName(), kernal, 
IgniteMXBean.class);
+registerMBean("Kernal", IgniteKernal.class.getSimpleName(), new 
IgniteMXBeanImpl(kernal), IgniteMXBean.class);
 
 Review comment:
   Create mbean var, please


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] NSAmelchev commented on a change in pull request #7531: IGNITE-12779 : Split implementations of Ignite and IgniteMXBean, make behavior of their active(boolean) different

2020-03-17 Thread GitBox
NSAmelchev commented on a change in pull request #7531: IGNITE-12779 : Split 
implementations of Ignite and IgniteMXBean, make behavior of their 
active(boolean) different 
URL: https://github.com/apache/ignite/pull/7531#discussion_r393646471
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
 ##
 @@ -4618,32 +4357,32 @@ private void registerMetrics() {
 
 MetricRegistry reg = 
ctx.metric().registry(GridMetricManager.IGNITE_METRICS);
 
-reg.register("fullVersion", this::getFullVersion, String.class, 
FULL_VER_DESC);
-reg.register("copyright", this::getCopyright, String.class, 
COPYRIGHT_DESC);
+reg.register("fullVersion", this::fullVersion, String.class, 
FULL_VER_DESC);
+reg.register("copyright", () -> COPYRIGHT, String.class, 
COPYRIGHT_DESC);
 
-reg.register("startTimestampFormatted", 
this::getStartTimestampFormatted, String.class,
+reg.register("startTimestampFormatted", this::startTimeFormatted, 
String.class,
 START_TIMESTAMP_FORMATTED_DESC);
 
 reg.register("isRebalanceEnabled", this::isRebalanceEnabled, 
IS_REBALANCE_ENABLED_DESC);
-reg.register("uptimeFormatted", this::getUpTimeFormatted, 
String.class, UPTIME_FORMATTED_DESC);
-reg.register("startTimestamp", this::getStartTimestamp, 
START_TIMESTAMP_DESC);
-reg.register("uptime", this::getUpTime, UPTIME_DESC);
-reg.register("osInformation", this::getOsInformation, String.class, 
OS_INFO_DESC);
-reg.register("jdkInformation", this::getJdkInformation, String.class, 
JDK_INFO_DESC);
-reg.register("osUser", this::getOsUser, String.class, OS_USER_DESC);
-reg.register("vmName", this::getVmName, String.class, VM_NAME_DESC);
-reg.register("instanceName", this::getInstanceName, String.class, 
INSTANCE_NAME_DESC);
-
-reg.register("currentCoordinatorFormatted", 
this::getCurrentCoordinatorFormatted, String.class,
+reg.register("uptimeFormatted", this::upTimeFormatted, String.class, 
UPTIME_FORMATTED_DESC);
+reg.register("startTimestamp", this::startTimestamp, 
START_TIMESTAMP_DESC);
+reg.register("uptime", this::upTime, UPTIME_DESC);
+reg.register("osInformation", this::osInformation, String.class, 
OS_INFO_DESC);
+reg.register("jdkInformation", this::jdkInformation, String.class, 
JDK_INFO_DESC);
+reg.register("osUser", this::osUser, String.class, OS_USER_DESC);
+reg.register("vmName", this::vmName, String.class, VM_NAME_DESC);
+reg.register("instanceName", this::name, String.class, 
INSTANCE_NAME_DESC);
 
 Review comment:
   `name` -> `instanceName`


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] NSAmelchev commented on a change in pull request #7531: IGNITE-12779 : Split implementations of Ignite and IgniteMXBean, make behavior of their active(boolean) different

2020-03-17 Thread GitBox
NSAmelchev commented on a change in pull request #7531: IGNITE-12779 : Split 
implementations of Ignite and IgniteMXBean, make behavior of their 
active(boolean) different 
URL: https://github.com/apache/ignite/pull/7531#discussion_r393647474
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
 ##
 @@ -4652,53 +4391,353 @@ private void registerMetrics() {
 reg.register("clusterState", this::clusterState, String.class, 
CLUSTER_STATE_DESC);
 reg.register("lastClusterStateChangeTime", 
this::lastClusterStateChangeTime, LAST_CLUSTER_STATE_CHANGE_TIME_DESC);
 
-reg.register("userAttributesFormatted", 
this::getUserAttributesFormatted, List.class,
+reg.register("userAttributesFormatted", this::userAttributesFormatted, 
List.class,
 USER_ATTRS_FORMATTED_DESC);
 
-reg.register("gridLoggerFormatted", this::getGridLoggerFormatted, 
String.class,
+reg.register("gridLoggerFormatted", this::gridLoggerFormatted, 
String.class,
 GRID_LOG_FORMATTED_DESC);
 
-reg.register("executorServiceFormatted", 
this::getExecutorServiceFormatted, String.class,
+reg.register("executorServiceFormatted", 
this::executorServiceFormatted, String.class,
 EXECUTOR_SRVC_FORMATTED_DESC);
 
-reg.register("igniteHome", this::getIgniteHome, String.class, 
IGNITE_HOME_DESC);
+reg.register("igniteHome", this::igniteHome, String.class, 
IGNITE_HOME_DESC);
 
-reg.register("mBeanServerFormatted", this::getMBeanServerFormatted, 
String.class,
+reg.register("mBeanServerFormatted", this::mbeanServerFormatted, 
String.class,
 MBEAN_SERVER_FORMATTED_DESC);
 
 reg.register("localNodeId", this::getLocalNodeId, UUID.class, 
LOC_NODE_ID_DESC);
 
-reg.register("isPeerClassLoadingEnabled", 
this::isPeerClassLoadingEnabled, Boolean.class,
+reg.register("isPeerClassLoadingEnabled", 
this::peerClassLoadingEnabled, Boolean.class,
 IS_PEER_CLS_LOADING_ENABLED_DESC);
 
-reg.register("lifecycleBeansFormatted", 
this::getLifecycleBeansFormatted, List.class,
+reg.register("lifecycleBeansFormatted", this::lifecycleBeansFormatted, 
List.class,
 LIFECYCLE_BEANS_FORMATTED_DESC);
 
-reg.register("discoverySpiFormatted", this::getDiscoverySpiFormatted, 
String.class,
+reg.register("discoverySpiFormatted", this::discoverySpiFormatted, 
String.class,
 DISCOVERY_SPI_FORMATTED_DESC);
 
-reg.register("communicationSpiFormatted", 
this::getCommunicationSpiFormatted, String.class,
+reg.register("communicationSpiFormatted", 
this::communicationSpiFormatted, String.class,
 COMMUNICATION_SPI_FORMATTED_DESC);
 
-reg.register("deploymentSpiFormatted", 
this::getDeploymentSpiFormatted, String.class,
+reg.register("deploymentSpiFormatted", this::deploymentSpiFormatted, 
String.class,
 DEPLOYMENT_SPI_FORMATTED_DESC);
 
-reg.register("checkpointSpiFormatted", 
this::getCheckpointSpiFormatted, String.class,
+reg.register("checkpointSpiFormatted", this::checkpointSpiFormatted, 
String.class,
 CHECKPOINT_SPI_FORMATTED_DESC);
 
-reg.register("collisionSpiFormatted", this::getCollisionSpiFormatted, 
String.class,
+reg.register("collisionSpiFormatted", this::collisionSpiFormatted, 
String.class,
 COLLISION_SPI_FORMATTED_DESC);
 
-reg.register("eventStorageSpiFormatted", 
this::getEventStorageSpiFormatted, String.class,
+reg.register("eventStorageSpiFormatted", 
this::eventStorageSpiFormatted, String.class,
 EVT_STORAGE_SPI_FORMATTED_DESC);
 
-reg.register("failoverSpiFormatted", this::getFailoverSpiFormatted, 
String.class,
+reg.register("failoverSpiFormatted", this::failoverSpiFormatted, 
String.class,
 FAILOVER_SPI_FORMATTED_DESC);
 
-reg.register("loadBalancingSpiFormatted", 
this::getLoadBalancingSpiFormatted, String.class,
+reg.register("loadBalancingSpiFormatted", 
this::loadBalancingSpiFormatted, String.class,
 LOAD_BALANCING_SPI_FORMATTED_DESC);
 }
 
+/**
+ * @return String representation of version of current Ignite instance.
 
 Review comment:
   Can be inlined


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] rkondakov commented on a change in pull request #7520: IGNITE-12632: Support of cancel command for resource-consuming entities.

2020-03-17 Thread GitBox
rkondakov commented on a change in pull request #7520: IGNITE-12632: Support of 
cancel command for resource-consuming entities.
URL: https://github.com/apache/ignite/pull/7520#discussion_r393629901
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorScanQueryCancelTaskArg.java
 ##
 @@ -0,0 +1,101 @@
+/*
+ * 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.visor.query;
+
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.util.UUID;
+import org.apache.ignite.internal.processors.task.GridInternal;
+import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.visor.VisorDataTransferObject;
+
+/**
+ * Arguments of task for cancel SCAN query.
+ */
+@GridInternal
+public class VisorScanQueryCancelTaskArg extends VisorDataTransferObject {
 
 Review comment:
   `VisorDataTransferObject` is deprecated.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] rkondakov commented on a change in pull request #7520: IGNITE-12632: Support of cancel command for resource-consuming entities.

2020-03-17 Thread GitBox
rkondakov commented on a change in pull request #7520: IGNITE-12632: Support of 
cancel command for resource-consuming entities.
URL: https://github.com/apache/ignite/pull/7520#discussion_r393644041
 
 

 ##
 File path: 
modules/indexing/src/test/java/org/apache/ignite/util/KillCommandsCommandShTest.java
 ##
 @@ -0,0 +1,177 @@
+/*
+ * 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.util;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+import org.apache.ignite.IgniteCache;
+import org.apache.ignite.cache.CacheAtomicityMode;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.internal.IgniteEx;
+import org.apache.ignite.lang.IgniteUuid;
+import org.junit.Test;
+
+import static 
org.apache.ignite.internal.commandline.CommandHandler.EXIT_CODE_OK;
+import static 
org.apache.ignite.internal.commandline.CommandHandler.EXIT_CODE_UNEXPECTED_ERROR;
+import static org.apache.ignite.util.KillCommandsTests.PAGE_SZ;
+import static org.apache.ignite.util.KillCommandsTests.doTestCancelComputeTask;
+import static 
org.apache.ignite.util.KillCommandsTests.doTestCancelContinuousQuery;
+import static org.apache.ignite.util.KillCommandsTests.doTestCancelSQLQuery;
+import static org.apache.ignite.util.KillCommandsTests.doTestCancelService;
+import static org.apache.ignite.util.KillCommandsTests.doTestCancelTx;
+import static org.apache.ignite.util.KillCommandsTests.doTestScanQueryCancel;
+
+/** Tests cancel of user created entities via control.sh. */
+public class KillCommandsCommandShTest extends 
GridCommandHandlerClusterByClassAbstractTest {
+/** */
+private static List srvs;
+
+/** {@inheritDoc} */
+@Override protected void beforeTestsStarted() throws Exception {
+super.beforeTestsStarted();
+
+srvs = new ArrayList<>();
+
+for (int i = 0; i < SERVER_NODE_CNT; i++)
+srvs.add(grid(i));
+
+System.out.println("CancelCommandCommandShTest.beforeTestsStarted");
 
 Review comment:
   Debugging artifact?


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] rkondakov commented on a change in pull request #7520: IGNITE-12632: Support of cancel command for resource-consuming entities.

2020-03-17 Thread GitBox
rkondakov commented on a change in pull request #7520: IGNITE-12632: Support of 
cancel command for resource-consuming entities.
URL: https://github.com/apache/ignite/pull/7520#discussion_r393635791
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/QueryMXBeanImpl.java
 ##
 @@ -0,0 +1,168 @@
+/*
+ * 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;
+
+import java.util.UUID;
+import org.apache.ignite.IgniteCompute;
+import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.cluster.ClusterNode;
+import org.apache.ignite.internal.cluster.IgniteClusterImpl;
+import org.apache.ignite.internal.util.typedef.T2;
+import org.apache.ignite.internal.util.typedef.internal.A;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.visor.VisorTaskArgument;
+import org.apache.ignite.internal.visor.query.VisorContinuousQueryCancelTask;
+import 
org.apache.ignite.internal.visor.query.VisorContinuousQueryCancelTaskArg;
+import org.apache.ignite.internal.visor.query.VisorQueryCancelTask;
+import org.apache.ignite.internal.visor.query.VisorQueryCancelTaskArg;
+import org.apache.ignite.internal.visor.query.VisorScanQueryCancelTask;
+import org.apache.ignite.internal.visor.query.VisorScanQueryCancelTaskArg;
+import org.apache.ignite.mxbean.QueryMXBean;
+
+import static 
org.apache.ignite.internal.sql.command.SqlKillQueryCommand.parseGlobalQueryId;
+
+/**
+ * QueryMXBean implementation.
+ */
+public class QueryMXBeanImpl implements QueryMXBean {
+/** */
+public static final String EXPECTED_GLOBAL_QRY_ID_FORMAT = "Global query 
id should have format " +
+"'{node_id}_{query_id}', e.g. 
'6fa749ee-7cf8-4635-be10-36a1c75267a7_54321'";
+
+/** */
+private final GridKernalContext ctx;
+
+/** */
+private final IgniteLogger log;
+
+/**
+ * @param ctx Context.
+ */
+public QueryMXBeanImpl(GridKernalContext ctx) {
+this.ctx = ctx;
+this.log = ctx.log(QueryMXBeanImpl.class);
+}
+
+/** {@inheritDoc} */
+@Override public void cancelContinuous(String routineId) {
+A.notNull(routineId, "routineId");
+
+cancelContinuous(UUID.fromString(routineId));
+}
+
+/** {@inheritDoc} */
+@Override public void cancelSQL(String id) {
+A.notNull(id, "id");
+
+if (log.isInfoEnabled())
+log.info("Killing sql query[id=" + id + ']');
+
+boolean res;
+
+try {
+IgniteClusterImpl cluster = ctx.cluster().get();
+
+T2 ids = parseGlobalQueryId(id);
+
+if (ids == null)
+throw new IllegalArgumentException("Expected global query id. 
" + EXPECTED_GLOBAL_QRY_ID_FORMAT);
+
+res = cluster.compute().execute(new VisorQueryCancelTask(),
+new VisorTaskArgument<>(ids.get1(), new 
VisorQueryCancelTaskArg(ids.get1(), ids.get2()), false));
+}
+catch (Exception e) {
+throw new RuntimeException(e);
+}
+
+if (!res)
+throw new RuntimeException("Query not found[id=" + id + ']');
+}
+
+/** {@inheritDoc} */
+@Override public void cancelScan(String originNodeId, String cacheName, 
Long id) {
+A.notNullOrEmpty(originNodeId, "originNodeId");
+A.notNullOrEmpty(cacheName, "cacheName");
+A.notNull(id, "id");
+
+if (log.isInfoEnabled())
+log.info("Killing scan query[id=" + id + ",originNodeId=" + 
originNodeId + ']');
+
+cancelScan(UUID.fromString(originNodeId), cacheName, id);
+}
+
+/**
+ * Kills scan query by the identifiers.
+ *
+ * @param originNodeId Originating node id.
+ * @param cacheName Cache name.
+ * @param id Scan query id.
+ */
+public void cancelScan(UUID originNodeId, String cacheName, long id) {
+boolean res;
+
+try {
+IgniteClusterImpl cluster = ctx.cluster().get();
+
+ClusterNode srv = U.randomServerNode(ctx);
+
+IgniteCompute compute = cluster.compute();
+
+res = compute.execute(new VisorScanQueryCancelTask(),
+new VisorTaskArgument<>(srv.id(),
+   

[GitHub] [ignite] rkondakov commented on a change in pull request #7520: IGNITE-12632: Support of cancel command for resource-consuming entities.

2020-03-17 Thread GitBox
rkondakov commented on a change in pull request #7520: IGNITE-12632: Support of 
cancel command for resource-consuming entities.
URL: https://github.com/apache/ignite/pull/7520#discussion_r393641141
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/QueryMXBeanImpl.java
 ##
 @@ -0,0 +1,168 @@
+/*
+ * 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;
+
+import java.util.UUID;
+import org.apache.ignite.IgniteCompute;
+import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.cluster.ClusterNode;
+import org.apache.ignite.internal.cluster.IgniteClusterImpl;
+import org.apache.ignite.internal.util.typedef.T2;
+import org.apache.ignite.internal.util.typedef.internal.A;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.visor.VisorTaskArgument;
+import org.apache.ignite.internal.visor.query.VisorContinuousQueryCancelTask;
+import 
org.apache.ignite.internal.visor.query.VisorContinuousQueryCancelTaskArg;
+import org.apache.ignite.internal.visor.query.VisorQueryCancelTask;
+import org.apache.ignite.internal.visor.query.VisorQueryCancelTaskArg;
+import org.apache.ignite.internal.visor.query.VisorScanQueryCancelTask;
+import org.apache.ignite.internal.visor.query.VisorScanQueryCancelTaskArg;
+import org.apache.ignite.mxbean.QueryMXBean;
+
+import static 
org.apache.ignite.internal.sql.command.SqlKillQueryCommand.parseGlobalQueryId;
+
+/**
+ * QueryMXBean implementation.
+ */
+public class QueryMXBeanImpl implements QueryMXBean {
+/** */
+public static final String EXPECTED_GLOBAL_QRY_ID_FORMAT = "Global query 
id should have format " +
+"'{node_id}_{query_id}', e.g. 
'6fa749ee-7cf8-4635-be10-36a1c75267a7_54321'";
+
+/** */
+private final GridKernalContext ctx;
+
+/** */
+private final IgniteLogger log;
+
+/**
+ * @param ctx Context.
+ */
+public QueryMXBeanImpl(GridKernalContext ctx) {
+this.ctx = ctx;
+this.log = ctx.log(QueryMXBeanImpl.class);
+}
+
+/** {@inheritDoc} */
+@Override public void cancelContinuous(String routineId) {
+A.notNull(routineId, "routineId");
+
+cancelContinuous(UUID.fromString(routineId));
+}
+
+/** {@inheritDoc} */
+@Override public void cancelSQL(String id) {
+A.notNull(id, "id");
+
+if (log.isInfoEnabled())
+log.info("Killing sql query[id=" + id + ']');
+
+boolean res;
+
+try {
+IgniteClusterImpl cluster = ctx.cluster().get();
+
+T2 ids = parseGlobalQueryId(id);
+
+if (ids == null)
+throw new IllegalArgumentException("Expected global query id. 
" + EXPECTED_GLOBAL_QRY_ID_FORMAT);
+
+res = cluster.compute().execute(new VisorQueryCancelTask(),
+new VisorTaskArgument<>(ids.get1(), new 
VisorQueryCancelTaskArg(ids.get1(), ids.get2()), false));
+}
+catch (Exception e) {
+throw new RuntimeException(e);
+}
+
+if (!res)
+throw new RuntimeException("Query not found[id=" + id + ']');
+}
+
+/** {@inheritDoc} */
+@Override public void cancelScan(String originNodeId, String cacheName, 
Long id) {
+A.notNullOrEmpty(originNodeId, "originNodeId");
+A.notNullOrEmpty(cacheName, "cacheName");
+A.notNull(id, "id");
+
+if (log.isInfoEnabled())
+log.info("Killing scan query[id=" + id + ",originNodeId=" + 
originNodeId + ']');
+
+cancelScan(UUID.fromString(originNodeId), cacheName, id);
+}
+
+/**
+ * Kills scan query by the identifiers.
+ *
+ * @param originNodeId Originating node id.
+ * @param cacheName Cache name.
+ * @param id Scan query id.
+ */
+public void cancelScan(UUID originNodeId, String cacheName, long id) {
+boolean res;
+
+try {
+IgniteClusterImpl cluster = ctx.cluster().get();
+
+ClusterNode srv = U.randomServerNode(ctx);
 
 Review comment:
   Why do we use random node here? IMO we need to send task to the origin node 
and run `GridCacheDistributedQueryFuture#cancelQuery` there.


[GitHub] [ignite] rkondakov commented on a change in pull request #7520: IGNITE-12632: Support of cancel command for resource-consuming entities.

2020-03-17 Thread GitBox
rkondakov commented on a change in pull request #7520: IGNITE-12632: Support of 
cancel command for resource-consuming entities.
URL: https://github.com/apache/ignite/pull/7520#discussion_r393631424
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/visor/service/VisorCancelServiceTask.java
 ##
 @@ -56,12 +60,30 @@ protected VisorCancelServiceJob(VisorCancelServiceTaskArg 
arg, boolean debug) {
 }
 
 /** {@inheritDoc} */
-@Override protected Void run(final VisorCancelServiceTaskArg arg) {
+@Override protected Boolean run(final VisorCancelServiceTaskArg arg) {
 IgniteServices services = ignite.services();
 
-services.cancel(arg.getName());
+String svcName = arg.getName();
 
-return null;
+Optional svc = 
services.serviceDescriptors().stream()
+.filter(d -> d.name().equalsIgnoreCase(svcName))
+.findFirst();
+
+if (!svc.isPresent())
+return false;
+
+try {
+services.cancel(svcName);
+}
+catch (IgniteException e) {
+IgniteLogger log = 
ignite.log().getLogger(VisorCancelServiceTask.class);
+
+log.warning("Error on service cance.", e);
 
 Review comment:
   Typo


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] rkondakov commented on a change in pull request #7520: IGNITE-12632: Support of cancel command for resource-consuming entities.

2020-03-17 Thread GitBox
rkondakov commented on a change in pull request #7520: IGNITE-12632: Support of 
cancel command for resource-consuming entities.
URL: https://github.com/apache/ignite/pull/7520#discussion_r393630294
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorQueryCancelTask.java
 ##
 @@ -17,22 +17,25 @@
 
 package org.apache.ignite.internal.visor.query;
 
+import java.util.Collection;
 
 Review comment:
   Imports


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] rkondakov commented on a change in pull request #7520: IGNITE-12632: Support of cancel command for resource-consuming entities.

2020-03-17 Thread GitBox
rkondakov commented on a change in pull request #7520: IGNITE-12632: Support of 
cancel command for resource-consuming entities.
URL: https://github.com/apache/ignite/pull/7520#discussion_r393642792
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/ServiceMXBeanImpl.java
 ##
 @@ -0,0 +1,76 @@
+/*
+ * 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;
+
+import java.util.UUID;
+import org.apache.ignite.IgniteCompute;
+import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.cluster.ClusterNode;
+import org.apache.ignite.internal.cluster.IgniteClusterImpl;
+import org.apache.ignite.internal.util.typedef.internal.A;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.visor.VisorTaskArgument;
+import org.apache.ignite.internal.visor.service.VisorCancelServiceTask;
+import org.apache.ignite.internal.visor.service.VisorCancelServiceTaskArg;
+import org.apache.ignite.mxbean.ServiceMXBean;
+
+/**
+ * ServiceMXBean implementation.
+ */
+public class ServiceMXBeanImpl implements ServiceMXBean {
+/** */
+private final GridKernalContext ctx;
+
+/** */
+private final IgniteLogger log;
+
+/**
+ * @param ctx Context.
+ */
+public ServiceMXBeanImpl(GridKernalContext ctx) {
+this.ctx = ctx;
+this.log = ctx.log(ServiceMXBeanImpl.class);
+}
+
+/** {@inheritDoc} */
+@Override public void cancel(String name) {
+A.notNull(name, "name");
+
+if (log.isInfoEnabled())
+log.info("Canceling service[name=" + name + ']');
+
+boolean res;
+
+try {
+IgniteClusterImpl cluster = ctx.cluster().get();
+
+IgniteCompute compute = cluster.compute();
+
+ClusterNode srv = U.randomServerNode(ctx);
+
+res = compute.execute(new VisorCancelServiceTask(),
 
 Review comment:
   Why can't we run this task from the current node?


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] rkondakov commented on a change in pull request #7520: IGNITE-12632: Support of cancel command for resource-consuming entities.

2020-03-17 Thread GitBox
rkondakov commented on a change in pull request #7520: IGNITE-12632: Support of 
cancel command for resource-consuming entities.
URL: https://github.com/apache/ignite/pull/7520#discussion_r393629975
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorContinuousQueryCancelTaskArg.java
 ##
 @@ -0,0 +1,75 @@
+/*
+ * 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.visor.query;
+
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.util.UUID;
+import org.apache.ignite.internal.processors.task.GridInternal;
+import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.visor.VisorDataTransferObject;
+
+/**
+ * Arguments of task for cancel CONTINUOUS query.
+ */
+@GridInternal
+public class VisorContinuousQueryCancelTaskArg extends VisorDataTransferObject 
{
 
 Review comment:
   `VisorDataTransferObject` is deprecated.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] rkondakov commented on a change in pull request #7520: IGNITE-12632: Support of cancel command for resource-consuming entities.

2020-03-17 Thread GitBox
rkondakov commented on a change in pull request #7520: IGNITE-12632: Support of 
cancel command for resource-consuming entities.
URL: https://github.com/apache/ignite/pull/7520#discussion_r393628835
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
 ##
 @@ -1962,6 +1962,21 @@ public String cacheName() {
 return cacheName;
 }
 
+/**
+ * Cancel scan query.
+ *
+ * @param origNodeId Originating node id.
+ * @param qryId Query id.
+ */
+public boolean cancelScanQuery(UUID origNodeId, long qryId) {
 
 Review comment:
   `GridCacheQueryManager#removeQueryResult`?


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] rkondakov commented on a change in pull request #7520: IGNITE-12632: Support of cancel command for resource-consuming entities.

2020-03-17 Thread GitBox
rkondakov commented on a change in pull request #7520: IGNITE-12632: Support of 
cancel command for resource-consuming entities.
URL: https://github.com/apache/ignite/pull/7520#discussion_r393618739
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/StopRoutineDiscoveryMessage.java
 ##
 @@ -29,11 +29,24 @@
 /** */
 private static final long serialVersionUID = 0L;
 
+/** {@code True} if stop should be forced. */
+private boolean force;
 
 Review comment:
   Could you explain the reason behind this flag? Why can't we cancel CQ 
without it?


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] rkondakov commented on a change in pull request #7520: IGNITE-12632: Support of cancel command for resource-consuming entities.

2020-03-17 Thread GitBox
rkondakov commented on a change in pull request #7520: IGNITE-12632: Support of 
cancel command for resource-consuming entities.
URL: https://github.com/apache/ignite/pull/7520#discussion_r393629199
 
 

 ##
 File path: 
modules/core/src/main/java/org/apache/ignite/internal/visor/query/VisorContinuousQueryCancelTask.java
 ##
 @@ -0,0 +1,79 @@
+/*
+ * 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.visor.query;
+
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.IgniteException;
+import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.internal.IgniteInternalFuture;
+import org.apache.ignite.internal.processors.task.GridInternal;
+import org.apache.ignite.internal.processors.task.GridVisorManagementTask;
+import org.apache.ignite.internal.visor.VisorJob;
+import org.apache.ignite.internal.visor.VisorOneNodeTask;
+import org.jetbrains.annotations.Nullable;
+
+/**
+ * Task to cancel continuous query.
+ */
+@GridInternal
+@GridVisorManagementTask
+public class VisorContinuousQueryCancelTask extends 
VisorOneNodeTask {
+/** */
+private static final long serialVersionUID = 0L;
+
+/** {@inheritDoc} */
+@Override protected VisorContinuousQueryCancelJob 
job(VisorContinuousQueryCancelTaskArg arg) {
+return new VisorContinuousQueryCancelJob(arg, debug);
+}
+
+/**
+ * Job to cancel scan queries on node.
+ */
+private static class VisorContinuousQueryCancelJob extends 
VisorJob {
+/** */
+private static final long serialVersionUID = 0L;
+
+/**
+ * Create job with specified argument.
+ *
+ * @param arg Job argument.
+ * @param debug Flag indicating whether debug information should be 
printed into node log.
+ */
+protected VisorContinuousQueryCancelJob(@Nullable 
VisorContinuousQueryCancelTaskArg arg, boolean debug) {
+super(arg, debug);
+}
+
+/** {@inheritDoc} */
+@Override protected Boolean run(@Nullable 
VisorContinuousQueryCancelTaskArg arg) throws IgniteException {
+IgniteLogger log = 
ignite.log().getLogger(VisorContinuousQueryCancelJob.class);
+
+log.info("Cancelling continuous query[routineId=" + 
arg.getRoutineId() + ']');
 
 Review comment:
   `if (log.isInfoEnabled())`?


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] gvvinblade opened a new pull request #7540: IGNITE-12792: Calcite integration. Update Calcite version to 1.22.0

2020-03-17 Thread GitBox
gvvinblade opened a new pull request #7540: IGNITE-12792: Calcite integration. 
Update Calcite version to 1.22.0
URL: https://github.com/apache/ignite/pull/7540
 
 
   


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] Aleksei-Litsov commented on a change in pull request #7521: IGNITE-8152 Forbid empty sql schema name

2020-03-17 Thread GitBox
Aleksei-Litsov commented on a change in pull request #7521: IGNITE-8152 Forbid 
empty sql schema name
URL: https://github.com/apache/ignite/pull/7521#discussion_r393525524
 
 

 ##
 File path: 
modules/indexing/src/test/java/org/apache/ignite/sqltests/BaseSqlTest.java
 ##
 @@ -1249,6 +1255,36 @@ public void 
testFullOuterDistributedJoinIsNotSupported() {
 });
 }
 
+/**
+ * Check schema for validation
+ */
+
+@Rule
+public ExpectedException expectedEx = ExpectedException.none();
+
+@Test
+public void testCheckEmptySchema() {
+
+expectedEx.expect(IgniteSQLException.class);
+expectedEx.expectMessage("Failed to set schema for DB connection. " +
+"Schema name could not be an empty string"
+);
+
+String sqlQuery = "SELECT * FROM Employee limit 1";
+
+testAllNodes(node -> {
+executeFrom(sqlQuery, node, "");
+executeFrom(sqlQuery, node, " ");
+assertTrue("Check valid schema",
+executeFrom(sqlQuery, node, 
"PUBLIC").values().stream().count() > 0
+);
+assertTrue("Check null schema",
+executeFrom(sqlQuery, node, 
null).values().stream().count() > 0
+);
+});
+
 
 Review comment:
   fixed


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] Aleksei-Litsov commented on a change in pull request #7521: IGNITE-8152 Forbid empty sql schema name

2020-03-17 Thread GitBox
Aleksei-Litsov commented on a change in pull request #7521: IGNITE-8152 Forbid 
empty sql schema name
URL: https://github.com/apache/ignite/pull/7521#discussion_r393525435
 
 

 ##
 File path: 
modules/indexing/src/test/java/org/apache/ignite/sqltests/BaseSqlTest.java
 ##
 @@ -1249,6 +1255,36 @@ public void 
testFullOuterDistributedJoinIsNotSupported() {
 });
 }
 
+/**
+ * Check schema for validation
+ */
+
+@Rule
+public ExpectedException expectedEx = ExpectedException.none();
+
+@Test
 
 Review comment:
   fixed


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] Aleksei-Litsov commented on a change in pull request #7521: IGNITE-8152 Forbid empty sql schema name

2020-03-17 Thread GitBox
Aleksei-Litsov commented on a change in pull request #7521: IGNITE-8152 Forbid 
empty sql schema name
URL: https://github.com/apache/ignite/pull/7521#discussion_r393525477
 
 

 ##
 File path: 
modules/indexing/src/test/java/org/apache/ignite/sqltests/BaseSqlTest.java
 ##
 @@ -1249,6 +1255,36 @@ public void 
testFullOuterDistributedJoinIsNotSupported() {
 });
 }
 
+/**
+ * Check schema for validation
+ */
+
+@Rule
+public ExpectedException expectedEx = ExpectedException.none();
+
+@Test
+public void testCheckEmptySchema() {
+
 
 Review comment:
   fixed


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] Aleksei-Litsov commented on issue #7521: IGNITE-8152 Forbid empty sql schema name

2020-03-17 Thread GitBox
Aleksei-Litsov commented on issue #7521: IGNITE-8152 Forbid empty sql schema 
name
URL: https://github.com/apache/ignite/pull/7521#issuecomment-599953087
 
 
   PR (Forbid empty sql schema name) from aleksei_lit...@epam.com


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] Aleksei-Litsov commented on a change in pull request #7521: IGNITE-8152 Forbid empty sql schema name

2020-03-17 Thread GitBox
Aleksei-Litsov commented on a change in pull request #7521: IGNITE-8152 Forbid 
empty sql schema name
URL: https://github.com/apache/ignite/pull/7521#discussion_r393525310
 
 

 ##
 File path: 
modules/indexing/src/test/java/org/apache/ignite/sqltests/BaseSqlTest.java
 ##
 @@ -351,6 +353,10 @@ protected Result executeFrom(String qry, Ignite node) {
 return executeFrom(new SqlFieldsQuery(qry), node);
 }
 
+protected Result executeFrom(String qry, Ignite node, String schema) {
 
 Review comment:
   fixed


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] Aleksei-Litsov commented on a change in pull request #7521: IGNITE-8152 Forbid empty sql schema name

2020-03-17 Thread GitBox
Aleksei-Litsov commented on a change in pull request #7521: IGNITE-8152 Forbid 
empty sql schema name
URL: https://github.com/apache/ignite/pull/7521#discussion_r393525349
 
 

 ##
 File path: 
modules/indexing/src/test/java/org/apache/ignite/sqltests/BaseSqlTest.java
 ##
 @@ -1249,6 +1255,36 @@ public void 
testFullOuterDistributedJoinIsNotSupported() {
 });
 }
 
+/**
+ * Check schema for validation
+ */
+
 
 Review comment:
   fixed


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] Aleksei-Litsov commented on a change in pull request #7521: IGNITE-8152 Forbid empty sql schema name

2020-03-17 Thread GitBox
Aleksei-Litsov commented on a change in pull request #7521: IGNITE-8152 Forbid 
empty sql schema name
URL: https://github.com/apache/ignite/pull/7521#discussion_r393525238
 
 

 ##
 File path: 
modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2ConnectionWrapper.java
 ##
 @@ -73,6 +73,11 @@ public void schema(@Nullable String schema) {
 public Connection connection(@Nullable String schema) {
 if (schema != null && !F.eq(this.schema, schema)) {
 try {
+
+if(schema != null && schema.trim().isEmpty()){
 
 Review comment:
   fixed


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] AMashenkov commented on a change in pull request #7521: IGNITE-8152 Forbid empty sql schema name

2020-03-17 Thread GitBox
AMashenkov commented on a change in pull request #7521: IGNITE-8152 Forbid 
empty sql schema name
URL: https://github.com/apache/ignite/pull/7521#discussion_r393490013
 
 

 ##
 File path: 
modules/indexing/src/test/java/org/apache/ignite/sqltests/BaseSqlTest.java
 ##
 @@ -1249,6 +1255,36 @@ public void 
testFullOuterDistributedJoinIsNotSupported() {
 });
 }
 
+/**
+ * Check schema for validation
+ */
+
+@Rule
+public ExpectedException expectedEx = ExpectedException.none();
+
+@Test
+public void testCheckEmptySchema() {
+
+expectedEx.expect(IgniteSQLException.class);
+expectedEx.expectMessage("Failed to set schema for DB connection. " +
+"Schema name could not be an empty string"
+);
+
+String sqlQuery = "SELECT * FROM Employee limit 1";
+
+testAllNodes(node -> {
+executeFrom(sqlQuery, node, "");
+executeFrom(sqlQuery, node, " ");
+assertTrue("Check valid schema",
+executeFrom(sqlQuery, node, 
"PUBLIC").values().stream().count() > 0
+);
+assertTrue("Check null schema",
+executeFrom(sqlQuery, node, 
null).values().stream().count() > 0
+);
+});
+
 
 Review comment:
   Empty line.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] AMashenkov commented on a change in pull request #7521: IGNITE-8152 Forbid empty sql schema name

2020-03-17 Thread GitBox
AMashenkov commented on a change in pull request #7521: IGNITE-8152 Forbid 
empty sql schema name
URL: https://github.com/apache/ignite/pull/7521#discussion_r393489550
 
 

 ##
 File path: 
modules/indexing/src/test/java/org/apache/ignite/sqltests/BaseSqlTest.java
 ##
 @@ -1249,6 +1255,36 @@ public void 
testFullOuterDistributedJoinIsNotSupported() {
 });
 }
 
+/**
+ * Check schema for validation
+ */
+
 
 Review comment:
   Redundant empty line


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] AMashenkov commented on a change in pull request #7521: IGNITE-8152 Forbid empty sql schema name

2020-03-17 Thread GitBox
AMashenkov commented on a change in pull request #7521: IGNITE-8152 Forbid 
empty sql schema name
URL: https://github.com/apache/ignite/pull/7521#discussion_r393489785
 
 

 ##
 File path: 
modules/indexing/src/test/java/org/apache/ignite/sqltests/BaseSqlTest.java
 ##
 @@ -1249,6 +1255,36 @@ public void 
testFullOuterDistributedJoinIsNotSupported() {
 });
 }
 
+/**
+ * Check schema for validation
+ */
+
+@Rule
+public ExpectedException expectedEx = ExpectedException.none();
+
+@Test
+public void testCheckEmptySchema() {
+
 
 Review comment:
   Empty line


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] AMashenkov commented on a change in pull request #7521: IGNITE-8152 Forbid empty sql schema name

2020-03-17 Thread GitBox
AMashenkov commented on a change in pull request #7521: IGNITE-8152 Forbid 
empty sql schema name
URL: https://github.com/apache/ignite/pull/7521#discussion_r393489703
 
 

 ##
 File path: 
modules/indexing/src/test/java/org/apache/ignite/sqltests/BaseSqlTest.java
 ##
 @@ -1249,6 +1255,36 @@ public void 
testFullOuterDistributedJoinIsNotSupported() {
 });
 }
 
+/**
+ * Check schema for validation
+ */
+
+@Rule
+public ExpectedException expectedEx = ExpectedException.none();
+
+@Test
 
 Review comment:
   Missed javadoc


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] AMashenkov commented on a change in pull request #7521: IGNITE-8152 Forbid empty sql schema name

2020-03-17 Thread GitBox
AMashenkov commented on a change in pull request #7521: IGNITE-8152 Forbid 
empty sql schema name
URL: https://github.com/apache/ignite/pull/7521#discussion_r393489438
 
 

 ##
 File path: 
modules/indexing/src/test/java/org/apache/ignite/sqltests/BaseSqlTest.java
 ##
 @@ -351,6 +353,10 @@ protected Result executeFrom(String qry, Ignite node) {
 return executeFrom(new SqlFieldsQuery(qry), node);
 }
 
+protected Result executeFrom(String qry, Ignite node, String schema) {
 
 Review comment:
   Missed javadoc


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [ignite] joooger commented on a change in pull request #7521: IGNITE-8152 Forbid empty sql schema name

2020-03-17 Thread GitBox
joooger commented on a change in pull request #7521: IGNITE-8152 Forbid empty 
sql schema name
URL: https://github.com/apache/ignite/pull/7521#discussion_r393480934
 
 

 ##
 File path: 
modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2ConnectionWrapper.java
 ##
 @@ -73,6 +73,11 @@ public void schema(@Nullable String schema) {
 public Connection connection(@Nullable String schema) {
 if (schema != null && !F.eq(this.schema, schema)) {
 try {
+
+if(schema != null && schema.trim().isEmpty()){
 
 Review comment:
   here `schema` is always not null


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services