kmozaid opened a new pull request #8224:
URL: https://github.com/apache/pinot/pull/8224


   ## Description
   This PR adds a new implementation of `PartitionFunction` which is used to 
partition segments. The new partition function named `BoundedColumnValue` can 
be used to partition segments on column values and still generating partitionId 
of integer type.
   
   Example Usage -
   ```
     "segmentPartitionConfig": {
       "columnPartitionMap": {
         "subject": {
           "functionName": "BoundedColumnValue",
           "functionConfig": {
             "columnValues": "Maths|English|Chemistry"
           }
         }
       }
   ```
   
   PartitionId is generated based on position in columnValues. PartitionId 
would 1 for Maths, 2 for English and so on.
   PartitionId 0 is reserved for any other subject which are not present in 
given `columnValues`. The different column values can be specified using pipe 
(`|`) separation. This additional partition `functionConfig` is persisted in 
metadata.properties and segment metadata in zookeeper.  Broker can also use 
this function to prune segments.
   
   ## Upgrade Notes
   Does this PR prevent a zero down-time upgrade? (Assume upgrade order: 
Controller, Broker, Server, Minion)
   * [ ] No
   
   Does this PR fix a zero-downtime upgrade introduced earlier?
   * [ ] No
   
   Does this PR otherwise need attention when creating release notes? Things to 
consider:
   - New configuration options
   - Deprecation of configurations
   - Signature changes to public methods/interfaces
   - New plugins added or old plugins removed
   * [ ] Yes, Adds new configuration option and changes to public interfaces.
   ## Release Notes
   Added new partition function called `BoundedColumnValue` to be able to 
partition segments based on column value.
   
   <!-- If you have a series of commits adding or enabling a feature, then
   add this section only in final commit that marks the feature completed.
   Refer to earlier release notes to see examples of text.
   -->
   ## Documentation
   Yes, will create another PR in pinot-docs repo.
   


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



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to