On 06/16/2017 09:52 AM, Christoph Hellwig wrote: > On Fri, Jun 16, 2017 at 08:40:11AM -0600, Jens Axboe wrote: >> On 06/16/2017 07:58 AM, Christoph Hellwig wrote: >>>> >From my perspective, all I really care about is the 4 hints. It's a >>>> simple enough interface that applications can understand and use it, and >>>> we don't need any management of actual stream IDs. I think that has the >>>> highest chance of success. Modifying an application to use it is >>>> trivial, even something like RocksDB (if you havehad to make changes >>>> to RocksDB, you'll get this). >>> >>> Btw, are your current RocksDB patches available somewhere? >> >> Yep, it's on Mark Callaghan's github: >> >> https://github.com/mdcallag/rocksdb >> >> This is using mostly the v1 I posted, the only difference is that I just >> named the four flags RWF_S[1-4]. > > That commits look a bit like mess, but I guess I shouldn't expect > kernel-style changelogs and patch separation on github :) It's just a quick test patch, not intended to be pushed upstream in its current state. But it's good enough to validate it for testing. In summary, what the patch does is: - Redo log, level 0 and 1 of the LSM goes to stream 1. - Level 2 goes to stream 2 - Level 3 goes to stream 3 - Level 4 and above goes to stream 4. Each level is roughly 10x in size, but written at the same rate. So each level roughly has a life time 10x of data writes of the previous one. -- Jens Axboe