In sidemount diving, each diver carries two completely independent tanks & regulators, one on each side of their body.
While it is used primarily in cave diving because it is more streamlined and less likely to collide with cave ceilings and features, I find it also quite comfortable for recreational dives with a pair of AL40s.
It’s also a fun conversation starter with other divers who are curious about my gear!
If you’re only getting 500qps out of Netty something is deeply wrong with your set up. I’ve written multiple HTTP & socket servers based on Netty (albeit 6+ years ago) and they all could handle 20kqps+.
Probably a combination of Netty having a small default thread pool size (2*cores) and the benchmark doing something blocking or compute intensive. Tomcat defaults to 200 threads, which would explain the difference.
Edit: Though the page says "The controller does nothing except return a simple 200".
I ran the load tests and couldn't explain it either. I adjusted the thread pools, buffer sizes and a bunch of other parameters and couldn't get Netty to scale.
I think Netty tries too hard to be everything to everyone. This makes it really hard to determine how to configure it properly across a bunch of different versions with lots of incompatibilities.
I wrote java-http with the concept of not doing that. It's purpose built for HTTP and high performance.
Once I have some time, I'll publish my Netty setup and let the community bang on it and see if they can beat my RPS. At 65k, it might be hard though. :)
What's the hardware being used for your test? I get 55k RPS with a basic 200 responder with zio-http[0] (which uses Netty) on my i5-6600K, and over 20k RPS for an e2e POST endpoint that does write batching to postgres (committing the insert before responding to all of the clients in the batch with with their individual db generated ids). Postgres, client (vegeta[1]), and the app all on the same machine. I think that was with keep-alive, I think like 256 clients for the basic responder and 1024 for the one that writes to the db. There's a recently merged PR for zio-http that does 1M RPS on whatever machine they test on[2] so Netty can absolutely scale to high RPS.
Sounds good. Once I get the project published, it will include all of the load tests for each server as well as the setup and code for it all. Might be a couple of weeks or so, but it will be a separate GH project. Something like java-http-performance.
I tried to file a report with video evidence from the car 2 years ago. I was never able to get through to anyone at the police who would take the report, just passed to a voicemail and no one ever called back or acknowledged the report.
And also built to allow rapid evacuation of large cities in case of nuclear attack. I think it's lost on a lot of people today just how many things we did in the 50s, 60s, and 70s because we were scared of being bombed.
Probably because Youtube was using MySQL before being acquired and switched to a better, probably fully managed DB that was much easier (free?) to maintain and scale.
This is one of those scenarios where the answer is likely to be “both”, but I doubt you’ll get anyone discussing YouTube internal architecture in enough detail to be satisfying. Just look up what Vitesse is and compare what that implies in terms of operational complexity to using something like spanner if you want a straw man technical rationale.
While it is used primarily in cave diving because it is more streamlined and less likely to collide with cave ceilings and features, I find it also quite comfortable for recreational dives with a pair of AL40s.
It’s also a fun conversation starter with other divers who are curious about my gear!