You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@phoenix.apache.org by Amit Shah <am...@gmail.com> on 2016/03/25 09:04:21 UTC

Disabling HBase Block Cache

Hi,

I am using apache hbase (version 1.0.0) and phoenix (version 4.6) deployed
through cloudera. Since my aggregations with group by query is slow, I want
to try out disabling the block cache for a particular hbase table. I tried
a couple of approaches but couldn't succeed. I am verifying if the block
cache is enabled/disabled through the hbase shell - describe 'my_table'
command.

1. Set 'hfile.block.cache.size' property from cloudera console to 0

2. alter 'myTable', CONFIGURATION => {NAME => 'myColumnFamily', BLOCKCACHE
=> 'false'}

Even after the above two steps, I get BLOCKCACHE => 'true' in the describe
command output

COLUMN FAMILIES DESCRIPTION {NAME => '0', DATA_BLOCK_ENCODING =>
'FAST_DIFF', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', COMPRESSION =>
'NONE', VERSIONS => '1', MIN_VERSIONS => '0', TTL => 'FOREVER',
KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false',
BLOCKCACHE => 'true'}

What could be going wrong? Any suggestions?

Thank you.

Re: Disabling HBase Block Cache

Posted by Amit Shah <am...@gmail.com>.
Hi James,

Executing the alter table query in the format you specified indeed shows
the BLOCKCACHE => 'false' when describing the table on hbase shell.

Thanks,
Amit.

On Fri, Mar 25, 2016 at 10:57 PM, James Taylor <ja...@apache.org>
wrote:

> Hi Amit,
>
> Have you see our documentation and examples for ALTER TABLE [1]?
>
> So you could do ALTER TABLE my_table SET BLOCKCACHE=false;
>
> If you want to prevent rows from being put in the block cache on a per
> query basis, you can use the /*+ NO_CACHE */ hint [2] on a query like this:
>
> SELECT /*+ NO_CACHE */ ...
>
> Thanks,
> James
>
> [1] https://phoenix.apache.org/language/index.html#alter
> [2] https://phoenix.apache.org/language/index.html#hint
>
> On Fri, Mar 25, 2016 at 6:39 AM, Amit Shah <am...@gmail.com> wrote:
>
>> I noticed that the charts <http://i.imgur.com/ZEJTHWt.png>on cloudera
>> indicate no block usage when the group by query is executed. This probably
>> means that the block cache is disabled. The only strange fact is that the
>> hbase shell describe command gave BLOCKCACHE => 'true'. It would be great
>> if someone could throw some light on this.
>>
>> P.S - Though disabling the block cache didn't speed up the group by query
>> but that seems like a separate topic of discussion.
>>
>> Thanks!
>>
>> On Fri, Mar 25, 2016 at 1:34 PM, Amit Shah <am...@gmail.com> wrote:
>>
>>> Hi,
>>>
>>> I am using apache hbase (version 1.0.0) and phoenix (version 4.6)
>>> deployed through cloudera. Since my aggregations with group by query is
>>> slow, I want to try out disabling the block cache for a particular hbase
>>> table. I tried a couple of approaches but couldn't succeed. I am verifying
>>> if the block cache is enabled/disabled through the hbase shell - describe
>>> 'my_table' command.
>>>
>>> 1. Set 'hfile.block.cache.size' property from cloudera console to 0
>>>
>>> 2. alter 'myTable', CONFIGURATION => {NAME => 'myColumnFamily',
>>> BLOCKCACHE => 'false'}
>>>
>>> Even after the above two steps, I get BLOCKCACHE => 'true' in the
>>> describe command output
>>>
>>> COLUMN FAMILIES DESCRIPTION {NAME => '0', DATA_BLOCK_ENCODING =>
>>> 'FAST_DIFF', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', COMPRESSION =>
>>> 'NONE', VERSIONS => '1', MIN_VERSIONS => '0', TTL => 'FOREVER',
>>> KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false',
>>> BLOCKCACHE => 'true'}
>>>
>>> What could be going wrong? Any suggestions?
>>>
>>> Thank you.
>>>
>>>
>>>
>>
>

Re: Disabling HBase Block Cache

