Issue Details (XML | Word | Printable)

Key: HADOOP-5743
Type: Improvement Improvement
Status: Open Open
Priority: Major Major
Assignee: Shevek
Reporter: Shevek
Votes: 0
Watchers: 6
Operations

If you were logged in you would be able to see more operations.
Hadoop Common

Configuration: Hierachical; documented; null-safe; thread-safe

Created: 24/Apr/09 07:27 PM   Updated: 04/Jun/09 08:40 AM
Return to search
Component/s: conf
Affects Version/s: None
Fix Version/s: None

Time Tracking:
Not Specified

File Attachments:
  Size
Text File Licensed for inclusion in ASF works 01_configuration.patch 2009-04-24 07:29 PM Shevek 50 kB
Text File Licensed for inclusion in ASF works 02_configuration.patch 2009-04-24 08:48 PM Shevek 53 kB
Issue Links:
Reference
 

Release Note: Second draft will satisfy comments in 5708, but leaves questions outstanding.


 Description  « Hide
Patch to configuration to:
  • Update documentation to match code
  • Make configurations hierarchical
  • Remove global REGISTRY of configurations
  • Adding global default does not reload child configurations
  • (Eventually) make properly thread-safe
  • Allow well-behaved overriding with nulls
  • Allow future satisfaction of ticket 5708 (with which I agree, but Doug does not).


 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Shevek added a comment - 24/Apr/09 07:28 PM
See 5708 for comments from Doug relating to first draft patch.

Shevek added a comment - 24/Apr/09 07:29 PM
First draft patch, comments from Doug in 5708 outstanding.

Shevek added a comment - 24/Apr/09 07:31 PM
Doug, is the configuration serialization format allowed to change (to allow on-wire preservation of hierarchy metadata, and thus runtime semantics of resources/null-override-safety/etc), or would that be a disallowed incompatibility?

Shevek added a comment - 24/Apr/09 08:48 PM
Change to wire format would also allow preservation of finalParameters, which is no longer broken with this patch.

Kinda needs review. Lots of questions in the code. A better synchronization structure rather requires a slightly different data model, where finalParameters is stored within the Map.


Doug Cutting added a comment - 24/Apr/09 09:38 PM
I don't know all of the places where Configuration is used as a Writable, but my hunch is that it's okay to change its format. Where it's passed in an RPC, an incompatible change is okay, since we don't permit cross-version RPC. Configurations are written to disk on the job tracker, but I don't think we guarantee that the job queue survives upgrades.

It might be nice is if it included a version number in the serialized form. The new version could be -1, so that old code reading the new format would see this as the size and fail. But new code reading the old could do something back-compatible when the version is positive.

There are still lots of whitespace-only changes in your patch that inject noise and make me stop reading it.

I'm also not (yet) highly incented to spend a lot of time reviewing this, since it's not entirely clear to me that this is fixing problems that folks are actually encountering. Radically changing something low-level like this has a very good chance of breaking lots of systems, which will take a lot of time to debug and fix, and should thus not be entered into lightly.

That said, if you feel strongly, I encourage you to develop this to the point where it passes unit tests and can be automatically tested by Hudson. Also, please read your patch files before you submit them to see that they only include changes that are critical to your mission. They should not include discussions of the changes annotated with your name. Jira is for discussion of patches.

http://wiki.apache.org/hadoop/HowToContribute


Hadoop QA added a comment - 26/Apr/09 08:29 AM
-1 overall. Here are the results of testing the latest attachment
http://issues.apache.org/jira/secure/attachment/12406396/02_configuration.patch
against trunk revision 768376.

+1 @author. The patch does not contain any @author tags.

+1 tests included. The patch appears to include 6 new or modified tests.

+1 javadoc. The javadoc tool did not generate any warning messages.

+1 javac. The applied patch does not increase the total number of javac compiler warnings.

-1 findbugs. The patch appears to introduce 2 new Findbugs warnings.

+1 Eclipse classpath. The patch retains Eclipse classpath integrity.

+1 release audit. The applied patch does not increase the total number of release audit warnings.

-1 core tests. The patch failed core unit tests.

+1 contrib tests. The patch passed contrib unit tests.

Test results: http://hudson.zones.apache.org/hudson/job/Hadoop-Patch-vesta.apache.org/245/testReport/
Findbugs warnings: http://hudson.zones.apache.org/hudson/job/Hadoop-Patch-vesta.apache.org/245/artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html
Checkstyle results: http://hudson.zones.apache.org/hudson/job/Hadoop-Patch-vesta.apache.org/245/artifact/trunk/build/test/checkstyle-errors.html
Console output: http://hudson.zones.apache.org/hudson/job/Hadoop-Patch-vesta.apache.org/245/console

This message is automatically generated.


Devaraj Das added a comment - 04/Jun/09 08:40 AM
This clearly is under discussion. Moving the issue to Open state.