XAP

Threads Usage

GigaSpaces uses Thread resources in an extensive manner to scale the different activities executed within the JVMClosed Java Virtual Machine. A virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. process. The may happen at the client or server side. Some of the modules within the server or client side (proxy) require some tuning before moving into production. This section describes the important Thread (Thread pools) started and provides information when and how these should be tuned.

Threads List

  • Indicates the thread name includes a running number.
  • SPACE_NAME - Indicates the thread name includes the associated space name using this thread.

All GigaSpaces threads running within the JVM use the GS- prefix as part of their name.

Thread Name Description Configuration Parameters Client
Server
LRMI Selector Accept Responsible for accepting incoming socket connections. Single Thread Server
LRMI async Selector Client side, handles async invocation, i.e executors, asyncRead/take. 4 Threads Server
Pending Answers-pool Responsible for sending a callback to template based waiting operations (read/take). space-config.engine.min_threads
space-config.engine.max_threads
Server
Notifier-pool Responsible to dispatch notification to client side. Used with the Notify Container Java version | .NET version and Session Based Messaging API. See the Scaling Notification Delivery for details. space-config.engine.notify_min_threads
space-config.engine.notify_max_threads
Server
Processor-pool Pool for space operations post processing that can be done asynchronously to user operation. Transaction cleanup, notifications etc. space-config.engine.min_threads
space-config.engine.max_threads
Server
Connection-pool Pool for regualr space operations execution. com.gs.transport_protocol.lrmi.max-threads
com.gs.transport_protocol.lrmi.min-threads
Server
Custom pool Pool for notify and task execution com.gs.transport_protocol.lrmi.custom.
threadpool.min-threads
com.gs.transport_protocol.lrmi.custom.
threadpool.max-threads
Server
System pool Pool for admin operations com.gs.transport_protocol.lrmi.system-priority.threadpool.min-threads
com.gs.transport_protocol.lrmi.system-priority.threadpool.max-threads
Server
SG LeaseReaper Used by the Service GridClosed A built-in orchestration tool which contains a set of Grid Service Containers (GSCs) managed by a Grid Service Manager. The containers host various deployments of Processing Units and data grids. Each container can be run on a separate physical machine. This orchestration is available for XAP only. Single Thread Server
Template Expiration Manager Timer The main thread of expiration manager. Wakes up on each expiration period to find the expired templates. Single Thread per space Server
TemplateExpirationManager-pool# Responsible for sending response to waiting client when their template expires. 16 threads max per space Server
SyncReplicationChannel SPACE_NAME Runs per sync replication channel Dynamically adjusted Server
CapabilityChannel Server
ClassLoaderCache-
SelfCleaningTable
Used to clean up resources of class loaders once terminated (undeploy of processing unitClosed This is the unit of packaging and deployment in the GigaSpaces Data Grid, and is essentially the main GigaSpaces service. The Processing Unit (PU) itself is typically deployed onto the Service Grid. When a Processing Unit is deployed, a Processing Unit instance is the actual runtime entity.) Single Thread Server
TransactionTableHolder-SelfCleaningTable Responsible for cleaning zombie local transactions that were abandoned by the user application without committing. Single thread per GSCClosed Grid Service Container. This provides an isolated runtime for one (or more) processing unit (PU) instance and exposes its state to the GSM. Single Thread per space Server
SLA Monitor Disk Used by the Service Grid. SLA free disk space monitor Single Thread Server
Memory:writer Used by the Service Grid. SLA Memory monitor Single Thread Server
CPU:writer Used by the Service Grid. SLA CPU monitor Single Thread Server
pollingEventContainer# Used with the Polling Container See the Concurrent Consumers Client
LeaseRenewalManager Task Respisible to review resource lease. One per resource Client
JoinManager Task Responsible to communicate with the lookup service Single thread per client proxy Client
Liveness-detector See the Proxy Connectivity for details. Single thread per client proxy Client
Liveness-monitor See the Proxy Connectivity for details. Single thread per client proxy Client
LocalTransactionManagerImpl
$Reaper SPACE_NAME
A thread that reaps expired transactions entries and other objects Single thread per space Server
GSPingManager Used by the Service Grid Server
LeaseManager$Reaper SPACE_NAME See the Lease Manager for details Single Thread per space Server
Cache PersistentGC Responsible for backup activities (cleanup indexes) Single Thread per space Server
SPACE_NAME BackgroundFifoThread3_Notify=false# Threads that use segmentation in order to handle background events like handling waiting templates in a fifo fashion Thread pool per space Server
SPACE_NAME BackgroundFifoThread3_Notify=true# Threads that use segmentation in order to handle background notify events in a fifo fashion Thread pool per space Server
Statistics-Task Server
SPACE_NAME Batch Notifier Used when using batch notifications. See the Batch Events for details. Single Thread per space Server
ActiveFailureDetector Responsible for the active election process. See the Failure Detection for details. Single Thread Server
ProvisionLeaseManager Used by the Service Grid Single Thread Server
Watchdog See the Communication Protocol for details. Single Thread per proxy Client
Scheduled System Boot Thread Used when the system starts Single Thread Server
SLAThresholdTaskPool# Used by the Service Grid Single Thread Server
CapabilityChannel Used by the Service Grid Single Thread Server
DynamicSmartStub-InvHandlerCache-SelfCleaningTable$Cleaner Used by LRMI for background cleanup Single Thread Server
ClassLoaderCache-SelfCleaningTable$Cleaner Used by LRMI to cleanup unused classes Single Thread Server
ProvisionFailurePool# Used by the Service Grid. Monitors the running services Server - GSMClosed Grid Service Manager. This is is a service grid component that manages a set of Grid Service Containers (GSCs). A GSM has an API for deploying/undeploying Processing Units. When a GSM is instructed to deploy a Processing Unit, it finds an appropriate, available GSC and tells that GSC to run an instance of that Processing Unit. It then continuously monitors that Processing Unit instance to verify that it is alive, and that the SLA is not breached.
ProvisionPool# Used by the Service Grid. Monitors the running services Server - GSM
ProvisionMonitorEventPool# Used by the Service Grid. Monitors the running services Server - GSM
Reggie Comm Task-pool# Used by the Service Grid. Monitors the running services Server - GSM
SDM Cache Task Used by the Service Grid. Server - GSM
unicast request Used by the Service Grid. Server - GSM
service expire Used by the Service Grid. Server - GSM
Webster Runner Used by the Service Grid. Server - GSM
Event Lease Manager Used by the Service Grid. Server - GSM
Fault Detection Handler Used by the Service Grid. Server - GSM