This is an automated email from the ASF dual-hosted git repository.
namelchev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/master by this push:
new fd74772c3f1 IGNITE-19766 Added topology snapshot info to services
system view (#10783)
fd74772c3f1 is described below
commit fd74772c3f19634f94c73c4cf1cf88083ed85dcb
Author: Nikita Amelchev <[email protected]>
AuthorDate: Thu Jun 22 15:01:09 2023 +0300
IGNITE-19766 Added topology snapshot info to services system view (#10783)
---
.../org/apache/ignite/jdbc/thin/JdbcThinMetadataSelfTest.java | 1 +
.../test/java/org/apache/ignite/util/SystemViewCommandTest.java | 1 +
.../ignite/internal/managers/systemview/SystemViewMBean.java | 3 ++-
.../internal/managers/systemview/walker/ServiceViewWalker.java | 5 ++++-
.../apache/ignite/internal/processors/service/ServiceInfo.java | 1 -
.../java/org/apache/ignite/spi/systemview/view/ServiceView.java | 9 +++++++++
.../org/apache/ignite/internal/metric/JmxExporterSpiTest.java | 1 +
.../org/apache/ignite/internal/metric/SystemViewSelfTest.java | 4 ++--
.../internal/processors/cache/metric/SqlViewExporterSpiTest.java | 4 +++-
9 files changed, 23 insertions(+), 6 deletions(-)
diff --git
a/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinMetadataSelfTest.java
b/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinMetadataSelfTest.java
index e8df4956a40..22b07cf579a 100644
---
a/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinMetadataSelfTest.java
+++
b/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinMetadataSelfTest.java
@@ -895,6 +895,7 @@ public class JdbcThinMetadataSelfTest extends
JdbcThinAbstractSelfTest {
"SYS.SERVICES.NODE_FILTER.null",
"SYS.SERVICES.STATICALLY_CONFIGURED.null",
"SYS.SERVICES.SERVICE_ID.null",
+ "SYS.SERVICES.TOPOLOGY_SNAPSHOT.null",
"SYS.TASKS.AFFINITY_CACHE_NAME.null",
"SYS.TASKS.INTERNAL.null",
"SYS.TASKS.END_TIME.null",
diff --git
a/modules/control-utility/src/test/java/org/apache/ignite/util/SystemViewCommandTest.java
b/modules/control-utility/src/test/java/org/apache/ignite/util/SystemViewCommandTest.java
index 3561f7a5547..a35389c4cb7 100644
---
a/modules/control-utility/src/test/java/org/apache/ignite/util/SystemViewCommandTest.java
+++
b/modules/control-utility/src/test/java/org/apache/ignite/util/SystemViewCommandTest.java
@@ -346,6 +346,7 @@ public class SystemViewCommandTest extends
GridCommandHandlerClusterByClassAbstr
assertEquals(srvcCfg.getName(), sysView.get(1)); // name
assertEquals(DummyService.class.getName(), sysView.get(2)); //
serviceClass
assertEquals(Integer.toString(srvcCfg.getMaxPerNodeCount()),
sysView.get(6)); // maxPerNodeCount
+
assertEquals(F.first(ignite0.services().serviceDescriptors()).topologySnapshot().toString(),
sysView.get(10));
}
/** */
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/managers/systemview/SystemViewMBean.java
b/modules/core/src/main/java/org/apache/ignite/internal/managers/systemview/SystemViewMBean.java
index 97e3b1426a6..ae28c2ed88b 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/managers/systemview/SystemViewMBean.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/managers/systemview/SystemViewMBean.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.managers.systemview;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.net.InetSocketAddress;
+import java.util.AbstractMap;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
@@ -289,7 +290,7 @@ public class SystemViewMBean<R> extends
ReadOnlyDynamicMBean {
else if (clazz.isAssignableFrom(Class.class))
data.put(name, ((Class<?>)val).getName());
else if (clazz.isAssignableFrom(IgniteUuid.class) ||
clazz.isAssignableFrom(UUID.class) ||
- clazz.isAssignableFrom(InetSocketAddress.class))
+ clazz.isAssignableFrom(InetSocketAddress.class) ||
clazz.isAssignableFrom(AbstractMap.class))
data.put(name, String.valueOf(val));
else
data.put(name, val);
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/managers/systemview/walker/ServiceViewWalker.java
b/modules/core/src/main/java/org/apache/ignite/internal/managers/systemview/walker/ServiceViewWalker.java
index 030396cb0a1..6dfdfaa8821 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/managers/systemview/walker/ServiceViewWalker.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/managers/systemview/walker/ServiceViewWalker.java
@@ -17,6 +17,7 @@
package org.apache.ignite.internal.managers.systemview.walker;
+import java.util.Map;
import java.util.UUID;
import org.apache.ignite.lang.IgniteUuid;
import org.apache.ignite.spi.systemview.view.ServiceView;
@@ -41,6 +42,7 @@ public class ServiceViewWalker implements
SystemViewRowAttributeWalker<ServiceVi
v.accept(7, "affinityKey", String.class);
v.accept(8, "nodeFilter", Class.class);
v.accept(9, "staticallyConfigured", boolean.class);
+ v.accept(10, "topologySnapshot", Map.class);
}
/** {@inheritDoc} */
@@ -55,10 +57,11 @@ public class ServiceViewWalker implements
SystemViewRowAttributeWalker<ServiceVi
v.accept(7, "affinityKey", String.class, row.affinityKey());
v.accept(8, "nodeFilter", Class.class, row.nodeFilter());
v.acceptBoolean(9, "staticallyConfigured", row.staticallyConfigured());
+ v.accept(10, "topologySnapshot", Map.class, row.topologySnapshot());
}
/** {@inheritDoc} */
@Override public int count() {
- return 10;
+ return 11;
}
}
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/service/ServiceInfo.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/service/ServiceInfo.java
index 6a502c7ef55..3d6d60965ff 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/service/ServiceInfo.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/service/ServiceInfo.java
@@ -180,7 +180,6 @@ public class ServiceInfo implements ServiceDescriptor {
}
/** {@inheritDoc} */
- @SuppressWarnings("unchecked")
@Nullable @Override public <K> K affinityKey() {
return (K)cfg.getAffinityKey();
}
diff --git
a/modules/core/src/main/java/org/apache/ignite/spi/systemview/view/ServiceView.java
b/modules/core/src/main/java/org/apache/ignite/spi/systemview/view/ServiceView.java
index 9e638ef9f48..ec303340749 100644
---
a/modules/core/src/main/java/org/apache/ignite/spi/systemview/view/ServiceView.java
+++
b/modules/core/src/main/java/org/apache/ignite/spi/systemview/view/ServiceView.java
@@ -17,15 +17,19 @@
package org.apache.ignite.spi.systemview.view;
+import java.util.Map;
import java.util.UUID;
import org.apache.ignite.cluster.ClusterNode;
import org.apache.ignite.internal.managers.systemview.walker.Order;
import org.apache.ignite.internal.processors.service.ServiceInfo;
import org.apache.ignite.lang.IgnitePredicate;
import org.apache.ignite.lang.IgniteUuid;
+import org.apache.ignite.services.ServiceDescriptor;
/**
* Service representation for a {@link SystemView}.
+ *
+ * @see ServiceDescriptor
*/
public class ServiceView {
/** Service descriptor. */
@@ -98,4 +102,9 @@ public class ServiceView {
public UUID originNodeId() {
return serviceInfo.originNodeId();
}
+
+ /** @return Map of number of service instances per node ID. */
+ public Map<UUID, Integer> topologySnapshot() {
+ return serviceInfo.topologySnapshot();
+ }
}
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/metric/JmxExporterSpiTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/metric/JmxExporterSpiTest.java
index 7bd0b0b421d..1145006a198 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/metric/JmxExporterSpiTest.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/metric/JmxExporterSpiTest.java
@@ -415,6 +415,7 @@ public class JmxExporterSpiTest extends
AbstractExporterSpiTest {
assertEquals(srvcCfg.getName(), sysView.get("name"));
assertEquals(srvcCfg.getMaxPerNodeCount(),
sysView.get("maxPerNodeCount"));
assertEquals(DummyService.class.getName(),
sysView.get("serviceClass"));
+ assertEquals(F.asMap(ignite.localNode().id(), 1).toString(),
sysView.get("topologySnapshot"));
}
/** */
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/metric/SystemViewSelfTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/metric/SystemViewSelfTest.java
index 6044030c016..dff7e9cdb1f 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/metric/SystemViewSelfTest.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/metric/SystemViewSelfTest.java
@@ -281,7 +281,6 @@ public class SystemViewSelfTest extends
GridCommonAbstractTest {
assertEquals(srvcCfg.getName(), sview.name());
assertNotNull(sview.serviceId());
- assertEquals(srvcCfg.getMaxPerNodeCount(),
sview.maxPerNodeCount());
assertEquals(DummyService.class, sview.serviceClass());
assertEquals(srvcCfg.getMaxPerNodeCount(),
sview.maxPerNodeCount());
assertNull(sview.cacheName());
@@ -289,6 +288,7 @@ public class SystemViewSelfTest extends
GridCommonAbstractTest {
assertEquals(TestNodeFilter.class, sview.nodeFilter());
assertFalse(sview.staticallyConfigured());
assertEquals(g.localNode().id(), sview.originNodeId());
+ assertEquals(F.asMap(g.localNode().id(), 1),
sview.topologySnapshot());
}
{
@@ -314,7 +314,6 @@ public class SystemViewSelfTest extends
GridCommonAbstractTest {
assertEquals(srvcCfg.getName(), sview[0].name());
assertNotNull(sview[0].serviceId());
- assertEquals(srvcCfg.getMaxPerNodeCount(),
sview[0].maxPerNodeCount());
assertEquals(DummyService.class, sview[0].serviceClass());
assertEquals(srvcCfg.getMaxPerNodeCount(),
sview[0].maxPerNodeCount());
assertEquals("test-cache", sview[0].cacheName());
@@ -322,6 +321,7 @@ public class SystemViewSelfTest extends
GridCommonAbstractTest {
assertEquals(TestNodeFilter.class, sview[0].nodeFilter());
assertFalse(sview[0].staticallyConfigured());
assertEquals(g.localNode().id(), sview[0].originNodeId());
+ assertEquals(F.asMap(g.localNode().id(), 2),
sview[0].topologySnapshot());
}
}
}
diff --git
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/metric/SqlViewExporterSpiTest.java
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/metric/SqlViewExporterSpiTest.java
index 74aa625cda0..d462f491cb8 100644
---
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/metric/SqlViewExporterSpiTest.java
+++
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/metric/SqlViewExporterSpiTest.java
@@ -299,7 +299,8 @@ public class SqlViewExporterSpiTest extends
AbstractExporterSpiTest {
" AFFINITY_KEY, " +
" NODE_FILTER, " +
" STATICALLY_CONFIGURED, " +
- " ORIGIN_NODE_ID " +
+ " ORIGIN_NODE_ID, " +
+ " TOPOLOGY_SNAPSHOT " +
"FROM SYS.SERVICES");
assertEquals(ignite0.context().service().serviceDescriptors().size(),
srvs.size());
@@ -309,6 +310,7 @@ public class SqlViewExporterSpiTest extends
AbstractExporterSpiTest {
assertEquals(srvcCfg.getName(), sysView.get(0));
assertEquals(DummyService.class.getName(), sysView.get(2));
assertEquals(srvcCfg.getMaxPerNodeCount(), sysView.get(4));
+
assertEquals(F.first(ignite0.services().serviceDescriptors()).topologySnapshot().toString(),
sysView.get(10));
}
/** */