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

su wenbo updated HADOOP-7001:
-----------------------------

    Description: 
Currently, changing the configuration on a node (e.g., the name node) requires 
that we restart the node. We propose a change that would allow us to make 
configuration changes without restarting. Nodes that support configuration 
changes at run time should implement the following interface:

interface ChangeableConfigured extends Configured {
   void changeConfiguration(Configuration newConf) throws 
ConfigurationChangeException;
}

The contract of changeConfiguration is as follows:
The node will compare newConf to the existing configuration. For each 
configuration property that is set to a different value than in the current 
configuration, the node will either adjust its behaviour to conform to the new 
configuration or throw a ConfigurationChangeException if this change is not 
possible at run time. If a configuration property is set in the current 
configuration but is unset in newConf, the node should use its default value 
for this property. After a successful invocation of changeConfiguration, the 
behaviour of the configured node should be indistinguishable from the behaviour 
of a node that was configured with newConf at creation.

It should be easy to change existing nodes to implement this interface. We can 
start by throwing the exception for all changes and then gradually start 
supporting more and more changes at run time. (We might even consider replacing 
Configured with ChangeableConfigured entirely, but I think the proposal above 
afford greater flexibility). 




  was:
Currently, changing the configuration on a node (e.g., the name node) requires 
that we restart the node. We propose a change that would allow us to make 
configuration changes without restarting. Nodes that support configuration 
changes at run time should implement the following interface:

interface ChangeableConfigured extends Configured {
   void changeConfiguration(Configuration newConf) throws 
ConfigurationChangeException;
}

The contract of changeConfiguration is as follows:
The node will compare newConf to the existing configuration. For each 
configuration property that is set to a different value than in the current 
configuration, the node will either adjust its behaviour to conform to the new 
configuration or throw a ConfigurationChangeException if this change is not 
possible at run time. If a configuration property is set in the current 
configuration but is unset in newConf, the node should use its default value 
for this property. After a successful invocation of changeConfiguration, the 
behaviour of the configured node should be indistinguishable from the behaviour 
of a node that was configured with newConf at creation.

It should be easy to change existing nodes to implement this interface. We can 
start by throwing the exception for all changes and then gradually start 
supporting more and more changes at run time. (We might even consider replacing 
Configured with ChangeableConfigured entirely, but I think the proposal above 
afford greater flexibility).




    
> Allow configuration changes without restarting configured nodes
> ---------------------------------------------------------------
>
>                 Key: HADOOP-7001
>                 URL: https://issues.apache.org/jira/browse/HADOOP-7001
>             Project: Hadoop Common
>          Issue Type: Task
>          Components: conf
>            Reporter: Patrick Kling
>            Assignee: Patrick Kling
>             Fix For: 0.23.0
>
>         Attachments: HADOOP-7001.2.patch, HADOOP-7001.3.patch, 
> HADOOP-7001.4.patch, HADOOP-7001.5.patch, HADOOP-7001.patch, 
> reconfigurable.patch
>
>
> Currently, changing the configuration on a node (e.g., the name node) 
> requires that we restart the node. We propose a change that would allow us to 
> make configuration changes without restarting. Nodes that support 
> configuration changes at run time should implement the following interface:
> interface ChangeableConfigured extends Configured {
>    void changeConfiguration(Configuration newConf) throws 
> ConfigurationChangeException;
> }
> The contract of changeConfiguration is as follows:
> The node will compare newConf to the existing configuration. For each 
> configuration property that is set to a different value than in the current 
> configuration, the node will either adjust its behaviour to conform to the 
> new configuration or throw a ConfigurationChangeException if this change is 
> not possible at run time. If a configuration property is set in the current 
> configuration but is unset in newConf, the node should use its default value 
> for this property. After a successful invocation of changeConfiguration, the 
> behaviour of the configured node should be indistinguishable from the 
> behaviour of a node that was configured with newConf at creation.
> It should be easy to change existing nodes to implement this interface. We 
> can start by throwing the exception for all changes and then gradually start 
> supporting more and more changes at run time. (We might even consider 
> replacing Configured with ChangeableConfigured entirely, but I think the 
> proposal above afford greater flexibility). 

--
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

Reply via email to