From 9f9f0ce1259b4d4bf87ef93c1eb90902819c2af3 Mon Sep 17 00:00:00 2001
From: Valery Kharseko <vharseko@3a-systems.ru>
Date: Thu, 06 Aug 2026 07:58:50 +0000
Subject: [PATCH] Use LongAdder for LDAPStatistics counters (#678)
---
opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/LDAPStatistics.java | 492 +++++++++++++++++++++++++++---------------------------
1 files changed, 248 insertions(+), 244 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/LDAPStatistics.java b/opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/LDAPStatistics.java
index c2aa2dc..0c50d1c 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/LDAPStatistics.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/LDAPStatistics.java
@@ -13,6 +13,7 @@
*
* Copyright 2006-2010 Sun Microsystems, Inc.
* Portions Copyright 2012-2016 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC
*/
package org.opends.server.protocols.ldap;
@@ -20,7 +21,7 @@
import static org.opends.server.protocols.ldap.LDAPConstants.*;
import static org.opends.server.util.ServerConstants.*;
-import java.util.concurrent.atomic.AtomicLong;
+import java.util.concurrent.atomic.LongAdder;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.opendj.config.server.ConfigException;
@@ -57,64 +58,67 @@
public class LDAPStatistics extends MonitorProvider<MonitorProviderCfg>
{
- // The statistics maintained by this class.
- private AtomicLong abandonRequests = new AtomicLong(0);
- private AtomicLong addRequests = new AtomicLong(0);
- private AtomicLong bindRequests = new AtomicLong(0);
- private AtomicLong addResponses = new AtomicLong(0);
- private AtomicLong bindResponses = new AtomicLong(0);
- private AtomicLong bytesRead = new AtomicLong(0);
- private AtomicLong bytesWritten = new AtomicLong(0);
- private AtomicLong compareRequests = new AtomicLong(0);
- private AtomicLong compareResponses = new AtomicLong(0);
- private AtomicLong connectionsClosed = new AtomicLong(0);
- private AtomicLong connectionsEstablished = new AtomicLong(0);
- private AtomicLong deleteRequests = new AtomicLong(0);
- private AtomicLong deleteResponses = new AtomicLong(0);
- private AtomicLong extendedRequests = new AtomicLong(0);
- private AtomicLong extendedResponses = new AtomicLong(0);
- private AtomicLong messagesRead = new AtomicLong(0);
- private AtomicLong messagesWritten = new AtomicLong(0);
- private AtomicLong modifyRequests = new AtomicLong(0);
- private AtomicLong modifyResponses = new AtomicLong(0);
- private AtomicLong modifyDNRequests = new AtomicLong(0);
- private AtomicLong modifyDNResponses = new AtomicLong(0);
- private AtomicLong operationsAbandoned = new AtomicLong(0);
- private AtomicLong operationsCompleted = new AtomicLong(0);
- private AtomicLong operationsInitiated = new AtomicLong(0);
- private AtomicLong searchRequests = new AtomicLong(0);
- private AtomicLong searchOneRequests = new AtomicLong(0);
- private AtomicLong searchSubRequests = new AtomicLong(0);
- private AtomicLong searchResultEntries = new AtomicLong(0);
- private AtomicLong searchResultReferences = new AtomicLong(0);
- private AtomicLong searchResultsDone = new AtomicLong(0);
- private AtomicLong unbindRequests = new AtomicLong(0);
+ // The statistics maintained by this class. These counters are updated for
+ // every LDAP message on every connection of the handler, so they use
+ // LongAdder: under concurrency striped cells avoid all worker threads
+ // CAS-ing the same cache line, and reads (monitoring only) pay the cost.
+ private final LongAdder abandonRequests = new LongAdder();
+ private final LongAdder addRequests = new LongAdder();
+ private final LongAdder bindRequests = new LongAdder();
+ private final LongAdder addResponses = new LongAdder();
+ private final LongAdder bindResponses = new LongAdder();
+ private final LongAdder bytesRead = new LongAdder();
+ private final LongAdder bytesWritten = new LongAdder();
+ private final LongAdder compareRequests = new LongAdder();
+ private final LongAdder compareResponses = new LongAdder();
+ private final LongAdder connectionsClosed = new LongAdder();
+ private final LongAdder connectionsEstablished = new LongAdder();
+ private final LongAdder deleteRequests = new LongAdder();
+ private final LongAdder deleteResponses = new LongAdder();
+ private final LongAdder extendedRequests = new LongAdder();
+ private final LongAdder extendedResponses = new LongAdder();
+ private final LongAdder messagesRead = new LongAdder();
+ private final LongAdder messagesWritten = new LongAdder();
+ private final LongAdder modifyRequests = new LongAdder();
+ private final LongAdder modifyResponses = new LongAdder();
+ private final LongAdder modifyDNRequests = new LongAdder();
+ private final LongAdder modifyDNResponses = new LongAdder();
+ private final LongAdder operationsAbandoned = new LongAdder();
+ private final LongAdder operationsCompleted = new LongAdder();
+ private final LongAdder operationsInitiated = new LongAdder();
+ private final LongAdder searchRequests = new LongAdder();
+ private final LongAdder searchOneRequests = new LongAdder();
+ private final LongAdder searchSubRequests = new LongAdder();
+ private final LongAdder searchResultEntries = new LongAdder();
+ private final LongAdder searchResultReferences = new LongAdder();
+ private final LongAdder searchResultsDone = new LongAdder();
+ private final LongAdder unbindRequests = new LongAdder();
/** The instance name for this monitor provider instance. */
private final String instanceName;
// Monitor Objects : for Operations (count and time)
- private AtomicLong addOperationCount = new AtomicLong(0);
- private AtomicLong addOperationTime = new AtomicLong(0);
- private AtomicLong searchOperationCount = new AtomicLong(0);
- private AtomicLong searchOperationTime = new AtomicLong(0);
- private AtomicLong delOperationCount = new AtomicLong(0);
- private AtomicLong delOperationTime = new AtomicLong(0);
- private AtomicLong bindOperationCount = new AtomicLong(0);
- private AtomicLong bindOperationTime = new AtomicLong(0);
- private AtomicLong unbindOperationCount = new AtomicLong(0);
- private AtomicLong unbindOperationTime = new AtomicLong(0);
- private AtomicLong compOperationCount = new AtomicLong(0);
- private AtomicLong compOperationTime = new AtomicLong(0);
- private AtomicLong modOperationCount = new AtomicLong(0);
- private AtomicLong modOperationTime = new AtomicLong(0);
- private AtomicLong moddnOperationCount = new AtomicLong(0);
- private AtomicLong moddnOperationTime = new AtomicLong(0);
- private AtomicLong abandonOperationCount = new AtomicLong(0);
- private AtomicLong abandonOperationTime = new AtomicLong(0);
- private AtomicLong extOperationCount = new AtomicLong(0);
- private AtomicLong extOperationTime = new AtomicLong(0);
+ private final LongAdder addOperationCount = new LongAdder();
+ private final LongAdder addOperationTime = new LongAdder();
+ private final LongAdder searchOperationCount = new LongAdder();
+ private final LongAdder searchOperationTime = new LongAdder();
+ private final LongAdder delOperationCount = new LongAdder();
+ private final LongAdder delOperationTime = new LongAdder();
+ private final LongAdder bindOperationCount = new LongAdder();
+ private final LongAdder bindOperationTime = new LongAdder();
+ private final LongAdder unbindOperationCount = new LongAdder();
+ private final LongAdder unbindOperationTime = new LongAdder();
+ private final LongAdder compOperationCount = new LongAdder();
+ private final LongAdder compOperationTime = new LongAdder();
+ private final LongAdder modOperationCount = new LongAdder();
+ private final LongAdder modOperationTime = new LongAdder();
+ private final LongAdder moddnOperationCount = new LongAdder();
+ private final LongAdder moddnOperationTime = new LongAdder();
+ private final LongAdder abandonOperationCount = new LongAdder();
+ private final LongAdder abandonOperationTime = new LongAdder();
+ private final LongAdder extOperationCount = new LongAdder();
+ private final LongAdder extOperationTime = new LongAdder();
/**
* Creates a new instance of this class with the specified parent.
@@ -168,77 +172,77 @@
* OC_MONITOR_CONNHANDLERSTATS
*/
final MonitorData attrs = new MonitorData(31 + 10 * 2);
- attrs.add("connectionsEstablished", connectionsEstablished);
- attrs.add("connectionsClosed", connectionsClosed);
- attrs.add("bytesRead", bytesRead);
- attrs.add("bytesWritten", bytesWritten);
- attrs.add("ldapMessagesRead", messagesRead);
- attrs.add("ldapMessagesWritten", messagesWritten);
- attrs.add("operationsAbandoned", operationsAbandoned);
- attrs.add("operationsInitiated", operationsInitiated);
- attrs.add("operationsCompleted", operationsCompleted);
- attrs.add("abandonRequests", abandonRequests);
- attrs.add("addRequests", addRequests);
- attrs.add("addResponses", addResponses);
- attrs.add("bindRequests", bindRequests);
- attrs.add("bindResponses", bindResponses);
- attrs.add("compareRequests", compareRequests);
- attrs.add("compareResponses", compareResponses);
- attrs.add("deleteRequests", deleteRequests);
- attrs.add("deleteResponses", deleteResponses);
- attrs.add("extendedRequests", extendedRequests);
- attrs.add("extendedResponses", extendedResponses);
- attrs.add("modifyRequests", modifyRequests);
- attrs.add("modifyResponses", modifyResponses);
- attrs.add("modifyDNRequests", modifyDNRequests);
- attrs.add("modifyDNResponses", modifyDNResponses);
- attrs.add("searchRequests", searchRequests);
- attrs.add("searchOneRequests", searchOneRequests);
- attrs.add("searchSubRequests", searchSubRequests);
- attrs.add("searchResultEntries", searchResultEntries);
- attrs.add("searchResultReferences", searchResultReferences);
- attrs.add("searchResultsDone", searchResultsDone);
- attrs.add("unbindRequests", unbindRequests);
+ attrs.add("connectionsEstablished", connectionsEstablished.sum());
+ attrs.add("connectionsClosed", connectionsClosed.sum());
+ attrs.add("bytesRead", bytesRead.sum());
+ attrs.add("bytesWritten", bytesWritten.sum());
+ attrs.add("ldapMessagesRead", messagesRead.sum());
+ attrs.add("ldapMessagesWritten", messagesWritten.sum());
+ attrs.add("operationsAbandoned", operationsAbandoned.sum());
+ attrs.add("operationsInitiated", operationsInitiated.sum());
+ attrs.add("operationsCompleted", operationsCompleted.sum());
+ attrs.add("abandonRequests", abandonRequests.sum());
+ attrs.add("addRequests", addRequests.sum());
+ attrs.add("addResponses", addResponses.sum());
+ attrs.add("bindRequests", bindRequests.sum());
+ attrs.add("bindResponses", bindResponses.sum());
+ attrs.add("compareRequests", compareRequests.sum());
+ attrs.add("compareResponses", compareResponses.sum());
+ attrs.add("deleteRequests", deleteRequests.sum());
+ attrs.add("deleteResponses", deleteResponses.sum());
+ attrs.add("extendedRequests", extendedRequests.sum());
+ attrs.add("extendedResponses", extendedResponses.sum());
+ attrs.add("modifyRequests", modifyRequests.sum());
+ attrs.add("modifyResponses", modifyResponses.sum());
+ attrs.add("modifyDNRequests", modifyDNRequests.sum());
+ attrs.add("modifyDNResponses", modifyDNResponses.sum());
+ attrs.add("searchRequests", searchRequests.sum());
+ attrs.add("searchOneRequests", searchOneRequests.sum());
+ attrs.add("searchSubRequests", searchSubRequests.sum());
+ attrs.add("searchResultEntries", searchResultEntries.sum());
+ attrs.add("searchResultReferences", searchResultReferences.sum());
+ attrs.add("searchResultsDone", searchResultsDone.sum());
+ attrs.add("unbindRequests", unbindRequests.sum());
// adds
- attrs.add("ds-mon-add-operations-total-count", addOperationCount);
- attrs.add("ds-mon-resident-time-add-operations-total-time", addOperationTime);
+ attrs.add("ds-mon-add-operations-total-count", addOperationCount.sum());
+ attrs.add("ds-mon-resident-time-add-operations-total-time", addOperationTime.sum());
// search
- attrs.add("ds-mon-search-operations-total-count", searchOperationCount);
- attrs.add("ds-mon-resident-time-search-operations-total-time", searchOperationTime);
+ attrs.add("ds-mon-search-operations-total-count", searchOperationCount.sum());
+ attrs.add("ds-mon-resident-time-search-operations-total-time", searchOperationTime.sum());
// bind
- attrs.add("ds-mon-bind-operations-total-count", bindOperationCount);
- attrs.add("ds-mon-resident-time-bind-operations-total-time", bindOperationTime);
+ attrs.add("ds-mon-bind-operations-total-count", bindOperationCount.sum());
+ attrs.add("ds-mon-resident-time-bind-operations-total-time", bindOperationTime.sum());
// unbind
- attrs.add("ds-mon-unbind-operations-total-count", unbindOperationCount);
- attrs.add("ds-mon-resident-time-unbind-operations-total-time", unbindOperationTime);
+ attrs.add("ds-mon-unbind-operations-total-count", unbindOperationCount.sum());
+ attrs.add("ds-mon-resident-time-unbind-operations-total-time", unbindOperationTime.sum());
// compare
- attrs.add("ds-mon-compare-operations-total-count", compOperationCount);
- attrs.add("ds-mon-resident-time-compare-operations-total-time", compOperationTime);
+ attrs.add("ds-mon-compare-operations-total-count", compOperationCount.sum());
+ attrs.add("ds-mon-resident-time-compare-operations-total-time", compOperationTime.sum());
// del
- attrs.add("ds-mon-delete-operations-total-count", delOperationCount);
- attrs.add("ds-mon-resident-time-delete-operations-total-time", delOperationTime);
+ attrs.add("ds-mon-delete-operations-total-count", delOperationCount.sum());
+ attrs.add("ds-mon-resident-time-delete-operations-total-time", delOperationTime.sum());
// mod
- attrs.add("ds-mon-mod-operations-total-count", modOperationCount);
- attrs.add("ds-mon-resident-time-mod-operations-total-time", modOperationTime);
+ attrs.add("ds-mon-mod-operations-total-count", modOperationCount.sum());
+ attrs.add("ds-mon-resident-time-mod-operations-total-time", modOperationTime.sum());
// moddn
- attrs.add("ds-mon-moddn-operations-total-count", moddnOperationCount);
- attrs.add("ds-mon-resident-time-moddn-operations-total-time", moddnOperationTime);
+ attrs.add("ds-mon-moddn-operations-total-count", moddnOperationCount.sum());
+ attrs.add("ds-mon-resident-time-moddn-operations-total-time", moddnOperationTime.sum());
// abandon
- attrs.add("ds-mon-abandon-operations-total-count", abandonOperationCount);
- attrs.add("ds-mon-resident-time-abandon-operations-total-time", abandonOperationTime);
+ attrs.add("ds-mon-abandon-operations-total-count", abandonOperationCount.sum());
+ attrs.add("ds-mon-resident-time-abandon-operations-total-time", abandonOperationTime.sum());
// extended
- attrs.add("ds-mon-extended-operations-total-count", extOperationCount);
- attrs.add("ds-mon-resident-time-extended-operations-total-time", extOperationTime);
+ attrs.add("ds-mon-extended-operations-total-count", extOperationCount.sum());
+ attrs.add("ds-mon-resident-time-extended-operations-total-time", extOperationTime.sum());
return attrs;
}
@@ -246,58 +250,58 @@
/** Clears any statistical information collected to this point. */
public void clearStatistics()
{
- abandonRequests.set(0);
- addRequests.set(0);
- addResponses.set(0);
- bindRequests.set(0);
- bindResponses.set(0);
- bytesRead.set(0);
- bytesWritten.set(0);
- compareRequests.set(0);
- compareResponses.set(0);
- connectionsClosed.set(0);
- connectionsEstablished.set(0);
- deleteRequests.set(0);
- deleteResponses.set(0);
- extendedRequests.set(0);
- extendedResponses.set(0);
- messagesRead.set(0);
- messagesWritten.set(0);
- modifyRequests.set(0);
- modifyResponses.set(0);
- modifyDNRequests.set(0);
- modifyDNResponses.set(0);
- operationsAbandoned.set(0);
- operationsCompleted.set(0);
- operationsInitiated.set(0);
- searchRequests.set(0);
- searchOneRequests.set(0);
- searchSubRequests.set(0);
- searchResultEntries.set(0);
- searchResultReferences.set(0);
- searchResultsDone.set(0);
- unbindRequests.set(0);
+ abandonRequests.reset();
+ addRequests.reset();
+ addResponses.reset();
+ bindRequests.reset();
+ bindResponses.reset();
+ bytesRead.reset();
+ bytesWritten.reset();
+ compareRequests.reset();
+ compareResponses.reset();
+ connectionsClosed.reset();
+ connectionsEstablished.reset();
+ deleteRequests.reset();
+ deleteResponses.reset();
+ extendedRequests.reset();
+ extendedResponses.reset();
+ messagesRead.reset();
+ messagesWritten.reset();
+ modifyRequests.reset();
+ modifyResponses.reset();
+ modifyDNRequests.reset();
+ modifyDNResponses.reset();
+ operationsAbandoned.reset();
+ operationsCompleted.reset();
+ operationsInitiated.reset();
+ searchRequests.reset();
+ searchOneRequests.reset();
+ searchSubRequests.reset();
+ searchResultEntries.reset();
+ searchResultReferences.reset();
+ searchResultsDone.reset();
+ unbindRequests.reset();
- addOperationCount.set(0);
- addOperationTime.set(0);
- searchOperationCount.set(0);
- searchOperationTime.set(0);
- delOperationCount.set(0);
- delOperationTime.set(0);
- bindOperationCount.set(0);
- bindOperationTime.set(0);
- unbindOperationCount.set(0);
- unbindOperationTime.set(0);
- compOperationCount.set(0);
- compOperationTime.set(0);
- modOperationCount.set(0);
- modOperationTime.set(0);
- moddnOperationCount.set(0);
- moddnOperationTime.set(0);
- abandonOperationCount.set(0);
- abandonOperationTime.set(0);
- extOperationCount.set(0);
- extOperationTime.set(0);
+ addOperationCount.reset();
+ addOperationTime.reset();
+ searchOperationCount.reset();
+ searchOperationTime.reset();
+ delOperationCount.reset();
+ delOperationTime.reset();
+ bindOperationCount.reset();
+ bindOperationTime.reset();
+ unbindOperationCount.reset();
+ unbindOperationTime.reset();
+ compOperationCount.reset();
+ compOperationTime.reset();
+ modOperationCount.reset();
+ modOperationTime.reset();
+ moddnOperationCount.reset();
+ moddnOperationTime.reset();
+ abandonOperationCount.reset();
+ abandonOperationTime.reset();
+ extOperationCount.reset();
+ extOperationTime.reset();
}
/**
@@ -306,13 +310,13 @@
*/
public void updateConnect()
{
- connectionsEstablished.getAndIncrement();
+ connectionsEstablished.increment();
}
/** Updates the appropriate set of counters to indicate that a connection has been closed. */
public void updateDisconnect()
{
- connectionsClosed.getAndIncrement();
+ connectionsClosed.increment();
}
/**
@@ -324,7 +328,7 @@
*/
public void updateBytesRead(int bytesRead)
{
- this.bytesRead.getAndAdd(bytesRead);
+ this.bytesRead.add(bytesRead);
}
/**
@@ -336,7 +340,7 @@
*/
public void updateBytesWritten(int bytesWritten)
{
- this.bytesWritten.getAndAdd(bytesWritten);
+ this.bytesWritten.add(bytesWritten);
}
/**
@@ -348,37 +352,37 @@
*/
public void updateMessageRead(LDAPMessage message)
{
- messagesRead.getAndIncrement();
- operationsInitiated.getAndIncrement();
+ messagesRead.increment();
+ operationsInitiated.increment();
switch (message.getProtocolOp().getType())
{
case OP_TYPE_ABANDON_REQUEST:
- abandonRequests.getAndIncrement();
+ abandonRequests.increment();
break;
case OP_TYPE_ADD_REQUEST:
- addRequests.getAndIncrement();
+ addRequests.increment();
break;
case OP_TYPE_BIND_REQUEST:
- bindRequests.getAndIncrement();
+ bindRequests.increment();
break;
case OP_TYPE_COMPARE_REQUEST:
- compareRequests.getAndIncrement();
+ compareRequests.increment();
break;
case OP_TYPE_DELETE_REQUEST:
- deleteRequests.getAndIncrement();
+ deleteRequests.increment();
break;
case OP_TYPE_EXTENDED_REQUEST:
- extendedRequests.getAndIncrement();
+ extendedRequests.increment();
break;
case OP_TYPE_MODIFY_REQUEST:
- modifyRequests.getAndIncrement();
+ modifyRequests.increment();
break;
case OP_TYPE_MODIFY_DN_REQUEST:
- modifyDNRequests.getAndIncrement();
+ modifyDNRequests.increment();
break;
case OP_TYPE_SEARCH_REQUEST:
- searchRequests.getAndIncrement();
+ searchRequests.increment();
SearchRequestProtocolOp s = (SearchRequestProtocolOp)message
.getProtocolOp();
switch (s.getScope().asEnum())
@@ -388,17 +392,17 @@
// this value can be derived from the others
break;
case SINGLE_LEVEL:
- searchOneRequests.getAndIncrement();
+ searchOneRequests.increment();
break;
case WHOLE_SUBTREE:
- searchSubRequests.getAndIncrement();
+ searchSubRequests.increment();
break;
default:
break;
}
break;
case OP_TYPE_UNBIND_REQUEST:
- unbindRequests.getAndIncrement();
+ unbindRequests.increment();
break;
}
}
@@ -413,52 +417,52 @@
* The message id that was written to the client
*/
public void updateMessageWritten(byte messageType, int messageId) {
- messagesWritten.getAndIncrement();
+ messagesWritten.increment();
switch (messageType)
{
case OP_TYPE_ADD_RESPONSE:
- addResponses.getAndIncrement();
- operationsCompleted.getAndIncrement();
+ addResponses.increment();
+ operationsCompleted.increment();
break;
case OP_TYPE_BIND_RESPONSE:
- bindResponses.getAndIncrement();
- operationsCompleted.getAndIncrement();
+ bindResponses.increment();
+ operationsCompleted.increment();
break;
case OP_TYPE_COMPARE_RESPONSE:
- compareResponses.getAndIncrement();
- operationsCompleted.getAndIncrement();
+ compareResponses.increment();
+ operationsCompleted.increment();
break;
case OP_TYPE_DELETE_RESPONSE:
- deleteResponses.getAndIncrement();
- operationsCompleted.getAndIncrement();
+ deleteResponses.increment();
+ operationsCompleted.increment();
break;
case OP_TYPE_EXTENDED_RESPONSE:
- extendedResponses.getAndIncrement();
+ extendedResponses.increment();
// We don't want to include unsolicited notifications as
// "completed" operations.
if (messageId > 0)
{
- operationsCompleted.getAndIncrement();
+ operationsCompleted.increment();
}
break;
case OP_TYPE_MODIFY_RESPONSE:
- modifyResponses.getAndIncrement();
- operationsCompleted.getAndIncrement();
+ modifyResponses.increment();
+ operationsCompleted.increment();
break;
case OP_TYPE_MODIFY_DN_RESPONSE:
- modifyDNResponses.getAndIncrement();
- operationsCompleted.getAndIncrement();
+ modifyDNResponses.increment();
+ operationsCompleted.increment();
break;
case OP_TYPE_SEARCH_RESULT_ENTRY:
- searchResultEntries.getAndIncrement();
+ searchResultEntries.increment();
break;
case OP_TYPE_SEARCH_RESULT_REFERENCE:
- searchResultReferences.getAndIncrement();
+ searchResultReferences.increment();
break;
case OP_TYPE_SEARCH_RESULT_DONE:
- searchResultsDone.getAndIncrement();
- operationsCompleted.getAndIncrement();
+ searchResultsDone.increment();
+ operationsCompleted.increment();
break;
}
}
@@ -481,7 +485,7 @@
*/
public void updateAbandonedOperation()
{
- operationsAbandoned.getAndIncrement();
+ operationsAbandoned.increment();
}
/**
@@ -493,7 +497,7 @@
*/
public long getConnectionsEstablished()
{
- return connectionsEstablished.get();
+ return connectionsEstablished.sum();
}
/**
@@ -503,7 +507,7 @@
*/
public long getConnectionsClosed()
{
- return connectionsClosed.get();
+ return connectionsClosed.sum();
}
/**
@@ -513,7 +517,7 @@
*/
public long getBytesRead()
{
- return bytesRead.get();
+ return bytesRead.sum();
}
/**
@@ -523,7 +527,7 @@
*/
public long getBytesWritten()
{
- return bytesWritten.get();
+ return bytesWritten.sum();
}
/**
@@ -535,7 +539,7 @@
*/
public long getMessagesRead()
{
- return messagesRead.get();
+ return messagesRead.sum();
}
/**
@@ -547,7 +551,7 @@
*/
public long getMessagesWritten()
{
- return messagesWritten.get();
+ return messagesWritten.sum();
}
/**
@@ -559,7 +563,7 @@
*/
public long getOperationsInitiated()
{
- return operationsInitiated.get();
+ return operationsInitiated.sum();
}
/**
@@ -571,7 +575,7 @@
*/
public long getOperationsCompleted()
{
- return operationsCompleted.get();
+ return operationsCompleted.sum();
}
/**
@@ -583,7 +587,7 @@
*/
public long getOperationsAbandoned()
{
- return operationsAbandoned.get();
+ return operationsAbandoned.sum();
}
/**
@@ -593,7 +597,7 @@
*/
public long getAbandonRequests()
{
- return abandonRequests.get();
+ return abandonRequests.sum();
}
/**
@@ -603,7 +607,7 @@
*/
public long getAddRequests()
{
- return addRequests.get();
+ return addRequests.sum();
}
/**
@@ -613,7 +617,7 @@
*/
public long getAddResponses()
{
- return addResponses.get();
+ return addResponses.sum();
}
/**
@@ -623,7 +627,7 @@
*/
public long getBindRequests()
{
- return bindRequests.get();
+ return bindRequests.sum();
}
/**
@@ -633,7 +637,7 @@
*/
public long getBindResponses()
{
- return bindResponses.get();
+ return bindResponses.sum();
}
/**
@@ -643,7 +647,7 @@
*/
public long getCompareRequests()
{
- return compareRequests.get();
+ return compareRequests.sum();
}
/**
@@ -653,7 +657,7 @@
*/
public long getCompareResponses()
{
- return compareResponses.get();
+ return compareResponses.sum();
}
/**
@@ -663,7 +667,7 @@
*/
public long getDeleteRequests()
{
- return deleteRequests.get();
+ return deleteRequests.sum();
}
/**
@@ -673,7 +677,7 @@
*/
public long getDeleteResponses()
{
- return deleteResponses.get();
+ return deleteResponses.sum();
}
/**
@@ -683,7 +687,7 @@
*/
public long getExtendedRequests()
{
- return extendedRequests.get();
+ return extendedRequests.sum();
}
/**
@@ -693,7 +697,7 @@
*/
public long getExtendedResponses()
{
- return extendedResponses.get();
+ return extendedResponses.sum();
}
/**
@@ -703,7 +707,7 @@
*/
public long getModifyRequests()
{
- return modifyRequests.get();
+ return modifyRequests.sum();
}
/**
@@ -713,7 +717,7 @@
*/
public long getModifyResponses()
{
- return modifyResponses.get();
+ return modifyResponses.sum();
}
/**
@@ -723,7 +727,7 @@
*/
public long getModifyDNRequests()
{
- return modifyDNRequests.get();
+ return modifyDNRequests.sum();
}
/**
@@ -733,7 +737,7 @@
*/
public long getModifyDNResponses()
{
- return modifyDNResponses.get();
+ return modifyDNResponses.sum();
}
/**
@@ -743,7 +747,7 @@
*/
public long getSearchRequests()
{
- return searchRequests.get();
+ return searchRequests.sum();
}
/**
@@ -753,7 +757,7 @@
*/
public long getSearchOneRequests()
{
- return searchOneRequests.get();
+ return searchOneRequests.sum();
}
/**
@@ -763,7 +767,7 @@
*/
public long getSearchSubRequests()
{
- return searchSubRequests.get();
+ return searchSubRequests.sum();
}
/**
@@ -773,7 +777,7 @@
*/
public long getSearchResultEntries()
{
- return searchResultEntries.get();
+ return searchResultEntries.sum();
}
/**
@@ -784,7 +788,7 @@
*/
public long getSearchResultReferences()
{
- return searchResultReferences.get();
+ return searchResultReferences.sum();
}
/**
@@ -796,7 +800,7 @@
*/
public long getSearchResultsDone()
{
- return searchResultsDone.get();
+ return searchResultsDone.sum();
}
/**
@@ -806,7 +810,7 @@
*/
public long getUnbindRequests()
{
- return unbindRequests.get();
+ return unbindRequests.sum();
}
/**
@@ -817,44 +821,44 @@
public void updateOperationMonitoringData(OperationType type, long time) {
if (type.equals(OperationType.ADD)) {
- addOperationCount.getAndIncrement();
- addOperationTime.getAndAdd(time);
+ addOperationCount.increment();
+ addOperationTime.add(time);
}
else if (type.equals(OperationType.SEARCH)) {
- searchOperationCount.getAndIncrement();
- searchOperationTime.getAndAdd(time);
+ searchOperationCount.increment();
+ searchOperationTime.add(time);
}
else if (type.equals(OperationType.ABANDON)) {
- abandonOperationCount.getAndIncrement();
- abandonOperationTime.getAndAdd(time);
+ abandonOperationCount.increment();
+ abandonOperationTime.add(time);
}
else if (type.equals(OperationType.BIND)) {
- bindOperationCount.getAndIncrement();
- bindOperationTime.getAndAdd(time);
+ bindOperationCount.increment();
+ bindOperationTime.add(time);
}
else if (type.equals(OperationType.UNBIND)) {
- unbindOperationCount.getAndIncrement();
- unbindOperationTime.getAndAdd(time);
+ unbindOperationCount.increment();
+ unbindOperationTime.add(time);
}
else if (type.equals(OperationType.COMPARE)) {
- compOperationCount.getAndIncrement();
- compOperationTime.getAndAdd(time);
+ compOperationCount.increment();
+ compOperationTime.add(time);
}
else if (type.equals(OperationType.DELETE)) {
- delOperationCount.getAndIncrement();
- delOperationTime.getAndAdd(time);
+ delOperationCount.increment();
+ delOperationTime.add(time);
}
else if (type.equals(OperationType.EXTENDED)) {
- extOperationCount.getAndIncrement();
- extOperationTime.getAndAdd(time);
+ extOperationCount.increment();
+ extOperationTime.add(time);
}
else if (type.equals(OperationType.MODIFY)) {
- modOperationCount.getAndIncrement();
- modOperationTime.getAndAdd(time);
+ modOperationCount.increment();
+ modOperationTime.add(time);
}
else if (type.equals(OperationType.MODIFY_DN)) {
- moddnOperationCount.getAndIncrement();
- moddnOperationTime.getAndAdd(time);
+ moddnOperationCount.increment();
+ moddnOperationTime.add(time);
}
}
}
--
Gitblit v1.10.0