This website requires JavaScript.
3932c9b2e2
Add WRITE_STABLE to the secondary OSD for the upcoming replication support
Vitaliy Filippov
2020-09-01 00:02:39 +0300
2e8c69fc5b
Rename OSD_OP_SECONDARY_* to OSD_OP_SEC_*
Vitaliy Filippov
2020-08-31 23:57:50 +0300
a86788fe3b
Support optimizing for the case when parity chunks occupy more space than data chunks
Vitaliy Filippov
2020-08-16 21:54:55 +0300
95ebfad283
Final name is Vitastor
Vitaliy Filippov
2020-08-03 23:50:50 +0300
6022f28dc9
Add pseudo-random PG generation
Vitaliy Filippov
2020-07-06 00:00:56 +0300
9d10a4d057
Support arbitrary pg_size in LPOptimizer
Vitaliy Filippov
2020-07-05 18:20:52 +0300
ec7acc8f3a
Add WRITE_STABLE operation for future replication support
Vitaliy Filippov
2020-07-05 01:48:02 +0300
416a80b099
Make blockstore object state a combination of type and workflow
Vitaliy Filippov
2020-07-04 22:15:58 +0300
a7929931eb
Implement PG epochs to prevent the "version split"
Vitaliy Filippov
2020-07-02 00:41:28 +0300
e680d6c1c3
Rename reconstruct_stripe and calc_rmw_parity to indicate that they are only for XOR N+1
Vitaliy Filippov
2020-06-30 10:40:43 +0300
9b33f598d3
Fix two more cluster client bugs
Vitaliy Filippov
2020-06-27 02:13:33 +0300
592bcd3699
Fix QEMU driver bugs (QEMU and qemu-img now work! hooray!)
Vitaliy Filippov
2020-06-26 02:18:58 +0300
5e1e39633d
Implement QEMU block driver
Vitaliy Filippov
2020-06-25 11:59:31 +0300
41c2655edd
Disconnect sockets when read returns zero
Vitaliy Filippov
2020-06-24 01:32:19 +0300
d68370304e
Support iovecs in cluster_client_t
Vitaliy Filippov
2020-06-24 01:31:48 +0300
a22d9f38aa
Only use EPOLLOUT while connecting
Vitaliy Filippov
2020-06-23 20:18:04 +0300
8736b3ad32
Add destructors, make ringloop optional in cluster_client_t
Vitaliy Filippov
2020-06-23 20:10:33 +0300
62343c8022
Allow to turn synchronous recvmsg/sendmsg on with a config option
Vitaliy Filippov
2020-06-22 23:44:32 +0300
9abaf5b735
Use epoll_manager in osd
Vitaliy Filippov
2020-06-20 01:28:18 +0300
badf68c039
Support iovecs for read operations
Vitaliy Filippov
2020-06-18 02:07:20 +0300
0f6d193d73
Postpone op callbacks to the end of handle_read(), fix a bug where primary OSD could reply -EPIPE with data to a read operation
Vitaliy Filippov
2020-06-16 01:36:38 +0300
27ee14a4e6
Fix bugs in cluster_client
Vitaliy Filippov
2020-06-15 13:22:20 +0300
64afec03ec
In theory, implement syncs and replay for the non-immediate commit mode
Vitaliy Filippov
2020-06-14 23:57:58 +0300
4dde8b8a42
Oops, fix fio_sec_osd block_order parsing
Vitaliy Filippov
2020-06-09 00:52:00 +0300
f5ccb154af
Benchmark reads in stub_bench, too
Vitaliy Filippov
2020-06-08 01:54:36 +0300
73c80e2c39
Move accept_connections() to osd_messenger_t, add a simple uring OSD stub
Vitaliy Filippov
2020-06-08 01:32:12 +0300
437dc5b630
Implement a FIO engine for testing cluster I/O
Vitaliy Filippov
2020-06-07 00:29:09 +0300
226f5a2945
Allow to override block_size in fio_sec_osd
Vitaliy Filippov
2020-06-06 17:17:13 +0300
2187d06eac
Add a parameter to pass the initial config to client
Vitaliy Filippov
2020-06-06 16:32:35 +0300
c573bc6bb3
(Probably almost) implement cluster client
Vitaliy Filippov
2020-06-06 01:39:58 +0300
2f6cf605a1
Rename cluster_client to osd_messenger
Vitaliy Filippov
2020-06-04 12:57:48 +0300
05ea97119f
Fix BS_OP_LIST to account for deleted objects: only list the newest stable entry of each object
Vitaliy Filippov
2020-06-02 23:41:55 +0300
571be0f380
Make deletions instantly stable
Vitaliy Filippov
2020-06-02 20:43:28 +0300
985c309d7f
Remove duplicate code between blockstore_{rollback,stable} and blockstore_init
Vitaliy Filippov
2020-06-02 20:29:45 +0300
a56f8cd14e
Simplify handle_primary_subop() arguments
Vitaliy Filippov
2020-06-02 18:44:23 +0300
46e111272f
Replace assert(this_it == cur_op) with if() for the case of PG repeering
Vitaliy Filippov
2020-06-02 14:30:57 +0300
165c204555
Fix BS_OP_DELETE (the implementation was untested up to this point)
Vitaliy Filippov
2020-06-02 14:02:39 +0300
af5cd45071
Oh crap, got SIGPIPE. Add MSG_NOSIGNAL
Vitaliy Filippov
2020-06-02 11:41:08 +0300
c3fe9ad0d1
Fix rebalancing writes (add a forgotten state resume)
Vitaliy Filippov
2020-06-02 01:18:36 +0300
0fcdeae18b
Do not die if a peer is already stopped on flush error
Vitaliy Filippov
2020-06-01 23:06:31 +0300
e6a4b634f8
Fix possible write stall
Vitaliy Filippov
2020-06-01 16:12:26 +0300
c22e096943
Output journal offsets in debug trace in hex, add detailed "still waiting" messages
Vitaliy Filippov
2020-06-01 01:55:54 +0300
45b1c2fbf1
Fix canceling of write operations on PG re-peer (which led to use-after-free, too...)
Vitaliy Filippov
2020-06-01 01:53:32 +0300
3469bead67
Protect "delete this" with a stack refcounter
Vitaliy Filippov
2020-06-01 00:47:49 +0300
3a5d488f19
Fix use-after-free in osd_flush.cpp
Vitaliy Filippov
2020-06-01 00:34:04 +0300
73e4e30b1f
Auto-generate C++ header dependencies
Vitaliy Filippov
2020-05-31 15:35:34 +0300
5feff1ffb9
Slightly cleanup socket send/receive code
Vitaliy Filippov
2020-05-31 15:03:27 +0300
b466e215f0
Fix queued OP_SYNC execution
Vitaliy Filippov
2020-05-27 13:55:25 +0300
36f995367f
Fix bind_address reporting
Vitaliy Filippov
2020-05-27 10:58:40 +0300
0aca6e9ca8
Extract peer connect and read-write loop into a separate file (to be shared with the client library)
Vitaliy Filippov
2020-05-26 21:23:01 +0300
fa98be6bc0
Allow to specify multiple etcd addresses
Vitaliy Filippov
2020-05-25 15:53:48 +0300
256a7f2667
Free op->bs_op manually
Vitaliy Filippov
2020-05-25 15:09:55 +0300
79bf57b6e2
Allow to override pg_stripe_size
Vitaliy Filippov
2020-05-25 15:28:32 +0300
53f6aba3e6
Die when journal_sector_buffer_count is too small
Vitaliy Filippov
2020-05-24 17:22:12 +0300
36595eb669
Print "Ran out of journal sector buffers" warning
Vitaliy Filippov
2020-05-24 16:48:50 +0300
e09d0e0678
Several bug fixes
Vitaliy Filippov
2020-05-24 00:55:03 +0300
d1602b50b3
Fix BS_OP_ROLLBACK removing an incorrect version
Vitaliy Filippov
2020-05-23 22:34:40 +0300
7df384031a
Re-peer PGs after stopping the peer
Vitaliy Filippov
2020-05-23 18:41:28 +0300
e614a98543
Add a sad FIXME :-)
Vitaliy Filippov
2020-05-23 15:38:40 +0300
01dd3ef89e
Fix timerfd_manager triggering of multiple times at the same time
Vitaliy Filippov
2020-05-23 15:33:32 +0300
cdccc23aff
Print [OSD $osd_num] in stats, print B/W only for ops that log bytes
Vitaliy Filippov
2020-05-23 15:19:51 +0300
700428829a
Fix autosync_interval default not setting when autosync_interval is skipped in config
Vitaliy Filippov
2020-05-23 15:11:33 +0300
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