0
0
mirror of https://github.com/tursodatabase/libsql.git synced 2025-06-17 02:09:52 +00:00
Commit Graph

9 Commits

Author SHA1 Message Date
1df0acbb16 fmt 2024-09-18 20:31:14 +02:00
d3914ef966 store libsql-wal segments in the db directory
Instead of having a `wals` directory to manage all the wals for all the
dbs, we now store the wals for a specific db alonside the db itself, in
a `{db_name}-wal` directory. This servers multiple purposes
- it's easier to cleanup a db: just remove the dir
- the directory is placed where sqlite would expect the wal to be, but
  since it's a directory, it will refuse to open it, thus preventing
  accidental interferences between libsql-wal and sqlite
- when forking, we can create the fork in a separate tmp dir, and then
  swap the whole dir, in place with all the wal contents
- The regitry doesn't manage any of it's own files anymore, it'll be
  easier to integrate in embedded replicas.
2024-09-18 20:16:57 +02:00
6f316e9a29 fmt 2024-08-26 17:48:15 +02:00
3990b92748 fix benchmark 2024-08-26 17:12:20 +02:00
c9d8a2d0d3 fix bench 2024-07-25 20:19:31 +02:00
96a977862d libsql wal refactors ()
* introduce IoBuf::map_slice

* rename db_size to size_after

* introduce Segment trait

* implement Segment for Arc<T>

* make SealedSegment clone

* implement Segment for SealedSegment

* rename bottomless to storage

- introduce `Storage` trait
- rename old `Storage` to `Backend`
- introduce `AsyncStorage` (former bottomless)

* add Storage to WalRegistry

remove namespace resolver from registry

* add async_get to registry

* decouple shared wal from registry

* move CompactedSegment headers to own module

* refactor SegmentList

* add durable frame_no to shared_wal

* make shared_wal checkpoint async

* expose TestEnv

create test environment for libsql-wal

* ignore dead_code

stuff still need to be wired

* let LibsqlWalManager resolve namespace name

* fix tests

* fix libsql-server

* fmt

* fix bench

* fix conflicts

* fmt
2024-07-10 13:20:01 +00:00
fbce426619 Use the namespace resolver to extract namespace ()
* Move `NamespaceName` from `libsql-wal` to `libsql-sys`

* Use the namespace resolver in durable WAL
2024-06-14 17:01:01 +00:00
3f330d6f12 bottomless2: perform store job ()
* implement scheduler

* move bottomless2 to libsql-wal

* add async fs methods

* implement perform job
2024-05-28 19:06:07 +00:00
ad79ef48a2 libsql wal tests ()
* add tests

* add bench
2024-05-24 13:59:17 +00:00