After the initial implementation of #166 in #168 got some testing, we could also add a write-back cache.
For tools like borgbackup, doing an async write-back cache could speed up backups a lot:
A Store.store operation would return after cache has been updated, but would not wait until slower primary backend got updated.
But that also comes with some complexity:
- guess we'll need some sort of
sync or write barriers to keep primary backend updates in correct order (users usually will want to have data items written before reference to them from metadata items)
- multi-threading or async
- potential errors with the primary backend will happen async
After the initial implementation of #166 in #168 got some testing, we could also add a write-back cache.
For tools like borgbackup, doing an async write-back cache could speed up backups a lot:
A
Store.storeoperation would return after cache has been updated, but would not wait until slower primary backend got updated.But that also comes with some complexity:
syncor write barriers to keep primary backend updates in correct order (users usually will want to have data items written before reference to them from metadata items)