[ https://issues.apache.org/jira/browse/HBASE-2001?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12785198#action_12785198 ]
stack commented on HBASE-2001: ------------------------------ Would suggest that if coprocessors only need three states, then just do those. Region state transition is up for review. Will probably change anyways. No worries on going the pedantic route -- a method per rather than all into the one method with a handler switch. For sure makes things like introspection and autogeneration easier. Its just a pain for the human having to implement all methods though only interested in a few. I know nothing about ASM. Go for it. OK on they why you have a logging interface. Yes to separate issue for Region interface. First thought is that mimicing table interface might confuse more than it helps but need to study more before I can offer stronger opinion. Otherwise, all sounds great. > 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, > org.apache.hadoop.hbase.HCoprocessor.java, > org.apache.hadoop.hbase.HCoprocessor.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.