crush: add note about r in recursive choose
authorIlya Dryomov <ilya.dryomov@inktank.com>
Tue, 24 Dec 2013 19:19:25 +0000 (21:19 +0200)
committerIlya Dryomov <ilya.dryomov@inktank.com>
Tue, 31 Dec 2013 18:32:17 +0000 (20:32 +0200)
Reflects ceph.git commit 4551fee9ad89d0427ed865d766d0d44004d3e3e1.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
net/ceph/crush/mapper.c

index caeb1066bea392a47b2314db2d3a63d49cf681ed..77b7a73e65cfc9845bfb6a93507ed3ad55934333 100644 (file)
@@ -514,6 +514,14 @@ static void crush_choose_indep(const struct crush_map *map,
 
                        /* choose through intervening buckets */
                        for (;;) {
+                               /* note: we base the choice on the position
+                                * even in the nested call.  that means that
+                                * if the first layer chooses the same bucket
+                                * in a different position, we will tend to
+                                * choose a different item in that bucket.
+                                * this will involve more devices in data
+                                * movement and tend to distribute the load.
+                                */
                                r = rep;
 
                                /* be careful */