[
https://issues.apache.org/jira/browse/HBASE-2001?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12792644#action_12792644
]
Todd Lipcon commented on HBASE-2001:
------------------------------------
Does loading arbitrary Java code into the region servers not scare the crap out
of anyone else? :)
I'd feel way better about this if it were embedding a language that could be
provably safe. For example, VMware's dtrace-alike (vprobes) uses an embedded
language called "vp" which can put tight upper bounds on allocation, time, etc.
See http://www.vmware.com/products/beta/ws/vprobes_reference.pdf . That
approach is extra strict because it's running in the VM monitor which has to be
super stable, but the same general idea should be applied to coprocessors IMHO.
> 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
> Attachments: asm-3.2-bin.zip, asm-transformations.pdf,
> HBASE-2001.patch, org.apache.hadoop.hbase.coprocessor.Coprocessor.pdf
>
>
> "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.