Ben Naecker
Appearances
Oxide and Friends
Querying Metrics with OxQL
It's worth mentioning that we do have these grand ambitions, I think, Brian, that you alluded to about what is possible. And we've already mentioned this earlier, but we don't want to be constrained by the lowest common denominator. We didn't want the query language that customers would use to explore the data to inform the kind of data we bothered to collect.
Oxide and Friends
Querying Metrics with OxQL
And then histograms, Ben, as you were saying, I feel like it's an area where we are total zealots. Maybe everyone's a total zealot. I just don't know it. But we feel like real zealots in that regard. Is everyone a zealot?
Oxide and Friends
Querying Metrics with OxQL
I'm reminded a little bit about how Cliff accuses us of being really into postmortem debugging. I feel like we are similarly really into histograms, I think just because we've seen their utility in so many domains.
Oxide and Friends
Querying Metrics with OxQL
I mean, I feel like both of them, everyone should feel this way, and maybe people already do on histograms, but I just feel like, I mean, as Ben's saying with these other query systems, they're not necessarily embracing them as first-class primitive, whereas it was very, I mean, I think, I don't know if this is fair to say, but Brian, a bunch of my thinking on this was informed by the Fishworks system, the ZFS storage appliance and the analytic system that you built there.
Oxide and Friends
Querying Metrics with OxQL
Yeah, for sure. Most of it, much of it grounded on histograms, on these distributions to visualize what's going on in the system. I mean, that really strongly informed it here. And we knew we wanted to build a system where that was front and center.
Oxide and Friends
Querying Metrics with OxQL
I mean, I feel like it's only been 10, 15 years since people all recognized that the average was not a number you really wanted to talk about in polite company. But that's fairly recent.
Oxide and Friends
Querying Metrics with OxQL
I didn't realize that. Do they give you bounds on their hand-waving?
Oxide and Friends
Querying Metrics with OxQL
I just had the most embarrassing realization. I'm like, I don't know why you'd need that. You probably only need it for things like analytics from the web, like clicks. Oh God, I'm horrible.
Oxide and Friends
Querying Metrics with OxQL
Thank you for asking. 18 query languages ago. 18 query languages.
Oxide and Friends
Querying Metrics with OxQL
Those graphs are really fun. What is the package you're using to draw that stuff?
Oxide and Friends
Querying Metrics with OxQL
It sounds like that's right. Yeah. I need to, uh, hang out with a bunch of germy kids again to, to get it back.
Oxide and Friends
Querying Metrics with OxQL
That's a great point, Ben. That's a great point because keep in mind the context here, which is customers bought this thing to host their data, like their virtual disks, their virtual instances. So we're like, actually, we thought maybe some of ours would.
Oxide and Friends
Querying Metrics with OxQL
I don't know, we'd let users get half of what they paid for. I don't know, something like that seems fair. And then we'd take the rest.
Oxide and Friends
Querying Metrics with OxQL
There was another sick burn, Brian. I just want to make sure you didn't miss this one, which was on Hacker News a week ago, talking about the Oxide query language.
Oxide and Friends
Querying Metrics with OxQL
It says, when a small hardware company is not only making its own full hardware and software stack, but brings that all the way down to telemetry query language, I get a lot of NIH vibes and question if any of these elements will get the attention they deserve.
Oxide and Friends
Querying Metrics with OxQL
Yeah. Andy, have you, have you like, we have our own embedded operating system. You know this, like we're.
Oxide and Friends
Querying Metrics with OxQL
Our own VMM user land. Like, do you want us to, I mean, it's going to be a long tweet if we get into all of these. It is.
Oxide and Friends
Querying Metrics with OxQL
Well, that may also be reflective of a little confusion. ClickHouse is not hosted in Crucible. So we're doing replication through ClickHouse's own mechanisms, whereas Crucible is what we use to store the data associated with instance data, like the customer's virtual volumes. That's what Crucible is for.
Oxide and Friends
Querying Metrics with OxQL
And so we're using those same U.2 devices, both for Crucible volumes and for ClickHouse, but they're pretty much separate concerns.
Oxide and Friends
Querying Metrics with OxQL
No, no. Can't imagine storing it. Can't imagine querying it. Just, they're wrong.
Oxide and Friends
Querying Metrics with OxQL
Antler lover when I was doing stuff in Java. That's been a minute, but thanks for exposing me. Thanks for outing me as a former Java expat or whatever. I knew you loved Antler more than Java. Oh, 100%. Yeah, no, I think Antler is terrific. Never loved Java, but did love Antler. But Ben, didn't we use PEG? Or maybe was it PEST in the USDT stuff?
Oxide and Friends
Querying Metrics with OxQL
So, Brian, I'm glad you brought up Antler because I feel like Antler was very domain-specific to Java. And to bring us back to the beginning, it seems like these other systems are much more native for Rust. I mean, for example, there is an Antler generation for Rust. And I haven't kept tabs on the state of it.
Oxide and Friends
Querying Metrics with OxQL
But it makes sense to have a domain-specific language for this kind of activity specific to the language that you want to use to augment that generation.
Oxide and Friends
Querying Metrics with OxQL
For like, you don't want to have the least common denominator. Turns out domain-specific languages can be valid. I'm sure there are lots of them that shouldn't have been written or whatever. But as long as you're looking at the available options and considering the aspects of the domain.
Oxide and Friends
Querying Metrics with OxQL
Because the bar is high enough where you're not just going to frivolously dive into it. I think that's fair.
Oxide and Friends
Querying Metrics with OxQL
Lots of soundbites. Real, like, paid promotion kind of vibes. Like, you know, one of those paid promotions where, like, clearly the folks have, like, spent, like, half an hour figuring out what it's about, but not, like, three hours figuring out what it's about.