This is a post I can't help but entirely agree with. ACID Transactions, Indexes, Views, Constraints and other features have created so much productivity. Then it came time to scale beyond a single node and replication protocols added caveats galore because we poorly understood how concurrency and isolation (strict serializability, repeatable read, etc.) work in a distributed systems environment. Applications continued to scale and we threw the baby (SQL/Relational) out with the bath water (inability to scale databases). Database features aside from horizontal scaling have mostly stood still for the last few decades.
So what did we do? We took the bare essentials (B-Trees and other storage engine data types) and made those distributed. Now that we've (painfully) re-built the database from the ground up, but sharded and distributed this time, I hope we can get back to adding features that make developer's lives drastically better.
In my opinion one of the missing features are resource and time constraints/budgets at various levels of granularity. Once the network gets involved the non-deterministic nature of SQL can really balloon and bring things to a halt. Beyond that, we need simpler and more intuitive settings for these databases, ideally assisted by tools like OtterTune. The cherry on top will be a database that identifies areas of less coordination than you need and auto relaxes (or notifies you) to something weaker that is faster and more scalable.
So what did we do? We took the bare essentials (B-Trees and other storage engine data types) and made those distributed. Now that we've (painfully) re-built the database from the ground up, but sharded and distributed this time, I hope we can get back to adding features that make developer's lives drastically better.
In my opinion one of the missing features are resource and time constraints/budgets at various levels of granularity. Once the network gets involved the non-deterministic nature of SQL can really balloon and bring things to a halt. Beyond that, we need simpler and more intuitive settings for these databases, ideally assisted by tools like OtterTune. The cherry on top will be a database that identifies areas of less coordination than you need and auto relaxes (or notifies you) to something weaker that is faster and more scalable.