Opened 6 months ago

Last modified 5 days ago

#28582 assigned task

Document the load-balancing goal for sbws

Reported by: teor Owned by: teor
Priority: Medium Milestone: Tor: 0.4.1.x-final
Component: Core Tor/Tor Version:
Severity: Normal Keywords: tor-spec, sbws-1.0-nice-moved-20181128, teor-unreached-2019-03-08, no-changes-version, docs, sbws-11x-final-removed-20190312, doc
Cc: juga, starlight@… Actual Points: 0.2
Parent ID: Points: 0.2
Reviewer: Sponsor:

Description

We should include a section early in the bandwidth spec that documents the load balancing goal for sbws.

Here's my initial draft:

Bandwidth scanners should have a well-defined network equilibrium goal.

For sbws and Torflow without PID control, the network equilibrium goals are:
  1. clients experience reasonably consistent performance
  2. clients experience performance that is as fast as possible, without compromising goal 1
These performance goals include both throughput and latency.

For Torflow with PID control, the goal was:
  1. Each relay has exactly the same spare capacity for an additional stream
This goal was unachievable because Tor did not provide enough feedback on circuit failure.

These non-goals are common suggestions:
  1. Bandwidth is allocated equally across relays
  2. All relay bandwidth is used
These goals are unachievable, because they conflict with the consistent client performance goal.

Based on mike's response from this thread:

I believe quite strongly that even if the Tor network gets faster on
average, if this comes at the cost of increased performance variance,
user experience and perceived speed of Tor will be much worse. There's
nothing more annoying than a system that is *usually* fast enough to do
what you need it to do, but fails to be fast enough for that activity at
unpredictable times.

https://lists.torproject.org/pipermail/tor-dev/2018-August/013419.html

Child Tickets

Change History (14)

comment:1 Changed 6 months ago by teor

Status: assignedneeds_revision

I will think about this part of the spec, and revise it

comment:2 Changed 6 months ago by teor

Keywords: sbws-1.0-nice-moved-20181128 added
Milestone: sbws 1.0 (MVP nice)sbws 1.0.4

Moving all sbws 1.0 nice tickets to 1.0.4

comment:3 Changed 6 months ago by teor

Milestone: sbws 1.0.4sbws 1.1

Milestone renamed

comment:4 Changed 6 months ago by teor

Milestone: sbws 1.1sbws: 1.1.x

Milestone renamed

comment:5 Changed 6 months ago by teor

Milestone: sbws: 1.1.xsbws: 1.1.x-final

Milestone renamed

comment:6 Changed 2 months ago by teor

Keywords: teor-unreached-2019-03-08 added
Owner: teor deleted
Status: needs_revisionassigned

comment:7 Changed 2 months ago by teor

Status: assignedneeds_revision

comment:8 Changed 2 months ago by juga

Keywords: no-changes-version added

Add keyword to help planify releases/milestones.
Tickets that doesn't imply a change of version are tickets which do not affect the code (docs, tests) and some time of refactors.

comment:9 Changed 2 months ago by juga

Keywords: docs added

Add keyword. docs are tickets that affect to documentation

comment:10 Changed 2 months ago by juga

Keywords: sbws-11x-final-removed-20190312 added
Milestone: sbws: 1.1.x-finalsbws: unspecified

Remove tickets from 11x-final that can be implemented next month

comment:11 Changed 7 weeks ago by juga

Parent ID: #27107

Un-parenting since this would be done after at least 3 dirauths are running sbws, which is not part anymore of the transition, but will be a new feature in sbws.

comment:12 Changed 7 weeks ago by starlight

Cc: starlight@… added

comment:13 Changed 7 weeks ago by teor

Actual Points: 0.2
Component: Core Tor/sbwsCore Tor/Tor
Milestone: sbws: unspecifiedTor: 0.4.1.x-final
Owner: set to teor
Points: 0.2
Status: needs_revisionassigned

I will create a pull request to torspec with the goal in the ticket description.

We probably also need to say something like:
"Scanners running on the same Tor network SHOULD have the same network equilibrium goal."

comment:14 Changed 5 days ago by nickm

Keywords: doc added

Mark a few documentation tickets as "doc"

Note: See TracTickets for help on using tickets.