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

Ivan Bessonov updated IGNITE-26995:
-----------------------------------
    Description: 
Currently a closure from {{runConsistently}} does not consider internal needs 
of an engine. For example, in {{aipersist}} checkpointer may already wait for 
{{writeLock}} acquisition, while "we" continue doing some work in our closure, 
stalling the entire system.

We should provide an additional API to give users an option to stop the 
execution preemptively in case if engine needs resources, something like this:
{code:java}
interface Locker {
    ...
    boolean shouldRelease();
    ...
} {code}
I suggest not renaming the {{Locker}} class itself, that would bring too many 
unnecessary changes.

 

We need to implement this method for all existing engines, but only 
{{aipersist}} will have a meaningful implementation though (everything else 
will always return {{{}false{}}}).

  was:
Currently a closure from {{runConsistently}} does not consider internal needs 
of an engine. For example, in {{aipersist}} checkpointer may already wait for 
{{writeLock}} acquisition, while "we" continue doing some work in our closure, 
stalling the entire system.

We should provide an additional API to give users an option to stop the 
execution preemptively in case if engine needs resources, something like this:
{code:java}
interface Locker {
    ...
    boolean shouldRelease();
    ...
} {code}
I suggest not renaming the {{Locker}} class itself, that would bring too many 
unnecessary changes.

 


> Enrich MvPartitionStorage.Locker with a "stop" hint
> ---------------------------------------------------
>
>                 Key: IGNITE-26995
>                 URL: https://issues.apache.org/jira/browse/IGNITE-26995
>             Project: Ignite
>          Issue Type: Improvement
>          Components: storage engines ai3
>            Reporter: Ivan Bessonov
>            Assignee: Ivan Bessonov
>            Priority: Major
>              Labels: ignite-3
>
> Currently a closure from {{runConsistently}} does not consider internal needs 
> of an engine. For example, in {{aipersist}} checkpointer may already wait for 
> {{writeLock}} acquisition, while "we" continue doing some work in our 
> closure, stalling the entire system.
> We should provide an additional API to give users an option to stop the 
> execution preemptively in case if engine needs resources, something like this:
> {code:java}
> interface Locker {
>     ...
>     boolean shouldRelease();
>     ...
> } {code}
> I suggest not renaming the {{Locker}} class itself, that would bring too many 
> unnecessary changes.
>  
> We need to implement this method for all existing engines, but only 
> {{aipersist}} will have a meaningful implementation though (everything else 
> will always return {{{}false{}}}).



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

Reply via email to