A couple of years ago, we introduced the Varnish Massive Storage Engine (MSE).
Last week I spent quite a bit of time toying with the Varnish persistent storage engine. The long term goal of the storage engine is to become the default choice in Varnish. Currenty, it has a few limiations so it isn't quite ideal for some use cases. It doesn't really have proper LRU yet, it has something akin to FIFO and it will discard the oldest objects whenever it runs out of storage. If most of your objects are more or less of the same age and you have a bit of space allocated to it it should work quite well.
My favorite Varnish branch these days is the persistence branch. Persistence was introduced in Varnish Cache 2.1 as en experimental feature. The 2.1 code was never feature complete as the code that was suppose to handle a full cache situation was never written. So, what would happen was that Varnish would more or less self destruct when the cache hit 100% full. It would throw away everything stored in cache and start over. Not very useful. However, not many people were asking for it either.