Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

ClientCompute#executeAsync returns plain j.u.c.Future, which does not provide completion callbacks or chaining, this should be changed (deprecate old method and create a new one).

Future Completion Thread

Thin client responses are processed by a dedicated thin-client-channel thread (see TcpClientChannel#RECEIVER_THREAD_PREFIX usages). This thread calls GridFutureAdapter#onDone for the corresponding ClientRequestFuture when an operation completes. With a naïve implementation, we would wrap ClientRequestFuture in IgniteFutureImpl and return the result to the user code. However, if the user code calls IgniteFuture#listen, listeners will be executed by the same thin-client-channel thread, potentially capturing that thread forever, so no more client responses can be processed.

Risks and Assumptions

// Describe project risks, such as API or binary compatibility issues, major protocol changes, etc.

...