Posted by James Taylor <ja...@apache.org>.
Hi Amit,

Have you see our documentation and examples for ALTER TABLE [1]?

So you could do ALTER TABLE my_table SET BLOCKCACHE=false;

If you want to prevent rows from being put in the block cache on a per
query basis, you can use the /*+ NO_CACHE */ hint [2] on a query like this:

SELECT /*+ NO_CACHE */ ...

Thanks,
James

[1] https://phoenix.apache.org/language/index.html#alter
[2] https://phoenix.apache.org/language/index.html#hint

On Fri, Mar 25, 2016 at 6:39 AM, Amit Shah <am...@gmail.com> wrote:

> I noticed that the charts <http://i.imgur.com/ZEJTHWt.png>on cloudera
> indicate no block usage when the group by query is executed. This probably
> means that the block cache is disabled. The only strange fact is that the
> hbase shell describe command gave BLOCKCACHE => 'true'. It would be great
> if someone could throw some light on this.
>
> P.S - Though disabling the block cache didn't speed up the group by query
> but that seems like a separate topic of discussion.
>
> Thanks!
>
> On Fri, Mar 25, 2016 at 1:34 PM, Amit Shah <am...@gmail.com> wrote:
>
>> Hi,
>>
>> I am using apache hbase (version 1.0.0) and phoenix (version 4.6)
>> deployed through cloudera. Since my aggregations with group by query is
>> slow, I want to try out disabling the block cache for a particular hbase
>> table. I tried a couple of approaches but couldn't succeed. I am verifying
>> if the block cache is enabled/disabled through the hbase shell - describe
>> 'my_table' command.
>>
>> 1. Set 'hfile.block.cache.size' property from cloudera console to 0
>>
>> 2. alter 'myTable', CONFIGURATION => {NAME => 'myColumnFamily',
>> BLOCKCACHE => 'false'}
>>
>> Even after the above two steps, I get BLOCKCACHE => 'true' in the
>> describe command output
>>
>> COLUMN FAMILIES DESCRIPTION {NAME => '0', DATA_BLOCK_ENCODING =>
>> 'FAST_DIFF', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', COMPRESSION =>
>> 'NONE', VERSIONS => '1', MIN_VERSIONS => '0', TTL => 'FOREVER',
>> KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false',
>> BLOCKCACHE => 'true'}
>>
>> What could be going wrong? Any suggestions?
>>
>> Thank you.
>>
>>
>>
>

Re: Disabling HBase Block Cache

Posted by Amit Shah <am...@gmail.com>.
I noticed that the charts <http://i.imgur.com/ZEJTHWt.png>on cloudera
indicate no block usage when the group by query is executed. This probably
means that the block cache is disabled. The only strange fact is that the
hbase shell describe command gave BLOCKCACHE => 'true'. It would be great
if someone could throw some light on this.

P.S - Though disabling the block cache didn't speed up the group by query
but that seems like a separate topic of discussion.

Thanks!

On Fri, Mar 25, 2016 at 1:34 PM, Amit Shah <am...@gmail.com> wrote:

> Hi,
>
> I am using apache hbase (version 1.0.0) and phoenix (version 4.6) deployed
> through cloudera. Since my aggregations with group by query is slow, I want
> to try out disabling the block cache for a particular hbase table. I tried
> a couple of approaches but couldn't succeed. I am verifying if the block
> cache is enabled/disabled through the hbase shell - describe 'my_table'
> command.
>
> 1. Set 'hfile.block.cache.size' property from cloudera console to 0
>
> 2. alter 'myTable', CONFIGURATION => {NAME => 'myColumnFamily', BLOCKCACHE
> => 'false'}
>
> Even after the above two steps, I get BLOCKCACHE => 'true' in the describe
> command output
>
> COLUMN FAMILIES DESCRIPTION {NAME => '0', DATA_BLOCK_ENCODING =>
> 'FAST_DIFF', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', COMPRESSION =>
> 'NONE', VERSIONS => '1', MIN_VERSIONS => '0', TTL => 'FOREVER',
> KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false',
> BLOCKCACHE => 'true'}
>
> What could be going wrong? Any suggestions?
>
> Thank you.
>
>
>