Rangsh commented on PR #12081:
URL: https://github.com/apache/seatunnel/pull/12081#issuecomment-5568946298

   @SEZ9 @DanielLeens @nzw921rx thank you for the detailed follow-up — 
especially for separating the correctness fixes from the still-open #12058 CV 
investigation.
   
   Pushed `26ce5cb26` on `improve/zeta-checkpoint-state-store-latency-12058` 
and updated the PR title/description accordingly (`Related to #12058`, softened 
the root-cause claim to a working hypothesis, and clarified that merge must not 
auto-close #12058).
   
   ### Addressing @SEZ9 (F1–F8)
   
   1. **`RequestFuture.get()` / timed contract (F1, F3, F7)**  
      - Re-confirmed production callers: only 
`IMapFileStorage.queryExecuteStatus` and `batchQueryExecuteFailsStatus` call 
`RequestFuture`, and both use the timed `get(timeout, unit)` overload — nothing 
relies on the old untimed 1s-capped `get()` returning.  
      - Added method-level Javadoc on `get(timeout, unit)` documenting that 
expiry throws `TimeoutException` (not silent `false`), and on untimed `get()` 
stating it is for `Future` contract compliance only.
   
   2. **Worker survivability (F2, F4)**  
      - Widened `executeResponse()` to catch `Exception` and never let response 
publishing kill the sole disruptor consumer.  
      - Added an explicit note on writer reuse after non-`IOException`: the 
current `HdfsWriter`/`CloudWriter` write path serializes before any stream 
mutation, so unchecked failures do not leave a torn mid-file record; a blind 
close/`fs.create` reopen would truncate the fixed `wal.txt` path and is 
intentionally not done. Pre-existing mid-write `IOException` partial-record 
risk is unchanged by the catch widening.
   
   3. **Batch wait behavior (F6, F8)**  
      - `batchQueryExecuteFailsStatus` now uses a **shared deadline** across 
the batch (`writDataTimeoutMilliseconds` from the start of the wait loop), so a 
stuck worker cannot block `storeAll`/`deleteAll` for `N × timeout`.  
      - Per-entry `TimeoutException` is logged at **WARN without a stack 
trace**; other unexpected failures remain at ERROR.
   
   4. **Sync-path test naming / Mockito (F5 + second bucket)**  
      - Renamed `HdfsWriterFlushSyncPathTest` → `HdfsWriterFlushCallCountTest` 
and rewrote the class Javadoc to state clearly: method-call-count parity only — 
**not** disk-sync-count parity and **not** evidence that #12058 CV is resolved. 
 
      - Updated `HdfsWriterDurableFlushTest` cross-reference accordingly.  
      - Added an explicit `mockito-junit-jupiter` test dependency to 
`imap-storage-file/pom.xml` (also inherited from the root POM’s test 
dependencies).
   
   ### Framing (per @DanielLeens / @nzw921rx)
   
   - PR keyword is now **Related to #12058** (not `Fixes`).  
   - Root-cause wording is a hypothesis supported by wall profiles pointing at 
the sync path, not a confirmed same-machine isolated CV result.  
   - Correctness fixes (`RequestFuture` / `WALWorkHandler` / shared batch 
deadline) stand on their own; #12058 can remain open for the investigation 
process you outlined.
   
   Happy to re-work any of the above if you still want a stronger writer-reset 
path or further description tweaks. Thanks again for the careful review.


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