416 karma · joined February 22, 2013
[ my public key: https://keybase.io/savetherbtz; my proof: https://keybase.io/savetherbtz/sigs/8WDD8RsagDUF9UtTLtj-f8QI6fvCR6Y1lPYe0Ssx3ak ]
Compared to NGINX though, it was relatively easy to push these fixes upstream. Community is very welcoming to outside contributions.
[1] https://dropbox.tech/infrastructure/how-we-migrated-dropbox-...
* Lyft (of course)
* Spotify
* Stripe
* Square
* eBay
* Yelp
Plus the support from major cloud providers: Google, Microsoft, and Amazon.
[1] https://envoyconna18.sched.com/ [2] https://envoycon2019.sched.com/
[1] https://www.reddit.com/r/programming/comments/adwhk3/courier...
* in non overloaded case LIFO/FIFO make no difference[1].
* in an overloaded case LIFO has better reliability properties, e.g. no standing queue and therefore faster recovery times.
There are alternative approaches there to the problem: Facebook queues switch from FIFO to LIFO when overload is detected[2]. Airbnb uses the same approach[3]. We tend to stick with a simpler way of using LIFO by default.
[1] Given that one does not care about message ordering. If order matters, as mentioned in the post, one can use CoDel or use LIFO only between different connections, maintaining FIFO within each connection.
[2] https://queue.acm.org/detail.cfm?id=2839461
[3] https://medium.com/airbnb-engineering/building-services-at-a...
> Here we also need to mention the myriad embedded devices using Dropbox API that range from video cameras to smart fridges which have a tendency of resolving DNS addresses only during power-on.
Once we've got all data from that experiment: performance, cost, and flexibility included, we've decided to start building our own PoPs.
Same goes for kernel, libc, all other libraries, and pretty much anything else. This is not an argument for not upgrading them though.
Also, sadly, almost all firmware updates fix a "problem [that] points to a specific piece of hardware" that you use.
> and I’m not even talking about IW10 (which is so 2010)[1]
[1] https://developers.google.com/speed/protocols/Increasing_TCP...
For downloads high RTT can be mitigated by a congestion control that ignores constant packet-loss rates (which are common for high-rtt paths). Other tricks that you can try: fq+pacing and newer kernels with more sophisticated recovery heuristics.
1) give an bcc/perf example to check the need for tuning and verify its effect.
2) give code/docs/paper reference as an embedded link.
3) give a generic monitoring guideline at the start of a "chapter".
Seems like I've (at least partially) failed. I'll do better next time.
[0] https://wiki.freebsd.org/201305DevSummit/NetworkReceivePerfo...
What was saying is that there is a strong correlation between size of the data I was compressing and compression ratio improvements over gzip.
PS. "The ability to master complexity is not the same as the ability to extract simplicity" is a good takeaway. PPS. This is a part of EE 122: https://inst.eecs.berkeley.edu/~ee122/fa12/class.html PPPS. PDF for SDN lecture: https://inst.eecs.berkeley.edu/~ee122/fa12/notes/25-SDN.pdf
Though for languages like Korean and Chinese (whose size is more inline with latin languages) we see 27.5% improvement, which is most likely due to context modeling.
Therefore I assume ratio improvement is split ~50/50 between these two. It was easy to verify that by compressing data with `brotli --window 15` and comparing ratios there, but I was lazy there. I'm sorry.
PS. I've also skipped NFC/NFD part of the post which is very interesting for Korean, where NFC normalized text occupies 30% less space. It also gives additional ratio 5% for brotli and 15% for gzip.
1. What flavours of PGO optimizations were applied? What was the isolated impact of each one of them on both speed and size of the code?
2. What tests did they use to "guide" PGO?
3. How did they analyze PGO results(except for these three tests that were provided)? I assume they did not blindly trust it, therefore there should be a way of visualizing differences between two binaries with millions of lines of code.
4. How did PGO affect crash statistics?
> Is ECDLP broken for non-prime fields?
No. However, the security story for non-prime fields
(e.g., binary extension fields) is more complicated and
less stable than the security story for prime fields, as
illustrated by 1998 Frey, 2002 Gaudry–Hess–Smart, 2009
Gaudry, and 2012 Petit–Quisquater.
2006 Bernstein stated that prime fields "have the virtue
of minimizing the number of security concerns for
elliptic-curve cryptography". Similarly, the Brainpool
standard and NSA's Suite B standards require prime fields.
There is general agreement that prime fields are the safe,
conservative choice for ECC.
[1] http://safecurves.cr.yp.to/field.htmlSo the only hope is to wait for [Curve25519] to be widely supported?
PS. Bitcoin using secp256k1 which is Koblitz GFp curve.
[FIPS186-2] http://csrc.nist.gov/publications/fips/archive/fips186-2/fip...
[SEC-2v2] http://www.secg.org/download/aid-784/sec2-v2.pdf
[safecurves] http://safecurves.cr.yp.to/index.html
[Curve25519] http://cr.yp.to/ecdh.html