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