Test was done via hbase shell prompt. I am not sure on it's behavior. Can it hide some timeouts and return nothing? I hope not. I will try to reproduce it with java API.
Coprocessor does not do anything asynchronous in it's hooks. It is hooked only on preStoreScannerOpen, preFlushScannerOpen, preCompactScannerOpen. What it does is, create a StoreScanner with custom filter, which skips certain cells based on fixed rules line qualifier name pattern or how old cell is. > Do you wait for the Put to return before you issue the Get? Or have you > disabled auto flushing on your table instance -- HTable.setAutoFlush(false)? > Coprocessor hooks executed on the Put and Get paths are blocking, so unless > you're overriding normal processing in the prePut() hook and doing > something asynchronous, the Put should be there by the time it returns to > the client. But it all depends on what is your coprocessor actually > doing. Can you tell us more about that? > On Tue, Mar 29, 2016 at 6:22 AM Ted Yu <[email protected]> wrote: > > Is it possible to come up with unit test showing this behavior using> > > > simplified coprocessor ?> >> > Thanks> >> > > On Mar 29, 2016, at 5:42 AM, > > Jozef Vilcek <[email protected]> wrote:> > >> > > Hi,> > >> > > I need > > a help to shed some light on following observation:> > >> > > Through hbase > > shell I do PUT to a non existing cell (create) and> > immediate> > > GET.> > > > > When doing this against hbase table without a coprocessor, every GET> > > > shows> > > the value immediately. When I enable a coprocessor on the table > > and> > > perform> > > the same check, I do not get a value for every GET. > > Sometimes GET returns> > > nothing, like cell is not there. If I delay GET > > few minutes after PUT,> > then> > > data are correctly retrieved.> > >> > > > > I want to understand what is going on.> > > Is coprocessor is doing > > something wrong? Is this somehow normal? or ... ?> > >> > > Coprocessor is > > a RegionObserver doing data filtering / expiration based> > on> > > > > predefined rules.> > > HBase version is 1.0.0 from cloudera cdh5.5.1 > > distibution.> > >> > > Thanks,> > > Jozo >
