4 ms·
A I think reason is simple. It works ok most of the time. And if you really care about some data, you will stick it some database anyway. And if you are goin
by unionpivo 6y ago
A
I think reason is simple.
It works ok most of the time.
And if you really care about some data, you will stick it some database anyway.
And if you are going to stick data into database, you want to be able to select database that suits your needs best, and not be stuck with one provided by os.
B I think you are underestimating how hard is it to implement good and performant transactional database. I am not sure it belongs into kernel.
- emmelaich 6y agoYes! C. A transaction based api would fail anyway occasionally. D. Note that some OSs (MVS/OS360) that are famous for transactions have the reputation that locking and so-forth are done in the kernel. Which is not actually true.
- josephg 6y agoLMDB implements a persistent transactional API around a B+ tree in just a few thousand lines of code. We put things in the kernel for several reasons - performance, but also consistency and interoperability. If every program embeds its own database and its own semantics, its much harder to have programs share data.