[
https://issues.apache.org/jira/browse/HBASE-5414?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13209675#comment-13209675
]
Kannan Muthukkaruppan commented on HBASE-5414:
----------------------------------------------
Amit:
Aren't there three pieces of the puzzle to ensure that a atomic row mutation
(RowMutations) which contains a Delete & a Put, for example:
RowMutations(Delete R1.CF @ NOW, // delete the row in this CF
Put R1.CF.c1 = v1 @ NOW) // and atomically add back a
column for this row in this CF
can guarantee that the Put wins over the Delete even though both happened at
the same NOW timestamp.
part 1) On insert, making sure the Put gets a higher memstoreTS than the Delete
even thought they have the same TS.
part 2) On recovery (that's the piece that this JIRA seems to be covering).
part 3) On flush/compactions, etc. not doing the space optimization to clear
out memstoreTS to 0 even if the read point for the active scanners has moved
on, unless it is a major compaction where we lose the Delete markers.
Do we not need parts #1 & #3? Or where you planning to do those as separate
tasks?
> Assign different memstoreTS to different KV's in the same WALEdit during
> replay
> -------------------------------------------------------------------------------
>
> Key: HBASE-5414
> URL: https://issues.apache.org/jira/browse/HBASE-5414
> Project: HBase
> Issue Type: Sub-task
> Components: client, coprocessors, regionserver
> Reporter: Amitanand Aiyer
> Fix For: 0.94.0
>
> Attachments: HBASE-5414.D1749.1.patch
>
>
> HBASE-5203 combines all the different Puts/Deletes into one WALEdit. This is
> required to ensure that we persist the atomic mutation in its enterity and not
> in parts.
> When combined into a single WALEdit, we create one big familyMap that is a
> combination
> of all the family maps in the mutations. The KV's in this familyMap have no
> information
> about memstoreTS (it is not yet assigned).
> However, when we apply the mutations to the Memstore (if there are no
> failures) we end up
> incrementing the memstoreTS for each operation.
> This can lead to the client seeing different order of operations -- depending
> on weather or
> not there was a RS crash/restart.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira