[
https://issues.apache.org/jira/browse/IGNITE-11296?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Igor Kamyshnikov updated IGNITE-11296:
--------------------------------------
Attachment: (was: PrimaryBackupTest.java)
> 3rd-party persistence: Backup and primary partitions data differ after a
> single IgniteCache.get that loaded data from the persistent store which
> breaks skipStore and Ignite JDBC behavior
> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: IGNITE-11296
> URL: https://issues.apache.org/jira/browse/IGNITE-11296
> Project: Ignite
> Issue Type: Bug
> Components: cache, cassandra
> Affects Versions: 2.5, 2.7
> Reporter: Igor Kamyshnikov
> Priority: Major
> Attachments: PrimaryBackupTest.java
>
>
> 1) run 2 ignite servers on different machines
> (this is important because of
> org.apache.ignite.internal.processors.cache.GridCacheContext#selectAffinityNodeBalanced
> - it takes into account MACs)
> the cache under test should be partitioned with backups = 1.
> 2) run cassandra and insert some records into cassandra
> 3) connect to the ignite cluster as Ignite client node and invoke
> IgniteCache.get(pk);
> for the existing pk. This will load data into caches.
> 4) execute IgniteCache.withSkipStore().get(pk) several times
> The values returned will be randomly NULLs or non-NULLs.
> 5) depending on a chance, the data loaded in 3) can appear in primary
> partition or backup partition. If they are in backup partition, then they are
> not visible to Ignite JDBC.
> Various techniques with ignite.affinity.mapKeyToPrimaryAndBackups and
> {noformat}ignite.compute.call(() -> { cache.localPeek }){noformat} prove that
> either backup partition or primary partition does not contain data after p.
> 3).
> However, cache.loadCache(null) loads all the data in both primary and backup
> partitions.
> Self describing demo code added: [^PrimaryBackupTest.java] :
> 1) create nodes with different MACs
> 2) create a test cache <Integer,Integer> with a number of backup partitions
> 3) implicitely load several keys, making sure we found all the keys that have
> at least one empty partition after implicit load.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)