History log of /forgerock/opendj2/src/server/org/opends/server/extensions/ParallelWorkQueue.java
Revision Date Author Comments Expand
a22f5cddd6e1d582bf04028aeb6907cfdb571b11 8775 22-Apr-2013 JnRouvignac

OPENDJ-832 Leverage the work queue for processing requests received on the HTTP connection handler Limited the number of concurrent operations per client connection. SdkConnectionAdapter.java: Changed the queueing strategy to BoundedWorkQueueStrategy. BoundedWorkQueueStrategy.java: ADDED AbandonOperationWrapper.java, xtendedOperationWrapper.java, UnbindOperationWrapper.java: ADDED DirectoryServer.java: Extracted checkCanEnqueueRequest() from enqueueRequest(). Added tryEnqueueRequest(). WorkQueue.java: Pulled computeNumWorkerThreads() here from sub classes. Added abstract method trySubmitOperation(). Added abstract getter getNumWorkerThreads(). ParallelWorkQueue.java: Implemented trySubmitOperation() and getter getNumWorkerThreads(). Renamed getNumWorkerThreads() to computeNumWorkerThreads() + moved it to WorkQueue. TraditionalWorkQueue.java: Implemented trySubmitOperation() and getter getNumWorkerThreads(). Renamed getNumWorkerThreads() to computeNumWorkerThreads() + moved it to WorkQueue. Extacted overloaded method submitOperation(Operation, boolean) from submitOperation(Operation). ClientConnection.java, JmxClientConnection.java, HTTPClientConnection.java, InternalClientConnection.java, MockClientConnection.java, LDAPClientConnection.java: Added abstract method isConnectionValid() + implemented it in subclasses. 02-config.ldif, HTTPConnectionHandlerConfiguration.xml: Added property max-concurrent-ops-per-connection

/forgerock/opendj2/resource/schema/02-config.ldif /forgerock/opendj2/src/admin/defn/org/opends/server/admin/std/HTTPConnectionHandlerConfiguration.xml /forgerock/opendj2/src/admin/messages/HTTPConnectionHandlerCfgDefn.properties /forgerock/opendj2/src/server/org/opends/server/api/ClientConnection.java /forgerock/opendj2/src/server/org/opends/server/api/WorkQueue.java /forgerock/opendj2/src/server/org/opends/server/core/AbandonOperationWrapper.java /forgerock/opendj2/src/server/org/opends/server/core/BoundedWorkQueueStrategy.java /forgerock/opendj2/src/server/org/opends/server/core/DirectoryServer.java /forgerock/opendj2/src/server/org/opends/server/core/ExtendedOperationWrapper.java /forgerock/opendj2/src/server/org/opends/server/core/UnbindOperationWrapper.java ParallelWorkQueue.java TraditionalWorkQueue.java /forgerock/opendj2/src/server/org/opends/server/protocols/http/SdkConnectionAdapter.java /forgerock/opendj2/src/server/org/opends/server/protocols/internal/InternalClientConnection.java /forgerock/opendj2/src/server/org/opends/server/protocols/jmx/JmxClientConnection.java /forgerock/opendj2/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java /forgerock/opendj2/tests/unit-tests-testng/src/server/org/opends/server/core/networkgroups/MockClientConnection.java
698a6b7c3937597f6d6e0ec3dbc79d9b9fc8a085 8652 26-Mar-2013 JnRouvignac

OPENDJ-832 Leverage the work queue for processing requests received on the HTTP connection handler Code cleanup: More AbstractOperation => Operation. Converted java comments to javadocs. Added @Override annotations.

/forgerock/opendj2/src/server/org/opends/server/core/QueueingStrategy.java /forgerock/opendj2/src/server/org/opends/server/core/SynchronousStrategy.java /forgerock/opendj2/src/server/org/opends/server/core/WorkQueueStrategy.java ParallelWorkQueue.java /forgerock/opendj2/src/server/org/opends/server/protocols/internal/InternalClientConnection.java /forgerock/opendj2/src/server/org/opends/server/protocols/jmx/JmxClientConnection.java /forgerock/opendj2/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java /forgerock/opendj2/src/server/org/opends/server/replication/plugin/LDAPReplicationDomain.java /forgerock/opendj2/src/server/org/opends/server/replication/protocol/DeleteMsg.java /forgerock/opendj2/src/server/org/opends/server/replication/protocol/LDAPUpdateMsg.java /forgerock/opendj2/src/server/org/opends/server/replication/protocol/ModifyDNMsg.java /forgerock/opendj2/src/server/org/opends/server/replication/protocol/ModifyMsg.java /forgerock/opendj2/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java /forgerock/opendj2/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/AssuredReplicationPluginTest.java /forgerock/opendj2/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/HistoricalTest.java
748b8e6dae732515ff8e5af17323cdd6b18d6ad8 8651 26-Mar-2013 JnRouvignac

