This is not a typical CAS operation so we are sorry that we missed the
usage when changing the APIs. Modify when there are no new modifications
since the last read sound reasonable, and we should find a way to do this.
But since you can specify the timestamp when modifying the data so I do not
think the solution here is suitable for everyone. Need more discussions.
You are free to use or not use HBase and also DB2 in your company and
announce this decision to the public but I need to say that HBase does not
belong to either MapR, Cloudera or Hortonworks, it is a TLP in the ASF and
controlled by the PMC of HBase, and the PMC members are from lots of
companies.
(Do not consider the role of the PMC Chair of HBase for me, as a normal
software engineer, I suggest you to go to AWS rather than IBM, sincerely)
于2019年8月14日周三 上午7:39写道:
> Can't wait to tell my boss we need to load a deprecated function to make
> our little hbase work.. Looks like it's time to move back to good ole
> dependable DB2... Too much uncertainty with hadoop... MapR, Cloudera and
> Hortonworks. Seems to me that these companies are trying to be the Uber
> of data... Complete unequivocal failures. Rehash of the internet bubble
> after Y2k
> Going back to IBM.
>
> > On August 13, 2019 at 7:27 PM "Wilson, Huon (Data61, Eveleigh)" <
> huon.wil...@data61.csiro.au mailto:huon.wil...@data61.csiro.au > wrote:
> >
> >
> > Thanks for the feedback. I'll use the deprecated constructors for
> now, and I've filedhttps://jira.apache.org/jira/browse/HBASE-22841 (and
> also submitted a PR for it).
> >
> > Huon
> >
> > On 6/8/19, 7:23 pm, "Anoop John" anoop.hb...@gmail.com > wrote:
> >
> > We might need a static creator method which takes start and end time
> in TR?
> >
> > Anoop
> >
> > On Tue, Aug 6, 2019 at 9:11 AM OpenInx open...@gmail.com > wrote:
> > > Hi > I've checked the code, I think you can use the deprecated
> TimeRange(ts+1) > first, also the methods defined in TimeRange > is not
> good enough now, we may need to create an issue to address this > thing.
> > > > Thanks.
> > > > On Tue, Aug 6, 2019 at 10:15 AM Wilson, Huon (Data61, Eveleigh)
> < > huon.wil...@data61.csiro.au mailto:huon.wil...@data61.csiro.au >
> wrote:
> > > > > Hi, > > > > I’m trying to do an atomic read-modify-write where
> a cell is read and > then > > rewritten with an updated value (updated in a
> complicated way, more than > > just incrementing), but only if there’s been
> no writes since it was read, > > otherwise try again from the read. > > > >
> My plan is to use something like > > > > table.checkAndMutate(row,
> family).qualifier(qualifier).timeRange(new > > TimeRange(ts +
> 1)).ifNotExists().put(put) > > > > to insert if the cell
> row/family/qualifier doesn't exist in the range > `[ts > > + 1, infinity)`,
> which I think means no writes after time `ts`. However, > > that TimeRange
> constructor is @Deprecated and @Private, and the only > > remaining ways to
> publicly construct a TimeRange is > `TimeRange.allTime()` > > ([0,
> infinity)) and `TimeRange.at(long ts)` ([ts, ts + 1)), neither of > > which
> are right. > > > > Is there a way to create this time range, or another way
> to achieve this > > RMW operation? > > > > An alternative is to do a value
> comparison with `.ifEquals(...)` but my > > values could be quite large
> (kilobytes), so I was thinking this range > > comparison would be better. >
> > > > --- > > Huon Wilson > > CSIRO | Data61 > >
> https://www.data61.csiro.au > > > > > > > > > >
> > >
> >
>