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

   ## Summary
   
   This PR makes table config updates refresh server-side cached table 
config/schema state in addition to the existing broker table config refresh.
   
   Previously, updating a table config through the controller wrote the new 
config to ZK and notified brokers, but servers were not explicitly asked to 
refresh their cached table config/schema. Server features that read table 
config from the cached `TableDataManager` state could therefore continue using 
the old value until another operation caused the server cache to refresh.
   
   ## User-facing behavior
   
   After a successful table config update, the controller now sends:
   
   - table config refresh to brokers
   - table config/schema refresh to servers
   
   This means server-side features that depend on the cached table config can 
observe the updated table config through the normal Helix message path, without 
requiring a segment reload or another unrelated refresh operation.
   
   ## Example
   
   Update a table config as usual:
   
   ```bash
   curl -X PUT "http://<controller-host>:9000/tables/myTable_REALTIME" \
     -H "Content-Type: application/json" \
     -d @myTable_REALTIME.json
   ```
   
   For example, if a realtime table config is changed to enable or disable a 
server-side ingestion feature under `ingestionConfig.streamIngestionConfig`, 
servers will receive the table config/schema refresh message after the update 
succeeds and refresh their cached table config.
   
   ## Validation
   
   - `./mvnw -pl pinot-controller 
-Dtest=PinotHelixResourceManagerStatelessTest#testUpdateTableConfigRefreshesBrokerAndServerCaches
 test`
   - `./mvnw spotless:apply -pl pinot-controller`
   - `./mvnw license:format -pl pinot-controller`
   - `./mvnw checkstyle:check -pl pinot-controller`
   - `./mvnw license:check -pl pinot-controller`
   - `./mvnw -pl pinot-controller -Dtest=PinotHelixResourceManagerStatelessTest 
test`
   


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