You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hbase.apache.org by Michael Ellery <me...@opendns.com> on 2013/02/08 00:47:57 UTC
column count guidelines
I'm looking for some advice about per row CQ (column qualifier) count guidelines. Our current schema design means we have a HIGHLY variable CQ count per row -- some rows have one or two CQs and some rows have upwards of 1 million. Each CQ is on the order of 100 bytes (for round numbers) and the cell values are null. We see highly variable and too often unacceptable read performance using this schema. I don't know for a fact that the CQ count variability is the source of our problems, but I am suspicious.
I'm curious about others' experience with CQ counts per row -- are there some best practices/guidelines about how to optimally size the number of CQs per row. The other obvious solution will involve breaking this data into finer grained rows, which means shifting from GETs to SCANs - are there performance trade-offs in such a change?
We are currently using CDH3u4, if that is relevant. All of our loading is done via HFILE loading (bulk), so we have not had to tune write performance beyond using bulk loads. Any advice appreciated, including what metrics we should be looking at to further diagnose our read performance challenges.
Thanks,
Mike Ellery
Re: column count guidelines
Posted by Dave Wang <ds...@cloudera.com>.
Mike,
CDH4.2 will be out shortly, will be based on HBase 0.94, and will include
both of the features that Ted mentioned and more.
- Dave
On Thu, Feb 7, 2013 at 8:34 PM, Michael Ellery <me...@opendns.com> wrote:
>
> thanks for reminding me of the HBASE version in CDH4 - that's something
> we'll definitely take into consideration.
>
> -Mike
>
> On Feb 7, 2013, at 5:09 PM, Ted Yu wrote:
>
> > Thanks Michael for this information.
> >
> > FYI CDH4 (as of now) is based on HBase 0.92.x which doesn't have the two
> > features I cited below.
> >
> > On Thu, Feb 7, 2013 at 5:02 PM, Michael Ellery <me...@opendns.com>
> wrote:
> >
> >> There is only one CF in this schema.
> >>
> >> Yes, we are looking at upgrading to CDH4, but it is not trivial since we
> >> cannot have cluster downtime. Our current upgrade plans involves
> additional
> >> hardware with side-by side clusters until everything is
> exported/imported.
> >>
> >> Thanks,
> >> Mike
> >>
> >> On Feb 7, 2013, at 4:34 PM, Ted Yu wrote:
> >>
> >>> How many column families are involved ?
> >>>
> >>> Have you considered upgrading to 0.94.4 where you would be able to
> >> benefit
> >>> from lazy seek, Data Block Encoding, etc ?
> >>>
> >>> Thanks
> >>>
> >>> On Thu, Feb 7, 2013 at 3:47 PM, Michael Ellery <me...@opendns.com>
> >> wrote:
> >>>
> >>>> I'm looking for some advice about per row CQ (column qualifier) count
> >>>> guidelines. Our current schema design means we have a HIGHLY variable
> CQ
> >>>> count per row -- some rows have one or two CQs and some rows have
> >> upwards
> >>>> of 1 million. Each CQ is on the order of 100 bytes (for round numbers)
> >> and
> >>>> the cell values are null. We see highly variable and too often
> >>>> unacceptable read performance using this schema. I don't know for a
> >> fact
> >>>> that the CQ count variability is the source of our problems, but I am
> >>>> suspicious.
> >>>>
> >>>> I'm curious about others' experience with CQ counts per row -- are
> there
> >>>> some best practices/guidelines about how to optimally size the number
> of
> >>>> CQs per row. The other obvious solution will involve breaking this
> data
> >>>> into finer grained rows, which means shifting from GETs to SCANs - are
> >>>> there performance trade-offs in such a change?
> >>>>
> >>>> We are currently using CDH3u4, if that is relevant. All of our loading
> >> is
> >>>> done via HFILE loading (bulk), so we have not had to tune write
> >> performance
> >>>> beyond using bulk loads. Any advice appreciated, including what
> metrics
> >> we
> >>>> should be looking at to further diagnose our read performance
> >> challenges.
> >>>>
> >>>> Thanks,
> >>>> Mike Ellery
> >>
> >>
>
>
Re: column count guidelines
Posted by Marcos Ortiz <ml...@uci.cu>.
My recommendation is to keep updated with the last HBase release, and
wait for 0.96, which it
has a lot of improvements almost in every area. I talked about this in a
blog post.[1]
I think in your use-case, Coprocessors can be very helpful, although in
Lars's "HBase: The Definitive Guide" book,
he explained in Chapter 4 how to use Counters and Coprocessors. You
should read it.
A great introduction to Coprocessors was posted in HBase's blog, [2] and
a great example of HBase performance tuning, including Coprocessors's
use, was
posted by Hari Kumar from Ericsson Research on its Data and Knowledge
blog.[3]
Best wishes
[1] http://marcosluis2186.posterous.com/some-upcoming-features-in-hbase-096
[2] https://blogs.apache.org/hbase/entry/coprocessor_introduction
[3] http://labs.ericsson.com/blog/hbase-performance-tuners
On 02/07/2013 11:34 PM, Michael Ellery wrote:
> thanks for reminding me of the HBASE version in CDH4 - that's something we'll definitely take into consideration.
>
> -Mike
>
> On Feb 7, 2013, at 5:09 PM, Ted Yu wrote:
>
>> Thanks Michael for this information.
>>
>> FYI CDH4 (as of now) is based on HBase 0.92.x which doesn't have the two
>> features I cited below.
>>
>> On Thu, Feb 7, 2013 at 5:02 PM, Michael Ellery <me...@opendns.com> wrote:
>>
>>> There is only one CF in this schema.
>>>
>>> Yes, we are looking at upgrading to CDH4, but it is not trivial since we
>>> cannot have cluster downtime. Our current upgrade plans involves additional
>>> hardware with side-by side clusters until everything is exported/imported.
>>>
>>> Thanks,
>>> Mike
>>>
>>> On Feb 7, 2013, at 4:34 PM, Ted Yu wrote:
>>>
>>>> How many column families are involved ?
>>>>
>>>> Have you considered upgrading to 0.94.4 where you would be able to
>>> benefit
>>>> from lazy seek, Data Block Encoding, etc ?
>>>>
>>>> Thanks
>>>>
>>>> On Thu, Feb 7, 2013 at 3:47 PM, Michael Ellery <me...@opendns.com>
>>> wrote:
>>>>> I'm looking for some advice about per row CQ (column qualifier) count
>>>>> guidelines. Our current schema design means we have a HIGHLY variable CQ
>>>>> count per row -- some rows have one or two CQs and some rows have
>>> upwards
>>>>> of 1 million. Each CQ is on the order of 100 bytes (for round numbers)
>>> and
>>>>> the cell values are null. We see highly variable and too often
>>>>> unacceptable read performance using this schema. I don't know for a
>>> fact
>>>>> that the CQ count variability is the source of our problems, but I am
>>>>> suspicious.
>>>>>
>>>>> I'm curious about others' experience with CQ counts per row -- are there
>>>>> some best practices/guidelines about how to optimally size the number of
>>>>> CQs per row. The other obvious solution will involve breaking this data
>>>>> into finer grained rows, which means shifting from GETs to SCANs - are
>>>>> there performance trade-offs in such a change?
>>>>>
>>>>> We are currently using CDH3u4, if that is relevant. All of our loading
>>> is
>>>>> done via HFILE loading (bulk), so we have not had to tune write
>>> performance
>>>>> beyond using bulk loads. Any advice appreciated, including what metrics
>>> we
>>>>> should be looking at to further diagnose our read performance
>>> challenges.
>>>>> Thanks,
>>>>> Mike Ellery
>>>
--
Marcos Ortiz Valmaseda,
Product Manager && Data Scientist at UCI
Blog: http://marcosluis2186.posterous.com
Twitter: @marcosluis2186 <http://twitter.com/marcosluis2186>
Re: column count guidelines
Posted by Michael Ellery <me...@opendns.com>.
thanks for reminding me of the HBASE version in CDH4 - that's something we'll definitely take into consideration.
-Mike
On Feb 7, 2013, at 5:09 PM, Ted Yu wrote:
> Thanks Michael for this information.
>
> FYI CDH4 (as of now) is based on HBase 0.92.x which doesn't have the two
> features I cited below.
>
> On Thu, Feb 7, 2013 at 5:02 PM, Michael Ellery <me...@opendns.com> wrote:
>
>> There is only one CF in this schema.
>>
>> Yes, we are looking at upgrading to CDH4, but it is not trivial since we
>> cannot have cluster downtime. Our current upgrade plans involves additional
>> hardware with side-by side clusters until everything is exported/imported.
>>
>> Thanks,
>> Mike
>>
>> On Feb 7, 2013, at 4:34 PM, Ted Yu wrote:
>>
>>> How many column families are involved ?
>>>
>>> Have you considered upgrading to 0.94.4 where you would be able to
>> benefit
>>> from lazy seek, Data Block Encoding, etc ?
>>>
>>> Thanks
>>>
>>> On Thu, Feb 7, 2013 at 3:47 PM, Michael Ellery <me...@opendns.com>
>> wrote:
>>>
>>>> I'm looking for some advice about per row CQ (column qualifier) count
>>>> guidelines. Our current schema design means we have a HIGHLY variable CQ
>>>> count per row -- some rows have one or two CQs and some rows have
>> upwards
>>>> of 1 million. Each CQ is on the order of 100 bytes (for round numbers)
>> and
>>>> the cell values are null. We see highly variable and too often
>>>> unacceptable read performance using this schema. I don't know for a
>> fact
>>>> that the CQ count variability is the source of our problems, but I am
>>>> suspicious.
>>>>
>>>> I'm curious about others' experience with CQ counts per row -- are there
>>>> some best practices/guidelines about how to optimally size the number of
>>>> CQs per row. The other obvious solution will involve breaking this data
>>>> into finer grained rows, which means shifting from GETs to SCANs - are
>>>> there performance trade-offs in such a change?
>>>>
>>>> We are currently using CDH3u4, if that is relevant. All of our loading
>> is
>>>> done via HFILE loading (bulk), so we have not had to tune write
>> performance
>>>> beyond using bulk loads. Any advice appreciated, including what metrics
>> we
>>>> should be looking at to further diagnose our read performance
>> challenges.
>>>>
>>>> Thanks,
>>>> Mike Ellery
>>
>>
Re: column count guidelines
Posted by Ted Yu <yu...@gmail.com>.
Thanks Michael for this information.
FYI CDH4 (as of now) is based on HBase 0.92.x which doesn't have the two
features I cited below.
On Thu, Feb 7, 2013 at 5:02 PM, Michael Ellery <me...@opendns.com> wrote:
> There is only one CF in this schema.
>
> Yes, we are looking at upgrading to CDH4, but it is not trivial since we
> cannot have cluster downtime. Our current upgrade plans involves additional
> hardware with side-by side clusters until everything is exported/imported.
>
> Thanks,
> Mike
>
> On Feb 7, 2013, at 4:34 PM, Ted Yu wrote:
>
> > How many column families are involved ?
> >
> > Have you considered upgrading to 0.94.4 where you would be able to
> benefit
> > from lazy seek, Data Block Encoding, etc ?
> >
> > Thanks
> >
> > On Thu, Feb 7, 2013 at 3:47 PM, Michael Ellery <me...@opendns.com>
> wrote:
> >
> >> I'm looking for some advice about per row CQ (column qualifier) count
> >> guidelines. Our current schema design means we have a HIGHLY variable CQ
> >> count per row -- some rows have one or two CQs and some rows have
> upwards
> >> of 1 million. Each CQ is on the order of 100 bytes (for round numbers)
> and
> >> the cell values are null. We see highly variable and too often
> >> unacceptable read performance using this schema. I don't know for a
> fact
> >> that the CQ count variability is the source of our problems, but I am
> >> suspicious.
> >>
> >> I'm curious about others' experience with CQ counts per row -- are there
> >> some best practices/guidelines about how to optimally size the number of
> >> CQs per row. The other obvious solution will involve breaking this data
> >> into finer grained rows, which means shifting from GETs to SCANs - are
> >> there performance trade-offs in such a change?
> >>
> >> We are currently using CDH3u4, if that is relevant. All of our loading
> is
> >> done via HFILE loading (bulk), so we have not had to tune write
> performance
> >> beyond using bulk loads. Any advice appreciated, including what metrics
> we
> >> should be looking at to further diagnose our read performance
> challenges.
> >>
> >> Thanks,
> >> Mike Ellery
>
>
Re: column count guidelines
Posted by Marcos Ortiz Valmaseda <ml...@uci.cu>.
I have the same advice that Ted Yu said to you.
You should upgrade to 0.94.4. There are a lot of good things which can be very
benefitial for your use-case.
----- Mensaje original -----
De: "Michael Ellery" <me...@opendns.com>
Para: user@hbase.apache.org
Enviados: Jueves, 7 de Febrero 2013 20:02:18
Asunto: Re: column count guidelines
There is only one CF in this schema.
Yes, we are looking at upgrading to CDH4, but it is not trivial since we cannot have cluster downtime. Our current upgrade plans involves additional hardware with side-by side clusters until everything is exported/imported.
Thanks,
Mike
On Feb 7, 2013, at 4:34 PM, Ted Yu wrote:
> How many column families are involved ?
>
> Have you considered upgrading to 0.94.4 where you would be able to benefit
> from lazy seek, Data Block Encoding, etc ?
>
> Thanks
>
> On Thu, Feb 7, 2013 at 3:47 PM, Michael Ellery <me...@opendns.com> wrote:
>
>> I'm looking for some advice about per row CQ (column qualifier) count
>> guidelines. Our current schema design means we have a HIGHLY variable CQ
>> count per row -- some rows have one or two CQs and some rows have upwards
>> of 1 million. Each CQ is on the order of 100 bytes (for round numbers) and
>> the cell values are null. We see highly variable and too often
>> unacceptable read performance using this schema. I don't know for a fact
>> that the CQ count variability is the source of our problems, but I am
>> suspicious.
>>
>> I'm curious about others' experience with CQ counts per row -- are there
>> some best practices/guidelines about how to optimally size the number of
>> CQs per row. The other obvious solution will involve breaking this data
>> into finer grained rows, which means shifting from GETs to SCANs - are
>> there performance trade-offs in such a change?
>>
>> We are currently using CDH3u4, if that is relevant. All of our loading is
>> done via HFILE loading (bulk), so we have not had to tune write performance
>> beyond using bulk loads. Any advice appreciated, including what metrics we
>> should be looking at to further diagnose our read performance challenges.
>>
>> Thanks,
>> Mike Ellery
--
Marcos Ortiz Valmaseda,
Product Manager && Data Scientist at UCI
Blog : http://marcosluis2186.posterous.com
LinkedIn: http://www.linkedin.com/in/marcosluis2186
Twitter : @marcosluis2186
Re: column count guidelines
Posted by Michael Ellery <me...@opendns.com>.
There is only one CF in this schema.
Yes, we are looking at upgrading to CDH4, but it is not trivial since we cannot have cluster downtime. Our current upgrade plans involves additional hardware with side-by side clusters until everything is exported/imported.
Thanks,
Mike
On Feb 7, 2013, at 4:34 PM, Ted Yu wrote:
> How many column families are involved ?
>
> Have you considered upgrading to 0.94.4 where you would be able to benefit
> from lazy seek, Data Block Encoding, etc ?
>
> Thanks
>
> On Thu, Feb 7, 2013 at 3:47 PM, Michael Ellery <me...@opendns.com> wrote:
>
>> I'm looking for some advice about per row CQ (column qualifier) count
>> guidelines. Our current schema design means we have a HIGHLY variable CQ
>> count per row -- some rows have one or two CQs and some rows have upwards
>> of 1 million. Each CQ is on the order of 100 bytes (for round numbers) and
>> the cell values are null. We see highly variable and too often
>> unacceptable read performance using this schema. I don't know for a fact
>> that the CQ count variability is the source of our problems, but I am
>> suspicious.
>>
>> I'm curious about others' experience with CQ counts per row -- are there
>> some best practices/guidelines about how to optimally size the number of
>> CQs per row. The other obvious solution will involve breaking this data
>> into finer grained rows, which means shifting from GETs to SCANs - are
>> there performance trade-offs in such a change?
>>
>> We are currently using CDH3u4, if that is relevant. All of our loading is
>> done via HFILE loading (bulk), so we have not had to tune write performance
>> beyond using bulk loads. Any advice appreciated, including what metrics we
>> should be looking at to further diagnose our read performance challenges.
>>
>> Thanks,
>> Mike Ellery
Re: column count guidelines
Posted by Ted Yu <yu...@gmail.com>.
The reason I mentioned 0.94.4 was that it is the most recent 0.94 release.
For the features, you can refer to the following JIRAs:
HBASE-4465 Lazy-seek optimization for StoreFile scanners
HBASE-4218 Data Block Encoding of KeyValues (aka delta encoding / prefix
compression)
Cheers
On Fri, Feb 8, 2013 at 8:25 AM, Asaf Mesika <as...@gmail.com> wrote:
> Can you elaborate more on that features? I thought 4 was just for bug
> fixes.
>
> Sent from my iPhone
>
> On 8 בפבר 2013, at 02:34, Ted Yu <yu...@gmail.com> wrote:
>
> How many column families are involved ?
>
> Have you considered upgrading to 0.94.4 where you would be able to benefit
> from lazy seek, Data Block Encoding, etc ?
>
> Thanks
>
> On Thu, Feb 7, 2013 at 3:47 PM, Michael Ellery <me...@opendns.com>
> wrote:
>
> I'm looking for some advice about per row CQ (column qualifier) count
>
> guidelines. Our current schema design means we have a HIGHLY variable CQ
>
> count per row -- some rows have one or two CQs and some rows have upwards
>
> of 1 million. Each CQ is on the order of 100 bytes (for round numbers) and
>
> the cell values are null. We see highly variable and too often
>
> unacceptable read performance using this schema. I don't know for a fact
>
> that the CQ count variability is the source of our problems, but I am
>
> suspicious.
>
>
> I'm curious about others' experience with CQ counts per row -- are there
>
> some best practices/guidelines about how to optimally size the number of
>
> CQs per row. The other obvious solution will involve breaking this data
>
> into finer grained rows, which means shifting from GETs to SCANs - are
>
> there performance trade-offs in such a change?
>
>
> We are currently using CDH3u4, if that is relevant. All of our loading is
>
> done via HFILE loading (bulk), so we have not had to tune write performance
>
> beyond using bulk loads. Any advice appreciated, including what metrics we
>
> should be looking at to further diagnose our read performance challenges.
>
>
> Thanks,
>
> Mike Ellery
>
Re: column count guidelines
Posted by Asaf Mesika <as...@gmail.com>.
Can you elaborate more on that features? I thought 4 was just for bug fixes.
Sent from my iPhone
On 8 בפבר 2013, at 02:34, Ted Yu <yu...@gmail.com> wrote:
How many column families are involved ?
Have you considered upgrading to 0.94.4 where you would be able to benefit
from lazy seek, Data Block Encoding, etc ?
Thanks
On Thu, Feb 7, 2013 at 3:47 PM, Michael Ellery <me...@opendns.com> wrote:
I'm looking for some advice about per row CQ (column qualifier) count
guidelines. Our current schema design means we have a HIGHLY variable CQ
count per row -- some rows have one or two CQs and some rows have upwards
of 1 million. Each CQ is on the order of 100 bytes (for round numbers) and
the cell values are null. We see highly variable and too often
unacceptable read performance using this schema. I don't know for a fact
that the CQ count variability is the source of our problems, but I am
suspicious.
I'm curious about others' experience with CQ counts per row -- are there
some best practices/guidelines about how to optimally size the number of
CQs per row. The other obvious solution will involve breaking this data
into finer grained rows, which means shifting from GETs to SCANs - are
there performance trade-offs in such a change?
We are currently using CDH3u4, if that is relevant. All of our loading is
done via HFILE loading (bulk), so we have not had to tune write performance
beyond using bulk loads. Any advice appreciated, including what metrics we
should be looking at to further diagnose our read performance challenges.
Thanks,
Mike Ellery
Re: column count guidelines
Posted by Ted Yu <yu...@gmail.com>.
How many column families are involved ?
Have you considered upgrading to 0.94.4 where you would be able to benefit
from lazy seek, Data Block Encoding, etc ?
Thanks
On Thu, Feb 7, 2013 at 3:47 PM, Michael Ellery <me...@opendns.com> wrote:
> I'm looking for some advice about per row CQ (column qualifier) count
> guidelines. Our current schema design means we have a HIGHLY variable CQ
> count per row -- some rows have one or two CQs and some rows have upwards
> of 1 million. Each CQ is on the order of 100 bytes (for round numbers) and
> the cell values are null. We see highly variable and too often
> unacceptable read performance using this schema. I don't know for a fact
> that the CQ count variability is the source of our problems, but I am
> suspicious.
>
> I'm curious about others' experience with CQ counts per row -- are there
> some best practices/guidelines about how to optimally size the number of
> CQs per row. The other obvious solution will involve breaking this data
> into finer grained rows, which means shifting from GETs to SCANs - are
> there performance trade-offs in such a change?
>
> We are currently using CDH3u4, if that is relevant. All of our loading is
> done via HFILE loading (bulk), so we have not had to tune write performance
> beyond using bulk loads. Any advice appreciated, including what metrics we
> should be looking at to further diagnose our read performance challenges.
>
> Thanks,
> Mike Ellery