ceph/qa/tasks
Gabriel BenHanokh 690739e821 osd/SnapMapper:
Maintain the prefix_itr between calls to SnapMapper::get_next_objects_to_trim() to prevent searching depleted prefixes.
We got 8 distinct hash prefixes used for searching objects owned by a given PG.
On each call to SnapMapper::get_next_objects_to_trim() we start from the first prefix even after all objects mapped to it were depleted.
This means that we will be searching for 1 non-existing prefix after the first prefix was depleted, 2 after the first two prefixes were depleted... and so on until we will search 7 non-existing prefixes after the first 7 prefixes were depleted.

This is a performance improvement PR only!
It maintains the existing behavior and does not try to fix/change any of the TRIM logic.
I added an extra step after the last object is trimmed doing a full scan of the DB and only if no object was found it will return ENOENT.
This should make the new code no-worse than existing code which returns ENOENT after a full scan found no object.
It should not impact performance in real life snaps as it should only happen once per-snap.

added snap-mapper tests to rados-test-suite
disabled osd_debug_trim_objects when running (SnapMapperTest, prefix_itr) to prevent asserts(as this code does illegal inserts into DELETED snaps)
Code beautifing

Signed-off-by: Gabriel BenHanokh <gbenhano@redhat.com>
2023-08-23 13:47:45 +00:00
..
cephadm_cases qa/cephadm: Added workunit test for orch cli mon 2022-05-31 11:22:47 +00:00
cephfs Merge PR #52547 into main 2023-08-14 17:52:47 +05:30
mgr Merge pull request #51227 from jsoref/spelling-dashboard 2023-08-17 10:48:30 +05:30
tests
util qa/tasks: add chacra util 2022-09-13 12:17:20 -04:00
__init__.py
admin_socket.py
autotest.py
aver.py
backfill_toofull.py
barbican.py qa: change admin_host to admin_url in barbican.py 2023-08-04 12:51:48 -04:00
blktrace.py
boto.cfg.template
cbt_performance.py tasks: Adding cbt performance collect 2023-07-09 08:30:08 +00:00
cbt.py qa/tasks/cbt.py: Fix perf package naming 2023-07-24 09:02:43 +00:00
ceph_client.py
ceph_deploy.py qa: time log compression 2023-03-27 14:55:16 -04:00
ceph_fuse.py qa: add new mntargs option for fuse 2022-09-26 22:19:29 -04:00
ceph_iscsi_client.py
ceph_manager.py qa: stop overriding ceph_w prefix in vstart_runner 2023-08-01 11:16:28 -04:00
ceph_objectstore_tool.py
ceph_test_case.py qa: support checking for a log message that should not exist 2023-05-01 11:21:26 -04:00
ceph.conf.template osd/SnapMapper: 2023-08-23 13:47:45 +00:00
ceph.py Merge pull request #50616 from batrick/i59120 2023-05-20 10:04:13 -04:00
cephadm.conf qa/tasks: Change default mClock profile to high_recovery_ops 2023-05-18 09:32:20 +05:30
cephadm.py qa/cephadm: add ca signed key to cephadm task 2023-08-15 15:34:26 -04:00
cephfs_mirror_thrash.py
cephfs_mirror.py
cephfs_test_runner.py
cephfs_upgrade_snap.py
check_counter.py qa: Add test for per-module finisher thread 2023-03-29 11:34:07 +05:30
cifs_mount.py
cram.py
create_verify_lfn_objects.py
d4ntests.py QA: Add D4N teuthology suite 2023-06-06 14:04:47 -04:00
daemonwatchdog.py
deduplication.py qa: remove unused values in deduplication.py 2022-09-19 13:21:07 +09:00
devstack.py
die_on_err.py
divergent_priors2.py
divergent_priors.py
dnsmasq.py
dump_stuck.py
ec_inconsistent_hinfo.py
ec_lost_unfound.py
exec_on_cleanup.py
fs.py qa/tasks/fs: add cases in post_upgrade_checks() for fail_fs 2022-08-26 20:48:11 +05:30
fwd_scrub.py qa: raise error if fwd_scrub discovers damage 2022-09-26 22:19:43 -04:00
immutable_object_cache_thrash.py
immutable_object_cache.py
kafka.py
kclient.py
keycloak.py
keystone.py qa: update rgw openstack versions 2023-06-22 11:59:53 -04:00
kubeadm.py qa/tasks/kubeadm: set up tigera resources via kubectl create 2022-08-29 10:03:01 -04:00
locktest.py
logrotate.conf
lost_unfound.py
manypools.py
mds_creation_failure.py
mds_pre_upgrade.py
mds_thrash.py
metadata.yaml
mon_clock_skew_check.py
mon_recovery.py
mon_thrash.py test: monitor thrasher wait until quorum 2023-05-22 13:54:14 +00:00
multibench.py
netem.py
netsplit.py
notification_tests.py rgw/kafka/tests: add SASL mechanism tests 2023-03-01 16:15:14 +00:00
nvme_loop.py tasks/nvme_loop: Skip on containerized testnodes 2022-09-22 17:49:31 -06:00
object_source_down.py
omapbench.py
openssl_keys.py qa/openssl_keys: 'rm' ignores file not found 2023-01-19 15:51:18 -05:00
osd_backfill.py
osd_failsafe_enospc.py
osd_max_pg_per_osd.py
osd_recovery.py
peer.py
peering_speed_test.py
populate_rbd_pool.py
pykmip.py
python.py
qemu.py rbd: fix spelling errors 2023-04-26 09:30:53 -04:00
rabbitmq.py
rados.py
radosbench.py
radosbenchsweep.py
radosgw_admin_rest.py
radosgw_admin.py
ragweed.py qa/ragweed: clone into separate directory for each client 2023-03-03 11:46:32 -05:00
rbd_fio.py rbd: fix spelling errors 2023-04-26 09:30:53 -04:00
rbd_fsx.py
rbd_mirror_thrash.py
rbd_mirror.py
rbd_pwl_cache_recovery.py qa/tasks: rename persistent write log cache trash task 2022-07-16 09:46:58 +02:00
rbd.py qa/tasks/qemu: use formatted clones on encrypted disks 2022-08-25 18:41:48 +03:00
rebuild_mondb.py qa: remove leveldb support from qa 2023-05-04 10:43:08 +08:00
reg11184.py
rep_lost_unfound_delete.py
repair_test.py
resolve_stuck_peering.py
rgw_cloudtier.py rgw/qa: Run tests on multiple cloudtier config 2022-05-19 13:57:46 +05:30
rgw_logsocket.py
rgw_module.py qa: Adding rgw multisite support 2023-02-23 17:16:39 +01:00
rgw_multi
rgw_multisite_tests.py rgw: adding a test to check if role metadata syncs fine. 2022-06-08 10:31:15 +05:30
rgw_multisite.py tests: remove pubsub tests from multisite 2022-09-12 18:54:46 +03:00
rgw.py qa/rgw: specify cluster name in 'radosgw-admin gc process' 2023-07-24 12:14:02 -04:00
rook-ceph.conf
rook.py qa: time log compression 2023-03-27 14:55:16 -04:00
s3a_hadoop.py
s3tests_java.py
s3tests.py qa/s3tests: filter on 'sts_tests' and 'webidentity_tests' 2023-06-27 17:05:24 -04:00
samba.py
scrub_test.py
scrub.py
systemd.py
tempest.py qa: update rgw openstack versions 2023-06-22 11:59:53 -04:00
teuthology_integration.py
tgt.py
thrash_pool_snaps.py
thrasher.py
thrashosds-health.yaml osd/scrub: modifying some tests to ignore late replicas 2022-12-11 17:27:42 +02:00
thrashosds.py
tox.py
userdata_setup.yaml
userdata_teardown.yaml
vault.py
vip.py
vstart_runner.py qa/tasks/vstart_runner: stop overriding _run_python 2023-08-01 11:16:28 -04:00
watch_notify_same_primary.py
watch_notify_stress.py
workunit.py