Hi Ilya,

That is the current method we use to stop the grid.

However, this can leave uncheckpointed changes in the in-memory stores
(only in the WAL), so when we restart the grid it goes into the cache
recovery mode which is very slow.

Raymond.

On Thu, Feb 18, 2021 at 3:34 AM Ilya Kasnacheev <ilya.kasnach...@gmail.com>
wrote:

> Hello!
>
> Why can't you just use Ignite.stop(instanceName, false)?
>
> Just make sure your projections are not singleton and the tasks will be
> rolled over.
>
> Regards,
> --
> Ilya Kasnacheev
>
>
> вт, 9 февр. 2021 г. в 06:41, Raymond Wilson <raymond_wil...@trimble.com>:
>
>> All,
>>
>> We have a very similar requirement as described in this item:
>> https://issues.apache.org/jira/browse/IGNITE-10872
>>
>> Namely, when removing a node from a Ignite grid, we want to do two things:
>>
>> 1. Prevent new requests from reaching it
>> 2. Allow all running requests the node is involved in to complete before
>> it terminates.
>>
>> The solution outlined in 10872 partially solves these elements within our
>> architecture in that it allows Ignite to pause shutdown of the node until
>> all requests are completed (and, I assume, prevent new requests from
>> reaching the node being shut down).
>>
>> In our architecture the phrase 'requests the node is involved in' made be
>> opaque from the context on Ignite due to an asynchronous calling model we
>> are using to permit very large numbers of concurrent requests to execute
>> without saturating the Ignite thread pools. What this means is that a node
>> that may be a candidate to be shut down may be waiting for a response from
>> another node on the grid in a way that Ignite can't see, so would determine
>> the node was safe to shut down when it is not.
>>
>> A good example of this in our system is an Apply style Ignite call where
>> the request is sent to one of a set of nodes. That set of nodes may scale
>> in/out due to request demand. On a scale in operation, the node to be
>> removed needs to be excluded from the topology projection constructed to
>> perform the Apply() against. Once we are satisfied the node has no further
>> request involved (eg: by a simple timeout) then we would proceed with
>> actual shut down of that node.
>>
>> I have not seen any capability in Ignite today where a node can be
>> 'un-blessed'; does one exist? Or should we construct this facility within
>> our application logic layer?
>>
>> Thanks,
>> Raymond.
>>
>>
>> --
>> <http://www.trimble.com/>
>> Raymond Wilson
>> Solution Architect, Civil Construction Software Systems (CCSS)
>> 11 Birmingham Drive | Christchurch, New Zealand
>> raymond_wil...@trimble.com
>>
>>
>> <https://worksos.trimble.com/?utm_source=Trimble&utm_medium=emailsign&utm_campaign=Launch>
>>
>

-- 
<http://www.trimble.com/>
Raymond Wilson
Solution Architect, Civil Construction Software Systems (CCSS)
11 Birmingham Drive | Christchurch, New Zealand
raymond_wil...@trimble.com

<https://worksos.trimble.com/?utm_source=Trimble&utm_medium=emailsign&utm_campaign=Launch>

Reply via email to