<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Latency on Brave New Geek</title><link>https://bravenewgeek.com/tag/latency/</link><description>Recent content in Latency on Brave New Geek</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 11 Oct 2019 11:58:18 -0600</lastBuildDate><atom:link href="https://bravenewgeek.com/tag/latency/index.xml" rel="self" type="application/rss+xml"/><item><title>Benchmarking Message Queue Latency</title><link>https://bravenewgeek.com/benchmarking-message-queue-latency/</link><pubDate>Sat, 13 Feb 2016 16:23:39 -0600</pubDate><guid>https://bravenewgeek.com/benchmarking-message-queue-latency/</guid><description>&lt;p&gt;About a year and a half ago, I published &lt;a href="https://bravenewgeek.com/dissecting-message-queues/"&gt;Dissecting Message Queues&lt;/a&gt;, which broke down a few different messaging systems and did some performance benchmarking. It was a naive attempt and had &lt;a href="https://bravenewgeek.com/benchmark-responsibly/"&gt;a lot of problems&lt;/a&gt;, but it was also my first time doing any kind of system benchmarking. It turns out benchmarking systems correctly is actually pretty difficult and many folks get it wrong. I don’t claim to have gotten it right, but over the past year and a half I’ve learned a lot, tried to build some better tools, and improve my methodology.&lt;/p&gt;</description></item><item><title>Everything You Know About Latency Is Wrong</title><link>https://bravenewgeek.com/everything-you-know-about-latency-is-wrong/</link><pubDate>Sat, 12 Dec 2015 15:12:12 -0600</pubDate><guid>https://bravenewgeek.com/everything-you-know-about-latency-is-wrong/</guid><description>&lt;p&gt;Okay, maybe not &lt;em&gt;everything&lt;/em&gt; you know about latency is wrong. But now that I have your attention, we can talk about why the tools and methodologies you use to measure and reason about latency are likely horribly flawed. In fact, they’re not just flawed, they’re probably &lt;em&gt;lying to your face.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;When I went to &lt;a href="http://www.thestrangeloop.com/"&gt;Strange Loop&lt;/a&gt; in September, I attended a workshop called “Understanding Latency and Application Responsiveness” by Gil Tene. Gil is the CTO of Azul Systems, which is most renowned for its C4 pauseless garbage collector and associated Zing Java runtime. While the workshop was four and a half hours long, Gil also gave a 40-minute talk called &lt;a href="https://youtu.be/lJ8ydIuPFeU"&gt;“How NOT to Measure Latency”&lt;/a&gt; which was basically an abbreviated, less interactive version of the workshop. If you ever get the opportunity to see Gil speak or attend his workshop, I recommend you do. At the very least, do yourself a favor and watch one of his recorded talks or find his slide decks online.&lt;/p&gt;</description></item><item><title>You Own Your Availability</title><link>https://bravenewgeek.com/you-own-your-availability/</link><pubDate>Tue, 22 Sep 2015 11:12:16 -0500</pubDate><guid>https://bravenewgeek.com/you-own-your-availability/</guid><description>&lt;p&gt;There’s been a lot of discussion around “availability” lately. It’s often trumpeted with phrases like “&lt;a href="http://www.whoownsmyavailability.com/"&gt;you own your availability&lt;/a&gt;,” meaning there is no buck-passing when it comes to service uptime. The &lt;a href="http://venturebeat.com/2015/09/20/amazons-aws-outage-takes-down-netflix-reddit-medium-and-more/"&gt;AWS outage&lt;/a&gt; earlier this week served as a stark reminder that, while owning your availability is a commendable ambition, for many it’s still largely owned by Amazon and the like.&lt;/p&gt;
&lt;p&gt;In order to “own” your availability, it’s important to first understand what “availability” really means. Within the context of distributed-systems theory, availability is usually discussed in relation to the &lt;a href="https://bravenewgeek.com/cap-and-the-illusion-of-choice/"&gt;CAP theorem&lt;/a&gt;. &lt;a href="https://www.comp.nus.edu.sg/~gilbert/pubs/BrewersConjecture-SigAct.pdf"&gt;Formally&lt;/a&gt;, CAP defines availability as a &lt;em&gt;liveness&lt;/em&gt; property: “every request received by a non-failing node in the system must result in a response.” This is a weak definition for two reasons. First, the proviso “every request received by a &lt;em&gt;non-failing&lt;/em&gt; node” means that a system in which &lt;em&gt;all&lt;/em&gt; nodes have failed is trivially available.  Second, Gilbert and Lynch stipulate no upper bound on latency, only that operations &lt;em&gt;eventually&lt;/em&gt; return a response. This means an operation could take weeks to complete and availability would not be violated.&lt;/p&gt;</description></item><item><title>Benchmark Responsibly</title><link>https://bravenewgeek.com/benchmark-responsibly/</link><pubDate>Fri, 02 Jan 2015 14:53:22 -0600</pubDate><guid>https://bravenewgeek.com/benchmark-responsibly/</guid><description>&lt;p&gt;When I posted my &lt;a href="http://www.bravenewgeek.com/dissecting-message-queues/"&gt;Dissecting Message Queues&lt;/a&gt; article last summer, it understandably caused some controversy.  I received both praise and scathing comments, emails asking why I didn’t benchmark X and pull requests to bump the numbers of Y. To be honest, that analysis was more of a brain dump from my own test driving of various message queues than any sort of authoritative or scientific study—it was &lt;em&gt;far&lt;/em&gt; from the latter, to say the least. The qualitative discussion was pretty innocuous, but the benchmarks and &lt;a href="https://github.com/tylertreat/mq-benchmarking"&gt;supporting code&lt;/a&gt; were the target of a lot of (valid) criticism. In retrospect, it was probably irresponsible to publish them, but I was young and naive back then; now I’m just mostly naive.&lt;/p&gt;</description></item></channel></rss>