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

Andrew Purtell commented on HBASE-2001:
---------------------------------------

Consider ASM (http://asm.ow2.org/), a high performance bytecode rewrite 
framework with BSD style license. Just another jar to drop into lib/. 
* Take additional verification steps beyond basic bytecode verification to 
reject object and/or method use beyond those on a white list if security policy 
demands it
* Insert code to deal with regionserver internal details that client code 
should not be concerned about
* Weave in CPU and/or memory accounting and/or forced termination should bounds 
on same be exceeded
* Rewrite calls to an interface into static invocations of the implementer
* Weave in auditing
etc. 


> Coprocessors: Colocate arbitrary code with regions
> --------------------------------------------------
>
>                 Key: HBASE-2001
>                 URL: https://issues.apache.org/jira/browse/HBASE-2001
>             Project: Hadoop HBase
>          Issue Type: Sub-task
>            Reporter: Andrew Purtell
>            Assignee: Andrew Purtell
>
> "Support arbitrary code that runs run next to each region in table. As 
> regions split and move, coprocessor code should automatically  move also."
> Use classloader which looks on HDFS.
> Associate a list of classes to load with each table. Put this in HRI so it 
> inherits from table but can be changed on a per region basis (so then those 
> region specific changes can inherited by daughters). 
> Not completely arbitrary code, should require implementation of an interface 
> with callbacks for:
> * Open
> * Close
> * Split
> * Compact
> * (Multi)get and scanner next()
> * (Multi)put
> * (Multi)delete
> Add method to HRegionInterface for invoking coprocessor methods and 
> retrieving results.  
> Add methods in o.a.h.h.regionserver or subpackage which implement convenience 
> functions for coprocessor methods and consistent/controlled access to 
> internals: store access, threading, persistent and ephemeral state, scratch 
> storage, etc. 

-- 
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