]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
doc: updates on Backfill Reservation 2736/head
authorLoic Dachary <loic-201408@dachary.org>
Thu, 16 Oct 2014 23:23:17 +0000 (16:23 -0700)
committerLoic Dachary <loic-201408@dachary.org>
Fri, 17 Oct 2014 01:36:11 +0000 (18:36 -0700)
The logic was changed by:

0985ae71bce32c4d9e0e9e9f68bed38eb3c26897
osd: prioritize backfill based on *how* degraded

Signed-off-by: Loic Dachary <loic-201408@dachary.org>
doc/dev/osd_internals/backfill_reservation.rst

index 1fa2d074147210f6f8a72c6394ffa3d5df0692aa..cf9dab4d4a0b8c0d48ff1212ce4816e3d3ba298b 100644 (file)
@@ -4,8 +4,11 @@ Backfill Reservation
 
 When a new osd joins a cluster, all pgs containing it must eventually backfill
 to it.  If all of these backfills happen simultaneously, it would put excessive
-load on the osd.  osd_num_concurrent_backfills limits the number of outgoing or
-incoming backfills on a single node.
+load on the osd. osd_max_backfills limits the number of outgoing or
+incoming backfills on a single node. The maximum number of outgoing backfills is
+osd_max_backfills. The maximum number of incoming backfills is
+osd_max_backfills. Therefore there can be a maximum of osd_max_backfills * 2
+simultaneous backfills on one osd.
 
 Each OSDService now has two AsyncReserver instances: one for backfills going
 from the osd (local_reserver) and one for backfills going to the osd
@@ -26,9 +29,10 @@ ReplicaActive.
 It's important that we always grab the local reservation before the remote
 reservation in order to prevent a circular dependency.
 
-We want to minimize the risk of data loss by prioritizing the order in which
-PGs are recovered.  We use 3 AsyncReserver priorities to hand out reservations.
-The highest priority is log based recovery (RECOVERY) since this must always
-complete before backfill can start.  The next priority is backfill of degraded
-PGs (BACKFILL_HIGH).  The lowest priority is backfill of non-degraded PGs
-(BACKFILL_LOW).
+We want to minimize the risk of data loss by prioritizing the order in
+which PGs are recovered. The highest priority is log based recovery
+(OSD_RECOVERY_PRIORITY_MAX) since this must always complete before
+backfill can start.  The next priority is backfill of degraded PGs and
+is a function of the degradation. A backfill for a PG missing two
+replicas will have a priority higher than a backfill for a PG missing
+one replica.  The lowest priority is backfill of non-degraded PGs.