OPENDJ-832 Leverage the work queue for processing requests received on the HTTP connection handler Code cleanup: Changed code from using AbstractOperation abstract class to using Operation interface instead. Operation.java Now extends Runnable. OperationWrapper.java Consequence of the change to Operation.java. WorkQueue.java: In submitOperation(), used Operation interface instead of AbstractOperation abstract class. DirectoryServer.java: In enqueueRequest() used Operation interface instead of AbstractOperation abstract class. Removed CLASS_NAME constant, used this class's name in getClassName(). ParallelWorkerThread.java: Changed instance member operation from AbstractOperation abstract class to Operation interface. ParallelWorkQueue.java: Changed instance member opQueue from ConcurrentLinkedQueue<AbstractOperation> to ConcurrentLinkedQueue<Operation>. In submitOperation(), nextOperation() and retryNextOperation(), used Operation interface instead of AbstractOperation abstract class. TraditionalWorkerThread.java Changed instance member operation from AbstractOperation abstract class to Operation interface. In shutDown() used Operation interface instead of AbstractOperation abstract class. TraditionalWorkQueue.java Changed instance member opQueue from LinkedBlockingQueue<AbstractOperation> to LinkedBlockingQueue<Operation>. In initializeWorkQueue(), submitOperation(), nextOperation(), retryNextOperation() and applyConfigurationChange(), used Operation interface instead of AbstractOperation abstract class. In applyConfigurationChange(), remove a duplicate condition check. All files: Converted java comments to javadocs. Added @Override annotations.

b15d540be773e373395e1850f9110a04e201abe5 6597 18-Sep-2010 matthew_swift

Refactor configuration of maximum persistent search resource limits

/forgerock/opendj2/resource/config/config.ldif /forgerock/opendj2/resource/schema/02-config.ldif /forgerock/opendj2/src/admin/defn/org/opends/server/admin/std/GlobalConfiguration.xml /forgerock/opendj2/src/admin/defn/org/opends/server/admin/std/WorkQueueConfiguration.xml /forgerock/opendj2/src/admin/messages/GlobalCfgDefn.properties /forgerock/opendj2/src/admin/messages/ParallelWorkQueueCfgDefn.properties /forgerock/opendj2/src/admin/messages/TraditionalWorkQueueCfgDefn.properties /forgerock/opendj2/src/admin/messages/WorkQueueCfgDefn.properties /forgerock/opendj2/src/server/org/opends/server/api/WorkQueue.java /forgerock/opendj2/src/server/org/opends/server/core/CoreConfigManager.java /forgerock/opendj2/src/server/org/opends/server/core/DirectoryServer.java ParallelWorkQueue.java TraditionalWorkQueue.java /forgerock/opendj2/tests/unit-tests-testng/src/server/org/opends/server/controls/PersistentSearchControlTest.java
cf0351f3466da3bb32d25fa5b39a8ac76891ae93 6558 30-Jul-2010 ludovicp

Implements a configurable limit in the number of persistent searches a server can handle.

/forgerock/opendj2/resource/schema/02-config.ldif /forgerock/opendj2/src/admin/defn/org/opends/server/admin/std/WorkQueueConfiguration.xml /forgerock/opendj2/src/admin/messages/ParallelWorkQueueCfgDefn.properties /forgerock/opendj2/src/admin/messages/TraditionalWorkQueueCfgDefn.properties /forgerock/opendj2/src/admin/messages/WorkQueueCfgDefn.properties /forgerock/opendj2/src/messages/messages/config.properties /forgerock/opendj2/src/messages/messages/core.properties /forgerock/opendj2/src/server/org/opends/server/api/WorkQueue.java /forgerock/opendj2/src/server/org/opends/server/core/DirectoryServer.java /forgerock/opendj2/src/server/org/opends/server/core/PersistentSearch.java ParallelWorkQueue.java TraditionalWorkQueue.java /forgerock/opendj2/src/server/org/opends/server/tools/LDAPSearch.java /forgerock/opendj2/src/server/org/opends/server/workflowelement/localbackend/LocalBackendSearchOperation.java /forgerock/opendj2/tests/unit-tests-testng/src/server/org/opends/server/controls/PersistentSearchControlTest.java
9158866837ac91b57163185b11014bea466fd6ef 6549 30-Jul-2010 ludovicp

Implements a disk space thresholds feature, preventing the server from crashing or exiting of disks full. Each instance of the monitor have two thresholds: "low" and "full". Other components can register their own handlers if they wish to receive notifications when the thresholds are reached. It extends the MonitorProvider interface and utilizes the update interval mechanism to poll the free disk space. The current free space and state of all monitor instances are exposed through the cn=monitor interface under the cn=Disk Space Monitor branch. The only component using the monitor now is the JE backend. When the "low" threshold is reached, write operations will only be permitted to users with the BYPASS_LOCKDOWN privilege. When the "full" threshold is reached, the backend is placed in read-only mode. The default "low" and "full" thresholds are 100 MB and 10MB respectively. Along with the new feature, this patch also added two privileges: SERVER_LOCKDOWN and BYPASS_LOCKDOWN. Any user with the SERVER_LOCKDOWN privilege can put and take the server out of lockdown mode. Any user with the BYPASS_LOCKDOWN mode can bypass lockdown mode. This was restricted to only "root" users before. In addition, the MonitorProvider abstract class no longer extends DirectoryThread. It now uses a static single threaded ScheduledExecutorService to update provider states. Any provider that wishes to have its state updated periodically needs to register its updater runnable with the scheduleUpdate method.

