Refactor Restore()
This commit refactors out the complexity of downloading ordered WAL files in parallel to a type called `WALDownloader`. This makes it easier to test the restore separately from the download.
This commit is contained in:
BIN
testdata/wal-downloader/err-download-wal/generations/0000000000000000/wal/00000000/00000000.wal.lz4
vendored
Normal file
BIN
testdata/wal-downloader/err-download-wal/generations/0000000000000000/wal/00000000/00000000.wal.lz4
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
testdata/wal-downloader/err-write-wal/generations/0000000000000000/wal/00000000/00000000.wal.lz4
vendored
Normal file
BIN
testdata/wal-downloader/err-write-wal/generations/0000000000000000/wal/00000000/00000000.wal.lz4
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
testdata/wal-downloader/missing-offset/generations/0000000000000000/wal/00000000/00000000.wal.lz4
vendored
Normal file
BIN
testdata/wal-downloader/missing-offset/generations/0000000000000000/wal/00000000/00000000.wal.lz4
vendored
Normal file
Binary file not shown.
BIN
testdata/wal-downloader/missing-offset/generations/0000000000000000/wal/00000000/00003068.wal.lz4
vendored
Normal file
BIN
testdata/wal-downloader/missing-offset/generations/0000000000000000/wal/00000000/00003068.wal.lz4
vendored
Normal file
Binary file not shown.
BIN
testdata/wal-downloader/ok/00000000.wal
vendored
Normal file
BIN
testdata/wal-downloader/ok/00000000.wal
vendored
Normal file
Binary file not shown.
BIN
testdata/wal-downloader/ok/00000001.wal
vendored
Normal file
BIN
testdata/wal-downloader/ok/00000001.wal
vendored
Normal file
Binary file not shown.
BIN
testdata/wal-downloader/ok/00000002.wal
vendored
Normal file
BIN
testdata/wal-downloader/ok/00000002.wal
vendored
Normal file
Binary file not shown.
40
testdata/wal-downloader/ok/README
vendored
Normal file
40
testdata/wal-downloader/ok/README
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
To reproduce this testdata, run sqlite3 and execute:
|
||||
|
||||
PRAGMA journal_mode = WAL;
|
||||
CREATE TABLE t (x);
|
||||
INSERT INTO t (x) VALUES (1);
|
||||
INSERT INTO t (x) VALUES (2);
|
||||
|
||||
And copy & split the WAL into segments:
|
||||
|
||||
sl3 split -o generations/0000000000000000/wal/00000000 db-wal
|
||||
cp db-wal 00000000.wal
|
||||
|
||||
|
||||
Then execute:
|
||||
|
||||
PRAGMA wal_checkpoint(TRUNCATE);
|
||||
INSERT INTO t (x) VALUES (3);
|
||||
|
||||
And split again:
|
||||
|
||||
sl3 split -o generations/0000000000000000/wal/00000001 db-wal
|
||||
cp db-wal 00000001.wal
|
||||
|
||||
|
||||
Then execute:
|
||||
|
||||
PRAGMA wal_checkpoint(TRUNCATE);
|
||||
INSERT INTO t (x) VALUES (4);
|
||||
INSERT INTO t (x) VALUES (5);
|
||||
|
||||
And split again:
|
||||
|
||||
sl3 split -o generations/0000000000000000/wal/00000002 db-wal
|
||||
cp db-wal 00000002.wal
|
||||
|
||||
|
||||
Finally, remove the original database files:
|
||||
|
||||
rm db*
|
||||
|
||||
BIN
testdata/wal-downloader/ok/generations/0000000000000000/wal/00000000/00000000.wal.lz4
vendored
Normal file
BIN
testdata/wal-downloader/ok/generations/0000000000000000/wal/00000000/00000000.wal.lz4
vendored
Normal file
Binary file not shown.
BIN
testdata/wal-downloader/ok/generations/0000000000000000/wal/00000000/00002050.wal.lz4
vendored
Normal file
BIN
testdata/wal-downloader/ok/generations/0000000000000000/wal/00000000/00002050.wal.lz4
vendored
Normal file
Binary file not shown.
BIN
testdata/wal-downloader/ok/generations/0000000000000000/wal/00000000/00003068.wal.lz4
vendored
Normal file
BIN
testdata/wal-downloader/ok/generations/0000000000000000/wal/00000000/00003068.wal.lz4
vendored
Normal file
Binary file not shown.
BIN
testdata/wal-downloader/ok/generations/0000000000000000/wal/00000001/00000000.wal.lz4
vendored
Normal file
BIN
testdata/wal-downloader/ok/generations/0000000000000000/wal/00000001/00000000.wal.lz4
vendored
Normal file
Binary file not shown.
BIN
testdata/wal-downloader/ok/generations/0000000000000000/wal/00000002/00000000.wal.lz4
vendored
Normal file
BIN
testdata/wal-downloader/ok/generations/0000000000000000/wal/00000002/00000000.wal.lz4
vendored
Normal file
Binary file not shown.
BIN
testdata/wal-downloader/ok/generations/0000000000000000/wal/00000002/00001038.wal.lz4
vendored
Normal file
BIN
testdata/wal-downloader/ok/generations/0000000000000000/wal/00000002/00001038.wal.lz4
vendored
Normal file
Binary file not shown.
BIN
testdata/wal-downloader/one/00000000.wal
vendored
Normal file
BIN
testdata/wal-downloader/one/00000000.wal
vendored
Normal file
Binary file not shown.
17
testdata/wal-downloader/one/README
vendored
Normal file
17
testdata/wal-downloader/one/README
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
To reproduce this testdata, run sqlite3 and execute:
|
||||
|
||||
PRAGMA journal_mode = WAL;
|
||||
CREATE TABLE t (x);
|
||||
INSERT INTO t (x) VALUES (1);
|
||||
INSERT INTO t (x) VALUES (2);
|
||||
|
||||
And copy & split the WAL into segments:
|
||||
|
||||
sl3 split -o generations/0000000000000000/wal/00000000 db-wal
|
||||
cp db-wal 00000000.wal
|
||||
|
||||
|
||||
Finally, remove the original database files:
|
||||
|
||||
rm db*
|
||||
|
||||
BIN
testdata/wal-downloader/one/generations/0000000000000000/wal/00000000/00000000.wal.lz4
vendored
Normal file
BIN
testdata/wal-downloader/one/generations/0000000000000000/wal/00000000/00000000.wal.lz4
vendored
Normal file
Binary file not shown.
BIN
testdata/wal-downloader/one/generations/0000000000000000/wal/00000000/00002050.wal.lz4
vendored
Normal file
BIN
testdata/wal-downloader/one/generations/0000000000000000/wal/00000000/00002050.wal.lz4
vendored
Normal file
Binary file not shown.
BIN
testdata/wal-downloader/one/generations/0000000000000000/wal/00000000/00003068.wal.lz4
vendored
Normal file
BIN
testdata/wal-downloader/one/generations/0000000000000000/wal/00000000/00003068.wal.lz4
vendored
Normal file
Binary file not shown.
Reference in New Issue
Block a user