You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
librawstor's top-10 slowest-requests report now shows each entry's own submission/round-trip/callback latency breakdown, not just its total.
rawio_fsync()/_open()/_close()/_poll()/_poll_multishot()/_connect()/_accept()/_accept_multishot() gained _2-suffixed siblings with a single collapsed ssize_t result callback, ahead of the breaking rename in 0.3.0.
New async rawstor_target_spec()/_create()/_remove()/_open()/_id()/_location() and rawstor_location_list()/_create() API (<rawstor/target.h>, <rawstor/location.h>), plus async completion for rawstor_object_close(); the existing synchronous rawstor_object_*() API keeps working unchanged.
rawstor info gained -l/--logical, additionally reporting the sum of every object's own declared size alongside the location's actual physical usage.
Changed
librawio and librawstor's client-side (Session/Connection/Object) internals moved from callback-based async I/O to C++20 coroutines; no public API change.
Write-throttling (in-flight cap + backlog cap on writes headed to a file:// backing store) moved from rawstor-ost itself into librawstor's own file:// write path, so it now applies to any writer against a file:// location, not just rawstor-ost. rawstor-ost --write-throttle-limit/--write-backlog-capacity are gone; tune the same caps via the RAWSTOR_OPTS_WRITE_THROTTLE_LIMIT/RAWSTOR_OPTS_WRITE_BACKLOG_CAPACITY environment variables instead (same defaults, 128 and 256MiB) — rawstor-ost.service no longer warns on startup if the limit sits too close to --queue-size.
Fixed
rawstor_object_flush() could report success while a pwrite()/pwritev() issued just before it was still outstanding, so its data wasn't actually guaranteed durable yet; flush() now waits for every write issued before it to complete first.
rawstor_object_close() didn't actually flush pending writes before completing, despite already being documented to -- it now does, and also waits for any write still in flight rather than racing its connection out from under it.
rawstor-ost and the client's own OST session each registered a 32MiB recv_multishot buffer pool, undersized for rawstor-vhost's own healthy worst case (its default write-throttle-limit of 128 concurrent requests at a realistic virtio-blk transfer size); a client pipelining that many requests could overflow it, forcing a reconnect that immediately overflowed again under the same sustained load and exhausted the retry budget for real. Raised to 128MiB on both sides.
Telemetry's in-flight-requests count could go negative: an op whose session had already died before it was ever registered still ran through the same completion path as a normal one, decrementing a count it had never gotten to increment.