Closed imnotteixeira closed 3 years ago
Proposes a way of supporting many client-side applications sharing a database of objects that they can read and update under a convergent causal consistency model, with support for application-specific conflict resolution. It relies on fast local writes and possibly stale data reads, in order to achieve better speeds. It allows updates to thousands of clients using only three data centers, leveraging client buffering and controlled staleness, absorbing the cost of scalability, availability and consistency.
https://www.scopus.com/record/display.uri?eid=2-s2.0-84967152787&origin=reflist&sort=plf-f&src=s&st1=real+time+communication+web+offline&st2=&sid=2a870bc34ff2970b9cae781a860c8735&sot=b&sdt=b&sl=50&s=TITLE-ABS-KEY%28real+time+communication+web+offline%29
https://asc.di.fct.unl.pt/~nmp/pubs/middleware-2015.pdf
Client-side apps (e.g., mobile or in-browser) need cloud data to be available in a local cache, for both reads and updates. For optimal user experience and developer support, the cache should be consistent and fault-tolerant. In order to scale to high numbers of unreliable and resource-poor clients, and large database, the system needs to use resources sparingly. The SwiftCloud distributed object database is the first to provide fast reads and writes via a causally-consistent client-side local cache backed by the cloud. It is thrifty in resources and scales well, thanks to consistent versioning provided by the cloud, using small and bounded metadata. It remains available during faults, switching to a different data centre when the current one is not responsive, while maintaining its consistency guarantees. This paper presents the SwiftCloud algorithms, design, and experimental evaluation. It shows that client-side apps enjoy the high performance and availability, under the same guarantees as a remote cloud data store, at a small cost. © 2015 ACM.