Try some more basic and see if you can reproduce the failure to read-your-own-writes. Do a put, flush of the writes, then a get. Past too your addTagColumn code. Thanks. St.Ack
On Mon, Jan 25, 2016 at 12:33 AM, Rural Hunter <[email protected]> wrote: > No. The code logic is like this: > The main method: > > String rowKey="..."; > addTagColumn(rowKey, "tag_"+id); > List tags=getTagColumns(rowKey); > //here I had to add re-try logic to ensure the tags list contains the id > just added. > > addTagColumn method just does a simple HTable.put. > getTagColumns uses a ColumnPrefixFilter to get all the columns starting > with "tag_". > > The other possiblity is that some other processes removed the new id > between the call of add and get. But we checked other code logic and it > seems not likely. or there is a problem with the ColumnPrefixFilter? > > 2016-01-23 3:42 GMT+08:00 Stack <[email protected]>: > > > On Fri, Jan 22, 2016 at 1:51 AM, Rural Hunter <[email protected]> > > wrote: > > > > > Hi, > > > > > > I have a hbase cluster with 7 servers at version 0.98.13-hadoop2, > > > dfs.replication=2. > > > In a write session, we update some data. Then in a new read session > > > immediately, we read the data using Get class and found it sometimes > > > returns the old version of the data(before the update). > > > We have to add a retry-loop in the read session to read the correct > > value. > > > Is this a normal behavior of hbase cluster? > > > > > > > > > No. Tell us more. For sure the Get and Write are not concurrent with > > perhaps the Get happening before the update? > > St.Ack > > >
