> I don't know what most people use in the real world, maybe more experienced 
> guys can clarify that.

My question is different.

Why we may want to provide cancel=true?
Is there any reason to support this in Ignite?

> 18 окт. 2022 г., в 11:47, Aleksandr Polovtsev <alexpolovt...@gmail.com> 
> написал(а):
> 
> Thank you for the response, Nikolay. As I can see, this is the default
> behaviour now (ShutdownPolicy = IMMEDIATE, cancel = true). I don't know
> what most people use in the real world, maybe more experienced guys can
> clarify that.
> 
> On Tue, Oct 18, 2022 at 11:15 AM Николай Ижиков <nizhi...@apache.org> wrote:
> 
>> Hello,
>> 
>> Why do we need «immediate»?
>> Is there real-world scenarios for it?
>> 
>> Can we do graceful or «save all possible data» shutdown always?
>> 
>>> 18 окт. 2022 г., в 10:59, Aleksandr Polovtsev <alexpolovt...@gmail.com>
>> написал(а):
>>> 
>>> Hello, dear Igniters!
>>> 
>>> I'd like to propose a refactoring of the current Shutdown Policy
>> mechanism.
>>> Currently, node shutdown is controlled by a bunch of flags and enums (I
>> may
>>> be missing some of them):
>>> 
>>> 1. ShutdownPolicy enum has only two entries and is basically a flag that
>>> dictates if we need to wait for the data to be backed up, so that we will
>>> not lose any data when the node goes offline.
>>> 2. "cancel" flag is passed to the stop method and indicates that all long
>>> running jobs should be interrupted. For example, it prevents the node
>>> performing a checkpoint on shutdown. I'm pretty sure this flag is nearly
>>> always set to "true", because it is used by the Shutdown Hook.
>>> 3. There are also a bunch of system properties that affect the shutdown:
>>>   * IGNITE_PDS_SKIP_CHECKPOINT_ON_NODE_STOP - disables checkpoints on
>>> node stop, which heavily correlates with the "cancel" flag.
>>>   * IGNITE_WAIT_FOR_BACKUPS_ON_SHUTDOWN - deprecated and duplicates the
>>> ShutdownPolicy enum
>>>   * IGNITE_NO_SHUTDOWN_HOOK - disables the shutdown hook. I don't know
>> if
>>> it is really useful.
>>> 
>>> I think that this approach is counter intuitive and would like to
>>> incorporate all aforementioned flags into the ShutdownPolicy enum. For
>>> example, it can look as follows:
>>> 
>>> public enum ShutdownPolicy {
>>>   IMMEDIATE // Stops the node and cancels all running jobs
>>>   GRACEFUL // Stops the node, does not cancel running jobs and waits for
>>> backups
>>>   GRACEFUL_NO_BACKUPS // Stops the node, does not cancel running jobs,
>>> does not wait for backups
>>> }
>>> 
>>> After that, the "cancel" flag and all corresponding properties can be
>>> removed (apart from the IGNITE_NO_SHUTDOWN_HOOK, if it is still needed).
>>> 
>>> Does this make sense? What do you think?
>>> 
>>> --
>>> With regards,
>>> Aleksandr Polovtsev
>> 
>> 
> 
> -- 
> With regards,
> Aleksandr Polovtsev

Reply via email to