On Wed, May 16, 2012 at 6:43 PM, fding hbase <[email protected]> wrote: >> Not coprocessors in general. The client side support for Endpoints >> (Exec, etc.) gives the developer the fiction of addressing the cluster >> as a range of rows, and will parallelize per-region Endpoint >> invocations, and collect the responses, and can return them all to the >> caller as "a single call". > > But on the deadlock problem the Endpoint behaves the same way as Observer. > Endpoints are also executed via RPC handlers of RegionServer.
Reread what I wrote. I'm not talking about the server side above. Regarding the RPC issues, yes the behavior is the same. My other point was there is no RPC deadlock if you schedule your additional work (which issues RPCs) in some background thread or Executor and return to the client immediately. But that is not what you have claimed you want to do, you want to do some distributed indexed join if I understood it correctly *first* (via RPC) and *then* return to the client. That is how you would get deadlocks. > the coprocessors are written by users and any kind of > code may appear on the server side. You should not let just any user run coprocessors on the server. That's madness. Best regards, - Andy Problems worthy of attack prove their worth by hitting back. - Piet Hein (via Tom White)
