[ https://issues.apache.org/jira/browse/HBASE-13936?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14603577#comment-14603577 ]
Apekshit Sharma commented on HBASE-13936: ----------------------------------------- Thanks [~enis]. Comments inlined. bq. Prefixing 'H' is deprecated. Please refrain from that old pattern. Will keep in mind. bq. Showing every possible configuration value to a single class is an anti-pattern. HConstants was that, and it went bad. The configurations should be defined close to where they are used. That's right. I didn't realize that until [~mbertozzi] explained it to me yesterday. We have decided to change the design in favor of grouping configurations at client, server, common, etc level. What do you think? bq. Please take a look at TableConfiguration, and why it was introduced. In a lot of places, the configuration parsing becomes the bottleneck especially in the hot code paths. Going forward we should only be passing small parsed POJO style objects holding the configuration for that specific sub system. A bad example is CacheConfig. It holds the defaults, config names, and actual values together with the actual Block cache reference. But the idea should be keeping the parsing / deprecation handling / business logic and the actual parsed values related to a single system together and use that object to pass it around. I agree with you, I have seen and used this design in other places, and I like it most because it is very clean. However, do you think there is something we can change in the design of configuration framework i.e. Configuration , ConfigurationManager and other core classes (i'll be adding some new classes, will add you on review board), to promote or push this design? Because it seems to me that it's more about educating the community. > Improve configuration framework > ------------------------------- > > Key: HBASE-13936 > URL: https://issues.apache.org/jira/browse/HBASE-13936 > Project: HBase > Issue Type: Umbrella > Reporter: Apekshit Sharma > Attachments: DynamicConfigs.v01.docx, design.png > > > Here's the design doc: > https://docs.google.com/document/d/1WiO2bqguR2DaVT-J2SZTCONbQ3pEhpbOI_bbLMaXRjE/edit# > Main changes: > get*("foo.bar", default_value) ---> get*(HConfig.FOO_BAR) // using enums > Robust framework and better documentation for dynamic configurations. > Basic overview of new design: > !design.png! -- This message was sent by Atlassian JIRA (v6.3.4#6332)