Scalability and Perf Board issueshttps://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues2020-02-07T18:07:03Zhttps://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/5QoS and user/circuit throttling2020-02-07T18:07:03ZMike PerryQoS and user/circuit throttlinghttps://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/8Peerflow/flashflow load balancing or measurement2020-02-07T18:10:42ZMike PerryPeerflow/flashflow load balancing or measurementhttps://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/2Circuit migration (confux + reliability)2020-02-07T18:07:31ZMike PerryCircuit migration (confux + reliability)https://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/1Congestion Control2020-07-09T20:14:22ZMike PerryCongestion Controlhttps://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/41Conflux (unreliable version)2022-01-24T16:51:22ZMike PerryConflux (unreliable version)Conflux without a reconnection window will reduce network reliability, but improve throughput.
It may increase latency due to circuit setup, if circuits can't be pre-built.
It may also provide traffic analysis resistance benefits.Conflux without a reconnection window will reduce network reliability, but improve throughput.
It may increase latency due to circuit setup, if circuits can't be pre-built.
It may also provide traffic analysis resistance benefits.https://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/17Consensus param for Fast cutoff2020-07-09T20:14:26ZMike PerryConsensus param for Fast cutoffThe Fast cutoff is currently hard-coded. If we made a consensus param for this value, we could reduce consensus size and also improve long-tail performance by eliminating slow relays.The Fast cutoff is currently hard-coded. If we made a consensus param for this value, we could reduce consensus size and also improve long-tail performance by eliminating slow relays.https://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/42FlashFlow2020-05-20T05:50:14ZMike PerryFlashFlowhttps://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/12PID feedback for bw auths2020-02-07T18:17:32ZMike PerryPID feedback for bw authsThe Torflow PID feedback system will result in a provably optimimum load balancing equilibrium for uniform average stream capacity across the network.
The problem is if we only use bandwidth for this feedback, relays get overloaded in o...The Torflow PID feedback system will result in a provably optimimum load balancing equilibrium for uniform average stream capacity across the network.
The problem is if we only use bandwidth for this feedback, relays get overloaded in other ways. So we need to stop feedback if nodes announce that they are overloaded via memory, sockets, or CPU (which is another ticket).https://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/15Improve relay bandwidth testing/self-reporting2020-02-07T18:18:38ZMike PerryImprove relay bandwidth testing/self-reportingWe could improve relay onboarding with a faster/more accurate/more trusted measurement step.We could improve relay onboarding with a faster/more accurate/more trusted measurement step.https://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/14Tweak sbws scaling curves2020-02-07T18:18:10ZMike PerryTweak sbws scaling curvesAs an alternative, or perhaps in addition to, PID feedback, we could tweak the weights that sbws applies by imposing an additional curve on top of the results.
I am not a huge fan of this approach, but I am adding it for completeness.As an alternative, or perhaps in addition to, PID feedback, we could tweak the weights that sbws applies by imposing an additional curve on top of the results.
I am not a huge fan of this approach, but I am adding it for completeness.https://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/16Consensus param for Guard cutoff2020-02-07T18:20:53ZMike PerryConsensus param for Guard cutoffIf we made the Guard cutoff into a consensus parameter, we could tune the number of guards to better load balance the network and eliminate bottleneck guards.If we made the Guard cutoff into a consensus parameter, we could tune the number of guards to better load balance the network and eliminate bottleneck guards.https://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/20Deploy GuardFraction Balancing2020-02-07T18:30:17ZMike PerryDeploy GuardFraction BalancingGuardfraction compensates for our guard rotation period by adjusting load balancing weights based on how long a relay has been a guard.
However, the statekeeping required for this is done in external scripts that are hard to use/deploy/...Guardfraction compensates for our guard rotation period by adjusting load balancing weights based on how long a relay has been a guard.
However, the statekeeping required for this is done in external scripts that are hard to use/deploy/maintain.https://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/23Multithreaded crypto/networking2020-02-07T18:34:02ZMike PerryMultithreaded crypto/networkingIf we supported either multithreaded crypto or networking, we could reduce the number of relay descriptors in the network by eliminating the need to run multiple tor instances per core on fast links.
This would also eliminate some side ...If we supported either multithreaded crypto or networking, we could reduce the number of relay descriptors in the network by eliminating the need to run multiple tor instances per core on fast links.
This would also eliminate some side channels due to single-threaded ops blocking networking activity.https://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/18Consensus params for flow control window2020-02-07T18:21:31ZMike PerryConsensus params for flow control windowIf we made consensus params for our SENDME refill amount and initial window sizes, we could see if various defaults have better latency and throughput characteristics.If we made consensus params for our SENDME refill amount and initial window sizes, we could see if various defaults have better latency and throughput characteristics.https://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/26Relay usability2020-02-07T17:35:34ZMike PerryRelay usabilityIf we improved relay usability, maybe more people would run relays?
Maybe not, though.If we improved relay usability, maybe more people would run relays?
Maybe not, though.https://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/24Relay-specific KIST intervals2020-02-07T17:32:06ZMike PerryRelay-specific KIST intervalsOur KIST intervals need to be different depending on relay throughput.
We could either do this via kernel patches (long, expensive, slow rollout), or simply by setting different cutoffs for these values in the consensus based on relay t...Our KIST intervals need to be different depending on relay throughput.
We could either do this via kernel patches (long, expensive, slow rollout), or simply by setting different cutoffs for these values in the consensus based on relay traffic volume.https://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/19Load Balancing for Padding (Prop #265)2020-02-07T18:34:48ZMike PerryLoad Balancing for Padding (Prop #265)We have a proposal to support larger amounts of padding via load balancing equation changes.
Padding may still need congestion/flow control though...We have a proposal to support larger amounts of padding via load balancing equation changes.
Padding may still need congestion/flow control though...https://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/32Circuit Build Timeout tuning2020-02-07T17:49:11ZMike PerryCircuit Build Timeout tuningIf we have onionperf instances that support guards, we can experiment with different CBT cutoffs.If we have onionperf instances that support guards, we can experiment with different CBT cutoffs.https://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/31Increase number of guards2020-02-07T17:47:14ZMike PerryIncrease number of guardsWith more guards, CBT can choose better fast paths to avoid overloaded guards.With more guards, CBT can choose better fast paths to avoid overloaded guards.https://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/30Filter out various relays from onionperf results2020-02-07T18:37:32ZMike PerryFilter out various relays from onionperf resultsIf we filter out all onionperf paths that contain 0.2.9 relays (pre-KIST), or change the Fast cutoff, or change the Guard cutoff by filtering paths, what happens to the results?
In this way we can evaluate the impact of these changes on...If we filter out all onionperf paths that contain 0.2.9 relays (pre-KIST), or change the Fast cutoff, or change the Guard cutoff by filtering paths, what happens to the results?
In this way we can evaluate the impact of these changes on the network perf before rolling out any actual changes.https://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/33Evaluate shadow models2020-02-07T18:36:07ZMike PerryEvaluate shadow modelsWhat is the smallest, lowest-resource shadow model that can reproduce various experimental results from the literature and the live network?What is the smallest, lowest-resource shadow model that can reproduce various experimental results from the literature and the live network?https://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/39EWMA Tuning2020-02-10T22:06:26ZMike PerryEWMA Tuninghttps://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/38Kist Interval Tuning2020-02-10T22:08:39ZMike PerryKist Interval TuningChanging the global kist interval may improve throughput, at the expense of latency.Changing the global kist interval may improve throughput, at the expense of latency.https://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/37Torflow -> sbws2020-02-07T17:57:22ZMike PerryTorflow -> sbwshttps://gitlab.torproject.org/mikeperry/scalability-and-perf-board/-/issues/36Flashflow 20 second flood test2020-02-07T18:38:47ZMike PerryFlashflow 20 second flood test