Skip to content

Commit fe451d5

Browse files
authored
IGNITE-22962 Move conflict resolver metrics to cache metrics (#283)
1 parent 2e49deb commit fe451d5

5 files changed

Lines changed: 4 additions & 97 deletions

File tree

docs/_docs/cdc/change-data-capture-extensions.adoc

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -193,19 +193,6 @@ Conflict resolution field should contain user provided monotonically increasing
193193
. If `conflictResolveField` if provided then field values comparison used to determine order.
194194
. Conflict resolution failed. Update will be ignored.
195195

196-
=== Conflict Resolver Metrics
197-
198-
The Ignite's built-in `CacheVersionConflictResolverPluginProvider` provides the following metrics:
199-
200-
[cols="35%,65%",opts="header"]
201-
|===
202-
|Name |Description
203-
| `AcceptedCount` | Count of accepted entries.
204-
| `RejectedCount` | Count of rejected entries.
205-
|===
206-
207-
These metrics are registered under `conflict-resolver` registry for each node configured with this plugin.
208-
209196
=== Configuration example
210197
Configuration is done via Ignite node plugin:
211198

modules/cdc-ext/src/main/java/org/apache/ignite/cdc/conflictresolve/CacheConflictResolutionManagerImpl.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import org.apache.ignite.internal.processors.cache.CacheConflictResolutionManager;
2222
import org.apache.ignite.internal.processors.cache.GridCacheContext;
2323
import org.apache.ignite.internal.processors.cache.version.CacheVersionConflictResolver;
24-
import org.apache.ignite.internal.processors.metric.MetricRegistryImpl;
2524
import org.apache.ignite.lang.IgniteFuture;
2625

2726
/**
@@ -31,9 +30,6 @@
3130
* @see CacheVersionConflictResolver
3231
*/
3332
public class CacheConflictResolutionManagerImpl<K, V> implements CacheConflictResolutionManager<K, V> {
34-
/** Conflict resolver metrics registry name. */
35-
public static final String CONFLICT_RESOLVER_METRICS_REGISTRY_NAME = "conflict-resolver";
36-
3733
/** Logger. */
3834
private IgniteLogger log;
3935

@@ -76,16 +72,13 @@ public CacheConflictResolutionManagerImpl(
7672
@Override public CacheVersionConflictResolver conflictResolver() {
7773
CacheVersionConflictResolver rslvr;
7874

79-
MetricRegistryImpl mreg = cctx.grid().context().metric().registry(CONFLICT_RESOLVER_METRICS_REGISTRY_NAME);
80-
8175
if (resolver != null)
8276
rslvr = resolver;
8377
else {
8478
rslvr = new CacheVersionConflictResolverImpl(
8579
clusterId,
8680
conflictResolveField,
87-
conflictResolverLog,
88-
mreg
81+
conflictResolverLog
8982
);
9083
}
9184

modules/cdc-ext/src/main/java/org/apache/ignite/cdc/conflictresolve/CacheVersionConflictResolverImpl.java

Lines changed: 3 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@
2323
import org.apache.ignite.internal.processors.cache.version.CacheVersionConflictResolver;
2424
import org.apache.ignite.internal.processors.cache.version.GridCacheVersionConflictContext;
2525
import org.apache.ignite.internal.processors.cache.version.GridCacheVersionedEntryEx;
26-
import org.apache.ignite.internal.processors.metric.MetricRegistryImpl;
27-
import org.apache.ignite.internal.processors.metric.impl.LongAdderMetric;
2826
import org.apache.ignite.internal.util.tostring.GridToStringInclude;
2927
import org.apache.ignite.internal.util.typedef.internal.S;
3028
import org.apache.ignite.internal.util.typedef.internal.U;
@@ -44,18 +42,6 @@
4442
* </ul>
4543
*/
4644
public class CacheVersionConflictResolverImpl implements CacheVersionConflictResolver {
47-
/** Accepted entries count name. */
48-
public static final String ACCEPTED_EVENTS_CNT = "AcceptedCount";
49-
50-
/** Accepted entries count description. */
51-
public static final String ACCEPTED_EVENTS_CNT_DESC = "Count of accepted entries";
52-
53-
/** Rejected entries count name. */
54-
public static final String REJECTED_EVENTS_CNT = "RejectedCount";
55-
56-
/** Rejected entries count description. */
57-
public static final String REJECTED_EVENTS_CNT_DESC = "Count of rejected entries";
58-
5945
/**
6046
* Cluster id.
6147
*/
@@ -80,32 +66,21 @@ public class CacheVersionConflictResolverImpl implements CacheVersionConflictRes
8066
@GridToStringInclude
8167
protected final boolean conflictResolveFieldEnabled;
8268

83-
/** Accepted entries count. */
84-
private final LongAdderMetric acceptedCnt;
85-
86-
/** Rejected entries count. */
87-
private final LongAdderMetric rejectedCnt;
88-
8969
/**
9070
* @param clusterId Data center id.
9171
* @param conflictResolveField Field to resolve conflicts.
9272
* @param log Logger.
93-
* @param mreg Metric registry.
9473
*/
9574
public CacheVersionConflictResolverImpl(
9675
byte clusterId,
9776
String conflictResolveField,
98-
IgniteLogger log,
99-
MetricRegistryImpl mreg
77+
IgniteLogger log
10078
) {
10179
this.clusterId = clusterId;
10280
this.conflictResolveField = conflictResolveField;
10381
this.log = log;
10482

10583
conflictResolveFieldEnabled = conflictResolveField != null;
106-
107-
acceptedCnt = mreg.longAdderMetric(ACCEPTED_EVENTS_CNT, ACCEPTED_EVENTS_CNT_DESC);
108-
rejectedCnt = mreg.longAdderMetric(REJECTED_EVENTS_CNT, REJECTED_EVENTS_CNT_DESC);
10984
}
11085

11186
/** {@inheritDoc} */
@@ -122,14 +97,10 @@ public CacheVersionConflictResolverImpl(
12297
if (log.isDebugEnabled())
12398
debugResolve(ctx, useNew, oldEntry, newEntry);
12499

125-
if (useNew) {
100+
if (useNew)
126101
res.useNew();
127-
acceptedCnt.increment();
128-
}
129-
else {
102+
else
130103
res.useOld();
131-
rejectedCnt.increment();
132-
}
133104

134105
return res;
135106
}

modules/cdc-ext/src/test/java/org/apache/ignite/cdc/CacheConflictOperationsTest.java

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,6 @@
4242
import org.apache.ignite.internal.processors.cache.KeyCacheObjectImpl;
4343
import org.apache.ignite.internal.processors.cache.dr.GridCacheDrInfo;
4444
import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
45-
import org.apache.ignite.internal.processors.metric.MetricRegistryImpl;
46-
import org.apache.ignite.internal.processors.metric.impl.LongAdderMetric;
4745
import org.apache.ignite.testframework.ListeningTestLogger;
4846
import org.apache.ignite.testframework.LogListener;
4947
import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
@@ -56,9 +54,6 @@
5654
import static java.util.Collections.singletonMap;
5755
import static org.apache.ignite.cache.CacheAtomicityMode.ATOMIC;
5856
import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
59-
import static org.apache.ignite.cdc.conflictresolve.CacheConflictResolutionManagerImpl.CONFLICT_RESOLVER_METRICS_REGISTRY_NAME;
60-
import static org.apache.ignite.cdc.conflictresolve.CacheVersionConflictResolverImpl.ACCEPTED_EVENTS_CNT;
61-
import static org.apache.ignite.cdc.conflictresolve.CacheVersionConflictResolverImpl.REJECTED_EVENTS_CNT;
6257

6358
/**
6459
* Cache conflict operations test.
@@ -264,22 +259,6 @@ public void testUpdatesConflict() throws Exception {
264259
putConflict(key, 5, conflictResolveField() != null);
265260
}
266261

267-
/** */
268-
@Test
269-
public void testMetrics() throws Exception {
270-
String key = key("UpdateClusterUpdateReorder", otherClusterId);
271-
272-
checkMetrics(0, 0);
273-
274-
putConflict(key, 1, true);
275-
276-
checkMetrics(1, 0);
277-
278-
putConflict(key, 1, false);
279-
280-
checkMetrics(1, 1);
281-
}
282-
283262
/** Test switching debug log level for ConflictResolver during runtime */
284263
@Test
285264
public void testResolveDebug() throws Exception {
@@ -392,15 +371,4 @@ private String key(String key, byte otherClusterId) {
392371
protected String conflictResolveField() {
393372
return null;
394373
}
395-
396-
/** Checks metrics for conflict resolver. */
397-
protected void checkMetrics(int acceptedCnt, int rejectedCnt) {
398-
MetricRegistryImpl mreg = ign.context().metric().registry(CONFLICT_RESOLVER_METRICS_REGISTRY_NAME);
399-
400-
assertNotNull(mreg.findMetric(ACCEPTED_EVENTS_CNT));
401-
assertNotNull(mreg.findMetric(REJECTED_EVENTS_CNT));
402-
403-
assertEquals(acceptedCnt, ((LongAdderMetric)mreg.findMetric(ACCEPTED_EVENTS_CNT)).value());
404-
assertEquals(rejectedCnt, ((LongAdderMetric)mreg.findMetric(REJECTED_EVENTS_CNT)).value());
405-
}
406374
}

modules/cdc-ext/src/test/java/org/apache/ignite/cdc/CacheConflictOperationsWithCustomResolverTest.java

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,6 @@ public class CacheConflictOperationsWithCustomResolverTest extends CacheConflict
5151
GridTestUtils.assertThrows(log, super::testUpdatesConflict, AssertionError.class, "");
5252
}
5353

54-
/** {@inheritDoc} */
55-
@Test
56-
@Override public void testMetrics() throws Exception {
57-
// LWW strategy resolves conflicts in unexpected way at versioned resolve test.
58-
GridTestUtils.assertThrows(log, super::testMetrics, AssertionError.class, "");
59-
}
60-
6154
/** {@inheritDoc} */
6255
@Test
6356
@Override public void testResolveDebug() throws Exception {
@@ -82,9 +75,4 @@ private static final class LwwConflictResolver implements CacheVersionConflictRe
8275
return res;
8376
}
8477
}
85-
86-
/** {@inheritDoc} */
87-
@Override protected void checkMetrics(int acceptedCnt, int rejectedCnt) {
88-
// No op.
89-
}
9078
}

0 commit comments

Comments
 (0)