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
> > >
> >
>

Reply via email to