Commit Graph

60 Commits (f2e9749c9340ceffe036890be485ec0a2ac128ed)

Author SHA1 Message Date
Vitaliy Filippov a180b4961f Hide block_* fields 2019-12-10 00:13:59 +03:00
Vitaliy Filippov aaea3e1f99 Fix read_fulfill, use vector 2019-12-03 12:09:30 +03:00
Vitaliy Filippov aa3b252327 Fsync data before writing metadata 2019-12-03 00:20:13 +03:00
Vitaliy Filippov 76caecf7c7 Inmemory metadata mode 2019-12-02 15:42:42 +03:00
Vitaliy Filippov a7a0946ba8 WIP OP_DELETE 2019-12-01 17:25:59 +03:00
Vitaliy Filippov 00eeedae90 Add "fsync disabled" mode 2019-12-01 16:41:07 +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 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 cbf5173d1b Allow to specify device paths in fio options 2019-11-28 00:50:52 +03:00
Vitaliy Filippov 9ba243b3ee Add debug prints 2019-11-27 18:07:51 +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 a7dc759f74 Compile fio engine 2019-11-26 01:50:26 +03:00
Vitaliy Filippov be3015169f Safe stop procedure 2019-11-25 01:29:07 +03:00
Vitaliy Filippov 50cf3667fa Track unstable writes 2019-11-25 01:16:34 +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 5b8df6768b Try to submit a test write operation 2019-11-18 02:36:53 +03:00
Vitaliy Filippov c7d9dc027b Remove extra states as they seem useless 2019-11-15 14:02:37 +03:00
Vitaliy Filippov c38c8ab029 Prevent two parallel flushes of the same object 2019-11-15 13:58:35 +03:00
Vitaliy Filippov 71194f014a Update dirty_db and clean_db after flushing an entry 2019-11-15 02:26:18 +03:00
Vitaliy Filippov 0627dd0f5e Used journal sector tracking 2019-11-15 02:04:19 +03:00
Vitaliy Filippov bc549553e4 Rename dirty_entry.size to len, remove some unneeded methods and fields, read metadata correctly 2019-11-14 01:13:07 +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 75398414d1 Add grouping flusher class 2019-11-13 17:41:57 +03:00
Vitaliy Filippov db66b3916e Begin metadata read-modify-write 2019-11-13 16:07:29 +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 34451b6e44 Try to implement journal flusher as a FSM 2019-11-12 18:16:38 +03:00
Vitaliy Filippov f892104aed Begin journal flusher 2019-11-12 12:02:11 +03:00
Vitaliy Filippov e807d7433e Add stop method stub 2019-11-11 21:22:28 +03:00
Vitaliy Filippov 71552adf79 Do not use deque, test cpp-btree 2019-11-11 19:42:18 +03:00
Vitaliy Filippov 46e96c5128 Remove duplicate journal buffer submission code 2019-11-11 18:38:57 +03:00
Vitaliy Filippov 1f04db7d68 Begin to implement stabilize as a batch operation 2019-11-11 16:30:47 +03:00
Vitaliy Filippov d2d8d6e7fb Comments about stabilize operation, track unsynced_writes correctly 2019-11-11 02:53:19 +03:00
Vitaliy Filippov 8edb9e9d6f Remove duplicate journal writing code (and fix it at the same time) 2019-11-11 00:28:14 +03:00
Vitaliy Filippov ff57dd420e Rename object_db to clean_db 2019-11-10 22:41:40 +03:00
Vitaliy Filippov 890335bff6 Begin implementation of the STABLE operation 2019-11-10 14:37:45 +03:00
Vitaliy Filippov 7aabe11ef9 Switch object states after sync 2019-11-10 13:49:26 +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 2d0334f9b9 Remove in_progress_ops 2019-11-10 12:52:37 +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 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