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)