somandal opened a new pull request, #15973:
URL: https://github.com/apache/pinot/pull/15973

   Updating the upsert / dedup primary keys on segment add or replace can be an 
expensive resource intensive operation. This PR adds framework level support 
for throttling this operation via the same mechanism as 
`SegmentOperationsThrottler` for other segment operations such as segment 
download and pre-process.
   
   The following changes are included:
   
   - Modify the relevant upsert / dedup interfaces to receive a 
`SegmentOperationsThrottler` object as input. For now, pass this as null for 
both Concurrent map implementations of upserts and dedup
   - Add a new `SegmentHandleUpsertOrDedupThrottler` class to be used for 
performing the actual throttling via the use of a semaphore, whose number of 
permits can be updated dynamically via ZK cluster config updates. Wire this 
into `SegmentOperationsThrottler`
   - Add metrics to track the throttle threshold and the count of number of 
segments undergoing the operation
   - Update tests
   
   Testing done:
   - Tests updated and run locally
   - Manually verified via the Quickstart that config changes are picked up 
correctly
   
   Pending testing:
   - Need to test out the full logic with upserts / dedup to ensure that the 
semaphore is taken and released and only as many as the threshold allows


-- 
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: commits-unsubscr...@pinot.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org
For additional commands, e-mail: commits-h...@pinot.apache.org

Reply via email to