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]
