Commit Graph

48 Commits (76caecf7c7ada1d0bed2bda1268a503005ffa0e0)

Author SHA1 Message Date
Vitaliy Filippov 76caecf7c7 Inmemory metadata mode 2019-12-02 15:42:42 +03:00
Vitaliy Filippov 14b2f49f4d FIXME 2019-12-01 16:43:21 +03:00
Vitaliy Filippov 76655929c4 Add readonly flag 2019-12-01 16:41:07 +03:00
Vitaliy Filippov 9260cd263a Verify data crc32 when reading journal 2019-11-30 23:32:10 +03:00
Vitaliy Filippov 40781c67b2 Trim journal on start 2019-11-29 02:13:32 +03:00
Vitaliy Filippov b6fff5a77e Fix metadata area size calculation, print free space, wait for free space
FIXME: Now it crashes with -ENOSPC on linear overwrite
2019-11-28 20:23:27 +03:00
Vitaliy Filippov 9fa0d3325f Support inmemory journal 2019-11-28 18:06:50 +03:00
Vitaliy Filippov e1ac4dba23 Fix safe stop procedure 2019-11-28 02:27:17 +03:00
Vitaliy Filippov cbf5173d1b Allow to specify device paths in fio options 2019-11-28 00:50:52 +03:00
Vitaliy Filippov 35a6ed728d Fix another stall due to bad unstable_writes tracking, do not try to write beyond the end of the journal 2019-11-28 00:28:08 +03:00
Vitaliy Filippov e2b91968c5 Fix sync confirmations and some pipeline-stall bugs 2019-11-27 18:07:38 +03:00
Vitaliy Filippov ff7469ee91 Make allocator a class 2019-11-27 00:50:57 +03:00
Vitaliy Filippov b8e53f8c67 Fix op validation, fix journal sector usage tracking
Now it runs for a while with fio but then crashes with ENOSPC because
of an apparent bug in the allocator
2019-11-26 20:38:25 +03:00
Vitaliy Filippov be3015169f Safe stop procedure 2019-11-25 01:29:07 +03:00
Vitaliy Filippov 2b12428cb1 Debug OP_STABLE so the basic case passes without problem 2019-11-21 02:09:18 +03:00
Vitaliy Filippov 3bfa2f5f39 Fix io_uring submission, journal sector selection 2019-11-19 18:07:40 +03:00
Vitaliy Filippov 8c690c76ec Wakeup ring loop 2019-11-18 14:08:11 +03:00
Vitaliy Filippov 5b8df6768b Try to submit a test write operation 2019-11-18 02:36:53 +03:00
Vitaliy Filippov debaf6c943 Print init messages 2019-11-18 02:09:34 +03:00
Vitaliy Filippov eec1c35ea4 Begin to debug ... all of this stuff :) 2019-11-16 02:32:29 +03:00
Vitaliy Filippov a4aaa3c7c7 First implementation of journal trimming
In theory it's possible to start testing blockstore at this point!
2019-11-15 16:12:55 +03:00
Vitaliy Filippov 1c6b9778a4 Handle all io_uring events using lambdas 2019-11-13 22:46:42 +03:00
Vitaliy Filippov 214da03735 Move flusher into a separate file 2019-11-13 17:46:05 +03:00
Vitaliy Filippov bb55a7fbf4 Zero-fill new objects and write them to the main storage 2019-11-12 20:49:57 +03:00
Vitaliy Filippov 4afa95b0e3 FSM is a dreadful unreadable thing, reimplement using gotos 2019-11-12 18:16:41 +03:00
Vitaliy Filippov e807d7433e Add stop method stub 2019-11-11 21:22:28 +03:00
Vitaliy Filippov 46e96c5128 Remove duplicate journal buffer submission code 2019-11-11 18:38:57 +03:00
Vitaliy Filippov 890335bff6 Begin implementation of the STABLE operation 2019-11-10 14:37:45 +03:00
Vitaliy Filippov 64185f7a1f Move enqueue_write to _write.cpp 2019-11-10 13:27:59 +03:00
Vitaliy Filippov e5caffb6ac Allow to read specific versions 2019-11-10 13:26:56 +03:00
Vitaliy Filippov ae56fe1067 Finish sync algorithm in theory 2019-11-10 12:52:37 +03:00
Vitaliy Filippov 24f5d71595 Move handle_event code into _read.cpp, _write.cpp; move sync code into _sync.cpp 2019-11-10 02:27:27 +03:00
Vitaliy Filippov 8e634d5b74 Continue sync implementation 2019-11-09 02:16:44 +03:00
Vitaliy Filippov 7456f0f7e2 Remove duplicate code 2019-11-08 19:54:57 +03:00
Vitaliy Filippov 153de65ce7 Begin sync implementation 2019-11-08 19:54:45 +03:00
Vitaliy Filippov 90f081f398 Check for op->wait_for conditions
It's almost identical to just re-submit... so maybe it was pointless
2019-11-08 12:08:25 +03:00
Vitaliy Filippov a5f2d8b85e Ack writes 2019-11-08 02:31:07 +03:00
Vitaliy Filippov 40890aeec5 Rename dirty_queue to dirty_db and make it a single std::map 2019-11-08 00:20:10 +03:00
Vitaliy Filippov 5330461029 Move blockstore journal fields to journal_t, implement multiple write buffers for journal sectors 2019-11-07 23:42:24 +03:00
Vitaliy Filippov 84c62840bd Begin write algorithm 2019-11-07 02:24:12 +03:00
Vitaliy Filippov 2f18a3d19e Begin implementation of enqueue/dequeue 2019-11-06 19:27:48 +03:00
Vitaliy Filippov 3f5ad16748 Fix ringloop, implement first version of handle_event for reads 2019-11-05 23:06:06 +03:00
Vitaliy Filippov 82cf0a170e Port everything to ring_loop 2019-11-05 02:43:21 +03:00
Vitaliy Filippov 351366d228 Add ring_loop 2019-11-05 02:12:04 +03:00
Vitaliy Filippov 9babacb00a Move init into a separate file 2019-11-03 22:04:30 +03:00
Vitaliy Filippov f4705d81d7 Split into multiple files, begin init_loop, adjust read 2019-11-03 02:30:11 +03:00
Vitaliy Filippov db3b810588 journal structures + read fulfill 2019-11-01 02:47:57 +03:00
Vitaliy Filippov 03335d3533 Blockstore: device opening 2019-10-31 13:49:46 +03:00