Tian Jiang created IOTDB-1447: --------------------------------- Summary: [Distributed] ClientPool is blocking other nodes when one node fails Key: IOTDB-1447 URL: https://issues.apache.org/jira/browse/IOTDB-1447 Project: Apache IoTDB Issue Type: Bug Components: Core/Cluster Reporter: Tian Jiang Assignee: Tian Jiang Fix For: master branch
When one node is unreachable (not reachable but no server available) through the network, the communication with other nodes slows down significantly. The reason is that the ClientPool use itself as a lock for concurrent safety, so when one node fails, a thread that tries to get a client of the failing node will be stuck in the synchronization block and other threads cannot enter until that thread times out during establishing a connection. The solution is simple, ClientPool should use the client stack of each node as the synchronizer rather than itself. -- This message was sent by Atlassian Jira (v8.3.4#803005)