[ 
https://issues.apache.org/jira/browse/IGNITE-18853?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Roman Puchkovskiy updated IGNITE-18853:
---------------------------------------
    Labels: ignite-3 storage-threading threading  (was: ignite-3 
storage-threading)

> Introduce thread types to thread pools
> --------------------------------------
>
>                 Key: IGNITE-18853
>                 URL: https://issues.apache.org/jira/browse/IGNITE-18853
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Ivan Bessonov
>            Priority: Major
>              Labels: ignite-3, storage-threading, threading
>
> Like in Ignite 2.x, we need to have custom classes for threads, with custom 
> properties.
> Currently, I can only say that we use custom thread types in network, for 
> event loops I guess. That's not enough, here's why.
> Given the wide adoption of async code, developers struggle to understand, 
> what thread executes the actual operation. For example, "thenCompose" or 
> "whenComplete" closure is being executed in whatever thread that completes 
> the future, and quite often it's not the thread that we want.
> Also, we shouldn't use default fork-join pool, for example. We should force 
> most operations to our own pools.
> To make everything more clear, we have to mark threads with at least 
> following categories:
>  * can perform storage reads
>  * can perform storage writes
>  * can perform network IO operations
>  * can be safely blocked
>  * etc.
> Once we know for sure that the thread fits the operation, we can execute it. 
> Ideally, that should be an assertion and not a runtime logic.
> This will also help us finding existing bugs and bottlenecks.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to