[ 
https://issues.apache.org/jira/browse/HDFS-13752?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16553853#comment-16553853
 ] 

Xiao Chen commented on HDFS-13752:
----------------------------------

Thanks all for the investigation and discussion here.

>From the benchmark and analysis above, I agree uri is consuming a fair amount 
>of memory. However, the downside of replacing it with a String is that, all 
>the current methods in {{Path}} that's based on the convenience of a cached 
>uri will incur CPU cost to calculate the uri from string, and possibly young 
>gen object allocations. This includes {{toUri}}, {{isUriPathAbsolute}} and 
>{{isAbsolute}}, all of which are widely used. We might use an additional 
>boolean to cache isAbsolute, but I don't see a good solution for {{toUri}} and 
>there are 922 usages of it in trunk.

I'd like to see more benchmarks to prove that my concern is false, before we 
make this rather fundamental change.

> fs.Path stores file path in java.net.URI causes big memory waste
> ----------------------------------------------------------------
>
>                 Key: HDFS-13752
>                 URL: https://issues.apache.org/jira/browse/HDFS-13752
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>          Components: fs
>    Affects Versions: 2.7.6
>         Environment: Hive 2.1.1 and hadoop 2.7.6 
>            Reporter: Barnabas Maidics
>            Priority: Major
>         Attachments: Screen Shot 2018-07-20 at 11.12.38.png, 
> heapdump-100000partitions.html
>
>
> I was looking at HiveServer2 memory usage, and a big percentage of this was 
> because of org.apache.hadoop.fs.Path, where you store file paths in a 
> java.net.URI object. The URI implementation stores the same string in 3 
> different objects (see the attached image). In Hive when there are many 
> partitions this cause a big memory usage. In my particular case 42% of memory 
> was used by java.net.URI so it could be reduced to 14%. 
> I wonder if the community is open to replace it with a more memory efficient 
> implementation and what other things should be considered here? It can be a 
> huge memory improvement for Hadoop and for Hive as well.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to