[ 
https://issues.apache.org/jira/browse/HBASE-22623?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16901676#comment-16901676
 ] 

Duo Zhang commented on HBASE-22623:
-----------------------------------

At least Thread.sleep and System.exit will not mess up the data right? As I 
said above, if you want to put things into WALEdit, just use higher level CPs 
to add more puts/deletes into the batch. I know this would be a pain, but I 
think this is the correct way. We used to expose too many internal things in 
CPs which made Phoenix went to the wrong way, for example, the strange local 
secondary index implementation which breaks the HBase assumption after 
split/merge, and then hack deeply into the StoreFileReader which highly depends 
on the private implementation of HBase so after upgrading to 2.x everything is 
broken...

And back to WALKey&WALEdit, even though I still has some concerns on 
HBASE-22622, but at least, WALKey is an interface, and the only write method is 
addExtendedAttribute, which I think is fine. But for WALEdit, it is an 
implementation class, it even has setCells, readFromCells method, which will be 
really dangerous to CP users. Notice that now we are making everything off 
heap, and we have just fixed a critical bug related to reference counting on 
cells, and here we let users directly set or remove cells? I do not think this 
is a good idea...

And for the patch here, what is the difference between preWALAppend and the old 
preWALWrite?

> Add RegionObserver coprocessor hook for preWALAppend
> ----------------------------------------------------
>
>                 Key: HBASE-22623
>                 URL: https://issues.apache.org/jira/browse/HBASE-22623
>             Project: HBase
>          Issue Type: New Feature
>            Reporter: Geoffrey Jacoby
>            Assignee: Geoffrey Jacoby
>            Priority: Major
>             Fix For: 3.0.0, 1.5.0, 2.3.0
>
>
> While many coprocessor hooks expose the WALEdit to implementing coprocs, 
> there aren't any that expose the WALKey before it's created and added to the 
> WALEntry. 
> It's sometimes useful for coprocessors to be able to edit the WALKey, for 
> example to add extended attributes using the fields to be added in 
> HBASE-22622. 



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

Reply via email to