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

Vinoth Chandar commented on HUDI-1240:
--------------------------------------

cc [~wenningd] does this make sense?  This is the first work in the config 
cleanup

> Simplify config classes
> -----------------------
>
>                 Key: HUDI-1240
>                 URL: https://issues.apache.org/jira/browse/HUDI-1240
>             Project: Apache Hudi
>          Issue Type: Improvement
>          Components: Code Cleanup
>            Reporter: sivabalan narayanan
>            Priority: Major
>
> Cleanup config classes across the board with a {{HoodieConfig}}  class in 
> hudi-common, that wraps a single key,value, default, doc, fallback keys (old 
> keys this points to. eg).
> the notion of fallback keys is very important, such that the user can still 
> use the old config names and we should be able map it to how we have now 
> renamed. 
> i.e say there was `hoodie.a.b.c`  and we think `hoodie.x.y.z` is a better 
> name, then `hoodie.a.b.c` should be marked as deprecated (annotation or a 
> boolean in HoodieConfig) and list `hoodie.x.y.z` as the fallback key. Users 
> should be able to set `hoodie.a.b.c` for the next 3-6 months at least and 
> internall we translate it to `hoodie.x.y.z`. None of our code should directly 
> access on `hoodie.a.b.c` anymore.  
> We can see the Apache Flink project fpr examples. 
> Once this is done, first pass we should move all our existing configs to 
> something like below. 
> {code:java}
>   public static final String EMBEDDED_TIMELINE_SERVER_ENABLED = 
> "hoodie.embed.timeline.server";
>   public static final String DEFAULT_EMBEDDED_TIMELINE_SERVER_ENABLED = 
> "true";
> {code}
> becomes 
> {code:java}
>    public static HoodieConfig timelineServerEnabled = new HoodieConfig(
>                                              "hoodie.embed.timeline.server", 
> // property name
>                                               Boolean.class, // type
>                                               true, //default val
>                                               Option.empty(), // fallback key
>                                               false, //deprecated             
>               
>                                               "Enables/Disables the timeline 
> server on the write client.." //doc
> )
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to