Pipeline NFC writes to avoid delayed ACK and RTT stalls
Send each AIO write as one buffer with TCP_NODELAY, and keep four IOs in flight so FastLZ and multi-chunk writes are not serialized. Co-authored-by: Cursor <[email protected]>
This commit is contained in:
@@ -248,8 +248,9 @@ the ticket switched from `NfcGetVmFiles` to `NfcRandomAccessOpenDisk`
|
||||
`NfcRandomAccessOpenDisk`). Integration tests create a temporary empty
|
||||
10 GiB VM for the run so writes cannot land on other lab disks.
|
||||
|
||||
The Python client splits writes larger than 64 KiB; it does not send a
|
||||
single oversized write the way VDDK sends an oversized read. Details:
|
||||
The Python client splits writes larger than 64 KiB into AIO chunks and
|
||||
keeps up to four in flight (`NfcAioInitSession` buffer count). Header
|
||||
and extra go in one `sendall`, with `TCP_NODELAY`. Details:
|
||||
`docs/nfc_write.md`. Proof: write then read in
|
||||
`tests/integration/test_nfc_read_write.py` and the VDDK cross-check in
|
||||
`tests/integration/test_crosscheck.py`.
|
||||
|
||||
Reference in New Issue
Block a user