Commit Graph

20 Commits (d2b37e083a14824514629db67add327db0756f35)

Author SHA1 Message Date
Vitaliy Filippov d4fd9d982a Implement read-modify-write calculation and extract it into a separate file 3 years ago
Vitaliy Filippov ffe073473a Remove hardcode of the EC(2+1) scheme, now it supports EC(k+1), fix some bugs 3 years ago
Vitaliy Filippov b7ccd63104 Return version number from reads 3 years ago
Vitaliy Filippov ec50957c41 WIP primary OSD read 3 years ago
Vitaliy Filippov 1e286eed08 Wait for writes to complete before issuing an fsync in blockstore_sync
Also fix a dormant bug (OP_SYNC could clear unsynced_*_writes and not be added into syncs_in_progress)
3 years ago
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
3 years ago
Vitaliy Filippov 98efdb78bd Extract object state calculation to a separate file and slightly test it 3 years ago
Vitaliy Filippov 8c05ee252c Test object list sorting, begin peering code 3 years ago
Vitaliy Filippov d0ab2a20b2 Make fsync flags separate for data, metadata and journal 3 years ago
Vitaliy Filippov 43f6cfeb73 Extract alignments to options 3 years ago
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
3 years ago
Vitaliy Filippov cf819eb442 Implement sparse block bitmap to avoid zero-fill 3 years ago
Vitaliy Filippov 4b05bde3a2 Block writes earlier than sync/stabilize would be blocked, too 3 years ago
Vitaliy Filippov b3f2102f33 Add queue stall tracking 3 years ago
Vitaliy Filippov ba23824561 Allow to disable zero fill 3 years ago
Vitaliy Filippov bf3eecc159 Extract 512 to constants 3 years ago
Vitaliy Filippov e88ad3f2ff Implement object list operation in blockstore 3 years ago
Vitaliy Filippov 19abe6227e Fix submission ring overflow & ring_data_t reuse conflicts 4 years ago
Vitaliy Filippov 71635f2327 Use std::hash<object_id> instead of oid_hash 4 years ago
Vitaliy Filippov a7e74670a5 Split blockstore implementation and interface header 4 years ago