Shopify / Shopify/toxiproxy

Documentation for distribution of latency with different jitter values

Open
#556 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
12.4k
Forks
510
PR merge metrics
No merged PRs in 30d

Description

latency +/- jitter seems to imply you flip a coin and choose latency + jitter if heads or latency - jitter if tails, but I'm guessing it's actually a uniform distribution between latency - jitter and latency + jitter? (Or is it a Gaussian or Laplace distribution? I think Laplace is more typical for modeling this kind of noise)

Also what happens if jitter > latency? Is it uniform in the range (0, latency+jitter)? Or is it uniform in the range (latency-jitter, latency+jitter) but with negative values getting clamped to 0? (In the latter case, the probability of having no latency at all is non-negligible)

A realistic network will have some packet loss which means every once in a while messages are much slower (2x-3x) than in the common case, but that doesn't really seem to be captured by the latency +/- jitter model (since the distribution is tightly bounded to a range about a single value). In order to better simulate this, can I add multiple latency toxics to the same proxy each with different toxicity levels and will they be independently sampled and have their latencies added together?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No file or test is named. Start by locating the latency toxic documentation and implementation, then verify the jitter distribution, behavior when jitter exceeds latency, and whether multiple latency toxics are independently sampled and combined. Done means the documented answers are precise and backed by tests or observed behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
networking
Issue type
Documentation
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.