But i managed to read dirty. That is my example :

Ignite ignite0 = ignite(0);
IgniteTransactions transactions = ignite0.transactions();
IgniteCache<String, String> cache = ignite0.getOrCreateCache("testCache");
Object monitor = new Object();

GridTestUtils.runAsync(new Callable<Object>() {
    @Override
    public Object call() throws Exception {
        synchronized (monitor){
            doInTransaction(ignite(1), new Callable<Object>() {
                @Override
                public Object call() throws Exception {
                    cache.put("key1", "val1");
                    monitor.wait();
                    return null;
                }
            });
        }
        return null;
    }
});

Transaction tx =
transactions.txStart(TransactionConcurrency.OPTIMISTIC,
TransactionIsolation.READ_COMMITTED);
cache.put("key1", "val1");

And through debugging cache.put() method i can see in method
*org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal#enlistWriteEntry*
that "key1" already *EXISTS *in internal cache : cacheCtx.cache().entryEx()
returns not null.

ср, 29 мар. 2017 г. в 20:11, Alexander Fedotov <alexander.fedot...@gmail.com
>:

Hello Aleksey,

No, the enlisted entry won't be visible for other transactions. Dirty reads
are not allowed in Ignite.

Kind regards,
Alex

29 марта 2017 г. 7:36 PM пользователь "ALEKSEY KUZNETSOV" <
alkuznetsov...@gmail.com> написал:

Hello, Igniters! I have one more question to you. Will appreciate any help.
Consider cache with near , dht configured not null.
When we start commit transaction , in method
*org.apache.ignite.internal.processors.cache.distributed.
near.GridNearTxLocal#enlistWriteEntry*
we put newly created entry into cache by executing entryEx().
I wonder if this entry will became visible for other transactions!?
--

*Best Regards,*

*Kuznetsov Aleksey*

-- 

*Best Regards,*

*Kuznetsov Aleksey*

Reply via email to