hadoop-common-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jianbin Wei (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HADOOP-8608) Add Configuration API for parsing time durations
Date Thu, 04 Oct 2012 07:57:09 GMT

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

Jianbin Wei commented on HADOOP-8608:
-------------------------------------

Comments as follows:

* I am kind of concerned about the "lose precision" from the conversion.  That is why I propose
to give that control back to the caller to make the precision lose explicitly.  If we go this
approach, at least I think we should document this precision lose.  Comments?
* The parsing of value is a bit loose.  For example, it cannot handle "10S" or "10 s".  A
strict format can reduce errors but may be inflexible and the exception can be little harsh.
 Or we need to document the expecting format is "10s" not "10 s" nor "10sec".
* Also the parsing part relies on the enum order implicitly.  It works now.  But it may bite
us later.  A Pattern instead?
* It would be better to add the value of the timeduration property into LOG.
* Can you please change test from "testTime" to "testTimeDuration" for consistency?

{code}
    conf.setStrings("test.time.str", new String[]{"10S"});
    assertEquals(10000L, conf.getTimeDuration("test.time.str", 30, MILLISECONDS));
{code}

It logs

2012-10-04 00:29:37,172 WARN  conf.Configuration (Configuration.java:getTimeDuration(1212))
- No unit for test.time.str assuming MILLISECONDS

Better as "No unit for test.time.str (value: 10S), assuming MILLISECONDS" or something like
that with property value



                
> Add Configuration API for parsing time durations
> ------------------------------------------------
>
>                 Key: HADOOP-8608
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8608
>             Project: Hadoop Common
>          Issue Type: Improvement
>          Components: conf
>    Affects Versions: 3.0.0
>            Reporter: Todd Lipcon
>         Attachments: 8608-0.patch
>
>
> Hadoop has a lot of configurations which specify durations or intervals of time. Unfortunately
these different configurations have little consistency in units - eg some are in milliseconds,
some in seconds, and some in minutes. This makes it difficult for users to configure, since
they have to always refer back to docs to remember the unit for each property.
> The proposed solution is to add an API like {{Configuration.getTimeDuration}} which allows
the user to specify the units with a postfix. For example, "10ms", "10s", "10m", "10h", or
even "10d". For backwards-compatibility, if the user does not specify a unit, the API can
specify the default unit, and warn the user that they should specify an explicit unit instead.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message