You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by zheng wang <18...@qq.com> on 2020/06/07 06:12:17 UTC

[DISCUSS]HBase2.1.0 is slower than HBase1.2.0

Hi guys:


I did some test on my pc to find the reason as Jan Van Besien mentioned in user channel.


#test env
OS : win10
JDK: 1.8
MEM: 8GB


#test data:
1 million rows with only one columnfamily and one qualifier.


rowkey: rowkey-#index#
value: value-#index#


#test method:
just use client api to scan with default config several times, no pe, no ycsb


#test result(avg):
v1.2.0: 800ms
v2.1.0: 1050ms


So, it is sure that v2.1 is slower than v1.2, after this, i did some statistics on regionserver.
Then i find the partly reason is related to the size estimated.


The code line below in StoreScanner.next() cost about 100ms in v2.1, and it added from v2.0, see HBASE-17647.&nbsp;
"int cellSize = PrivateCellUtil.estimatedSerializedSizeOf(cell);"


Should we support to disable the MaxResultSize limit(2MB by default now) to get more efficient if user exactly knows their data and could limit results only by setBatch and setLimit?&nbsp;

Re: [DISCUSS]HBase2.1.0 is slower than HBase1.2.0

Posted by ramkrishna vasudevan <ra...@gmail.com>.
Oh great. Thanks for pointing that out. I think that is what is the exact
place that the perf bottleneck was found.

Regards
Ram


On Thu, Jun 11, 2020 at 4:29 PM 张铎(Duo Zhang) <pa...@gmail.com> wrote:

> Oh, good. I recall that there is a related issue but I just forget the
> title so I can not find it...
>
> Thanks for chimming in.
>
> OpenInx <op...@gmail.com> 于2020年6月11日周四 下午6:39写道:
>
> > Hi Zheng wang.
> >
> > Hope this issue will be helpful for you.
> > https://issues.apache.org/jira/browse/HBASE-21657
> > Thanks.
> >
> > On Tue, Jun 9, 2020 at 5:53 PM Anoop John <an...@gmail.com> wrote:
> >
> > > Thanks for the detailed analysis and update zheng wang.
> > > >The code line below in StoreScanner.next() cost about 100ms in v2.1,
> and
> > > it added from v2.0, see HBASE-17647.&nbsp
> > > So still there is some additional cost in 2.1 right? Do u have any
> other
> > > observation?  Are we doing more cell compares in 2.x?
> > >
> > > Anoop
> > >
> > >
> > > On Mon, Jun 8, 2020 at 1:50 AM zheng wang <18...@qq.com> wrote:
> > >
> > > > Hi guys:
> > > >
> > > >
> > > > I did some test on my pc to find the reason as Jan Van Besien
> mentioned
> > > in
> > > > user channel.
> > > >
> > > >
> > > > #test env
> > > > OS : win10
> > > > JDK: 1.8
> > > > MEM: 8GB
> > > >
> > > >
> > > > #test data:
> > > > 1 million rows with only one columnfamily and one qualifier.
> > > >
> > > >
> > > > rowkey: rowkey-#index#
> > > > value: value-#index#
> > > >
> > > >
> > > > #test method:
> > > > just use client api to scan with default config several times, no pe,
> > no
> > > > ycsb
> > > >
> > > >
> > > > #test result(avg):
> > > > v1.2.0: 800ms
> > > > v2.1.0: 1050ms
> > > >
> > > >
> > > > So, it is sure that v2.1 is slower than v1.2, after this, i did some
> > > > statistics on regionserver.
> > > > Then i find the partly reason is related to the size estimated.
> > > >
> > > >
> > > > The code line below in StoreScanner.next() cost about 100ms in v2.1,
> > and
> > > > it added from v2.0, see HBASE-17647.&nbsp;
> > > > "int cellSize = PrivateCellUtil.estimatedSerializedSizeOf(cell);"
> > > >
> > > >
> > > > Should we support to disable the MaxResultSize limit(2MB by default
> > now)
> > > > to get more efficient if user exactly knows their data and could
> limit
> > > > results only by setBatch and setLimit?&nbsp;
> > >
> >
>

Re: [DISCUSS]HBase2.1.0 is slower than HBase1.2.0

Posted by "张铎 (Duo Zhang)" <pa...@gmail.com>.
Oh, good. I recall that there is a related issue but I just forget the
title so I can not find it...

Thanks for chimming in.

OpenInx <op...@gmail.com> 于2020年6月11日周四 下午6:39写道:

