"We took existing system we helped to implement at Meta and changed it a bit" doesn't sound as cool as "Redesigning source control at Anthropic", but seems to be closer to truth?
129 karma · joined October 5, 2018
"We took existing system we helped to implement at Meta and changed it a bit" doesn't sound as cool as "Redesigning source control at Anthropic", but seems to be closer to truth?
Solo dev projects are usually reasonably sized (< million LOC), style is more uniform, there's fewer silos etc. etc.
Good studies look at a broader picture.
Most of the backend logic is not related to serving data for the browsers, it's doing actual backend stuff - communicating to databases, APIs, etc.
Is Google search backend a web app? I think it's really stretching the term.
Rare (I presume) cases of overlapping updates from different threads (considering updates themselves are also infrequent) don't seem like a big deal compared to lock elimination. Would be interesting to see benchmark numbers for those optimizations separately.
Performance monitoring is pretty much absent, all you have is pg_stat_statements and friends. So for any serious scale you need 3d party solution (or you're writing your own) straight away.
HA is complicated. Patroni is the best option now, but it's quite far from experience SQL Server or Oracle provide.
Optimizer is still quite a bit simpler than in SQL server/Oracle. One big thing that is missing for me is "adaptive" query processing (there's AQP extension, but it's not a part of distribution). Even basic adaptive features help a lot when optimizer is doing stupid things (I'm not gonna bring up query hints here :))
Disabling JIT is the way to go for OLTP workloads.
I'm not sure Postgres has infrastructure to do that, though, because it doesn't have shared plan cache, for example.