Aleksey, Do you mean that you want a concept of transferring of tx ownership from one node to another? My initial understanding was that you want to be able to update keys in a transaction from multiple threads in parallel.
--AG 2017-03-10 15:01 GMT+03:00 ALEKSEY KUZNETSOV <alkuznetsov...@gmail.com>: > Well. Consider transaction started in one node, and continued in another > one. > The following test describes my idea: > > Ignite ignite1 = ignite(0); > > IgniteTransactions transactions = ignite1.transactions(); > > IgniteCache<String, Integer> cache = ignite1.getOrCreateCache(" > testCache"); > > Transaction tx = transactions.txStart(concurrency, isolation); > > cache.put("key1", 1); > > cache.put("key2", 2); > > tx.stop(); > > IgniteInternalFuture<Boolean> fut = GridTestUtils.runAsync(() -> { > IgniteTransactions ts = ignite(1).transactions(); > Assert.assertNull(ts.tx()); > Assert.assertEquals(TransactionState.STOPPED, tx.state()); > ts.txStart(tx); > Assert.assertEquals(TransactionState.ACTIVE, tx.state()); > cache.put("key3", 3); > Assert.assertTrue(cache.remove("key2")); > tx.commit(); > return true; > }); > > fut.get(); > > Assert.assertEquals(TransactionState.COMMITTED, tx.state()); > Assert.assertEquals((long)1, (long)cache.get("key1")); > Assert.assertEquals((long)3, (long)cache.get("key3")); > Assert.assertFalse(cache.containsKey("key2")); > > In method *ts.txStart(...)* we just rebind *tx* to current thread: > > public void txStart(Transaction tx) { > TransactionProxyImpl transactionProxy = (TransactionProxyImpl)tx; > cctx.tm().reopenTx(transactionProxy.tx()); > transactionProxy.bindToCurrentThread(); > } > > In method *reopenTx* we alter *threadMap* so that it binds transaction > to current thread. > > How do u think about it ? > > > вт, 7 мар. 2017 г. в 22:38, Denis Magda <dma...@apache.org>: > > > Hi Alexey, > > > > Please share the rational behind this and the thoughts, design ideas you > > have in mind. > > > > — > > Denis > > > > > On Mar 7, 2017, at 3:19 AM, ALEKSEY KUZNETSOV < > alkuznetsov...@gmail.com> > > wrote: > > > > > > Hi all! Im designing distributed transaction which can be started at > one > > > node, and continued at other one. Has anybody thoughts on it ? > > > -- > > > > > > *Best Regards,* > > > > > > *Kuznetsov Aleksey* > > > > -- > > *Best Regards,* > > *Kuznetsov Aleksey* >