> Hi Zheng wang.
>
> Hope this issue will be helpful for you.
> https://issues.apache.org/jira/browse/HBASE-21657
> Thanks.
>
> On Tue, Jun 9, 2020 at 5:53 PM Anoop John <an...@gmail.com> wrote:
>
> > Thanks for the detailed analysis and update zheng wang.
> > >The code line below in StoreScanner.next() cost about 100ms in v2.1, and
> > it added from v2.0, see HBASE-17647.&nbsp
> > So still there is some additional cost in 2.1 right? Do u have any other
> > observation?  Are we doing more cell compares in 2.x?
> >
> > Anoop
> >
> >
> > On Mon, Jun 8, 2020 at 1:50 AM zheng wang <18...@qq.com> wrote:
> >
> > > Hi guys:
> > >
> > >
> > > I did some test on my pc to find the reason as Jan Van Besien mentioned
> > in
> > > user channel.
> > >
> > >
> > > #test env
> > > OS : win10
> > > JDK: 1.8
> > > MEM: 8GB
> > >
> > >
> > > #test data:
> > > 1 million rows with only one columnfamily and one qualifier.
> > >
> > >
> > > rowkey: rowkey-#index#
> > > value: value-#index#
> > >
> > >
> > > #test method:
> > > just use client api to scan with default config several times, no pe,
> no
> > > ycsb
> > >
> > >
> > > #test result(avg):
> > > v1.2.0: 800ms
> > > v2.1.0: 1050ms
> > >
> > >
> > > So, it is sure that v2.1 is slower than v1.2, after this, i did some
> > > statistics on regionserver.
> > > Then i find the partly reason is related to the size estimated.
> > >
> > >
> > > The code line below in StoreScanner.next() cost about 100ms in v2.1,
> and
> > > it added from v2.0, see HBASE-17647.&nbsp;
> > > "int cellSize = PrivateCellUtil.estimatedSerializedSizeOf(cell);"
> > >
> > >
> > > Should we support to disable the MaxResultSize limit(2MB by default
> now)
> > > to get more efficient if user exactly knows their data and could limit
> > > results only by setBatch and setLimit?&nbsp;
> >
>

Re: [DISCUSS]HBase2.1.0 is slower than HBase1.2.0

Posted by OpenInx <op...@gmail.com>.
Hi Zheng wang.

Hope this issue will be helpful for you.
https://issues.apache.org/jira/browse/HBASE-21657
Thanks.

On Tue, Jun 9, 2020 at 5:53 PM Anoop John <an...@gmail.com> wrote:

> Thanks for the detailed analysis and update zheng wang.
> >The code line below in StoreScanner.next() cost about 100ms in v2.1, and
> it added from v2.0, see HBASE-17647.&nbsp
> So still there is some additional cost in 2.1 right? Do u have any other
> observation?  Are we doing more cell compares in 2.x?
>
> Anoop
>
>
> On Mon, Jun 8, 2020 at 1:50 AM zheng wang <18...@qq.com> wrote:
>
> > Hi guys:
> >
> >
> > I did some test on my pc to find the reason as Jan Van Besien mentioned
> in
> > user channel.
> >
> >
> > #test env
> > OS : win10
> > JDK: 1.8
> > MEM: 8GB
> >
> >
> > #test data:
> > 1 million rows with only one columnfamily and one qualifier.
> >
> >
> > rowkey: rowkey-#index#
> > value: value-#index#
> >
> >
> > #test method:
> > just use client api to scan with default config several times, no pe, no
> > ycsb
> >
> >
> > #test result(avg):
> > v1.2.0: 800ms
> > v2.1.0: 1050ms
> >
> >
> > So, it is sure that v2.1 is slower than v1.2, after this, i did some
> > statistics on regionserver.
> > Then i find the partly reason is related to the size estimated.
> >
> >
> > The code line below in StoreScanner.next() cost about 100ms in v2.1, and
> > it added from v2.0, see HBASE-17647.&nbsp;
> > "int cellSize = PrivateCellUtil.estimatedSerializedSizeOf(cell);"
> >
> >
> > Should we support to disable the MaxResultSize limit(2MB by default now)
> > to get more efficient if user exactly knows their data and could limit
> > results only by setBatch and setLimit?&nbsp;
>

Re: [DISCUSS]HBase2.1.0 is slower than HBase1.2.0

Posted by Anoop John <an...@gmail.com>.
Thanks for the detailed analysis and update zheng wang.
>The code line below in StoreScanner.next() cost about 100ms in v2.1, and
it added from v2.0, see HBASE-17647.&nbsp
So still there is some additional cost in 2.1 right? Do u have any other
observation?  Are we doing more cell compares in 2.x?

Anoop


On Mon, Jun 8, 2020 at 1:50 AM zheng wang <18...@qq.com> wrote:

> Hi guys:
>
>
> I did some test on my pc to find the reason as Jan Van Besien mentioned in
> user channel.
>
>
> #test env
> OS : win10
> JDK: 1.8
> MEM: 8GB
>
>
> #test data:
> 1 million rows with only one columnfamily and one qualifier.
>
>
> rowkey: rowkey-#index#
> value: value-#index#
>
>
> #test method:
> just use client api to scan with default config several times, no pe, no
> ycsb
>
>
> #test result(avg):
> v1.2.0: 800ms
> v2.1.0: 1050ms
>
>
> So, it is sure that v2.1 is slower than v1.2, after this, i did some
> statistics on regionserver.
> Then i find the partly reason is related to the size estimated.
>
>
> The code line below in StoreScanner.next() cost about 100ms in v2.1, and
> it added from v2.0, see HBASE-17647.&nbsp;
> "int cellSize = PrivateCellUtil.estimatedSerializedSizeOf(cell);"
>
>
> Should we support to disable the MaxResultSize limit(2MB by default now)
> to get more efficient if user exactly knows their data and could limit
> results only by setBatch and setLimit?&nbsp;