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)