Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
HBase >> mail # dev >> Limited cross row transactions


Copy link to this message
-
Re: Limited cross row transactions
There is probably some pretty simple logic involved in figuring out if a
given set of operations can be supported (though maybe we can make that so
you can dynamically load your own checker as well). At best this checking
would execute on the client-side and worst case on the region-servers (or
secondary mechanism) and then throw an UnsupportedOperationException if its
not allowed.

If the user gets this exception they should (1) have an alternative put
strategy when the client throws this error, or (2)allow it to drop on the
floor (and probably log it on their own system). In production you should
have pretty good bounds on what is happening, so unsupported operations
really should be exceptional.

At least that was the easiest way I could see to support it.

-------------------
Jesse Yates
240-888-2200
@jesse_yates
jyates.github.com
On Tue, Jan 17, 2012 at 1:52 PM, Ted Yu <[EMAIL PROTECTED]> wrote:

> Back to original proposal:
> If client side grouping reveals that the batch of operations cannot be
> supported by 'limited cross row transactions', what should the user do ?
>
> Cheers
>
> On Tue, Jan 17, 2012 at 1:49 PM, Ted Yu <[EMAIL PROTECTED]> wrote:
>
> > Whether Omid fits the bill is open to discussion.
> >
> > We should revisit HBASE-2315 and provide the support Flavio, et al need.
> >
> > Cheers
> >
> >
> > On Tue, Jan 17, 2012 at 1:41 PM, Lars George <[EMAIL PROTECTED]
> >wrote:
> >
> >> Hi Ted,
> >>
> >> Wouldn't Omid (https://github.com/yahoo/omid) help there? Or is that
> too
> >> broad? Just curious.
> >>
> >> Lars
> >>
> >> On Jan 17, 2012, at 4:36 PM, Ted Yu wrote:
> >>
> >> > Can we collect use case for 'limited cross row transactions' first ?
> >> >
> >> > I have been thinking about (unlimited) multi-row transaction support
> in
> >> > HBase. It may not be a one-man task. But we should definitely
> implement
> >> it
> >> > someday.
> >> >
> >> > Cheers
> >> >
> >> > On Tue, Jan 17, 2012 at 1:27 PM, lars hofhansl <[EMAIL PROTECTED]>
> >> wrote:
> >> >
> >> >> I just committed HBASE-5203 (together with HBASE-3584 this implements
> >> >> atomic row operations).
> >> >> Although a relatively small patch it lays the groundwork for
> >> heterogeneous
> >> >> operations in a single WALEdit.
> >> >>
> >> >> The interesting part is that even though the code enforced the atomic
> >> >> operation to be a for single row, this is not required.
> >> >> It is enough if all involved KVs reside in the same region.
> >> >>
> >> >> I am not saying that we should add any high level concept to HBase
> >> (such
> >> >> as the EntityGroups of Megastore).
> >> >>
> >> >> But, with a slight addition to the API (allowing a grouping of
> multiple
> >> >> row operations) client applications have all the building blocks to
> do
> >> >> limited cross row atomic operations.
> >> >> The client application would be responsible for either correctly
> >> >> pre-splitting the table, or a custom balancer has to be provided.
> >> >>
> >> >> The operation would fail if the regionserver determines that it would
> >> need
> >> >> data from multiple region servers.
> >> >>
> >> >> I think this needs at least minimal support from HBase and cannot
> >> >> (efficiently or without adding more moving parts) by a client API
> only.
> >> >>
> >> >>
> >> >> Comments? Is this worth pursuing? If so, I'll file a jira and
> provide a
> >> >> patch.
> >> >>
> >> >> Thanks.
> >> >>
> >> >>
> >> >> -- Lars
> >> >>
> >> >>
> >>
> >>
> >
>