Vitaliy Filippov
60f795e7eb
Add lp_solve based data distribution optimizer
2020-03-19 17:23:24 +03:00
Vitaliy Filippov
3a4279adbf
Hash-based PG distribution experiments
2020-03-17 18:52:39 +03:00
Vitaliy Filippov
1ec9794376
Extract flushing into a separate file
2020-03-15 18:39:31 +03:00
Vitaliy Filippov
d8164e9d84
Print PG states on every change
2020-03-14 22:19:45 +03:00
Vitaliy Filippov
21d0b06959
Implement flushing (stabilize/rollback) of unstable entries on start of the PG
2020-03-14 02:49:34 +03:00
Vitaliy Filippov
46f9bd2a69
Make blockstore list operation return consistent snapshots
2020-03-14 02:10:25 +03:00
Vitaliy Filippov
6982fe1255
Do not block reads by previous unfinished writes
2020-03-13 21:28:49 +03:00
Vitaliy Filippov
eba053febe
Do not start small writes before finishing the last big write to the same object
2020-03-12 02:15:01 +03:00
Vitaliy Filippov
899946ff96
Add osd_test function to unblock an OSD blocked by the lack of journal space
2020-03-10 17:19:24 +03:00
Vitaliy Filippov
3dd1b22d55
Fix segfault with concurrent OP_SYNCs
2020-03-10 17:00:23 +03:00
Vitaliy Filippov
31f9445030
Use immediate_commit to benefit the primary OSD
2020-03-10 02:20:16 +03:00
Vitaliy Filippov
3f522c66e6
Implement immediate commit mode
2020-03-10 01:59:15 +03:00
Vitaliy Filippov
c3737ae3ff
Add journal fsync to stabilize/rollback
2020-03-09 00:35:58 +03:00
Vitaliy Filippov
c863543bfe
Fix possible journal corruption caused by concurrent flushing and writing of the same journal sector
2020-03-08 01:21:19 +03:00
Vitaliy Filippov
1696446545
Rename min/max _used to _flushed
2020-03-07 16:41:58 +03:00
Vitaliy Filippov
41dddddbf2
Fix some logging
2020-03-07 16:41:53 +03:00
Vitaliy Filippov
2d4e24c9ce
Add journal dumper debugging tool
2020-03-06 02:29:43 +03:00
Vitaliy Filippov
844cacd357
Allow incorrectly forbidden BS_OP_LIST in readonly mode
2020-03-06 02:29:39 +03:00
Vitaliy Filippov
e19d9fde5f
Fix peering_pg, begin tests
2020-03-06 02:02:49 +03:00
Vitaliy Filippov
9cb07d844b
Make [un]register_consumer operate on pointers, rename get_loop_again() to has_work()
2020-03-04 21:00:20 +03:00
Vitaliy Filippov
1e21555343
Add FIXME with Oops
2020-03-04 20:34:45 +03:00
Vitaliy Filippov
94cdbcd085
Stop reading when less than <buffer> data is available
2020-03-04 18:03:16 +03:00
Vitaliy Filippov
8315407558
Incoming data pre-buffering
2020-03-04 17:34:45 +03:00
Vitaliy Filippov
b27ad550cf
Use btree_map instead of sparsepp
2020-03-04 17:12:27 +03:00
Vitaliy Filippov
8e63995306
Allow to specify data area size
2020-03-04 02:32:49 +03:00
Vitaliy Filippov
c9f3654905
Add ringloop.h to dependencies
2020-03-03 17:23:33 +03:00
Vitaliy Filippov
2a5ca4ff6f
Measure OP_STAB in both ways
2020-03-03 02:18:59 +03:00
Vitaliy Filippov
2575431176
Fix EPOLLET race on Linux 5.5+
2020-03-03 01:47:56 +03:00
Vitaliy Filippov
20125db181
Use clock_gettime()
2020-03-03 00:54:42 +03:00
Vitaliy Filippov
7eac7b6d55
Use writev in libfio_sec_osd
2020-03-02 21:17:21 +03:00
Vitaliy Filippov
79839ec31d
Start sending immediately instead of waiting for another loop
2020-03-02 00:20:28 +03:00
Vitaliy Filippov
9d96e4bf0b
Add simple "stub bench" using sync I/O
2020-03-01 23:00:46 +03:00
Vitaliy Filippov
9e18293497
Allow to specify multiple peers
2020-03-01 00:46:07 +03:00
Vitaliy Filippov
56765ab750
Send all iovecs at once
2020-02-29 02:27:19 +03:00
Vitaliy Filippov
fd05e13bc4
Use EPOLLET
...
Its latency is slightly better, too
2020-02-29 01:56:59 +03:00
Vitaliy Filippov
c41fd7ea18
Measure sending subops with data
2020-02-29 01:46:03 +03:00
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)
2020-02-28 12:26:49 +03:00
Vitaliy Filippov
2be4824a7a
Fix a small memory leak and BS_OP_SYNC mishandling, now fio does not hang during primary-osd test
2020-02-28 01:46:39 +03:00
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
2020-02-26 19:05:29 +03:00
Vitaliy Filippov
df66a76ce2
...and make it work :)
2020-02-25 22:52:03 +03:00
Vitaliy Filippov
a406c62a71
Implement basic primary-sync-stabilize
2020-02-25 20:10:21 +03:00
Vitaliy Filippov
74673c761f
Make basic primary-write work
2020-02-25 02:55:58 +03:00
Vitaliy Filippov
09588a349f
Transform primary_r/w into "coroutines"
2020-02-24 02:40:52 +03:00
Vitaliy Filippov
4c0178f180
Fix some memory freeing
2020-02-24 01:04:23 +03:00
Vitaliy Filippov
5dd04abbac
Make bs_op pointer
2020-02-23 23:46:00 +03:00
Vitaliy Filippov
fe3c47812c
Rename osd_exec_secondary to osd_secondary
2020-02-23 23:43:57 +03:00
Vitaliy Filippov
88e56a564f
Rename osd_read_stripe_t to osd_rmw_stripe_t
2020-02-23 23:43:57 +03:00
Vitaliy Filippov
c71b67f2f7
Move SYNC_STAB_ALL into blockstore implementation
2020-02-23 23:43:57 +03:00
Vitaliy Filippov
4a52a15564
Rename osd_op_t.op to req
2020-02-23 23:21:17 +03:00
Vitaliy Filippov
72a89be912
Move uint8_t[] buffers into any_op_t/any_reply_t
2020-02-23 23:21:17 +03:00