How Memory-mapped Files, File Systems and Cloud Storage Works


Kelly has an interesting post about memory-mapped files and the cloud. This is in response to a comment on my post where I stated that we don’t reserve space up front in Voron because we  support cloud providers that charge per storage.

From Kelly’s post, I assume she thinks about running it herself on her own cloud instances, and that is what her pricing indicates. Indeed, if you want to get a 100GB cloud disk from pretty much anywhere, you’ll pay for the full 100GB disk from day one. But that isn’t the scenario that I actually had in mind.

I was thinking about the cloud providers. Imagine that you want to go to RavenHQ, and get a database there. You sign up for a two GB plan, and all is great. Except that, on the very first write, we allocate a fixed 10 GB, and you start paying overage charges. This isn’t what you pay when you run on your own hardware. This is what you would have to deal with as a cloud DBaaS provider, and as a consumer of such a service.

That aside, let me deal a bit with the issues of memory-mapped files and sparse files. I created six sparse files, each of them 128 GB in size, in my E drive.

As you can see, this is a 300 GB disk, but I just “allocated” 640GB of space in it. […]