|
|
|
|
@ -116,7 +116,8 @@ static void probes_poll(struct stream_optimizer *o, struct STREAM_HANDLE *h, uin
|
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
s->offers[s->probe_sub].info = info; s->failures = 0; s->retry_ms = 0; |
|
|
|
|
DEBUG_DEBUG(DEBUG_CATEGORY_STREAM, "stream optimizer offer peer=%llx sub=%u range=%llu..%llu hops=%u rtt=%u/%d chain=%u/%d slots=%u accepting=%d lag=%llu stopped=%d age=%llu/%d queue=%llu", |
|
|
|
|
DEBUG_DEBUG(DEBUG_CATEGORY_STREAM, "stream optimizer offer peer=%llx sub=%u range=%llu..%llu hops=%u" |
|
|
|
|
" rtt=%u/%d chain=%u/%d slots=%u accepting=%d lag=%llu stopped=%d age=%llu/%d queue=%llu", |
|
|
|
|
(unsigned long long)s->node, s->probe_sub, (unsigned long long)info.first_available, |
|
|
|
|
(unsigned long long)info.last_available, info.path.count, info.rtt_ms, info.rtt_valid, |
|
|
|
|
info.path_rtt_ms, info.path_rtt_valid, info.free_slots, info.accepting, |
|
|
|
|
@ -367,7 +368,8 @@ void stream_optimizer_tick(struct stream_optimizer *o, struct STREAM_HANDLE *h,
|
|
|
|
|
} |
|
|
|
|
if (pick->better_node != s->node) { pick->better_node = s->node; pick->better_ms = now; } |
|
|
|
|
if (now - pick->better_ms < o->settings.migration_confirm_ms) continue; |
|
|
|
|
DEBUG_DEBUG(DEBUG_CATEGORY_STREAM, "stream optimizer improvement sub=%u old=%llx new=%llx old_problems=%.3f new_problems=%.3f old_rtt=%llu new_rtt=%llu old_usage=%u new_usage=%u confirmed_ms=%llu", |
|
|
|
|
DEBUG_DEBUG(DEBUG_CATEGORY_STREAM, "stream optimizer improvement sub=%u old=%llx new=%llx old_problems=%.3f new_problems=%.3f" |
|
|
|
|
" old_rtt=%llu new_rtt=%llu old_usage=%u new_usage=%u confirmed_ms=%llu", |
|
|
|
|
sub, (unsigned long long)info.peer, (unsigned long long)s->node, problems(&info.metrics, info.metrics_valid), |
|
|
|
|
problems(&s->offers[sub].info.supplier_metrics, s->offers[sub].info.supplier_metrics_valid), |
|
|
|
|
(unsigned long long)total_rtt(&info), (unsigned long long)total_rtt(&s->offers[sub].info), |
|
|
|
|
|