This website requires JavaScript.
9038d42327
Fix several snapshot I/O bugs
Vitaliy Filippov
2021-02-01 01:37:54 +03:00
691f066055
Actual snapshot support (untested)
Vitaliy Filippov
2021-01-30 01:35:58 +03:00
ffe1cd4c79
Report inode I/O statistics, aggregate it in the monitor
Vitaliy Filippov
2021-01-21 00:30:18 +03:00
4ae1b84c67
Report inode space usage statistics to etcd, aggregate it in the monitor
Vitaliy Filippov
2021-01-19 02:14:13 +03:00
c35963967f
Add inode space usage statistics tracking to blockstore
Vitaliy Filippov
2021-01-18 01:28:36 +03:00
0aa2dd2890
Send bitmaps with primary-reads, actually read bitmaps for READ ops
Vitaliy Filippov
2021-01-13 00:19:04 +03:00
6bf88883ac
Allocate bitmaps along with stripes to avoid memory fragmentation
Vitaliy Filippov
2021-01-12 01:09:59 +03:00
004f265393
Remove cryptic bitmap inlining from bs_op_t and osd_op_t, use bitmap in primary OSD code
Vitaliy Filippov
2021-01-12 01:02:56 +03:00
860ac24762
Add "external" bitmap support to the secondary OSD protocol
Vitaliy Filippov
2021-01-11 02:01:42 +03:00
6107a4d07b
Add "external" bitmap support to blockstore
Vitaliy Filippov
2021-01-10 01:54:58 +03:00
95c29b9dc3
Add "external" bitmap support to osd_rmw
Vitaliy Filippov
2021-01-03 20:23:54 +03:00
d99407dcec
Check QEMU block-vitastor.so during the test
Vitaliy Filippov
2021-03-23 00:24:26 +03:00
6909807068
Allow to start the OSD just to flush the journal completely
rel-0.5
Vitaliy Filippov
2021-04-10 02:23:55 +03:00
ec90fe6ec1
Release 0.5.13
v0.5.13
Vitaliy Filippov
2021-04-09 11:17:07 +03:00
18c72f4835
Correct reenterability fix (now verified with a test)
Vitaliy Filippov
2021-04-09 11:14:52 +03:00
59fbcef734
Release 0.5.12
v0.5.12
Vitaliy Filippov
2021-04-08 10:54:39 +03:00
40b7c21fb1
Followup to 307c1731c1 - fix mark_stable
Vitaliy Filippov
2021-04-08 11:08:38 +03:00
efb3678606
Fix qemu-img broken in 0.5.11
Vitaliy Filippov
2021-04-08 10:52:21 +03:00
462650134e
Release 0.5.11
v0.5.11
Vitaliy Filippov
2021-04-08 00:53:43 +03:00
8d87e32175
Fix msgr_op.h includes
Vitaliy Filippov
2021-04-08 01:18:41 +03:00
b0b2e7df3c
Fix use-after-free in keepalive_timer and rework stop_client()
Vitaliy Filippov
2021-04-07 02:56:49 +03:00
97efb9e299
Do not crash on PG re-peering events when operations are in progress
Vitaliy Filippov
2021-04-07 01:29:30 +03:00
f6d705383a
Fix client connection recovery bugs, add dirty_ops limit
Vitaliy Filippov
2021-04-06 01:57:23 +03:00
68567c0e1f
Fix messenger possibly trying to connect to the same OSD twice
Vitaliy Filippov
2021-04-04 11:05:49 +03:00
04b00003e9
Log ping failures
Vitaliy Filippov
2021-04-04 01:51:31 +03:00
307c1731c1
Forget all dirty_entries before stable big_write or delete during initialisation
Vitaliy Filippov
2021-04-04 00:09:53 +03:00
75a6a556b5
Shuffle PGs for better data device utilisation
Vitaliy Filippov
2021-04-03 23:39:25 +03:00
a48e2bbf18
Fix write replay ordering when immediate_commit != all
Vitaliy Filippov
2021-04-03 14:51:52 +03:00
688821665a
Remove stoull_full() from etcd_state_client.cpp
Vitaliy Filippov
2021-03-31 01:18:28 +03:00
3e162d95a0
Remove http_client.h include from etcd_state_client.h
Vitaliy Filippov
2021-03-31 01:03:15 +03:00
829381b335
Extract some definitions to msgr_op.{cpp,h}
Vitaliy Filippov
2021-03-31 00:33:26 +03:00
54f2353f24
Use bitmap granularity for alignment checks
Vitaliy Filippov
2021-01-10 11:57:41 +03:00
e47f6fba60
Remove cluster_client_t::stop()
Vitaliy Filippov
2021-04-03 01:54:52 +03:00
883bf84a16
Fix build
Vitaliy Filippov
2021-04-03 01:40:45 +03:00
52097c4856
Stop flushing when less than min_flusher_count operations are available (unless a trim is forced)
Vitaliy Filippov
2021-03-28 00:55:30 +03:00
e1355cbc74
Report failed operation name in cluster_client
Vitaliy Filippov
2021-03-27 00:43:28 +03:00
8f8b90be7a
Add min_flusher_count configuration
Vitaliy Filippov
2021-03-24 01:58:33 +03:00
ad9f619370
Skip double allocs when reading journal
Vitaliy Filippov
2021-03-28 00:16:12 +03:00
f4769ba7c7
Collapse create+delete journal entry pairs if they're already flushed
Vitaliy Filippov
2021-03-27 23:21:18 +03:00
843b7052d2
Add an assertion when clearing deleted metadata entries, add debug details when freeing blocks
Vitaliy Filippov
2021-03-27 23:12:33 +03:00
df99e232ee
Deduplicate osd_sets in pg history + raise request size limit for etcd
Vitaliy Filippov
2021-03-27 18:16:00 +03:00
3a40fa4127
Fix monitor errors in case of OSD removal
Vitaliy Filippov
2021-03-27 01:15:05 +03:00
4095bcc558
Do not ignore object deletion journal entries when they are preceded by a big write
Vitaliy Filippov
2021-03-25 02:29:04 +03:00
564d64e271
Add some details for debug prints
Vitaliy Filippov
2021-03-25 02:17:16 +03:00
cf54741c95
Followup to 05db1308aa
Vitaliy Filippov
2020-03-25 02:48:58 +03:00
18a5fafa2a
Fix rollback
Vitaliy Filippov
2021-03-25 02:35:17 +03:00
06f4978085
Fix fsync check in blockstore_flush (data fsyncs were disabled instead of journal fsyncs)
Vitaliy Filippov
2020-03-24 02:39:12 +03:00
7ebf1588c5
Check for immediate_commit==small in the OSD code
Vitaliy Filippov
2021-03-24 00:09:59 +03:00
b0ad1e1e6d
Remember writes as "unsynced" only after completing them
Vitaliy Filippov
2020-03-24 02:37:44 +03:00
0949f08407
Extract osd_primary write and sync code into separate files
Vitaliy Filippov
2021-03-23 00:34:46 +03:00
04a1f18fa5
Assign .req as a whole to always zero out the remaining part
Vitaliy Filippov
2021-03-23 00:59:56 +03:00
cf9a641d66
Skip disconnected OSDs during sync
Vitaliy Filippov
2020-03-22 02:13:10 +03:00
05db1308aa
Fix two potential read/write ordering problems (even though not yet seen in tests)
Vitaliy Filippov
2021-03-21 15:02:24 +03:00
98b54ca948
Don't try to "recover" misplaced objects if it would make them degraded
Vitaliy Filippov
2021-03-21 01:36:47 +03:00
23225c5e62
Do not run ping on clients that are not yet connected
Vitaliy Filippov
2021-03-21 01:33:26 +03:00
7e6e1a5a82
Release 0.5.10
v0.5.10
Vitaliy Filippov
2021-03-16 01:55:29 +03:00
435045751d
Delete objects only after a SYNC during rebalance in the non-immediate_commit mode
Vitaliy Filippov
2021-03-15 02:26:39 +03:00
c5fb1d5987
Do not duplicate blockstore operations when io_uring fills up
Vitaliy Filippov
2021-03-14 15:14:26 +03:00
9f59381bea
Re-distribute PG primaries over OSDs that come up after a short downtime
Vitaliy Filippov
2021-03-14 01:26:06 +03:00
9ac7e75178
Allow to specify etcd URLs for OSDs with http://, do not die with a strange error if -etcd option is missing for fio
Vitaliy Filippov
2021-03-13 23:45:16 +03:00
88671cf745
Fix a bug causing all flushers to wait for an fsync without actually trying to do it
Vitaliy Filippov
2021-03-13 17:19:20 +03:00
fe1749c427
Fix the multiple_interrupted_rebalance test
Vitaliy Filippov
2021-03-13 02:05:28 +03:00
ceb9c28de7
Set default log_level before passing config to etcd_state_client
Vitaliy Filippov
2021-03-13 02:04:50 +03:00
299d7d7c95
Use common macro for get_sqe
Vitaliy Filippov
2021-03-13 02:04:04 +03:00
d1526b415f
Correctly resume writes when OSD is full to return an error
Vitaliy Filippov
2021-03-13 02:03:24 +03:00
f49fd53d55
Fix a bug where allocator was unable to allocate up to last (n%64) blocks, add tests for it
Vitaliy Filippov
2021-03-13 02:00:22 +03:00
dd76eda5e5
Test multiple interrupted rebalancings
Vitaliy Filippov
2020-03-12 02:13:29 +03:00
87dbd8fa57
Use empty hash as the default value for some etcd keys in the monitor
Vitaliy Filippov
2020-03-12 00:56:41 +03:00
b44f49aab2
Ignore zero OSDs in history osd_sets
Vitaliy Filippov
2020-03-12 00:02:18 +03:00
036555638e
Release 0.5.9
v0.5.9
Vitaliy Filippov
2021-03-11 00:39:10 +03:00
af5155fcd9
Implement "no_recovery" and "no_rebalance" flags
Vitaliy Filippov
2021-03-11 00:36:23 +03:00
0d2efbecc9
Preserve previous PG history when changing PG distribution
Vitaliy Filippov
2021-03-11 00:12:55 +03:00
e62e8b6bae
Use real pg configuration instead of the "last clean" one for generating PG history
Vitaliy Filippov
2021-03-10 01:13:05 +03:00
c4ba24c305
Do not print ping op latency
Vitaliy Filippov
2021-03-10 01:05:17 +03:00
85010fed38
Use a separate thread for epoll
openonload
Vitaliy Filippov
2020-05-30 10:24:50 +03:00
2498e504c2
Add ringloop back to timerfd
Vitaliy Filippov
2020-05-30 00:07:44 +03:00
735b97fe33
Trace I/O operations (SQEs, recvmsg/sendmsg, uring_submit)
trace-sync
Vitaliy Filippov
2020-05-27 19:24:50 +03:00
d56633843f
Replace io_uring sendmsg/recvmsg with synchronous sendmsg/recvmsg
sync-io-test
Vitaliy Filippov
2020-03-01 17:18:46 +03:00
c414a90abc
TRACE
trace-sqes
Vitaliy Filippov
2020-05-27 19:24:50 +03:00
36fe7d394b
EPOLLLT
Vitaliy Filippov
2020-05-27 20:22:11 +03:00
540137dd23
Submit
Vitaliy Filippov
2020-05-27 20:40:53 +03:00
19e47a0279
Release 0.5.8
v0.5.8
Vitaliy Filippov
2020-03-09 02:38:17 +03:00
bd178ac20f
Fix history osd_set check - local OSD is always available!
Vitaliy Filippov
2021-03-09 02:18:09 +03:00
7006875a24
Make monitor stick to one etcd until the restart
Vitaliy Filippov
2021-03-09 01:46:57 +03:00
ad577c4aac
Add PING operation and timeouts to detect OSD failures when a host goes down
Vitaliy Filippov
2021-03-09 01:17:42 +03:00
836635c518
Use osd_out_time = 10 minutes by default
Vitaliy Filippov
2021-03-09 01:24:51 +03:00
88a03f4e98
Release 0.5.7
v0.5.7
Vitaliy Filippov
2021-03-08 23:36:59 +03:00
2a5036669d
Fix PG count change procedure
Vitaliy Filippov
2021-03-08 23:13:08 +03:00
2e0c853180
Make test_change_pg_count check if any objects are lost during the test
Vitaliy Filippov
2021-03-08 22:59:40 +03:00
e91ff2a9ec
Only forget offline PGs if their state is not changed during reporting
Vitaliy Filippov
2021-03-08 01:38:48 +03:00
086667f568
Do not check PG state key ownership if it doesn't exist yet
Vitaliy Filippov
2021-03-08 00:45:18 +03:00
73ce20e246
Add a test for the "reappear after move" case
Vitaliy Filippov
2021-03-07 14:37:54 +03:00
1be94da437
Check & remove extra chunks for degraded / incomplete objects, too
Vitaliy Filippov
2021-03-07 14:36:20 +03:00
80e12358a2
Use pg_data_size instead of pg_minsize for object state calculation
Vitaliy Filippov
2021-03-07 14:29:29 +03:00
36c935ace6
Use std::vector for the blockstore submission queue
Vitaliy Filippov
2021-03-07 00:48:34 +03:00
0d8b5e2ef9
Remove unused enqueue_op_first()
Vitaliy Filippov
2021-03-06 22:53:18 +03:00
98f1e2c277
Rework write/sync ordering
Vitaliy Filippov
2021-03-06 17:42:09 +03:00
21e7686037
Fix possible "assertion failed: pg.inflight >= 0" error during PG stop
Vitaliy Filippov
2021-03-06 14:42:25 +03:00
ab21a1908b
Check for the dirty PG flag when trying to continue to stop it after sync
Vitaliy Filippov
2021-03-06 02:53:19 +03:00
30d1ccd43e
Fix an infinite loop when discarding list operations during stop_pg()
Vitaliy Filippov
2021-03-06 02:46:24 +03:00