This implementation contains all the essential components with the desired architecture (Read Storage, Write Storage and global index). It is intended to be merged and functional. The next stages will be optimization (as shown to be required by benchmarking, including I/O throttling) and testing of border cases and race conditions.
#### Test plan
Part of the tests require a live Ceph cluster to run otherwise they will be skipped. Follow the instructions in `swh/objstorage/tests/winery/README.md` to setup this cluster and run the tests. It should produce the following coverage:
```
.tox/py3/lib/python3.9/site-packages/swh/objstorage/backends/winery/__init__.py 1 0 0 0 100%
.tox/py3/lib/python3.9/site-packages/swh/objstorage/backends/winery/database.py 36 5 8 1 86% 57->66, 61-65
.tox/py3/lib/python3.9/site-packages/swh/objstorage/backends/winery/objstorage.py 90 4 22 2 95% 65, 80, 104, 110
.tox/py3/lib/python3.9/site-packages/swh/objstorage/backends/winery/roshard.py 78 5 10 1 93% 28, 37, 65-67
.tox/py3/lib/python3.9/site-packages/swh/objstorage/backends/winery/rwshard.py 52 1 8 1 97% 66
.tox/py3/lib/python3.9/site-packages/swh/objstorage/backends/winery/sharedbase.py 97 2 16 0 98% 84-85
```