Abstract database behind generic interface and implement alternative drivers #322

Merged
lx merged 64 commits from db-abstraction into main 2022-06-08 08:01:56 +00:00

64 Commits

Author SHA1 Message Date
Alex e682478d75
Create meta directory in server (or else sqlite fails)
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-06-07 19:11:11 +02:00
Alex 1e4814568b
remove useless clippy allow 2022-06-07 18:48:32 +02:00
Alex 0c0a02ad03
Remove useless function
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-06-07 18:36:13 +02:00
Alex 48928d2d70
Simplify sqlite
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-06-07 18:26:28 +02:00
Alex cc4f1aca97
sqlite can actually tell us its version
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-06-07 18:22:27 +02:00
Alex 845c344231
Inform user of what DB engine Garage is running on
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-06-07 18:20:51 +02:00
Alex d41a67c4ee
simplify & fix db tests
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-06-07 18:06:30 +02:00
Alex daec7995c3
cargo fmt
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2022-06-07 17:56:29 +02:00
Alex c103ca8bf2
Correct error type for (unimplemented) iterators in transactions
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2022-06-07 17:56:11 +02:00
Alex 0543cb3453
Cleaner error management (less error-prone api)
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2022-06-07 17:50:10 +02:00
Alex 1bbe0794f3
less pub(crate) 2022-06-07 17:23:17 +02:00
Alex 6f3d43b75b
prettier code 2022-06-07 17:21:01 +02:00
Alex 8c6f690fa5
less verbose code
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is passing Details
2022-06-07 17:14:16 +02:00
Alex cdc03da0b8
make things more like before
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-06-07 17:11:55 +02:00
Alex 1d408d52b9
Simplify
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-06-07 17:10:22 +02:00
Alex a3a01141ec
db abstraction: make .insert() and .remove() return the old value
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-06-07 17:05:17 +02:00
Alex a9e79f848b
Bring back the counted tree hack for Sled (with caveat)
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
caveat: it's not only for sled
2022-06-07 16:52:57 +02:00
Alex 5dbc79b77e
Try once again to fix sqlite bundling in nix
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-06-06 23:00:10 +02:00
Alex 3de9320a0e
bundled sqlite
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2022-06-06 22:35:46 +02:00
Alex 35544cac39
Add nix overrides to include lmdb and sqlite3 libraries
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is failing Details
2022-06-06 22:02:09 +02:00
Alex e42c7bed38
Remove useless clones in sqlite
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2022-06-06 17:06:22 +02:00
Alex 1f9a371b9a
Fix clippy lint
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is failing Details
2022-06-06 17:01:49 +02:00
Alex 72a87c8686
Add inline marker on a bunch of db functions
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2022-06-06 16:51:00 +02:00
Alex fd2fe18de3
in db convert: map size up to 1TB on 64-bit systems
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2022-06-06 16:44:47 +02:00
Alex c3c8d59c99
Fix more .unwrap()'s
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2022-06-06 16:37:44 +02:00
Alex bbf68aa039
fix
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2022-06-06 16:32:06 +02:00
Alex 72e6419b1b
add comment
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2022-06-06 16:31:43 +02:00
Alex 1dabd98330
Improve things in block manager & correctly propagate .len() errors
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2022-06-06 16:29:02 +02:00
Alex 9238fda9b2
Update Cargo.nix
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2022-06-06 16:13:13 +02:00
Alex 1897815358
Table updated trigger now happens in transaction, this is waaaay better!
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2022-06-06 15:46:00 +02:00
Alex c56d858834
Fix clippy 2022-06-06 15:10:33 +02:00
Alex a65049db8f
Simplify lmdb adapter (one less indirection)
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2022-06-06 15:07:37 +02:00
Alex 17918e2ef5
Whoops
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2022-06-06 14:09:17 +02:00
Alex 0ab21e780e
Small syntax changes
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is failing Details
2022-06-06 14:08:19 +02:00
Alex a77efd7ca6
Safe choice: revert "Update rmp-serde"
This reverts commit 16e0a655d0.
2022-06-06 14:02:02 +02:00
Alex 7f2cf0b809
Safe choice: return Vec<u8> and not some fancy zero-copy type 2022-06-06 14:01:44 +02:00
Alex 4539a6c229
Fix more sqlite deadlocks
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is failing Details
2022-06-06 12:02:42 +02:00
Alex 4f5d17d464
fixes 2022-06-06 11:30:10 +02:00
Alex 2d5541b0e7
Integrate LMDB with rest
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-06-03 16:40:38 +02:00
Alex f7a1c70089
Implement iterator for LMDB 2022-06-03 16:18:56 +02:00
Alex bd2997a453
LMDB: use Heed wrapper (much more complete)
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-06-03 15:53:20 +02:00
Alex 4e72c713f1
Start LMDB adapter, with fixed semantics
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-06-03 15:31:07 +02:00
Alex 16e0a655d0
Update rmp-serde
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-06-03 14:16:30 +02:00
Alex d3d7df098b
small fixes 2022-06-03 14:00:13 +02:00
Alex 3d18c9e183
whoops
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-06-03 13:35:02 +02:00
Alex 9bb58638f0
Fix block repair to not deadlock with sqlite 2022-06-03 12:56:35 +02:00
Alex 295bc2741f
fix clipy lint
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-06-03 12:52:41 +02:00
Alex 4bf706b170
Slightly prettier code 2022-06-03 12:35:12 +02:00
Alex bd9ff432d7
Garage works on sqlite, but it's a hack
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-06-03 12:12:25 +02:00
Alex df0877bbba
Conversion utility
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-06-03 11:44:41 +02:00
Alex cc0d984118
Fix most clippy lints
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-06-03 11:14:24 +02:00
Alex f25309e58f
Change value type to be a dyn thing
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-06-03 10:44:54 +02:00
Alex 7b79906350
Drop later 2022-06-03 04:44:40 +02:00
Alex 6ebb54cddb
Just refactor a bit
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-06-02 23:46:28 +02:00
Alex 0e4f336887
Horrible implementation of range for sqlite
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-06-02 23:43:32 +02:00
Alex c439cb11a9
Sqlite iter with unsafe code
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-06-02 23:14:10 +02:00
Alex 364061453c
Add back Send 2022-06-02 22:05:57 +02:00
Alex 43704afb29
Begin sqlite adapter
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-06-02 19:58:47 +02:00
Alex f29b91232f
Use Cell instead of ArcSwap
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-06-02 18:11:32 +02:00
Alex fbd5b64ff3
Complete sled abstraction
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-06-02 17:38:30 +02:00
Alex 6805e184e9
Do not put sled in garage's cargo.toml
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-06-02 17:01:04 +02:00
Alex 9f0f5b2e37
Adapt Garage to use new DB abstraction 2022-06-02 16:58:00 +02:00
Alex 04901093e7
Implement iter() and range() on db
continuous-integration/drone/push Build is failing Details
2022-06-02 15:25:24 +02:00
Alex fd8d5c37f7
First iteration of a generic DB layer
continuous-integration/drone/push Build is failing Details
2022-06-02 14:59:26 +02:00