The API is really simple. You basically just
Because it’s using lm2, all of lm2log’s operations are fully durable and crash-safe. I don’t have
anything else to say about this package besides the fact that it’s essential to the two-phase commit
logic of the metadata service I’m building (to be announced!).
The fun thing about this is that it’s totally unimpressive. lm2 is unimpressive. It’s a slow storage library implemented as a linked list. lm2log is a commit log built on top of lm2. And I’m building more things on top. Compared to “modern” production database engines, this stuff looks more like a silly toy. But, I’m still getting some great guarantees. I already explained how I can get ACID transactions with lm2. My goal lately has been to take simple, unimpressive things and build robust, impressive systems on top. So far so good.