Skip to content

Release 2.0.9 - #194

Merged
Moonpuck merged 1 commit into
aliyun:mainfrom
Moonpuck:v2.0.9
Aug 18, 2026
Merged

Moonpuck merged 1 commit into
aliyun:mainfrom
Moonpuck:v2.0.9

Conversation

@Moonpuck

@Moonpuck Moonpuck commented Aug 17, 2026 •

Copy link
Copy Markdown
Collaborator

New Features

Random Write Mode

Added disk-backed random write support on top of object storage, addressing performance and correctness issues for random writes, appends, O_TRUNC, and ftruncate workloads:

  • How to enable: set --temp_dir=<local directory> to turn on random-write mode. Writes are first staged on the local disk and uploaded to OSS on flush.
  • Full POSIX write semantics: arbitrary-offset random writes, O_APPEND (guaranteed to land at EOF), O_TRUNC, ftruncate, and mixed read/write workloads.
  • Data integrity: CRC64 verification on the flush upload path; fsync waits for data to be uploaded before returning by default.
  • Per-file size cap: new --random_write_max_file_size option (default 100 GiB; writes/truncates beyond the limit fail with EFBIG; configurable up to the OSS multipart capacity of about 48.8 TiB).
  • Staging disk space management: staging disk space is released after each flush; the new --temp_dir_free_bytes option protects free space on the local disk.

Other New Features

  • Log output to syslog is now supported via --log_dir=syslog.
  • The bucket can be created automatically at mount time via the new --auto_create_bucket and --agentic_bucket options.

Performance Improvements

  • Disk cache: optimized the cache engine with multiple background vCPU executors for the libaio engine. Throughput improves by up to 45% under 128-way concurrent reads of 128 KB small files, all served from the disk cache.
  • Disk cache: with disk cache enabled, first-time sequential reads of large files in the psync scenario improve by about 40%.

Bug Fixes

  • Disk cache: stale refills based on an outdated ETag are rejected after cache drop, with proper fallback on reopen failure.
  • Added path refresh retry with ETag verification on the read path and background refill, preventing reads of stale objects.

Upgrade Notes

  • Random-write mode is mutually exclusive with enable_appendable_object and the two cannot be enabled at the same time.
  • Enabling random-write mode will significantly degrade sequential write performance on large files, because all writes are staged through the local disk and bounded by its throughput. Enable it only when random-write workloads (random writes, appends, O_TRUNC, or ftruncate) are actually required.
  • Random-write mode relies on a local staging disk. Make sure the disk hosting --temp_dir has sufficient capacity, and tune the free-space protection options as needed.

@Moonpuck
Moonpuck requested a review from zhenjiaseu August 17, 2026 06:55

@zhenjiaseu zhenjiaseu left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Moonpuck
Moonpuck merged commit f7a9170 into aliyun:main Aug 18, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants