You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@iotdb.apache.org by "Tian Jiang (Jira)" <ji...@apache.org> on 2021/06/21 12:55:00 UTC
[jira] [Created] (IOTDB-1447) [Distributed] ClientPool is blocking
other nodes when one node fails
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)