Search code examples
ignite

Ignite : Persist until server stops


We are using Ignite's distributed datastructure - IgniteQueue. Please find below the Server details

Server 1: Initializes the queue and continuously runs.

Server 2: Producer. Produces contents to the queue. Started now and then

Server 3: Consumer. Consumes contents from the queue. Started now and then

Issue: When there is a time gap of 10 minutes between producer and consumer, the data in the queue is getting lost.

Could you please provide the correct configuration[eviction] that persists the contents in the queue until Server 1 is stopped?

Ultimately there shouldn't be any data loss.


Solution

  • There is no eviction for queues. And by default there are no backups, so most likely when you start and stops servers, you cause rebalancing and eventual loss of some entries. I suggest to do the following:

    • Start consumer and producer as clients rather than servers. Server topology that holds the data should always be as stable as possible.
    • Use CollectionConfiguration#setBackups to configure one or more backups for underlying cache used for the queue. This will help to preserve the state even if one of the server fails.