add 'flush' support

Add support to flush every data in cache to disk at maximal speed.
Why do we assign the returned defered object to a variable and then not do anything with it? Is this async thread really fire and forget to the point that we don't care if it ever finished?