Hi guys, I'll just add my opinion if you don't mind.

> May be we should implement Vladimir's suggestion to flush the pages
without
> respect to the cancel flag? Are there any thoughts on this?

I think It's  good suggestion.
But in case of unit-testing a developer usually call #stopAllGrids() at the
end of all tests.
The method GridAbstactTest#stopAllGrids() is built on top of the
method G.stop(name,
true) including.
IMO in that case checkpoints' flushing isn't necessary.


2017-08-04 13:25 GMT+03:00 Dmitry Pavlov <dpavlov....@gmail.com>:

> Thank you all for replies.
>
> I like idea to replace 'crashed' to 'stop'.  'crashed' word is really
> confusing.
>
> But still, if I call close () on file, all data is flushed to disk. But for
> ignite.close () checkpoint may be not finished.
>
> May be we should implement Vladimir's suggestion to flush the pages without
> respect to the cancel flag? Are there any thoughts on this?
>
> пт, 4 авг. 2017 г. в 11:12, Vladimir Ozerov <voze...@gridgain.com>:
>
> > Ivan,
> >
> > Hanging on Ignite.close() will confuse user no more than restore on start
> > after graceful shutdown. IMO correct approach here would be to:
> > 1) wait for checkpoint completion irrespective of "cancel" flag, because
> > this flag relates to compute jobs only as per documentation
> > 2) print an INFO message to the log that we are saving a checkpoint due
> to
> > node stop.
> >
> > On Fri, Aug 4, 2017 at 10:54 AM, Ivan Rakov <ivan.glu...@gmail.com>
> wrote:
> >
> > > 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);
> > >> }
> > >>
> > >>
> > >
> >
>



-- 
Best Regards, Vyacheslav D.

Reply via email to