/forgerock/opendj2/resource/config/config.ldif /forgerock/opendj2/resource/schema/02-config.ldif /forgerock/opendj2/src/admin/defn/org/opends/server/admin/std/GlobalConfiguration.xml /forgerock/opendj2/src/admin/defn/org/opends/server/admin/std/LocalDBBackendConfiguration.xml /forgerock/opendj2/src/admin/defn/org/opends/server/admin/std/RootDNConfiguration.xml /forgerock/opendj2/src/admin/messages/GlobalCfgDefn.properties /forgerock/opendj2/src/admin/messages/LocalDBBackendCfgDefn.properties /forgerock/opendj2/src/admin/messages/RootDNCfgDefn.properties /forgerock/opendj2/src/messages/messages/core.properties /forgerock/opendj2/src/messages/messages/jeb.properties /forgerock/opendj2/src/messages/messages/task.properties /forgerock/opendj2/src/messages/messages/tools.properties /forgerock/opendj2/src/server/org/opends/server/api/DiskSpaceMonitorHandler.java /forgerock/opendj2/src/server/org/opends/server/api/MonitorProvider.java /forgerock/opendj2/src/server/org/opends/server/backends/jeb/BackendImpl.java /forgerock/opendj2/src/server/org/opends/server/backends/jeb/RootContainer.java /forgerock/opendj2/src/server/org/opends/server/core/MonitorConfigManager.java /forgerock/opendj2/src/server/org/opends/server/core/RootPrivilegeChangeListener.java /forgerock/opendj2/src/server/org/opends/server/core/networkgroups/NetworkGroupStatistics.java DiskSpaceMonitor.java ParallelWorkQueue.java TraditionalWorkQueue.java /forgerock/opendj2/src/server/org/opends/server/monitors/BackendMonitor.java /forgerock/opendj2/src/server/org/opends/server/monitors/ClientConnectionMonitorProvider.java /forgerock/opendj2/src/server/org/opends/server/monitors/ConnectionHandlerMonitor.java /forgerock/opendj2/src/server/org/opends/server/monitors/DatabaseEnvironmentMonitor.java /forgerock/opendj2/src/server/org/opends/server/monitors/EntryCacheMonitorProvider.java /forgerock/opendj2/src/server/org/opends/server/monitors/MemoryUsageMonitorProvider.java /forgerock/opendj2/src/server/org/opends/server/monitors/ParallelWorkQueueMonitor.java /forgerock/opendj2/src/server/org/opends/server/monitors/StackTraceMonitorProvider.java /forgerock/opendj2/src/server/org/opends/server/monitors/SystemInfoMonitorProvider.java /forgerock/opendj2/src/server/org/opends/server/monitors/TraditionalWorkQueueMonitor.java /forgerock/opendj2/src/server/org/opends/server/monitors/VersionMonitorProvider.java /forgerock/opendj2/src/server/org/opends/server/protocols/ldap/LDAPStatistics.java /forgerock/opendj2/src/server/org/opends/server/replication/server/DbHandler.java /forgerock/opendj2/src/server/org/opends/server/replication/server/DraftCNDbHandler.java /forgerock/opendj2/src/server/org/opends/server/replication/server/ECLServerHandler.java /forgerock/opendj2/src/server/org/opends/server/replication/server/LightweightServerHandler.java /forgerock/opendj2/src/server/org/opends/server/replication/server/MessageHandler.java /forgerock/opendj2/src/server/org/opends/server/replication/server/ReplicationServerDomain.java /forgerock/opendj2/src/server/org/opends/server/replication/server/ServerHandler.java /forgerock/opendj2/src/server/org/opends/server/replication/service/ReplicationMonitor.java /forgerock/opendj2/src/server/org/opends/server/tasks/EnterLockdownModeTask.java /forgerock/opendj2/src/server/org/opends/server/tasks/LeaveLockdownModeTask.java /forgerock/opendj2/src/server/org/opends/server/types/Privilege.java /forgerock/opendj2/src/server/org/opends/server/util/ServerConstants.java /forgerock/opendj2/src/server/org/opends/server/workflowelement/WorkflowElementStatistics.java /forgerock/opendj2/src/server/org/opends/server/workflowelement/localbackend/LocalBackendBindOperation.java /forgerock/opendj2/src/server/org/opends/server/workflowelement/ndb/NDBBindOperation.java /forgerock/opendj2/tests/unit-tests-testng/src/server/org/opends/server/monitors/GenericMonitorTestCase.java /forgerock/opendj2/tests/unit-tests-testng/src/server/org/opends/server/monitors/TestMonitorProvider.java /forgerock/opendj2/tests/unit-tests-testng/src/server/org/opends/server/replication/StressTest.java
a7f8ccd495f7667687747c1d22a6397097b77272 5956 09-Oct-2009 abobrov

- EXPERIMENTAL Parallel Work Queue implementation.