Commit Graph

14 Commits (37d14e35f34986c690373a6db8c986fad74afbec)

Author SHA1 Message Date
Vitaliy Filippov e4ea8a9514 Track used blocks, not object versions
Test / test_snapshot_ec (push) Successful in 19s Details
Test / test_minsize_1 (push) Successful in 11s Details
Test / test_move_reappear (push) Successful in 17s Details
Test / test_rm (push) Successful in 12s Details
Test / test_snapshot_chain (push) Successful in 1m5s Details
Test / test_snapshot_chain_ec (push) Successful in 1m27s Details
Test / test_snapshot_down (push) Successful in 21s 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 3m25s Details
Test / test_rebalance_verify_imm (push) Successful in 3m36s Details
Test / test_rebalance_verify_ec (push) Successful in 3m55s Details
Test / test_rebalance_verify_ec_imm (push) Successful in 3m52s Details
Test / test_write (push) Successful in 36s Details
Test / test_write_xor (push) Successful in 41s Details
Test / test_write_no_same (push) Successful in 15s Details
Test / test_heal_pg_size_2 (push) Successful in 5m32s Details
Test / test_heal_ec (push) Successful in 7m7s Details
Test / test_heal_csum_32k_dmj (push) Successful in 5m46s Details
Test / test_heal_csum_32k_dj (push) Successful in 5m44s Details
Test / test_heal_csum_32k (push) Successful in 7m19s Details
Test / test_heal_csum_4k_dmj (push) Successful in 6m38s Details
Test / test_heal_csum_4k_dj (push) Successful in 6m33s Details
Test / test_heal_csum_4k (push) Successful in 6m21s Details
Test / test_scrub (push) Successful in 58s Details
Test / test_scrub_zero_osd_2 (push) Successful in 56s Details
Test / test_scrub_xor (push) Successful in 39s Details
Test / test_scrub_pg_size_3 (push) Successful in 40s Details
Test / test_scrub_pg_size_6_pg_minsize_4_osd_count_6_ec (push) Successful in 33s Details
Test / test_scrub_ec (push) Successful in 34s Details
2023-07-17 00:34:58 +03:00
Vitaliy Filippov 708918a4c7 Remove creepy "metadata copying" during overwrite
Instead of it, just do not verify checksums of currently mutated objects.
When clean data modification during flush runs in parallel to a read request,
that request may read a mix of old and new data. It may even read a mix of
multiple flushed versions if it lasts too long... And attempts to verify it
using temporary copies of metadata make the algorithm too complex and creepy.
2023-07-15 02:34:20 +03:00
Vitaliy Filippov 8e099c1d11 Support keeping checksums on disk (not in memory)
Definitely beneficial for SSD+HDD setups
2023-07-14 00:38:15 +03:00
Vitaliy Filippov b369032665 Sadly we have to refcount dyn_data... 2023-07-13 01:49:45 +03:00
Vitaliy Filippov bafadd5559 Fix bitmap-granular checksums 2023-07-13 01:49:45 +03:00
Vitaliy Filippov 7a530346a6 Implement large csum_block_size support (more than 4k) + refactor blockstore_flush 2023-07-13 01:49:45 +03:00
Vitaliy Filippov cc1f03971d Implement bitmap-granular (4k) metadata & data checksums 2023-07-13 01:49:45 +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 839ec9e6e0 Shard clean_db by PGs to speedup listings 2022-02-20 00:21:24 +03:00
Vitaliy Filippov e74af9745e Print journal flusher diagnostics on slow ops 2021-07-17 16:13:41 +03:00
Vitaliy Filippov 95c29b9dc3 Add "external" bitmap support to osd_rmw 2021-04-10 17:44:12 +03:00
Vitaliy Filippov 8f8b90be7a Add min_flusher_count configuration 2021-04-03 00:53:28 +03:00
Vitaliy Filippov c974cb539c Make flusher_count adaptive and limit write iodepth 2021-02-25 23:59:33 +03:00
Vitaliy Filippov bf9a175efc Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00