[GitHub] [ignite] Mmuzaf commented on a change in pull request #6554: IGNITE-11073: Backup page store manager, initial
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
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
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
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
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
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…
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
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
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
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
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.
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
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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