It would be nice to know a bit more about your schema. How many tables do you use in the scenario you described ? One for user (counter), one for event ? Or just one table for all related information ?
bq. to have an event_id qualifier for each incoming event Would you store the event_id information in the user table ? Cheers On Sat, Apr 27, 2013 at 9:45 PM, Lior Schachter <lior...@gmail.com> wrote: > Hi Ted, > Thanks for the prompt response. > I've already had a look at HRegionServer.checkAndPut and the implementation > looks quite straight forward. > That's why I was wondering why the other 2 methods are not available...or > planned (couldn't find Jira). > Seems like a useful functionality. > > Anyhow, I'm not allowed to make any source code modifications to the HBase > installation (in production) so I reckon I'll have to find a workaround. > > This is my use case: > Updating user counters by events. > We may get (in rare cases) duplicate events. > Should not count the duplicates. > > My initial thought was to have an event_id qualifier for each incoming > event (with '1' value). By checking if event_id exists before incrementing > I can avoid duplicates. > Without the checkAndIncrement functionality I must make 2 round trips for > each event (which doesn't make sense). > > Any ideas how I can solve this issue ? > > Thanks, > Lior > > > > > > > > > On Sat, Apr 27, 2013 at 4:23 PM, Ted Yu <yuzhih...@gmail.com> wrote: > > > Take a look at the following method in HRegionServer: > > > > public boolean checkAndPut(final byte[] regionName, final byte[] row, > > final byte[] family, final byte[] qualifier, final byte[] value, > > final Put put) throws IOException { > > > > You can create checkAndIncrement() in a similar way. > > > > Cheers > > > > On Sat, Apr 27, 2013 at 9:02 PM, Lior Schachter <lior...@gmail.com> > wrote: > > > > > Hi, > > > I want to increment a cell value only after checking a condition on > > another > > > cell. I could find checkAndPut/checkAndDelete on HTableInteface. It > seems > > > that checkAndIncrement (and checkAndAppend) are missing. > > > > > > Can you suggest a workaround for my use-case ? working with version > > > 0.94.5. > > > > > > Thanks, > > > Lior > > > > > >