Versions Compared

Key

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

...

Code Block
languagec#
await cache.PutAsync(1, 1);
// Now we are on a Striped pool!

// CPU-heavy method blocks the stripe and cache ops are stalled
RunSomething();


Description

  • Add IgniteConfiguration#asyncContinuationExecutor (of type Executor).
  • Use ForkJoinPool#commonPool by default (when null / not set).
  • Use this executor for all Cache and Compute async continuations

NOTE: This IEP is NOT related to scan query filters, cache entry processors, etc, which also run on Striped pool// Provide the design of the solution.

Risks and Assumptions

  • Some users may already have custom code to deal with the problem.
  • Some users run simple continuations that work fine on the striped/public pool.

Those users can force the old behavior with `IgniteConfiguration.setAsyncContinuationExecutor(Runnable::run)`// Describe project risks, such as API or binary compatibility issues, major protocol changes, etc.

Discussion Links

// Links to discussions on the devlist, if applicable.

Reference Links

PoC: https:// Links to various reference documents, if applicable.github.com/apache/ignite/pull/8870

Tickets


Jira
serverASF JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
maximumIssues20
jqlQuerylabels=iep-70
serverId5aa69414-a9e9-3523-82ec-879b028fb15b