This website requires JavaScript.
6488d0044a
Ignore EPOLL_CTL_DEL ENOENT, fix detection of the rollback version
Vitaliy Filippov
2020-05-23 15:01:47 +0300
393fe75900
Fix creepy (osd_op_t*)(long) casts
Vitaliy Filippov
2020-05-23 14:48:54 +0300
f036eecf1c
Fix osd_rmw object recovery case (len==0)
Vitaliy Filippov
2020-05-23 14:46:42 +0300
e56909fb45
Remove tv_send (unused) and timerfd_interval from blockstore
Vitaliy Filippov
2020-05-22 15:50:04 +0300
fac75b0b57
Handle reweights in mon
Vitaliy Filippov
2020-05-22 12:52:27 +0300
9f842ec9a5
Remove connect callback because it is always the same
Vitaliy Filippov
2020-05-22 12:45:12 +0300
f6a01a4819
Extract "state-watching" etcd client into a separate file
Vitaliy Filippov
2020-05-21 21:00:54 +0300
6202260018
Extract HTTP client functions from osd_t
Vitaliy Filippov
2020-05-21 11:39:01 +0300
a61ede9951
Remove io_uring usage from osd_http and timerfd_manager
Vitaliy Filippov
2020-05-21 01:23:43 +0300
f57731f8ca
Calculate total stats in the monitor
Vitaliy Filippov
2020-05-15 01:28:44 +0300
19f25c7cd5
Handle integer overflow of the op_stat_count
Vitaliy Filippov
2020-05-15 00:57:49 +0300
2c3e84cc41
Implement stop_all_pgs()
Vitaliy Filippov
2020-05-14 19:29:35 +0300
7bda66b866
Do not crash when optimising PGs in an undersized cluster
Vitaliy Filippov
2020-05-13 00:08:31 +0300
b467d0559f
Begin node.js storage monitor service
Vitaliy Filippov
2020-05-12 17:49:18 +0300
c2c2eefea4
Duplicate host in osd/state and osd/stats, take PGs from /config/pgs.items
Vitaliy Filippov
2020-05-12 17:50:02 +0300
5084ff7c6c
Measure & report recovery op count and bandwidth
Vitaliy Filippov
2020-05-11 16:12:18 +0300
47b6f64106
Support level names
Vitaliy Filippov
2020-05-11 15:57:21 +0300
f71d0c117b
Measure & report op bandwidth, include local blockstore ops in stats
Vitaliy Filippov
2020-05-11 02:58:13 +0300
2b854948f9
Remove dead code
Vitaliy Filippov
2020-05-09 16:15:02 +0300
e7f897ed65
Report hostname to etcd
Vitaliy Filippov
2020-05-09 02:33:43 +0300
c26b6e1fc3
Support CRUSH-like multi-level placement trees
Vitaliy Filippov
2020-05-09 00:55:24 +0300
aaa054e644
Fix optimize_change generating infeasible problems
Vitaliy Filippov
2020-05-07 13:45:03 +0300
706a44d4d4
Fix optimize_initial in both perl and js versions
Vitaliy Filippov
2020-05-06 13:21:18 +0300
842f88f94f
Rewrite LPOptimizer.pm to nodejs
Vitaliy Filippov
2020-05-06 02:08:15 +0300
e8149e5848
Implement OSD_OP_DELETE
Vitaliy Filippov
2020-05-05 00:16:01 +0300
6355b968f4
Track osd_set history and all_peers separately
Vitaliy Filippov
2020-05-04 01:32:24 +0300
00cf24fbd7
Split osd_primary.cpp
Vitaliy Filippov
2020-05-03 11:04:20 +0300
1bc08174f9
Sync before listing objects so flushes do not fail thereafter
Vitaliy Filippov
2020-05-01 12:55:15 +0300
cd87333091
Fix PG state comparison leading to unclean PGs not flushing
Vitaliy Filippov
2020-05-01 02:09:18 +0300
bd0fe6e4cc
Fix PGs not stopping during sync, fix state reporting autovivification of erased PGs
Vitaliy Filippov
2020-05-01 01:32:34 +0300
ce78454215
Reply with -EROFS to write commands in readonly mode
Vitaliy Filippov
2020-05-01 00:54:34 +0300
762bd42096
Fix use-after-free caused by "delete this" in handle_read
Vitaliy Filippov
2020-04-30 02:15:49 +0300
7b57eeeeb3
Implement PG state locking and PG moving in response to etcd events
Vitaliy Filippov
2020-04-27 14:32:59 +0300
ec4a52af48
Fix websocket (and timer!) bugs
Vitaliy Filippov
2020-04-26 01:33:50 +0300
268b497c0b
Implement simple websocket client
Vitaliy Filippov
2020-04-25 23:11:50 +0300
35481925b1
Implement very simple HTTP streaming to handle etcd watches
Vitaliy Filippov
2020-04-25 01:29:31 +0300
895a80dfc4
Fix etcd 3.2 compatibility (no compare.target == LEASE, /kv/lease/revoke), fix small bugs
Vitaliy Filippov
2020-04-25 00:10:05 +0300
caa01c6aaf
Acquire etcd leases, prevent starting two OSDs with the same number
Vitaliy Filippov
2020-04-24 16:46:02 +0300
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