lalb try left server nodes (#2428)

* lalb try left server nodes

* beautify

* add comment

* typo

---------

Co-authored-by: zhoushan <zhoushan@pinduoduo.com>
diff --git a/src/brpc/policy/locality_aware_load_balancer.cpp b/src/brpc/policy/locality_aware_load_balancer.cpp
index 6f0c163..68d85ad 100644
--- a/src/brpc/policy/locality_aware_load_balancer.cpp
+++ b/src/brpc/policy/locality_aware_load_balancer.cpp
@@ -334,9 +334,13 @@
             if (dice >= left + self + diff) {
                 dice -= left + self + diff;
                 index = index * 2 + 2;
-                if (index < n) {
-                    continue;
-                }
+            } else {
+		// left child may contain available nodes
+		dice = butil::fast_rand_less_than(left);
+		index = index * 2 + 1;
+	    }
+	    if (index < n) {
+		continue;
             }
             if (++ntry >= n) {
                 break;