Vitaliy Filippov
c5274f655b
...and partially remove the perversion with bitmap inlining
2023-07-29 12:17:18 +03:00
Vitaliy Filippov
45e07d6294
Sadly we have to refcount dyn_data...
2023-07-29 12:17:18 +03:00
Vitaliy Filippov
7d532880c3
Implement large csum_block_size support (more than 4k) + refactor blockstore_flush
2023-07-29 12:17:18 +03:00
Vitaliy Filippov
0b0405d115
Implement bitmap-granular (4k) metadata & data checksums
2023-07-29 12:17:18 +03:00
Vitaliy Filippov
b7e4d0c9bf
Fix journal dirty_start position tracking and some debug prints
...
Fixes two bugs found during HDD testing :-)
1) OSD crashed with "BUG: Attempt to overwrite used offset of the journal" during
`fio -bs=900k -iodepth=128` test with 16 MB journal
2) OSD stalled during `fio -bs=512k -iodepth=128` test with 64 MB journal
2023-07-09 01:17:55 +03:00
Vitaliy Filippov
150968070f
Slightly improve some debug prints
Test / test_change_pg_count (push) Successful in 30s
Details
Test / test_change_pg_count_ec (push) Successful in 31s
Details
Test / test_change_pg_size (push) Successful in 7s
Details
Test / test_create_nomaxid (push) Successful in 7s
Details
Test / test_etcd_fail (push) Successful in 45s
Details
Test / test_failure_domain (push) Successful in 8s
Details
Test / test_interrupted_rebalance (push) Successful in 1m3s
Details
Test / test_interrupted_rebalance_imm (push) Successful in 55s
Details
Test / test_interrupted_rebalance_ec (push) Successful in 1m30s
Details
Test / test_interrupted_rebalance_ec_imm (push) Successful in 57s
Details
Test / test_minsize_1 (push) Successful in 20s
Details
Test / test_move_reappear (push) Successful in 16s
Details
Test / test_rebalance_verify (push) Successful in 1m49s
Details
Test / test_rebalance_verify_imm (push) Successful in 1m40s
Details
Test / test_rebalance_verify_ec (push) Successful in 2m4s
Details
Test / test_rebalance_verify_ec_imm (push) Successful in 1m51s
Details
Test / test_rm (push) Successful in 14s
Details
Test / test_snapshot (push) Successful in 16s
Details
Test / test_snapshot_ec (push) Successful in 17s
Details
Test / test_splitbrain (push) Successful in 14s
Details
Test / test_write (push) Successful in 41s
Details
Test / test_write_xor (push) Successful in 49s
Details
Test / test_write_no_same (push) Successful in 10s
Details
Test / test_heal_pg_size_2 (push) Successful in 2m58s
Details
Test / test_scrub (push) Successful in 23s
Details
Test / test_scrub_zero_osd_2 (push) Successful in 19s
Details
Test / test_scrub_xor (push) Successful in 17s
Details
Test / test_scrub_pg_size_3 (push) Successful in 24s
Details
Test / test_scrub_pg_size_6_pg_minsize_4_osd_count_6_ec (push) Successful in 28s
Details
Test / test_scrub_ec (push) Successful in 25s
Details
2023-05-29 01:04:16 +03:00
Vitaliy Filippov
a409598b16
Wait for free space again, but count on big_write flushes instead of just flusher activity
2023-05-10 01:51:02 +03:00
Vitaliy Filippov
0fbf4c6a08
Selectively sync nonsynced objects on STABILIZE/ROLLBACK (fix for github issue #51 )
2023-04-08 02:44:02 +03:00
Vitaliy Filippov
d7bd36dc32
Fix another rare journal flush stall
2022-12-30 02:03:33 +03:00
Vitaliy Filippov
238037ae31
Make journal trimmer wait until reads are completed when inmemory_journal is false
...
Without this new writes may in theory overwrite journal data being read at that time
2022-11-20 01:49:21 +03:00
Vitaliy Filippov
dfd80626bd
Extract disk opening functions to separate module
2022-07-15 01:38:30 +03:00
Vitaliy Filippov
f93491bc6c
Implement journal write batching and slightly refactor journal writes
...
Slightly reduces WA. For example, in 4K T1Q128 replicated randwrite tests
WA is reduced from ~3.6 to ~3.1, in T1Q64 from ~3.8 to ~3.4.
Only effective without no_same_sector_overwrites.
2021-12-16 00:27:17 +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
6107a4d07b
Add "external" bitmap support to blockstore
2021-04-10 17:44:12 +03:00
Vitaliy Filippov
ad9f619370
Skip double allocs when reading journal
2021-04-03 00:53:28 +03:00
Vitaliy Filippov
843b7052d2
Add an assertion when clearing deleted metadata entries, add debug details when freeing blocks
2021-04-03 00:53:28 +03:00
Vitaliy Filippov
18a5fafa2a
Fix rollback
2021-03-25 02:41:58 +03:00
Vitaliy Filippov
299d7d7c95
Use common macro for get_sqe
2021-03-13 17:19:45 +03:00
Vitaliy Filippov
98f1e2c277
Rework write/sync ordering
...
Make syncs wait for all previous writes because it's the only way
to make sure that OSDs do not receive incomplete writes in LIST results
during peering when some writes are still in progress.
Also simplify blockstore submission queue logic.
2021-03-08 17:04:10 +03:00
Vitaliy Filippov
bf9a175efc
Move C/C++ sources to src subdirectory
2021-02-25 23:59:03 +03:00