[ 
https://issues.apache.org/jira/browse/HBASE-3257?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Purtell updated HBASE-3257:
----------------------------------

      Description: 
Coprocessor based extensions should be able to:
* Observe, rewrite, or skip WALEdits as they are being written to the WAL
* Write arbitrary content into WALEdits
* Act on contents of WALEdits in the master context when splitting
* Act on contents of WALEdits in the regionserver context during reconstruction

One idea we had regards how CPs injecting arbitrary content into the WAL can 
play nicely with the master and replication is as follows: For replication we 
have already introduced the concept of scoping for WAL edits. This is expressed 
as an integer. Currently if scope=0, then the WALEdit is processed by the 
master and regionserver but not replicated; and if scope=1, then the edit is 
processed *and* replicated. We can change the semantics slightly to:
* If scope=0, the edit is split by the master into reconstruction logs but 
ignored by the base regionserver logic (_ignore scope_)
* If scope=1, the edit is processed by master and regionserver as normal 
(_default scope_)
* If scope=2, the edit is processed and replicated (_replication scope_)

Then CPs can stuff arbitrary KVs into a WALEdit, set scope=0, and pick up 
whatever was stored on the other side of reconstruction, but otherwise the data 
is simply passed through everywhere.
    Fix Version/s: 0.92.0

> Coprocessors: Extend server side integration API to include HLog operations
> ---------------------------------------------------------------------------
>
>                 Key: HBASE-3257
>                 URL: https://issues.apache.org/jira/browse/HBASE-3257
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Andrew Purtell
>            Assignee: Mingjie Lai
>             Fix For: 0.92.0
>
>
> Coprocessor based extensions should be able to:
> * Observe, rewrite, or skip WALEdits as they are being written to the WAL
> * Write arbitrary content into WALEdits
> * Act on contents of WALEdits in the master context when splitting
> * Act on contents of WALEdits in the regionserver context during 
> reconstruction
> One idea we had regards how CPs injecting arbitrary content into the WAL can 
> play nicely with the master and replication is as follows: For replication we 
> have already introduced the concept of scoping for WAL edits. This is 
> expressed as an integer. Currently if scope=0, then the WALEdit is processed 
> by the master and regionserver but not replicated; and if scope=1, then the 
> edit is processed *and* replicated. We can change the semantics slightly to:
> * If scope=0, the edit is split by the master into reconstruction logs but 
> ignored by the base regionserver logic (_ignore scope_)
> * If scope=1, the edit is processed by master and regionserver as normal 
> (_default scope_)
> * If scope=2, the edit is processed and replicated (_replication scope_)
> Then CPs can stuff arbitrary KVs into a WALEdit, set scope=0, and pick up 
> whatever was stored on the other side of reconstruction, but otherwise the 
> data is simply passed through everywhere.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to