12 Commits
Author SHA1 Message Date
Lucian Petrut 2099591245 Allow retrieving compressed chunks
VDDK always decompresses the chunks it retrieves. However, some
callers may be interested in the compressed chunks, which may
be forwarded to another service involved in the backup process.

We'll add a read flag (skip_decompression). If set, the read
operation will return a "ReadResult" container, containing
a list of fragments and their compressed / decompressed lengths.

If the returned buffer size matches the AIO buffer size (which
now becomes configurable), at most one fragment will be returned.

While at it, we're adding perf tests that check various AIO buffer
sizes, cross checking against VDDK.
2026-09-17 15:29:11 +00:00
Lucian Petrut e3948d2a45 Avoid unnecessary buffer copies 2026-09-09 14:27:30 +00:00
Lucian Petrut 1e5b2d70a5 Restore Python 3.10 compatibility 2026-09-09 08:54:22 +00:00
Lucian Petrut f64c753d9c Fix linter failures 2026-09-09 08:43:42 +00:00
Lucian Petrut e595dcd9e7 Fix code formatting - tox -e fmt 2026-09-08 14:59:43 +00:00
Lucian Petrut 0039fdbb3d Improve write performance, avoid roundtrip per fragment 2026-09-07 15:18:21 +00:00
Lucian Petrut b11e109ec5 Document perf improvement trials 2026-09-07 14:11:24 +00:00
Lucian PetrutandCursor d0a6de03d2 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]>
2026-09-07 13:51:24 +00:00
Lucian Petrut 56a1c36c80 Add fastlz compression support 2026-09-07 13:10:10 +00:00
Lucian Petrut b7131ec0af Add nbdssl support 2026-09-07 12:46:00 +00:00
Lucian Petrut c590089866 Properly handle out of order read fragments 2026-09-07 12:10:03 +00:00
Lucian PetrutandCursor 4ddf0c015d Add openvixdisklib as an open NBD replacement for VMware VDDK.
VDDK is no longer publicly distributed, so this library reverse-engineers
the vSphere NFC path and exposes ConnectEx, Open, Read, and Write without
the proprietary SDK.

Co-authored-by: Cursor <[email protected]>
2026-09-07 11:41:01 +00:00