Show HN: Lavastone – C++ Containers Transparently Backed by Disk

7 points by noajshu 3 years ago | 2 comments
  • ttymck 3 years ago
    As an engineer who has never had to write truly performant software, this sounds so cool.

    My only question is: what does the query interface look like for something like this? I've only ever accessed indexed data via SQL (or, I suppose, key value data). The main tradeoff discussed is indexing time in psql, but you give up the flexibility of sql (WHERE, joins, etc).

    • noajshu 3 years ago
      Thanks! One of the creators here. Our main idea with Lavastone is that you just write “plain” c++ code that doesn’t call any special query interface. It’s transparently making your code run by performing some interactions with the database on your behalf. In this sense the query interface looks just like the standard language features of C++.

      As you point out, there are definitely trade offs with choosing Lavastone instead of a SQL database. For instance you can’t easily share concurrent read/write access to the same Lavastone data with multiple processes. However, you can copy a fixed Lavastone data store (ie the underlying LevelDB store) and distribute it to multiple server nodes. That’s how we used it anyways!