|
This is a very interesting problem, espeicially since consumer computing devices quickly shunted to small storage space when SSD's arrived. A few years ago, a laptop with 500GB of hard drive space was rather small! Nowadays, a 500GB SSD is top-tier. Granted, SSD capacity is quickly rising, but with the combination of small computing like phones and tablets, space is at a premium. Funnily enough, this problem has been solved before! If you look at distributed file systems, especially something like Coda (http://en.wikipedia.org/wiki/Coda_(file_system)), they are designed to make the local computer a "thin client for storage". Basically, local storage is used as a cache for the main copy on the server, and this behavior is transparent to user applications via the FS driver. Dropbox uses a user-space program to sync the files and cannot intercept system calls. As such, they had no choice but to synchronize all of it rather than bringing things in "on-demand" and releasing local copies that are not used. Nowadays, this can easily be done via FUSE driver in Linux. I do not know if something like FUSE exists on other platforms though. Overall, I personally love the idea of a local machine being a "cache" for the server copy. However, the technical challenges are greater than a simple mirroring scheme, and there may be UX issues as well. |