Abstract database behind generic interface and implement alternative drivers #322
No reviewers
Labels
No labels
action
check-aws
action
discussion-needed
action
for-external-contributors
action
for-newcomers
action
more-info-needed
action
need-funding
action
triage-required
kind
correctness
kind
ideas
kind
improvement
kind
performance
kind
testing
kind
usability
kind
wrong-behavior
prio
critical
prio
low
scope
admin-api
scope
background-healing
scope
build
scope
documentation
scope
k8s
scope
layout
scope
metadata
scope
ops
scope
rpc
scope
s3-api
scope
security
scope
telemetry
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Deuxfleurs/garage#322
Loading…
Reference in a new issue
No description provided.
Delete branch "db-abstraction"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
on Sled backendon all backends (i.e. over the abstraction).updated()
trigger on Garage tablesFix #284
Bugs
Known issues for various back-ends
.len()
has to traverse the whole table.iter()
, and the lock isn't released until the iterator is dropped. This means that we must be VERY carefull to not do anything else inside a.iter()
loop or else we will have a deadlock! Most such cases have been eliminated from the Garage codebase, but there might still be some that remain. If your Garage-over-Sqlite seems to hang/freeze, this is the reason.My recommendation: avoid 32-bit machines and use LMDB as much as possible.
Converting databases is actually quite easy. For example from Sled to LMDB:
Then, just add this to your
config.toml
:WIP: Abstract database behind generic interface and implement alternative driversto Abstract database behind generic interface and implement alternative drivers