> On May 16, 2012, at 1:12 AM, fding hbase wrote: >> But sadly, HBase ipc doesn't allow coprocessor chaining mechanism... >> Someone mentioned on >> http://grokbase.com/t/hbase/user/116hrhhf8m/coprocessor-failure-question-and-examples >> : >> >> If a RegionObserver issues RPC to another table from any of the hooks that >> are called out of RPC handlers (for Gets, Puts, Deletes, etc.), you risk >> deadlock. Whatever activity you want to check should be in the same >> region as account data to avoid that. >> (Or HBase RPC needs to change.) >> >> So, that means, the deadlock is inevitable under current circumstance. The >> coprocessors are still limited. >> >> What I'm seeking is possible extensions of coprocessors or workaround for >> such situations that extra RPC is needed in the RPC handlers.
This isn't a limitation, this is a design choice. Such extensions of coprocessors most likely won't happen. What a RegionObserver allows you to do is exactly this: Intercept and potentially modify lifecycle or user operations on that single region alone. If it helps, think of each region as its own independent database. If you need to take cross-region actions according to some user action, then you should be looking first at extending the client, not the server. Best regards, - Andy Problems worthy of attack prove their worth by hitting back. - Piet Hein (via Tom White)
