> What I fear is that my Region Server can enter into erratic gc because of a >heavy coprocessor.
As you say, the coprocessor code is executing in the same JVM as the RegionServer, so you have to be aware of this. > If I hook in my coprocessor for client api calls (put, get), is my > coprocessor executed synchronously or asynchronously with the api call > itself ? Synchronously. If you want to take asynchronous action, you'll have to use an Executor or your own thread pool, and dispatch work to it for async/background operation, that sort of thing. > Will I be impacting the throughputs of write if my coprocessors are heavy on > execution ? Yes. Best regards, - Andy Problems worthy of attack prove their worth by hitting back. - Piet Hein (via Tom White) ----- Original Message ----- > From: kisalay <[email protected]> > To: [email protected] > Cc: > Sent: Wednesday, January 18, 2012 2:57 AM > Subject: Help on Coprocessor > > Hi, > > I was evaluating to use coprocessors to process data as it is inserted in > one table and subsequently insert it in another table. I was considering to > hook the CP to postput on the first table. While evaluating I went through > a couple of JIRAs like : HBASE-2000, HBASE-2001 and HBASE-1512. > I understand that the coprocessors are code that run in-process on each > region server. > > The basic doubt that I had is: > > 1. If the coprocessor runs in the same jvm instance as the region server > itself, will it be a good idea to do some non-trivial processing / io / > aggregation in my coprocessor ? What I fear is that my Region Server can > enter into erratic gc because of a heavy coprocessor. My doubts came more > from HBASE-1512. > > 2. If I hook in my coprocessor for client api calls (put, get), is my > coprocessor executed synchronously or asynchronously with the api call > itself ? Will I be impacting the throughputs of write if my coprocessors > are heavy on execution ? > > Thanks > Kisalay >
