X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/loba.git/blobdiff_plain/62556b444506565f9a55889f482d8758ca50c3a6..21819915856816637b4cb91ff4000d139a914b2e:/NOTES diff --git a/NOTES b/NOTES index da97c1b..71e2729 100644 --- a/NOTES +++ b/NOTES @@ -12,11 +12,11 @@ messages, and data for load transfers. Process model ============= -Each process is made of 3 threads: a receiver thread, a computing -thread, and a load-balancer thread. +Each process is made of 3 threads: a receiving thread, a computing +thread, and a load-balancing thread. -* Receiver thread - --------------- +* Receiving thread + ---------------- Loop | wait for a message to come, either on data channel, or on ctrl channel @@ -47,13 +47,31 @@ thread, and a load-balancer thread. --------------------- Loop + | receive ctrl messages | call load-balancing algorithm | send ctrl messages | sleep (min_lb_iter_duration) - | receive ctrl messages +- send CLOSE on ctrl for all neighbors wait for CLOSE on ctrl from all neighbors The loop terminates when process::still_running() returns false. (read the source for full details...) + +Some notes about *load attributes +================================= +process::real_load Current *real* load. + Used for the computations. + Displayed in log messages. + +process::expected_load Current load estimation. + Used for load-balancing estimation, and for + diffusing to neighbors. + * Without bookkeeping, it equals real_load + minus pending sends. + * With bookkeeping, it corresponds to the + "virtual load". + +process::received_load Real load received from neighbors. + Used when receiveing data messages, and then + added to real_load.