ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ivan Rakov <ivan.glu...@gmail.com>
Subject Re: Ignite.close(), G.stop(name, true). Change flag cancel to false
Date Fri, 04 Aug 2017 07:54:17 GMT
Dmitriy,

 From my point of view, invoking stop(true) is correct behaviour.

Stopping node in the middle of checkpoint is absolutely valid case. 
That's how persistence works - node will restore memory state if stopped 
at any moment.
On the other hand, checkpoint may last for a long time. Thread hanging 
on Ignite.close() may confuse user much more than "crashed in the middle 
of checkpoint" message.

Best Regards,
Ivan Rakov

On 03.08.2017 22:34, Dmitry Pavlov wrote:
> Hi Igniters,
>
> I’ve created the simplest example using Ignite 2.1 and persistence (see the
> code below). I've included Ignite instance into try-with-resources (I think
> it is default approach for AutoCloseable inheritors).
>
> But next time when I started this server I got message: “Ignite node
> crashed in the middle of checkpoint. Will restore memory state and enforce
> checkpoint on node start.”
>
> This happens because in close() method we don’t wait checkpoint to end. I
> am afraid this behaviour may confuse users on the first use of the product.
>
> What do you think if we change Ignite.close() functioning from stop(true)
> to stop(false)? This will allow to wait checkpoints to finish by default.
>
> Alternatively, we may improve example to show how to shutdown server node
> correctly. Current PersistentStoreExample does not cover server node
> shutdown.
>
> Any concerns on close() method change?
>
> Sincerely,
> Dmitriy Pavlov
>
>
> IgniteConfiguration cfg = new IgniteConfiguration();
> cfg.setPersistentStoreConfiguration(new PersistentStoreConfiguration());
>
> try (Ignite ignite = Ignition.start(cfg)){
>     ignite.active(true);
>     IgniteCache<String, String> cache = ignite.getOrCreateCache("test");
>
>     for (int i = 0; i < 1000; i++)
>           cache.put("Key" + i, "Value" + i);
> }
>


Mime
View raw message