But, in my transaction method: PersonKey key = new PersonKey(5);
System.out.println(); System.out.println(">>> Update salary and write-through to database for person with ID: " + key.getId()); try (Transaction tx = ignite.transactions().txStart()) { // Read-through from database. Person p = cache.get(key); System.out.println(">>> Loaded person from database: " + p); double salary = p.getSalary(); // Raise salary by 20%. p.setSalary(salary * 1.2); // Write-through to database // and store in cache. cache.put(key, p); System.out.println("Key: " + key + " Value: " + p + " put in cache"); p.setSalary(salary * 2); cache.put(key, p); System.out.println("Key: " + key + " Value: " + p + " put in cache"); new Thread(new Runnable() { public void run() { { System.out.println("Starting new thread..."); PersonKey k1 = new PersonKey(5); try (Transaction tx = ignite.transactions().txStart()) { Person v1 = cache.get(k1); System.out.println("The value for key = 5 is: " + v1); } } } }).start(); tx.commit(); } System.out.println(">>> Updated person: " + cache.get(key)); } when I start the new thread and get the value of key 5, I get the new value only, even before committing it? Why is this so? -- View this message in context: http://apache-ignite-users.70518.x6.nabble.com/How-to-perform-lazy-write-to-database-tp4002p4078.html Sent from the Apache Ignite Users mailing list archive at Nabble.com.