Igniters,

I'm working on IEP-51 [1] to make Java thin client truly async
and make sure user threads are never blocked
(right now socket writes are performed from user threads).

I've investigated potential approaches and came to the conclusion
that Netty [2] is our best bet.
- Nice Future-based async API => will greatly reduce our code complexity
  and remove manual thread management
- Potentially reduced resource usage - share EventLoopGroop across all
connections within one IgniteClient
- SSL is easy to use
- Proven performance and reliability

Other approaches, like AsynchronousSocketChannel or selectors, seem to be
too complicated,
especially when SSL comes into play.
We should focus on Ignite-specific work instead of spending time on
reinventing async IO.

The obvious downside is an extra dependency in the core module.
However, I heard some discussions about using Netty for GridNioServer in
future.

Let me know your thoughts.

Pavel

[1]
https://cwiki.apache.org/confluence/display/IGNITE/IEP-51%3A+Java+Thin+Client+Async+API
[2] https://netty.io

Reply via email to