Bug 1002602
Summary: | Read-after-write semantics in transactional mode | ||
---|---|---|---|
Product: | [JBoss] JBoss Data Grid 6 | Reporter: | Radim Vansa <rvansa> |
Component: | Infinispan | Assignee: | Tristan Tarrant <ttarrant> |
Status: | CLOSED NOTABUG | QA Contact: | Martin Gencur <mgencur> |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | 6.2.0 | CC: | jdg-bugs |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2013-08-29 15:07:15 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Radim Vansa
2013-08-29 14:00:29 UTC
Mircea Markus <mmarkus> made a comment on jira ISPN-3451 Even if the entries would be committed in a defined order in which they hace been written, the problem still exists due to Infinispan's distributed nature. For simplicity let's consider that both A and B are owned by N1 and N2. There is a moment in which the TX is committed on N2 but not yes committed on N1. All the tx that would read the data from N2 would see the new value, the others seeing the old one. If the users really require this semantic, they should use Flag.FORCE_WRITE_LOCK on read operations as well. Possible that [~pruivo]'s GMU to handle this scenario implicitly, Pedro care to comment? Mircea Markus <mmarkus> updated the status of jira ISPN-3451 to Resolved Pedro Ruivo <pedroruivo2> made a comment on jira ISPN-3451 True, GMU achieves (Extended-) Updated Serializability. So, if you have a read operation, you will see both A and B equals to 1 or A and B equals to 2 depending if your tx starts after or before the commit of the write transaction. Of course we have the cost of keeping multiple versions for a key in the data container and more restrict validation phase. Also, read-only transactions can read a old snapshot (i.e. it's not the most recent). but that snapshot is always consistent! |