aboutsummaryrefslogtreecommitdiff
path: root/weed/s3api/s3api_object_versioning.go
diff options
context:
space:
mode:
authorChris Lu <chrislusf@users.noreply.github.com>2025-12-10 12:42:09 -0800
committerGitHub <noreply@github.com>2025-12-10 12:42:09 -0800
commitc1534200223d99cc193ce229439e4f8e15f1d9b2 (patch)
tree3d5e5df5a295efa924d30d344ada067c059cef32 /weed/s3api/s3api_object_versioning.go
parentae7333d28e77d907a9e7d50055e352c15678e723 (diff)
downloadseaweedfs-c1534200223d99cc193ce229439e4f8e15f1d9b2.tar.xz
seaweedfs-c1534200223d99cc193ce229439e4f8e15f1d9b2.zip
filer: add write batching for FoundationDB store to improve throughput (#7708)
This addresses issue #7699 where FoundationDB filer store had low throughput (~400-500 obj/s) due to each write operation creating a separate transaction. Changes: - Add writeBatcher that collects multiple writes into batched transactions - New config options: batch_size (default: 100), batch_interval (default: 5ms) - Batching provides ~5.7x throughput improvement (from ~456 to ~2600 obj/s) Benchmark results with different batch sizes: - batch_size=1: ~456 obj/s (baseline, no batching) - batch_size=10: ~2621 obj/s (5.7x improvement) - batch_size=16: ~2514 obj/s (5.5x improvement) - batch_size=100: ~2617 obj/s (5.7x improvement) - batch_size=1000: ~2593 obj/s (5.7x improvement) The batch_interval timer (5ms) ensures writes are flushed promptly even when batch is not full, providing good latency characteristics. Addressed review feedback: - Changed wait=false to wait=true in UpdateEntry/DeleteEntry to properly propagate errors to callers - Fixed timer reset race condition by stopping and draining before reset Fixes #7699
Diffstat (limited to 'weed/s3api/s3api_object_versioning.go')
0 files changed, 0 insertions, 0 deletions