Live data from Hacker News

Scaling SQLite to 4M QPS on a Single Server (EC2 vs. Bare Metal)

blog.expensify.com

1–3 of 3 posts

Re: Scaling SQLite to 4M QPS on a Single Server (EC2 vs. Bare Metal)

#2
There's a few things that stood out to me that seem like "bad practices":

> we don’t use DNS internally — just configuration-managed /etc/hosts files

This seems very odd and redundant. Does someone manually edit all servers when a new server comes online?

> Make RANDOM() deterministic

Why would you use random if you want determinism? That sounds like the opposite of random to me.

> David Barrett, Founder of Expensify

Was this blog post really written by the founder!?!

The perftest[0] code is in a branch named "dbarrett_perftest" but that still surprises me.

[0]: https://github.com/Expensify/Bedrock/tree/dbarrett_perftest/...

Re: Scaling SQLite to 4M QPS on a Single Server (EC2 vs. Bare Metal)

#3
post #2

There's a few things that stood out to me that seem like "bad practices": > we don’t use DNS internally — just configuration-managed /etc/hosts files This seems very odd and redundant. Does someone manually edit all servers when a new server comes online? > Make RANDOM() deterministic Why would you use random if you want determinism? That sounds like the opposite of random to me. > David Barrett, Founder of Expensify…

> > we don’t use DNS internally — just configuration-managed /etc/hosts files

> This seems very odd and redundant. Does someone manually edit all servers when a new server comes online?

That's what configuration management does for you, edit the file in one place(preferable it's also in version control) and it will change it on every system for you. Some config mangement "tools" that do this for you: Ansible, Puppet, Chef, Saltstack, ...