Vitaliy Filippov
d84dee7098
Track recovery op latencies + refactor into a structure
2023-12-31 01:23:17 +03:00
Vitaliy Filippov
a8464c19af
Support keeping checksums on disk (not in memory)
...
Definitely beneficial for SSD+HDD setups
2023-07-29 12:17:18 +03:00
Vitaliy Filippov
c8d61568b5
Fix primary_read bitmap buffers being freed too early (use-after-free)
Test / test_etcd_fail (push) Successful in 1m43s
Details
Test / test_interrupted_rebalance (push) Successful in 1m23s
Details
Test / test_interrupted_rebalance_imm (push) Successful in 1m33s
Details
Test / test_interrupted_rebalance_ec_imm (push) Successful in 1m39s
Details
Test / test_failure_domain (push) Successful in 10s
Details
Test / test_snapshot (push) Successful in 19s
Details
Test / test_snapshot_ec (push) Successful in 17s
Details
Test / test_minsize_1 (push) Successful in 13s
Details
Test / test_move_reappear (push) Successful in 17s
Details
Test / test_rm (push) Successful in 11s
Details
Test / test_snapshot_chain (push) Successful in 1m7s
Details
Test / test_snapshot_chain_ec (push) Successful in 2m1s
Details
Test / test_snapshot_down (push) Successful in 22s
Details
Test / test_snapshot_down_ec (push) Successful in 20s
Details
Test / test_splitbrain (push) Successful in 12s
Details
Test / test_rebalance_verify (push) Successful in 2m51s
Details
Test / test_rebalance_verify_imm (push) Successful in 2m49s
Details
Test / test_rebalance_verify_ec (push) Successful in 4m6s
Details
Test / test_rebalance_verify_ec_imm (push) Successful in 5m3s
Details
Test / test_write (push) Successful in 32s
Details
Test / test_write_xor (push) Successful in 34s
Details
Test / test_write_no_same (push) Successful in 12s
Details
Test / test_heal_pg_size_2 (push) Successful in 3m11s
Details
Test / test_heal_ec (push) Successful in 3m54s
Details
Test / test_scrub (push) Successful in 44s
Details
Test / test_scrub_zero_osd_2 (push) Successful in 30s
Details
Test / test_scrub_xor (push) Successful in 31s
Details
Test / test_scrub_pg_size_3 (push) Successful in 37s
Details
Test / test_scrub_pg_size_6_pg_minsize_4_osd_count_6_ec (push) Successful in 32s
Details
Test / test_scrub_ec (push) Successful in 1m31s
Details
2023-06-30 12:47:45 +03:00
Vitaliy Filippov
6648f6bb6e
Implement ambiguity detection during scrub
2023-05-20 23:19:39 +03:00
Vitaliy Filippov
8dc427b43c
Retry failed reads (including chained and RMW) from other replicas
2023-05-20 23:19:39 +03:00
Vitaliy Filippov
bf2112653b
Refcount object_states
2023-05-20 23:19:39 +03:00
Vitaliy Filippov
11481170f5
Add a FIXME about ENOSPC
2023-05-13 23:59:44 +03:00
Vitaliy Filippov
8cac795445
Return EIO instead of EINVAL for incomplete EC objects
2023-05-11 01:15:23 +03:00
Vitaliy Filippov
baaf8f6f44
Fix write operations not continued correctly after flush
2023-04-09 02:06:10 +03:00
Vitaliy Filippov
0385b2f9e8
Fix write hangs on PG epoch update - always set pg.history_changed to true
2023-01-25 01:30:15 +03:00
Vitaliy Filippov
02e7be7dc9
Prevent reenterability side effects during PG history operation resume
2023-01-03 02:20:50 +03:00
Vitaliy Filippov
a4dfa519af
Report PG history synchronously during write
...
This has 2 effects:
1) OSD sets aren't added into PG history until actual write attempts anymore
which removes unneeded extra osd_sets in PG history
2) New OSD sets are reported synchronously and can't be lost on PG restarts
happening at the same time with reconfiguration
2023-01-01 23:41:05 +03:00
Vitaliy Filippov
629200b0cc
Return ENOSPC as the primary OSD
2022-12-30 02:03:33 +03:00
Vitaliy Filippov
31bd1ec145
Fix object creation check for statistics
2022-12-21 02:51:11 +03:00
Vitaliy Filippov
a0cae4c180
Rename "jerasure" to "ec" in pool configuration, function names, fix documentation and Debian build scripts
...
Old pool configurations with "jerasure" also remain supported as an alias for "ec"
2022-06-03 15:40:00 +03:00
Vitaliy Filippov
842ba8b831
Use (uint64_t)1 instead of 1l / 1ul
2022-04-16 01:48:14 +03:00
Vitaliy Filippov
7bdd92ca4f
Fix build under clang and some warnings
...
Build problems fixed:
- void* pointer arithmetic which is a GNU extension (works as byte*)
- "variable size object may not be initialized" which is OK under GCC
- nullptr_t related error in json11 (it lacks 'operator <' in clang)
Warnings fixed:
- empty nested struct initializer { 0 } replaced by {}
- removed several unused lambda captures
2022-01-16 00:02:54 +03:00
Vitaliy Filippov
cfe8de9b84
Autosync based on number of unstable ops to prevent journal stalls
2021-10-30 14:26:48 +03:00
Vitaliy Filippov
5cf1157f16
Return real version on CAS failure
2021-08-01 20:05:19 +03:00
Vitaliy Filippov
891250d355
Implement CAS writes
...
From now on, reads will return the server-side object version numbers
and writes and deletes will have an additional "version" parameter
which, if set to a non-zero value, will be atomically compared with
the current version of the object plus 1 and the modification will
fail if it doesn't match.
This feature opens the road to correct online flattening of snapshot
layers and other interesting things.
2021-06-15 00:12:35 +03:00
Vitaliy Filippov
57e2c503f7
Rename osd_t::c_cli to msgr
2021-04-17 16:32:09 +03:00
Vitaliy Filippov
37efdc2a83
Fix bitmap_set for replicated pools
2021-04-10 17:44:12 +03:00
Vitaliy Filippov
38a3df4a0e
Implement chained (optimized) read in the primary OSD code
2021-04-10 17:44:12 +03:00
Vitaliy Filippov
ab39ce2bbb
Use clean_entry_bitmap_size instead of entry_attr_size back because of changed bitmap handling
2021-04-10 17:44:12 +03:00
Vitaliy Filippov
004f265393
Remove cryptic bitmap inlining from bs_op_t and osd_op_t, use bitmap in primary OSD code
2021-04-10 17:44:12 +03:00
Vitaliy Filippov
95c29b9dc3
Add "external" bitmap support to osd_rmw
2021-04-10 17:44:12 +03:00
Vitaliy Filippov
97efb9e299
Do not crash on PG re-peering events when operations are in progress
2021-04-07 11:06:31 +03:00
Vitaliy Filippov
cf54741c95
Followup to 05db1308aa
...
Don't do anything with the object state after errors because
it's freed by PG re-peer in this case
2021-03-25 11:00:10 +03:00
Vitaliy Filippov
7ebf1588c5
Check for immediate_commit==small in the OSD code
2021-03-25 02:41:58 +03:00
Vitaliy Filippov
0949f08407
Extract osd_primary write and sync code into separate files
2021-03-24 14:20:56 +03:00