guluo2016 commented on PR #6986:
URL: https://github.com/apache/hbase/pull/6986#issuecomment-2876007633

   ColumnFamilyDescriptorBuilder.java
   ```java
       // Column metadata
       private final Map<Bytes, Bytes> values = new HashMap<>();
   
       /**
        * A map which holds the configuration specific to the column family. 
The keys of the map have
        * the same names as config keys and override the defaults with 
cf-specific settings. Example
        * usage may be for compactions, etc.
        */
       private final Map<String, String> configuration = new HashMap<>();
   ```
   Based on code comments, `values` are for column family metadata (set via 
`setValue()`), and `configuration` stores column family configs (set via 
`setConfiguration()`).
   
   But using the Java API, we can achieve column family level configuration 
settings by calling setValue() or setConfiguration(). They don't seem to have a 
very clear distinction. 
   And I think it would also be difficult for users to distinguish between the 
two.
   
   ```java
   ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("info"))
         .setValue("hbase.hstore.defaultengine.compactionpolicy.class", 
"test.App");
   
   ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("info"))
        .setConfiguration("hbase.hstore.defaultengine.compactionpolicy.class", 
"test.App");
   ```
   
   
   This changes covers both of the aforementioned scenarios, So i think it is 
good.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to