Vitaliy Filippov
438b64f6c3
Allow to enable PG locks online when changing local_reads in pool configuration
2025-05-23 20:54:47 +03:00
Vitaliy Filippov
7e6a95c678
Support primary-reads from clean replicated PGs on secondary OSDs
2025-05-10 16:42:02 +03:00
Vitaliy Filippov
b2416afb28
Lock PGs on secondary OSDs to allow local reads and guarantee splitbrain prevention
2025-05-10 15:18:00 +03:00
Vitaliy Filippov
66dc116f60
Cleanup PG_INCOMPLETE peering states
2025-05-10 02:51:26 +03:00
Vitaliy Filippov
0cb8629ab6
Remove finish_stop_pg shortcut
2025-05-08 16:14:35 +03:00
Vitaliy Filippov
b7322a405a
Move gethostname_str to utils
2025-05-05 02:16:06 +03:00
Vitaliy Filippov
5692630005
Move check_sequencing indication into config response features subkey
2025-05-05 02:07:50 +03:00
Vitaliy Filippov
f397fe9c6a
Add compatibility with ISA-L 2.31+
2025-05-04 18:09:33 +03:00
Vitaliy Filippov
2ab0ae3bc9
Check operation sequencing and stop clients when it breaks
2025-05-02 17:01:50 +03:00
Vitaliy Filippov
2b2a10581d
Prevent double handle_primary_subop in rare cases
2025-04-26 01:16:53 +03:00
Vitaliy Filippov
3e5f0be52c
Use separate port numbers for RDMA-CM
2025-04-01 16:16:03 +03:00
Vitaliy Filippov
8508e78288
Add an alternative RDMA implementation via RDMA-CM
...
Required for non-RoCE cards: iWARP and, possibly, Infiniband
2025-03-31 21:01:25 +03:00
Vitaliy Filippov
a103065d12
Support multiple OSD networks and separate OSD cluster network
2025-03-31 21:01:15 +03:00
Vitaliy Filippov
7a835fcd8f
Add allow_net_split parameter
2025-03-23 02:12:32 +03:00
Vitaliy Filippov
f544c350ba
%l* -> %j*
2025-03-22 15:32:07 +03:00
Vitaliy Filippov
e0953fd502
Wait for all "up" OSDs to be connected before starting PG
2025-03-19 02:36:09 +03:00
Vitaliy Filippov
819f1125ae
Support used_for_app instead of used_for_fs
2025-03-07 01:03:43 +03:00
Vitaliy Filippov
108df7329f
Fix PG object count statistics on deletion of non-existing objects
2025-03-04 00:40:56 +03:00
Vitaliy Filippov
391c92af1a
Set OSD process name
2025-02-26 11:54:37 +03:00
Vitaliy Filippov
b151013201
Fix snapshot reads from a dirty write-back cache
2025-02-23 02:31:19 +03:00
Vitaliy Filippov
e8e7ba8fde
Add FIXME for CAS in non-immediate_commit mode
2025-02-06 01:35:48 +03:00
Vitaliy Filippov
bcefa42bc0
Scrub all chunks, not just 1 chunk per position
2025-01-23 02:02:55 +03:00
Vitaliy Filippov
4636e02d43
Remove scheme, pg_size, pg_data_size from op_data
2025-01-23 01:20:31 +03:00
Vitaliy Filippov
9dbcdbcec9
Return left_on_dead OSD list in DELETE replies and use it in rm-data
2025-01-03 15:57:09 +03:00
Vitaliy Filippov
d5366a0767
Support listings from primary OSDs (for consistent deletions)
2025-01-02 11:07:24 +03:00
Vitaliy Filippov
8bf52d6e96
Fix inode parent_id loop check
2024-12-28 18:40:17 +03:00
Vitaliy Filippov
42eebfc1bd
Fix OSDs still crashing when the cluster is full with EC
...
ENOSPC handling was introduced in 1.6.0 but it was not complete; now it is
P.S: See also client_retry_enospc (true by default)
2024-12-26 01:56:33 +03:00
Vitaliy Filippov
cef98052f5
Improve logging of subop failures
2024-12-26 01:54:40 +03:00
Vitaliy Filippov
64db31ec10
Fix slow op warning format
2024-12-11 21:09:36 +03:00
Vitaliy Filippov
7b37ba921d
Pause pool rebalance when monitor detects that it can lead to any OSD becoming full
2024-11-22 01:01:07 +03:00
Vitaliy Filippov
9c59d30e83
Report slow ops in OSD stats in etcd and show them in vitastor-cli status
2024-11-16 15:11:16 +03:00
Vitaliy Filippov
8202ee9d74
Trigger double autosync when switching PG state to prevent leaving garbage in non-immediate_commit clusters
2024-11-15 01:26:36 +03:00
Vitaliy Filippov
141cec2383
Add missing refcounting for flush_batch errors
2024-11-09 00:46:38 +03:00
Vitaliy Filippov
1ce4b1b417
Fix stop condition in osd_flush
...
Could probably lead to PGs hung in peering states on OSD restart in EC pools,
fixable by primary OSD restart
2024-11-08 00:30:40 +03:00
Vitaliy Filippov
c5a58c2e81
Support reading parameters automatically from the superblock in vitastor-disk {dump,write}-{meta,journal}
2024-10-07 02:21:58 +03:00
Vitaliy Filippov
48f023292d
Fix extra data reads on read_chain
2024-09-21 17:05:42 +03:00
Vitaliy Filippov
f18a749324
READ_CHAIN fix was incomplete :-)
2024-09-21 13:40:31 +03:00
Vitaliy Filippov
3cc326500e
Fix non-working OSD_OP_READ_CHAIN_BITMAP O_o
2024-08-30 01:25:05 +03:00
Vitaliy Filippov
b263d311ef
Use separate watch revisions for different watchers
2024-07-31 01:15:37 +03:00
Vitaliy Filippov
20584414d8
Report OSD version in /osd/state/ and /osd/stats/ (for the future)
2024-07-31 01:15:37 +03:00
Vitaliy Filippov
306a3db7f3
Rename VERSION define to VITASTOR_VERSION
2024-07-31 01:15:37 +03:00
Vitaliy Filippov
5b0aebada4
Rename /config/pgs to /pg/config and /pg/stats/* to /pgstats/*
2024-07-31 01:15:37 +03:00
Vitaliy Filippov
f8edfb4a71
No need to check for PG intersection if a history set is smaller than EC data part count
2024-07-18 19:29:05 +03:00
Vitaliy Filippov
abbba6ade4
Support handling TCP I/O in simple separate io_uring-based I/O threads
...
Required mainly for clients, allows to scale parallel client I/O with TCP
from 100-150k iops to ~400k iops and from 2-3 GB/s to at least 7-8 GB/s
with 4 I/O threads, at the same time increasing Q=1 latency by 2x thread
switching delay, which is ~10 us when CPU powersaving is disabled and may
be as high as 200 us when it's enabled.
2024-07-04 13:29:20 +03:00
Vitaliy Filippov
0fec7a9fea
Drop dirty peer connections also when stopping PG to guarantee that clients do not miss fsync
2024-06-19 00:28:26 +03:00
Vitaliy Filippov
5360a70853
Make OSD also report derived stats
2024-06-17 13:02:52 +03:00
Vitaliy Filippov
c79b38bd26
Move all sources to subdirs
2024-05-15 11:06:01 +03:00