This website requires JavaScript.
d398ddfd3b
Use snake_case for etcd requests
Vitaliy Filippov
2020-04-24 01:08:55 +0300
0f2b8dbf6f
Use a single timerfd_manager for all timers
Vitaliy Filippov
2020-04-24 01:07:19 +0300
4f42e9659e
Use etcd instead of Consul
Vitaliy Filippov
2020-04-24 01:03:55 +0300
7cf71a8031
Fix timerfd_manager: remove timer, then call callback
Vitaliy Filippov
2020-04-21 12:45:18 +0300
9d22559bcf
Start peering immediately when loading PGs
Vitaliy Filippov
2020-04-21 02:27:13 +0300
8c03e3ebab
Lock Blockstore devices exclusively by default
Vitaliy Filippov
2020-04-21 01:59:11 +0300
2a640ba2e8
Remove range port selection (leads to races)
Vitaliy Filippov
2020-04-21 00:10:59 +0300
6a21ea207e
Check peer config (at least, number) after connecting
Vitaliy Filippov
2020-04-21 00:08:54 +0300
642802b595
Auto-select port numbers
Vitaliy Filippov
2020-04-20 17:44:03 +0300
ff38b464a5
Add consul & connect timeouts, report state before loading PGs, move init_primary to osd_cluster
Vitaliy Filippov
2020-04-20 15:43:07 +0300
663153713b
Reconnect to peers after connecting drops
Vitaliy Filippov
2020-04-19 01:01:26 +0300
dc57c5c362
Report PG states again, clear PG history on reaching active+clean
Vitaliy Filippov
2020-04-19 00:48:23 +0300
f95299b769
Take PG history into account when starting PGs
Vitaliy Filippov
2020-04-19 00:20:18 +0300
9126ffb0f9
Fix PG loading - now it works, at least once
Vitaliy Filippov
2020-04-17 02:33:44 +0300
2a8e40835e
Fix reporting to Consul, report even if we are purely secondary
Vitaliy Filippov
2020-04-17 01:59:06 +0300
309486d746
Implement loading PGs from Consul (in theory)
Vitaliy Filippov
2020-04-16 23:22:32 +0300
582f485578
Extract http & getifaddr_list into a separate file
Vitaliy Filippov
2020-04-15 15:47:06 +0300
089b4eb208
Retry consul connection attempts and then die
Vitaliy Filippov
2020-04-15 15:33:18 +0300
d78ce509c6
Add simple timer manager
Vitaliy Filippov
2020-04-15 13:29:13 +0300
f3a7ccff50
Use 4K blockstore block by default, use MEM_ALIGNMENT in osd code
Vitaliy Filippov
2020-04-14 19:19:56 +0300
37b27c3025
Implement basic OSD status reporting to Consul
Vitaliy Filippov
2020-04-14 14:37:50 +0300
edf6d6f897
Fix http_request
Vitaliy Filippov
2020-04-12 02:08:00 +0300
d11e8dcb5e
Do not flush or recover in readonly mode
Vitaliy Filippov
2020-04-11 12:05:28 +0300
dd02bc1c44
Add base64 implementation
Vitaliy Filippov
2020-04-11 12:04:10 +0300
298b013eae
Add simple http request function
Vitaliy Filippov
2020-04-07 01:53:13 +0300
0880a77c1a
2 FIXME for the future
Vitaliy Filippov
2020-04-06 00:55:47 +0300
aa849ea07b
Add a test for missing chunk overwrite
Vitaliy Filippov
2020-04-05 16:14:03 +0300
d59be0e8b4
Delete misplaced chunks after moving the object, reset object state in primary_write
Vitaliy Filippov
2020-04-05 15:50:42 +0300
cf7de0f181
(Almost) Implement misplaced recovery, integrating it into calc_rmw()
Vitaliy Filippov
2020-04-04 22:19:45 +0300
6212195440
Implement parallel recovery
Vitaliy Filippov
2020-04-04 02:18:29 +0300
dfb6e15eaa
Implement graceful stopping of PGs
Vitaliy Filippov
2020-04-03 13:03:42 +0300
afe2e76c87
Implement regular automatic syncs, split osd_t constructor into some methods
Vitaliy Filippov
2020-04-02 22:16:46 +0300
0f43f6d3f6
Fix crashes, print some stats
Vitaliy Filippov
2020-03-31 17:50:50 +0300
92c800bb64
Forget unstable writes when re-peering, rename parity_block_size -> pg_stripe_size, pg_parity_size -> pg_block_size
Vitaliy Filippov
2020-03-31 02:09:25 +0300
8a8b619875
Handle secondary OSD connection errors [in theory]
Vitaliy Filippov
2020-03-30 19:43:12 +0300
43fe1d88e7
Fix memory leaks with subops, fix recovery crashes
Vitaliy Filippov
2020-03-28 19:09:20 +0300
1b30120918
Fix stripe reconstruction in recovery, only write modified object parts
Vitaliy Filippov
2020-03-28 13:51:30 +0300
c0a22d825d
Fix degraded object recovery (it seems to work now)
Vitaliy Filippov
2020-03-25 02:17:12 +0300
7acfc95f75
CONFIG_HAVE_GETTID
Vitaliy Filippov
2020-03-23 17:09:52 +0300
250f22c0b6
Implement basic degraded object recovery (integrated into primary_write)
Vitaliy Filippov
2020-03-24 01:13:04 +0300
dbd8418798
Reply using a single finish_op() method, allow to call OSD ops from inside the OSD
Vitaliy Filippov
2020-03-24 00:18:35 +0300
036f4c5bf3
Fix unstable flushing, include extra OSDs with old object versions in osd_set
Vitaliy Filippov
2020-03-23 15:44:29 +0300
fd8e1a8418
Slightly reorganize object state check code
Vitaliy Filippov
2020-03-23 00:39:53 +0300
a08e0bfacd
Treat misplaced and degraded as separate state parts
Vitaliy Filippov
2020-03-22 20:36:29 +0300
ddc3e927d3
Solve it in integers
Vitaliy Filippov
2020-03-20 13:58:54 +0300
2aa605f2bb
Do not check
Vitaliy Filippov
2020-03-20 13:38:35 +0300
18915b264a
Extract to .pm + fix all_combinations
Vitaliy Filippov
2020-03-19 21:33:42 +0300
60f795e7eb
Add lp_solve based data distribution optimizer
Vitaliy Filippov
2020-03-19 17:23:24 +0300
3a4279adbf
Hash-based PG distribution experiments
Vitaliy Filippov
2020-03-17 18:52:35 +0300
1ec9794376
Extract flushing into a separate file
Vitaliy Filippov
2020-03-15 18:39:31 +0300
d8164e9d84
Print PG states on every change
Vitaliy Filippov
2020-03-14 22:19:45 +0300
21d0b06959
Implement flushing (stabilize/rollback) of unstable entries on start of the PG
Vitaliy Filippov
2020-03-13 21:41:54 +0300
46f9bd2a69
Make blockstore list operation return consistent snapshots
Vitaliy Filippov
2020-03-13 21:41:45 +0300
6982fe1255
Do not block reads by previous unfinished writes
Vitaliy Filippov
2020-03-13 21:28:42 +0300
eba053febe
Do not start small writes before finishing the last big write to the same object
Vitaliy Filippov
2020-03-12 02:15:01 +0300
899946ff96
Add osd_test function to unblock an OSD blocked by the lack of journal space
Vitaliy Filippov
2020-03-10 17:19:24 +0300
3dd1b22d55
Fix segfault with concurrent OP_SYNCs
Vitaliy Filippov
2020-03-10 17:00:16 +0300
31f9445030
Use immediate_commit to benefit the primary OSD
Vitaliy Filippov
2020-03-10 02:05:32 +0300
3f522c66e6
Implement immediate commit mode
Vitaliy Filippov
2020-03-10 01:59:15 +0300
c3737ae3ff
Add journal fsync to stabilize/rollback
Vitaliy Filippov
2020-03-09 00:35:54 +0300
c863543bfe
Fix possible journal corruption caused by concurrent flushing and writing of the same journal sector
Vitaliy Filippov
2020-03-07 17:36:58 +0300
1696446545
Rename min/max _used to _flushed
Vitaliy Filippov
2020-03-07 16:41:40 +0300
41dddddbf2
Fix some logging
Vitaliy Filippov
2020-03-07 03:39:28 +0300
2d4e24c9ce
Add journal dumper debugging tool
Vitaliy Filippov
2020-03-06 02:02:00 +0300
844cacd357
Allow incorrectly forbidden BS_OP_LIST in readonly mode
Vitaliy Filippov
2020-03-06 02:02:39 +0300
e19d9fde5f
Fix peering_pg, begin tests
Vitaliy Filippov
2020-03-05 20:58:52 +0300
9cb07d844b
Make [un]register_consumer operate on pointers, rename get_loop_again() to has_work()
Vitaliy Filippov
2020-03-04 21:00:15 +0300
1e21555343
Add FIXME with Oops
Vitaliy Filippov
2020-03-04 20:34:45 +0300
94cdbcd085
Stop reading when less than <buffer> data is available
Vitaliy Filippov
2020-03-04 18:03:16 +0300
8315407558
Incoming data pre-buffering
Vitaliy Filippov
2020-03-02 02:58:00 +0300
b27ad550cf
Use btree_map instead of sparsepp
Vitaliy Filippov
2020-03-04 17:12:27 +0300
8e63995306
Allow to specify data area size
Vitaliy Filippov
2020-03-04 02:32:49 +0300
9c33de5e57
Test: use submit_and_wait()
test-submit-and-wait
Vitaliy Filippov
2020-03-03 17:48:47 +0300
eabfe4faac
Test SQ poll threads. Unstable and in fact slower :(
test-sq-poll
Vitaliy Filippov
2020-03-03 17:22:40 +0300
c9f3654905
Add ringloop.h to dependencies
Vitaliy Filippov
2020-03-03 17:23:33 +0300
2a5ca4ff6f
Measure OP_STAB in both ways
Vitaliy Filippov
2020-03-03 02:18:59 +0300
2575431176
Fix EPOLLET race on Linux 5.5+
Vitaliy Filippov
2020-03-03 01:47:56 +0300
20125db181
Use clock_gettime()
Vitaliy Filippov
2020-03-03 00:54:42 +0300
7eac7b6d55
Use writev in libfio_sec_osd
Vitaliy Filippov
2020-03-02 21:17:17 +0300
79839ec31d
Start sending immediately instead of waiting for another loop
Vitaliy Filippov
2020-03-02 00:20:28 +0300
9d96e4bf0b
Add simple "stub bench" using sync I/O
Vitaliy Filippov
2020-03-01 23:00:46 +0300
d2b37e083a
Test: replace EPOLLIN with blocking sockets + io_uring reads
blocking-uring-test
Vitaliy Filippov
2020-03-01 17:20:16 +0300
9e18293497
Allow to specify multiple peers
Vitaliy Filippov
2020-03-01 00:46:07 +0300
56765ab750
Send all iovecs at once
Vitaliy Filippov
2020-02-29 02:27:10 +0300
fd05e13bc4
Use EPOLLET
Vitaliy Filippov
2020-02-29 01:46:12 +0300
c41fd7ea18
Measure sending subops with data
Vitaliy Filippov
2020-02-29 01:46:03 +0300
c6334afc94
Measure OSD op/subop latency
Vitaliy Filippov
2020-02-28 12:25:54 +0300
2be4824a7a
Fix a small memory leak and BS_OP_SYNC mishandling, now fio does not hang during primary-osd test
Vitaliy Filippov
2020-02-28 01:46:39 +0300
1733de2db6
Test & fix single-PG primary OSD
Vitaliy Filippov
2020-02-26 18:32:00 +0300
df66a76ce2
...and make it work :)
Vitaliy Filippov
2020-02-25 22:52:03 +0300
a406c62a71
Implement basic primary-sync-stabilize
Vitaliy Filippov
2020-02-25 20:10:17 +0300
74673c761f
Make basic primary-write work
Vitaliy Filippov
2020-02-25 01:20:45 +0300
09588a349f
Transform primary_r/w into "coroutines"
Vitaliy Filippov
2020-02-24 02:40:48 +0300
4c0178f180
Fix some memory freeing
Vitaliy Filippov
2020-02-24 01:01:34 +0300
5dd04abbac
Make bs_op pointer
Vitaliy Filippov
2020-02-23 23:19:11 +0300
fe3c47812c
Rename osd_exec_secondary to osd_secondary
Vitaliy Filippov
2020-02-23 23:00:07 +0300
88e56a564f
Rename osd_read_stripe_t to osd_rmw_stripe_t
Vitaliy Filippov
2020-02-23 22:52:49 +0300
c71b67f2f7
Move SYNC_STAB_ALL into blockstore implementation
Vitaliy Filippov
2020-02-23 20:34:37 +0300
4a52a15564
Rename osd_op_t.op to req
Vitaliy Filippov
2020-02-23 19:03:06 +0300
72a89be912
Move uint8_t[] buffers into any_op_t/any_reply_t
Vitaliy Filippov
2020-02-23 18:57:20 +0300