[ 
https://issues.apache.org/jira/browse/HBASE-15203?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ramkrishna.s.vasudevan updated HBASE-15203:
-------------------------------------------
    Description: When we try to read a block we do checksum verification for 
which we need the file name in which the block belongs to. So we do 
Path.toString() every time. This seems to create around 163MB of char[] that is 
garbage collected in a simple scan run. It is also visible in writes but the 
impact is lesser. In overall write/read profile the top 2 factors are byte[] 
and char[]. This toString() can easily be avoided and reduce its share from the 
total. To make it more precise in 1 min of profiling, among the 1.8G of garbage 
created by StringBuilder.toString - this path.toString() was contributing 
around 3.5%. After the patch this is totally not there.   (was: When we try to 
read a block we do checksum verification for which we need the file name in 
which the block belongs to. So we do Path.toString() every time. This seems to 
create around 163MB of char[] that is garbage collected in a simple scan run. 
It is also visible in writes but the impact is lesser. In overall write/read 
profile the top 2 factors are byte[] and char[]. This toString() can easily be 
avoided and reduce its share from the total. )

> Reduce garbage created by path.toString() during Checksum verification
> ----------------------------------------------------------------------
>
>                 Key: HBASE-15203
>                 URL: https://issues.apache.org/jira/browse/HBASE-15203
>             Project: HBase
>          Issue Type: Sub-task
>          Components: regionserver
>            Reporter: ramkrishna.s.vasudevan
>            Assignee: ramkrishna.s.vasudevan
>            Priority: Minor
>             Fix For: 2.0.0
>
>         Attachments: HBASE-15203.patch
>
>
> When we try to read a block we do checksum verification for which we need the 
> file name in which the block belongs to. So we do Path.toString() every time. 
> This seems to create around 163MB of char[] that is garbage collected in a 
> simple scan run. It is also visible in writes but the impact is lesser. In 
> overall write/read profile the top 2 factors are byte[] and char[]. This 
> toString() can easily be avoided and reduce its share from the total. To make 
> it more precise in 1 min of profiling, among the 1.8G of garbage created by 
> StringBuilder.toString - this path.toString() was contributing around 3.5%. 
> After the patch this is totally not there. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to