[
https://issues.jboss.org/browse/ISPN-1615?page=com.atlassian.jira.plugin....
]
Mircea Markus commented on ISPN-1615:
-------------------------------------
As galder pointed out, the PFER does not guarnatee atomicity as it is async, so my prev
comment doesn't stand.
Anyway below is a UT that reproduces another issue to be solved by this fix:
{code}
public class NoAutoCommitAndPferTest extends SingleCacheManagerTest {
@Override
protected EmbeddedCacheManager createCacheManager() throws Exception {
Configuration dsc = getDefaultStandaloneConfig(true);
dsc.fluent().transaction().autoCommit(false);
return new DefaultCacheManager(dsc);
}
public void testPferNoAutoCommitExplicitTransaction() throws Exception {
tm().begin();
cache.putForExternalRead("k","v");
tm().commit();
assert cache.get("k").equals("v"); //here is the failure!
}
public void testPferNoAutoCommit() throws Exception {
cache.putForExternalRead("k","v");
assert cache.get("k").equals("v"); //here is the failure!
}
}
{code}
Consider removing transaction suspension code from
putForExternalRead()
-----------------------------------------------------------------------
Key: ISPN-1615
URL:
https://issues.jboss.org/browse/ISPN-1615
Project: Infinispan
Issue Type: Enhancement
Affects Versions: 5.0.1.FINAL, 5.1.0.CR1
Reporter: Galder Zamarreño
Assignee: Galder Zamarreño
Fix For: 5.1.0.CR2, 5.1.0.FINAL
The main reason for suspending the transaction was to avoid failures impacting the result
of the transaction.
However, ever since ISPN-1556 has been implemented, any FAIL_SILENT operation (like PFER)
won't have an impact on the transaction if it fails, so this transaction suspension is
not really needed.
Removing the suspension code is apparently a performance booster in 2LC.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see:
http://www.atlassian.com/software/jira