HaHaJeff opened a new pull request, #384:
URL: https://github.com/apache/paimon-cpp/pull/384

   ### Purpose
   
   Follow up on #327 to avoid blocking realtime writes on sealed-segment spill 
I/O in append-only and primary-key writers.
   
   - Serialize `Seal()` and `PrepareCommit()` with `prepare_mutex_`.
   - Run the built-in `ArrowRealtimeStore::SealForCommit()` outside 
`realtime_store_mutex_`. The store already protects segment rotation internally 
and spills outside its own mutex, allowing writes to the next building segment 
during spill.
   - Reacquire the write mutex to publish sealed segments and derive 
`has_building_data_` from the current offset and sealed range, preserving data 
written during spill.
   - Keep custom-store write and seal calls serialized under 
`realtime_store_mutex_`, preserving their existing contract.
   
   ### Tests
   
   Local validation completed for this fix:
   
   - Realtime core tests: 94/94 passed.
   - Realtime integration tests: 77/77 passed.
   - Controlled temporary concurrency validation: 4/4 cases passed; this 
validation was not added as a permanent test.
   - `git diff --check`: passed.
   - `pre-commit` was unavailable, so its checks were not run.
   
   ### API and Format
   
   No public API, storage format, or protocol changes. The custom-store 
serialized contract is unchanged.
   
   ### Documentation
   
   No documentation changes; this fixes the existing spill behavior.
   
   ### Generative AI tooling
   
   Generated-by: OpenAI Codex (GPT-6)
   


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