ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexander Menshikov (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (IGNITE-4699) Introduce custom configurable executors.
Date Mon, 27 Mar 2017 16:36:42 GMT

    [ https://issues.apache.org/jira/browse/IGNITE-4699?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15943583#comment-15943583

Alexander Menshikov commented on IGNITE-4699:

Thank you for answer. As far as I know Akka's dispatchers exist not for avoid deadlock, but
for using different schedule algorithms (like create a thread for every task in IO-dispatcher,
but create fix number of thread for computing-dispatcher). I agree with your argument for
first two alternative.

> Also we do not want to precisely control subtasking on our own because we will have to
propagate execution chains to our messages and to various thread-local mechanics, what will
make our engine less efficient.

Did I understand you correctly, this mechanism will not be the main and this task will be
solved only for the sake of appearance? And this is a reason why we need simpler implementation?

I am asking because I still think it's hard for user to manage thread pools. You said "If
you have more or less complex application on top of the grid with some level of abstractions
and asynchrony, it is nearly impossible to know whether you have nested call or not ...",
but it also applies to thread pools management.

> Introduce custom configurable executors.
> ----------------------------------------
>                 Key: IGNITE-4699
>                 URL: https://issues.apache.org/jira/browse/IGNITE-4699
>             Project: Ignite
>          Issue Type: Task
>          Components: compute
>            Reporter: Vladimir Ozerov
>            Assignee: Alexander Menshikov
>              Labels: important
>             Fix For: 2.0
> We need to provide a way to configure custom thread pools for user compute tasks. 
> Proposed API:
> 1) Config
> {code}
> class ExecutorConfiguration {
>     String name;
>     int size;
> }
> {code}
> 2) Choosing executor for compute task:
> {code}
> IgniteCompute compute = Ignite.compute().withExecutor("my_exec");
> {code}
> 3) Accessing raw executor (could be required for proper execution of future listeners):
> {code}
> ThreadPoolExecutor exec = ignite.compute().localExecutor("my_exec");
> {code}

This message was sent by Atlassian JIRA

View raw message