There's been many examples of societies where killing or abusing people was legal etc. Law is not math, it can be (and often is) wrong; in many cases a law is just a way for ruling class to make money/keep power etc. It's completely OK to protest laws, and it may be completely reasonable to consider someone a criminal even if they haven't broken any laws.
almost all Spotify playlists/radio features are extremely stupid. Radios all repeat the same 2-3 songs per artist, doesn't matter where you start. Classical pieces in radios are always 1-2 minutes long etc etc. It was like before AI though.
CLUSTER command is not the same as index organized tables, it's a one-time "physical sort" operation. New data is not organized until you run CLUSTER again.
Index organized tables are maintained automatically by Oracle/SQL Server.
It's web in a (limited) sense that there's probably a web frontend somewhere, but this "somewhere" is usually pretty far away from where most of the code is developed.
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.
Looking at first optimization, I wonder if double-checking after acquiring exclusive lock brings any performance benefits. The whole premise is that cache access is read-heavy, so not acquiring exclusive locks for reads eliminates by far the biggest problem.
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.
Had similar situation a few years before - switched a (now) billion revenue product from Read Committed to Read Committed Snapshot with huge improvements in performance.
One thing to be aware when doing this - it will break all code that rely on blocking reads (e.g. select with exists). These need to be rewritten using explicit locks or some other methods.
Top 5% overall or top 5% of dev jobs? Former sure, latter might be not? I live in Prague, and there are definitely multiple companies that pay more than 90k to middle positions. especially if it's before taxes.
And also these old C hands don't seem to get paid (significantly) more than a regular web-dev who doesn't care about hardware, memory, performance etc. Go figure.
Thomas Neumann and Alfons Kemper papers can hardly be called "home-grown", their stuff has been implemented in multiple industrial systems.
Postgres optimizer, though, is very bad even with simple correlated subqueries, let alone "arbitrary", so it'd be useful to have at least some version of unnesting.
I love and use Postgres daily for many years, but:
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 :))