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