ton
ton copied to clipboard
When query account state frequently, many actorMessage(load_cell) blocked in mailbox of celldb Actor
When query account state frequently, many actorMessages stuck in mailbox of celldb Actor. All messages blocked in the mailbox can only be processed sequentially by one thread, even if other threads are in an idle state,
Some debug log as below
[ 3][t 3][2024-10-17 03:56:30.821564816][celldb.cpp:447][!celldb] celldb 625
[ 3][t 1][2024-10-17 03:56:30.821591427][CpuWorker.cpp:90] worker 1 try to steal
[ 3][t 1][2024-10-17 03:56:30.821613985][CpuWorker.cpp:52] no message, keep IDLE
[ 3][t 3][2024-10-17 03:56:30.823069531][celldb.cpp:447][!celldb] celldb 624
[ 3][t 3][2024-10-17 03:56:30.824716917][celldb.cpp:447][!celldb] celldb 623
From this log, we can see that there are over 600 messages blocked in the CellDB actor, which are being processed one by one by thread 3. Even though other threads are idle, the load of the load_cell cannot be balanced. Is it possible to add more celldb Actor in RootDb, which can balance the query load.