Skip to content

Winery: Implement asynchronous packing

Highlights of this pile of changes, in commit order:

  • avoid double-init() in WineryWriter (would create new shards and never use them)
  • replace python-sh with direct calls to subprocess
  • some hardening of the test fixtures for postgresql and ceph rbd so that they teardown properly in "all" (famous last words) cases
  • cleaner separation of parameters in the benchmark code (between ro workers and rw workers)
  • implement shard lifecycle with an enum instead of a pair of booleans
  • add an asynchronous packing function
  • hook the asynchronous packing into benchmarks

A few commits to improve mypy coverage have been sprinkled throughout.

TODO:

  • add a CLI entry point for packing
  • future: get rid of all the Winery classes passing around bare kwargs dicts.

Implements #4741 (closed)

Edited by Nicolas Dandrimont

Merge request reports