The following table describes some background threads of OBServer nodes and their functions. In most cases, you do not need to pay attention to how these threads are implemented.
Note
Background threads are optimized along with the iteration of OBServer node versions. During the iteration process, some background threads may be eliminated or merged, and some new ones may be introduced.
| Thread | Level | Module | Thread quantity | Description |
|---|---|---|---|---|
| FrzInfoDet | Tenant | Transaction | 2 | Periodicity checks for new freeze_info. |
| LockWaitMgr | Tenant | Transaction | 1 | Periodically checks for lock transactions, such as timeout and wake-up. |
| TenantWeakRe | Tenant | Transaction | 1 | Generates timestamps for reads on the tenant-level standby server. |
| TransService | Tenant | Transaction | 1 | The asynchronous task that handles background processing within the transaction module, for example, pushing checkpoints of Ls. |
| TransTimeWhe | Tenant | Transaction | max(cpu_num/24, 2) | The scheduled task for handling 2PC processes of transactions. |
| TsMgr | Process | Transaction | 1 | The background task processing thread of GTS, for example, for deleting useless tenants and refreshing GTS of each tenant. |
| TSWorker | Process | Transaction | 1 | Handles the results returned by remote GTS access and calls back transactions. |
| TxLoopWorker | Tenant | Transaction | 1 | The background scheduled task of the transaction module. |
| ArbSer | Process | OS | 1 | Loads configuration parameters from the configuration file at regular intervals for the arbitration server. |
| Blacklist | Process | OS | 2 | Detects network connection with the destination server. |
| ConfigMgr | Process | OS | 1 | Refreshes parameters. |
| L0_G0 | Tenant | OS | 2+min_cpu * cpu_quota_concurrency | Handles most of the requests from the current tenant. |
| L2_G0 | Tenant | OS | 1 | Specifically handles requests at a nesting level of 2. |
| L3_G0 | Tenant | OS | 1 | Specifically handles requests at a nesting level of 3. |
| L4_G0 | Tenant | OS | 1 | Specifically handles requests at a nesting level of 4. |
| L5_G0 | Tenant | OS | 1 | Specifically handles requests at a nesting level of 5. |
| L6_G0 | Tenant | OS | 1 | Specifically handles requests at a nesting level of 6. |
| L7_G0 | Tenant | OS | 1 | Specifically handles requests at a nesting level of 7. |
| L8_G0 | Tenant | OS | 1 | Specifically handles requests at a nesting level of 8. |
| L9_G0 | Tenant | OS | 1 | Specifically handles requests at a nesting level of 9. |
| LuaHandler | Process | OS | 1 | Handles Lua requests for emergency scenarios to read the internal status of the observer process. |
| MemDumpTimer | Process | OS | 1 | Prints MEMORY logs at regular intervals. |
| MemoryDump | Process | OS | 1 | Collects memory statistics at regular intervals. |
| MultiTenant | Process | OS | 1 | Refreshes CPU utilization for multiple tenants to schedule resources. |
| OB_PLOG | Process | OS | 1 | Asynchronously prints diagnostic logs of the observer process. |
| pnio | Process | OS | The quantity is determined by the net_thread_count parameter. |
The network IO thread for the new network framework pkt-nio. |
| pnlisten | Process | OS | 1 | Listens to the RPC port and forwards RPC connections to the network IO thread. |
| SignalHandle | Process | OS | 1 | Processes signals. |
| SignalWorker | Process | OS | 1 | Asynchronously processes signals. |
| L0_G2 | Tenant | Election | 8 at least, determined by the min_cpu parameter |
Specifically handles election requests. |