ignite-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From akaptsan <akapt...@mail.ru>
Subject Re: Two-phase commit failure recovery
Date Sat, 19 Nov 2016 10:43:54 GMT
We do use CacheStore write-through methods. Data are flushed to Kafka which
is used as intermediate persistent queue; data from the Kafka is written
into relational database asyncroniously. So from Ignite perspective it looks
like write-through, but in fact this is fault-tolerant write-behind.
We don't use read-through methods of CacheStore. Cache is pre-loaded by
means of IgniteDataStreamer. All CacheStore loading method are empty. 
We can't use CacheStore loading method because not all data are in database,
some of them can be still in Kafka. And there is no way to find an object
within Kafka queue.

That's why if commit failed Ignite will not be able to automatically ensure
consistency. We need to be able to detect such situation and repair cache
Repairing procedure could be:
- switch off cache usage
- reload cache
- switch on cache usage

Another variant: 
- suspend access to invalid objects
- flush Kafka to database (it can take several seconds)
- reload invalidated object from database

View this message in context: http://apache-ignite-users.70518.x6.nabble.com/Two-phase-commit-failure-recovery-tp9040p9101.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.

View raw message