Commit Graph

218 Commits (d2b37e083a14824514629db67add327db0756f35)
 

Author SHA1 Message Date
Vitaliy Filippov d2b37e083a Test: replace EPOLLIN with blocking sockets + io_uring reads 3 years ago
Vitaliy Filippov 9e18293497 Allow to specify multiple peers 3 years ago
Vitaliy Filippov 56765ab750 Send all iovecs at once 3 years ago
Vitaliy Filippov fd05e13bc4 Use EPOLLET
Its latency is slightly better, too
3 years ago
Vitaliy Filippov c41fd7ea18 Measure sending subops with data 3 years ago
Vitaliy Filippov c6334afc94 Measure OSD op/subop latency
Something is wrong: loopback RTT between OSDs is sometimes as high as 70us (should be 20us or less probably)
3 years ago
Vitaliy Filippov 2be4824a7a Fix a small memory leak and BS_OP_SYNC mishandling, now fio does not hang during primary-osd test 3 years ago
Vitaliy Filippov 1733de2db6 Test & fix single-PG primary OSD
- Add support for benchmarking single primary OSD in fio_sec_osd
- Do not wait for the next event in flushers (return resume_0 back)
- Fix flushing of zero-length writes
- Print PG object count when peering
- Print journal free space when starting and when congested
3 years ago
Vitaliy Filippov df66a76ce2 ...and make it work :) 3 years ago
Vitaliy Filippov a406c62a71 Implement basic primary-sync-stabilize 3 years ago
Vitaliy Filippov 74673c761f Make basic primary-write work 3 years ago
Vitaliy Filippov 09588a349f Transform primary_r/w into "coroutines" 3 years ago
Vitaliy Filippov 4c0178f180 Fix some memory freeing 3 years ago
Vitaliy Filippov 5dd04abbac Make bs_op pointer 3 years ago
Vitaliy Filippov fe3c47812c Rename osd_exec_secondary to osd_secondary 3 years ago
Vitaliy Filippov 88e56a564f Rename osd_read_stripe_t to osd_rmw_stripe_t 3 years ago
Vitaliy Filippov c71b67f2f7 Move SYNC_STAB_ALL into blockstore implementation 3 years ago
Vitaliy Filippov 4a52a15564 Rename osd_op_t.op to req 3 years ago
Vitaliy Filippov 72a89be912 Move uint8_t[] buffers into any_op_t/any_reply_t 3 years ago
Vitaliy Filippov d4fd9d982a Implement read-modify-write calculation and extract it into a separate file 3 years ago
Vitaliy Filippov 0e177c7a2a Fix possible leak in blockstore_read 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 1100ad44bd Cancel outbound operations when disconnecting a peer 3 years ago
Vitaliy Filippov a66b34e04d Implement event-driven PG peering 3 years ago
Vitaliy Filippov 327f310868 Remove copy-pasted read/write _blocking 3 years ago
Vitaliy Filippov 1513d0490a Test and fix degraded-read 3 years ago
Vitaliy Filippov 97d3fc593c Test and fix primary-read 3 years ago
Vitaliy Filippov 235d15422c Mostly finish primary-OSD-read 3 years ago
Vitaliy Filippov 9fb2d3f840 Fill out the rest of the degraded read logic; now we need to make it a "coroutine" 3 years ago
Vitaliy Filippov 206c4eb655 WIP submit subops 3 years ago
Vitaliy Filippov 74d0196ba5 Stripe read reconstruction 3 years ago
Vitaliy Filippov ec50957c41 WIP primary OSD read 3 years ago
Vitaliy Filippov f4707709c6 Move ack_sync() near sync_state = SYNC_DONE so it does not hang with disable_journal_fsync 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 dcc9e75c63 Wait for write completion before fsync in blockstore_init 3 years ago
Vitaliy Filippov 47663bd1dc Add (empty) osd_primary.cpp, rename osd_read to osd_receive, add FIXMEs for fsync 3 years ago
Vitaliy Filippov 1447c44b68 Calculate required stabilize/rollback actions, add more map perf tests 3 years ago
Vitaliy Filippov 079f129390 Add rollback op to the OSD code 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 d2a3f0c6dd Begin object state calculation 3 years ago
Vitaliy Filippov a8bc44064d Read object lists from peers and own blockstore 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 d5386aa958 Check presence in sync_to_repeat 3 years ago
Vitaliy Filippov 0d90966739 Add last_sync checking to fio_engine, too 3 years ago
Vitaliy Filippov 43f6cfeb73 Extract alignments to options 3 years ago
Vitaliy Filippov 57ecbb2cda Parse OSD commandline options 3 years ago
Vitaliy Filippov 8ea1ccc192 Add an OSD stub to compare sync socket I/O with io_uring + skip multiple fsyncs that fio issues 3 years ago