Commit Graph

38 Commits (test-sq-poll)

Author SHA1 Message Date
Vitaliy Filippov 2b09710d6f Implement blockstore rollback operation
Rollback operation is required for the primary OSD to kill unstable
object versions in OSD peers so they don't occupy journal space
2020-01-24 20:18:14 +03:00
Vitaliy Filippov 43f6cfeb73 Extract alignments to options 2020-01-16 00:54:25 +03:00
Vitaliy Filippov a3d3949dce Do not overwrite same journal sector multiple times
It doesn't reduce actual WA, but it reduces tail latency (Q=32, 10% / 50% / 90% / 99% / 99.95%):
- write: 766us/979us/1090us/1303us/1729us vs 1074us/1450us/2212us/3261us/4113us
- sync: 701us/881us/1188us/1762us/2540us vs 269us/955us/1663us/2638us/4146us
2020-01-15 02:53:01 +03:00
Vitaliy Filippov b3f2102f33 Add queue stall tracking 2020-01-10 01:23:46 +03:00
Vitaliy Filippov a7e74670a5 Split blockstore implementation and interface header 2019-12-15 14:57:18 +03:00
Vitaliy Filippov 749ab6e2c6 Rename blockstore_operation to blockstore_op_t 2019-12-15 14:57:18 +03:00
Vitaliy Filippov f4d06ba102 OP_DELETE flushing 2019-12-02 02:41:14 +03:00
Vitaliy Filippov a7a0946ba8 WIP OP_DELETE 2019-12-01 17:25:59 +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 9ba243b3ee Add debug prints 2019-11-27 18:07:51 +03:00
Vitaliy Filippov ce5cd13bc8 Use fdatasync (just for testing over an FS) 2019-11-27 02:41:30 +03:00
Vitaliy Filippov 1080cbdf12 Fix used journal sector tracking again 2019-11-27 01:20:09 +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 3e46728321 Continue fio engine 2019-11-26 00:03:09 +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 2b12428cb1 Debug OP_STABLE so the basic case passes without problem 2019-11-21 02:09:18 +03:00
Vitaliy Filippov e40a71b2ce Check result to be equal to iov_len 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 c38c8ab029 Prevent two parallel flushes of the same object 2019-11-15 13:58:35 +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 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 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