Ping Qiu
80801b0fac
feat: Phase 3 — performance tuning, iSCSI session refactor, store integration
Phase 3 delivers five checkpoints:
CP1 Engine Tuning: BlockVolConfig tunables, 256-shard DirtyMap, adaptive
group commit (low-watermark immediate flush), WAL pressure handling with
backpressure and ErrWALFull timeout.
CP2 iSCSI Session Refactor: RX/TX goroutine split with respCh (cap 64),
txLoop for serialized response writes, StatSN assignment modes. Login
phase stays single-goroutine; full-duplex after login.
CP3 Store Integration: BlockVolAdapter (iscsi.BlockDevice interface),
BlockVolumeStore management, BlockService in volume_server_block.go,
CLI flags (--block.listen/dir/iqn.prefix), sw-block-attach.sh helper.
CP5 Concurrency Hardening: WAL reuse guard (LSN validation in ReadLBA),
opsOutstanding counter with beginOp/endOp + Close drain, appendWithRetry
shared by WriteLBA and TrimLBA, flusher LSN guard in FlushOnce.
Bug fixes (P3-BUG-2–11): unbounded pending queue cap, Data-Out timeout,
flusher error logging, GroupCommitter panic recovery, Close vs concurrent
ops guard, target shutdown race, WAL-full retry vs Close, WRITE SAME(16)
for XFS, MODE SENSE(10) + VPD 0xB0/0xB2 for Linux kernel compatibility.
797 tests passing (517 engine + 280 iSCSI), go vet clean.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 10:43:34 -08:00
..
2026-02-16 16:58:15 -08:00
2026-02-23 19:11:17 -08:00
2026-01-07 13:06:08 -08:00
2026-02-16 02:15:14 -08:00
2026-01-07 13:06:08 -08:00
2026-02-23 16:27:08 -08:00
2026-02-16 02:15:14 -08:00
2025-11-03 15:27:20 -08:00
2022-07-29 00:17:28 -07:00
2026-01-06 00:09:52 -08:00
2025-08-06 10:09:26 -07:00
2026-02-23 19:11:17 -08:00
2026-01-14 21:37:50 -08:00
2026-02-20 18:42:00 -08:00
2026-02-20 18:42:00 -08:00
2026-01-07 13:06:08 -08:00
2026-02-10 18:38:38 -08:00
2026-01-07 13:06:08 -08:00
2026-01-04 11:26:21 -08:00
2026-01-07 13:06:08 -08:00
2024-07-16 09:15:55 -07:00
2026-01-07 13:06:08 -08:00
2026-02-20 18:42:00 -08:00
2021-05-29 06:45:27 -07:00
2025-12-23 14:48:50 -08:00
2026-02-26 14:20:42 -08:00
2025-10-13 18:05:17 -07:00
2026-02-20 18:42:00 -08:00
2026-02-20 18:42:00 -08:00
2025-12-25 11:36:38 -08:00
2025-12-14 16:02:06 -08:00
2026-01-26 11:28:23 -08:00
2026-02-18 13:42:41 -08:00
2025-12-17 12:27:43 -08:00
2026-02-09 18:13:02 -08:00
2026-02-09 18:13:02 -08:00
2026-02-18 13:42:41 -08:00
2026-02-26 14:20:42 -08:00
2022-02-27 03:03:19 -08:00
2025-06-12 08:19:47 -07:00
2026-01-07 13:06:08 -08:00
2026-02-20 18:42:00 -08:00
2026-02-20 18:42:00 -08:00
2026-02-20 18:42:00 -08:00
2026-02-06 11:33:36 -08:00
2025-07-11 10:19:27 -07:00
2025-12-18 17:44:36 -08:00
2025-10-13 18:05:17 -07:00
2026-02-25 18:02:35 -08:00
2026-02-26 14:20:42 -08:00
2025-07-02 18:03:17 -07:00
2026-02-26 14:20:42 -08:00
2026-02-25 14:30:21 -08:00
2026-01-07 13:06:08 -08:00
2026-02-20 18:42:00 -08:00
2026-01-07 13:06:08 -08:00
2024-11-04 12:08:25 -08:00
2026-01-07 13:06:08 -08:00
2022-07-29 00:17:28 -07:00
2026-03-01 10:43:34 -08:00
2026-01-28 10:36:19 -08:00
2026-02-25 18:02:35 -08:00
2026-02-18 13:42:41 -08:00
2026-02-18 13:42:41 -08:00