Mikhail Petrov created IGNITE-29004:
---------------------------------------
Summary: Refactor ClientImpl to use single instance of
TcpDiscoveryIoSession per connection
Key: IGNITE-29004
URL: https://issues.apache.org/jira/browse/IGNITE-29004
Project: Ignite
Issue Type: Task
Reporter: Mikhail Petrov
Currently, ClientImpl creates two separate sessions for a single connection to
a server node:
- org.apache.ignite.spi.discovery.tcp.ClientImpl.SocketWriter#setSocket
- org.apache.ignite.spi.discovery.tcp.ClientImpl.SocketReader#setSocket
We need to refactor this approach so that each session corresponds to exactly
one connection to a remote node. This will allow us to encapsulate all
P2P-related data associated with the connection within the session instance.
This will allow us to eliminate the confusing SocketStream abstraction and rely
solely on the session instance.
NOTE:
Currently, TcpDiscoveryIoSession is designed to be used in one direction only:
either for reading from or writing to a socket. This is why two separate
sessions are required on the client node side.
We need to revise this approach and make a session responsible for
communication in both directions. This will require introducing separate
buffers for reading from and writing to the socket.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)