Commit Graph

225 Commits (eabfe4faac96bc01f22e68fd532257673347aeba)

Author SHA1 Message Date
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 82a2b8e7d9 Fix some extra bugs and it seems now it is even able to trim the journal 2019-11-22 12:08:44 +03:00
Vitaliy Filippov 7e87290fca Clear second sector of the journal, init iov for callbacks 2019-11-21 22:06:00 +03:00
Vitaliy Filippov 201eeb8516 Rewrite metadata_init to the same "goto-coroutine" style 2019-11-21 21:51:52 +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 299b7288d5 Fix journal loading 2019-11-21 00:52:52 +03:00
Vitaliy Filippov eb55b2fe20 Initialize sector 0 of the journal 2019-11-19 20:03:19 +03:00
Vitaliy Filippov b5f04c58ff Rewrite journal_init to the "goto-coroutine" style 2019-11-19 19:50:58 +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 b6174075de Fix write iov_len check 2019-11-18 13:37:32 +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 e40a71b2ce Check result to be equal to iov_len 2019-11-18 02:09:34 +03:00
Vitaliy Filippov d9d6a4f9c4 Forgot to pass cqe result :) 2019-11-17 22:26:55 +03:00
Vitaliy Filippov c2de733e35 Copy io_uring_prep_* to my_uring_prep_* so they do not clear user_data 2019-11-17 21:39:30 +03:00
Vitaliy Filippov 2f429b17dd io_uring timeout testing 2019-11-17 18:19:11 +03:00
Vitaliy Filippov eec1c35ea4 Begin to debug ... all of this stuff :) 2019-11-16 02:32:29 +03:00
Vitaliy Filippov da2fe69879 Allow to open regular files 2019-11-16 02:24:49 +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 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 f1e236c6e8 Sync metadata & data after copying from journal 2019-11-14 14:09:07 +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 7739f628cb c++ lambda size test 2019-11-13 22:36:12 +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 ae77a228c7 Rename big_write.block to location 2019-11-12 20:58:27 +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 ab20aef941 test queue with random removal 2019-11-12 12:12:23 +03:00
Vitaliy Filippov f892104aed Begin journal flusher 2019-11-12 12:02:11 +03:00
Vitaliy Filippov 5ac3910cef Test deque 2019-11-12 12:01:39 +03:00
Vitaliy Filippov badb47bc80 Test with random 2019-11-11 21:27:31 +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 69581e6d0c Send STABLE entry to the journal 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