Anticipating the Future with LMDB (2016)
symas.com
symas.com
> the cost of storage has been decreasing at 38%/year
This assumes that the growth rate in bytes used is staying constant. I don't think that's accurate in the aggregate which is why there's compression. Additionally, the space overhead isn't just about space usage. Flash suffers horrible wear which means that your space amplification is also write amplification. The combination in a growth rate in the amount of data and a plateau in write cycles means that without compression your cost of storage is probably costing you much more than it should.
Additionally, it assumes the growth rate for storage won't hit it's own plateau. Indeed, solid state prices seem to have leveled out already only 6 years after this article because flash is really hard to make cheaper (& even spinning disk has plateaued).
I think the analysis is right that you can't just assume you can use as much CPU as you want, but I think it's wrong to eschew compression, especially since the DB gets to choose where to spend compression time on (& decompression is usually free because you cache decompressed results so on average you're not doing much).
(It’s still a win to use compression at the db level because the data is typically also compressed in memory.)
If you do piecewise page-level compression, then you're back to the problem of not saving any space unless you can guarantee better than 50% compression per page, to fit at least 2 compressed pages per physical page. And nobody gets better than 50% compression on arbitrary binary data without expending a lot of CPU cycles.
To get really good compression ratios you need to be able to analyze a larger volume of data (and of course there has to be low enough entropy in the data itself). So if you're restricted to page-sized chunks to compress, you'll never get enough of a window to achieve great compression ratios.
(PS: I've done plenty of work on data compression. https://en.wikipedia.org/wiki/ARC_%28file_format%29 )
I think LSMs work great as indexed write-ahead logs. Like, the ZIL is essentially a write-ahead log, but it's not indexed. The ZIL should have been indexed so that if you crash you don't have to process the ZIL into the ZFS tree, instead you just run with it (this might also reduce the amount of RAM ZFS needs to track open transactions).
A 500GB Samsung 850 EVO SSD was £110.99. Now a 500GB Samsung 870 EVO SSD is £68.47. Samsung has just started mass production of 1 Tbit TLC NAND: densities & performance up, cost down. https://www.techtarget.com/searchstorage/news/252527119/Sams...
I admit I was counting on Optane to have a large part to play by now, and that has completely tanked. But something like MRAM is bound to come along soon and take its place, and the wear factor will be a thing of the past.