Hacker News new | past | comments | ask | show | jobs | submit login

That was a fun read but I'm missing something here. I've never worked on large scale systems and I don't understand why they didn't choose My or Postgre SQL.

Some comments say that it's because they're complicated but what exactly is complicated about them?

Can someone with more experience explain to me what would have happened if, for example, they used PostgreSQL from the beginning?

P.S Apologies if this is a stupid question.

Edit: Looks like I hurt someone's feelings in this comment.




i don't think it's a stupid question and not sure why you getting downvoted. the earlier blog post from tailscale goes into more detail about how the system in question works: https://tailscale.com/blog/an-unlikely-database-migration/

> Tailscale’s coordination server, our “control plane”, has become known as CONTROL. It’s currently a single Go process on a single VM.

if they had used postgres/mysql or some other external RDBMS then that would have meant managing a whole other set of dependencies and doing at least an IPC/Pipe roundtrip for every single query instead of being able to use an embedded database like custom-built JSON db or SQLite which is only going to need in-process syscalls for reading/writing to disk/cache.

so, this allows them to scale their queries vertically orders of magnitude more than an external db (SQLite can do an insane amount of simple read queries per second) as well as making their whole dev/test/release cycle simpler and easier to manage.

that's my understanding anyway - hopefully it makes some sense.




Consider applying for YC's Summer 2025 batch! Applications are open till May 13

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: