[
https://issues.apache.org/jira/browse/HBASE-5414?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13209838#comment-13209838
]
Amitanand Aiyer commented on HBASE-5414:
----------------------------------------
There seem to be 3 approachs we can take in terms of how we split the WALEdit
into different batch of mutations (with same memstoreTS).
Option (i): Current approach. Split when we see a change in KV's type (Delete
--> Put, or Put --> Delete).
Not very accurate. We might combine multiple Put mutations into one
mutation. But, this should be relatively insignificant.
Option (ii): Split per KV. Give a different memstoreTS to each KV.
We might be splitting a single mutation into multiple parts. But, this
should not be a problem. No readers start until the replay is done.
Option (iii): Find a way to mark the exact boundary.
Will entail inserting a "dummy/sentinel" KV into the WALEdit to represent
the boundary.
> 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