Commit Graph

259 Commits (c0a22d825d078a2f2558285d68c81ee6b9c98e2c)

Author SHA1 Message Date
Vitaliy Filippov c0a22d825d Fix degraded object recovery (it seems to work now) 2020-03-25 02:17:41 +03:00
Vitaliy Filippov 7acfc95f75 CONFIG_HAVE_GETTID 2020-03-25 01:20:20 +03:00
Vitaliy Filippov 250f22c0b6 Implement basic degraded object recovery (integrated into primary_write) 2020-03-25 01:17:50 +03:00
Vitaliy Filippov dbd8418798 Reply using a single finish_op() method, allow to call OSD ops from inside the OSD 2020-03-24 00:18:52 +03:00
Vitaliy Filippov 036f4c5bf3 Fix unstable flushing, include extra OSDs with old object versions in osd_set 2020-03-23 20:28:47 +03:00
Vitaliy Filippov fd8e1a8418 Slightly reorganize object state check code 2020-03-23 00:42:17 +03:00
Vitaliy Filippov a08e0bfacd Treat misplaced and degraded as separate state parts 2020-03-23 00:40:31 +03:00
Vitaliy Filippov ddc3e927d3 Solve it in integers 2020-03-20 13:58:54 +03:00
Vitaliy Filippov 2aa605f2bb Do not check 2020-03-20 13:38:35 +03:00
Vitaliy Filippov 18915b264a Extract to .pm + fix all_combinations 2020-03-19 21:35:47 +03:00
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