WEBVTT 99:59:59.999 --> 99:59:59.999 Hi everyone, I'm Gil Tene. 99:59:59.999 --> 99:59:59.999 I'm going to be talking about this subject that I call "How NOT to Measure Latency". 99:59:59.999 --> 99:59:59.999 It's a subject that I've been talking about for 3 years or so. 99:59:59.999 --> 99:59:59.999 I keep the title and change all the slides every time. 99:59:59.999 --> 99:59:59.999 A bunch of this stuff is new. 99:59:59.999 --> 99:59:59.999 So if you've seen any of my previous "How NOT to", you'll see only some things that are common. 99:59:59.999 --> 99:59:59.999 A nickname for the subject is this... 99:59:59.999 --> 99:59:59.999 Because I often will get that reaction from some people in the audience. 99:59:59.999 --> 99:59:59.999 Ever since I've told people that it's a nickname, 99:59:59.999 --> 99:59:59.999 They feel free to actually exclaim, "Oh S@%#!". 99:59:59.999 --> 99:59:59.999 And feel free to do that here in this talk. 99:59:59.999 --> 99:59:59.999 I'll prompt you in a couple of places where it is natural. 99:59:59.999 --> 99:59:59.999 But if just have the urge, go ahead. 99:59:59.999 --> 99:59:59.999 So just a tiny bit about me. 99:59:59.999 --> 99:59:59.999 I am the co-founder of Azul Systems. 99:59:59.999 --> 99:59:59.999 I play around with garbage collection a lot. 99:59:59.999 --> 99:59:59.999 Here is some evidence of me playing around with garbage collection in my kitchen. 99:59:59.999 --> 99:59:59.999 That's a trash compactor. 99:59:59.999 --> 99:59:59.999 The compaction function wasn't working right, so I had to fix it. 99:59:59.999 --> 99:59:59.999 I thought it'd be funny to take a picture with a book. 99:59:59.999 --> 99:59:59.999 I've also built a lot of things. 99:59:59.999 --> 99:59:59.999 I've been playing with computers since the early 80's. 99:59:59.999 --> 99:59:59.999 I've built hardware. 99:59:59.999 --> 99:59:59.999 I've helped design chips. 99:59:59.999 --> 99:59:59.999 I've built software at many different levels. 99:59:59.999 --> 99:59:59.999 Operating systems, drivers... JVM's obviously. 99:59:59.999 --> 99:59:59.999 And lots of big systems at the system level. 99:59:59.999 --> 99:59:59.999 Built our own app server in the late 90's because web logic wasn't around yet. 99:59:59.999 --> 99:59:59.999 So, I've made a lot of mistakes, and I've learned from a few of them. 99:59:59.999 --> 99:59:59.999 This is actually a combination of a bunch of those mistakes looking at latency. 99:59:59.999 --> 99:59:59.999 I do have this hobby of depressing people by pulling the wool up from over your eyes, 99:59:59.999 --> 99:59:59.999 and this is what this talk is about. 99:59:59.999 --> 99:59:59.999 So, I need to give you a choice right here. 99:59:59.999 --> 99:59:59.999 There's the door. 99:59:59.999 --> 99:59:59.999 You can take the blue pill, and you can leave. 99:59:59.999 --> 99:59:59.999 Tomorrow you can keep believing whatever it is you want to believe. 99:59:59.999 --> 99:59:59.999 But if you stay here and take the red pill, I will show you a glimpse of how 99:59:59.999 --> 99:59:59.999 far down the rabbit hole goes, and it will never be the same again. 99:59:59.999 --> 99:59:59.999 Let's talk about latency. 99:59:59.999 --> 99:59:59.999 And when I say latency, I'm talking about latency response time, any of those things 99:59:59.999 --> 99:59:59.999 where you measure time from 'here to here', and you're interested in how long it took. 99:59:59.999 --> 99:59:59.999 We do this all the time, but I see a lot of mish-mash in how people 99:59:59.999 --> 99:59:59.999 treat the data, or think about it. 99:59:59.999 --> 99:59:59.999 Latency is basically the time it took something to happen once. 99:59:59.999 --> 99:59:59.999 That one time, how long did it take. 99:59:59.999 --> 99:59:59.999 And when we measure stuff, like we did a million operations in the last hour, 99:59:59.999 --> 99:59:59.999 we have a million latencies. Not one, we have a million of them. 99:59:59.999 --> 99:59:59.999 Our actual goal is to figure out how to describe that million. 99:59:59.999 --> 99:59:59.999 How did that million behave? 99:59:59.999 --> 99:59:59.999 For example, they're all really good, and they're all exactly the same, will be a 99:59:59.999 --> 99:59:59.999 behavior that you will never see, but that would be a great behavior.