[
https://issues.apache.org/jira/browse/HADOOP-15204?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16349709#comment-16349709
]
Anu Engineer commented on HADOOP-15204:
---------------------------------------
[~chris.douglas] I have attached patch v2 that takes care of the comments and
checkstyle issues.
{quote}I find the API intuitive, but that is not universal (e.g., HDFS-9847).
Explaining it has taken more cycles than I expected, and perhaps more than a
good API should.
{quote}
Thank you for the time and comments. Personally, I find _getTimeDuration_ API
extremely intuitive, hence imitating that for this API; As for others, you have
done the heavy lifting of educating the crowd, I will just ride on your
coattails.
{quote}TERRABYTES is misspelled.
{quote}
Thanks for catching that, Fixed.
{quote}Is long insufficient as a return type for getStorageSize? I appreciate
future-proofing, but for Configuration values, that's what, ~8 petabytes?
{quote}
I started with long; the real issue was returning rounded numbers for large
storage units. Rounding causes a significant loss when we convert from _x
bytes_ to _y exabytes_. Hence I voted for the least element of surprise and
decided to return double.
{quote}Why ROUND_UP of the options? Just curious.
{quote}
I was using RoundingMode.HALF_UP in divide and now I do that for multiply too,
just to be consistent.
The reason for using
[HALF_UP|https://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.html#ROUND_HALF_UP]
is that it is probably the least surprising result for most users. From the
Doc: {{Note that this is the rounding mode that most of us were taught in grade
school.}}
{quote}Storage units are more likely to be exact powers
{quote}
This is the curse of writing a unit as a library; we need to be cognizant of
that single use case which will break us. Hence I have used bigDecimal to be
safe and correct and return doubles. It yields values that people expect.
> Add Configuration API for parsing storage sizes
> -----------------------------------------------
>
> Key: HADOOP-15204
> URL: https://issues.apache.org/jira/browse/HADOOP-15204
> Project: Hadoop Common
> Issue Type: Improvement
> Components: conf
> Affects Versions: 3.1.0
> Reporter: Anu Engineer
> Assignee: Anu Engineer
> Priority: Minor
> Fix For: 3.1.0
>
> Attachments: HADOOP-15204.001.patch, HADOOP-15204.002.patch
>
>
> Hadoop has a lot of configurations that specify memory and disk size. This
> JIRA proposes to add an API like {{Configuration.getStorageSize}} which will
> allow users
> to specify units like KB, MB, GB etc. This is JIRA is inspired by
> HADOOP-8608 and Ozone. Adding {{getTimeDuration}} support was a great
> improvement for ozone code base, this JIRA hopes to do the same thing for
> configs that deal with disk and memory usage.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]