]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
PG: make scrub non-blocking
authorSamuel Just <samuel.just@dreamhost.com>
Thu, 10 Feb 2011 20:35:35 +0000 (12:35 -0800)
committerSamuel Just <samuel.just@dreamhost.com>
Mon, 28 Feb 2011 23:43:42 +0000 (15:43 -0800)
commit88ced09048cc6d1e0e372490bc6bde7f67b7a8eb
tree271d4fd00ce484cd90a001c1af558aeb45214450
parent2adb670c1a811cdd45d04c85efe5e00f896a2beb
PG: make scrub non-blocking

Previously, scrub would block using wait until
1. last_update_applied==last_update and
2. all replica scrub maps are up-to-date

1. is now handled by requeueing scrub once last_update_applied catches
up to last_update. (see op_applied and scrub)

2. is handled in scrub_finalize.  scrub_finalize will be scheduled using
the scrub_finalize_wq once scrub_waiting_on hits 0. (see scrub and
sub_op_scrub_map)

scrub_finalize also handles comparing the maps and reporting/repairing
errors.

Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
src/osd/OSD.h
src/osd/PG.cc
src/osd/PG.h
src/osd/ReplicatedPG.cc