Have you taken a look at the offline capabilities CouchDB provides? I gave a tech talk at Google in 2009, about ground computing and the benefits of local data: http://googlecode.blogspot.com/2009/09/chris-anderson-couchdb-relaxing-offline.html
Couch is being ported to many new implementations. For instance the new PouchDB syncs with CouchDB, and is built on IndexedDB for browser JavaScript https://github.com/mikeal/pouchdb
Also for iOS there is the lightweight TouchDB, which also syncs with CouchDB and uses SQLite for storage: https://github.com/couchbaselabs/TouchDB-iOS
The essence of the idea is that your data set should be the same no matter where you are (like the cloud) but stored locally (like a desktop). The endgame for this application architecture is independent apps (run offline and installed like desktop apps) that connect to the cloud when they want to share data or they are interested in a continuous data feed.