, Alloy solver, 2016.
, PropEr testing of generic servers, 2016.
Byzantine Disk Paxos: Optimal Resilience with Byzantine Shared Memory, Distributed Computing, vol.18, issue.5, 2006. ,
RACS: a case for cloud storage diversity, SoCC, 2010. ,
Weak ordering -a new definition, International Symposium on Computer Architecture, 1990. ,
Shared memory consistency models: A tutorial, IEEE Computer, vol.29, issue.12, 1996. ,
A unified formalization of four shared-memory models, IEEE Transactions on Parallel and Distributed Systems, vol.4, issue.6, 1993. ,
Weak consistency: A generalized theory and optimistic implementations for distributed transactions, 1999. ,
FARSITE: federated, available, and reliable storage for an incompletely trusted environment, OSDI, 2002. ,
The power of processor consistency, ACM Symposium on Parallel Algorithms and Architectures (SPAA), 1993. ,
Causal memory: Definitions, implementation, and programming, Distributed Computing, vol.9, issue.1, 1995. ,
A history of storage cost, 2014. ,
On the availability of non-strict quorum systems, DISC, 2005. ,
Chainreaction: a causal+ consistent datastore based on chain replication, EuroSys, 2013. ,
Boom analytics: exploring data-centric, declarative programming for the cloud, EuroSys, 2010. ,
Consistency analysis in bloom: a CALM and collected approach, Conference on Innovative Data Systems Research (CIDR), 2011. ,
Bloomunit: declarative testing for distributed programs, 2012. ,
Consistency without borders, SOCC, 2013. ,
Blazes: Coordination analysis for distributed programs, IEEE Conference on Data Engineering (ICDE), 2014. ,
Amazon DynamoDB Pricing, 2016. ,
, American National Standard for Information Systems, 1992.
FAWN: a fast array of wimpy nodes, SOSP, 2009. ,
What consistency does your key-value store actually provide?" in Hot Topics in System Dependability, ser. HotDep'10, 2010. ,
Erasure-coded byzantine storage with separate metadata, OPODIS, 2014. ,
Apache JClouds, 2016. ,
A view of cloud computing, Commun. ACM, vol.53, issue.4, 2010. ,
A correctness condition for high-performance multiprocessors (extended abstract), ACM Symposium on Theory of Computing, 1992. ,
DOI : 10.1145/129712.129778
Sequential consistency versus linearizability, ACM Transactions on Computer Systems (TOCS), vol.12, issue.2, 1994. ,
DOI : 10.1145/176575.176576
Sharing memory robustly in messagepassing systems, Journal of the ACM, vol.42, issue.1, 1995. ,
DOI : 10.1145/93385.93441
Limitations of highly-available eventually-consistent data stores, PODC, 2015. ,
Massively parallel databases and mapreduce systems, Foundations and Trends in Databases, vol.5, issue.1, 2013. ,
DOI : 10.1561/1900000036
When is "ACID" ACID? rarely, 2017. ,
Eventual consistency today: Limitations, extensions, and beyond, Queue, vol.11, issue.3, 2013. ,
The potential dangers of causal consistency and an explicit solution, SOCC, 2012. ,
Probabilistically bounded staleness for practical partial quorums, VLDB, vol.5, issue.8, 2012. ,
Bolt-on causal consistency, ACM SIGMOD International Conference on Management of Data (SIGMOD), 2013. ,
DOI : 10.1145/2463676.2465279
URL : http://www.bailis.org/papers/bolton-sigmod2013.pdf
Coordination avoidance in database systems, 2014. ,
Scalable atomic visibility with RAMP transactions, ACM International Conference on Management of Data (SIGMOD), 2014. ,
DOI : 10.1145/2909870
URL : http://www.bailis.org/papers/ramp-sigmod2014.pdf
Quantifying eventual consistency with PBS, VLDB Journal, vol.23, issue.2, 2014. ,
DOI : 10.1145/2632792
Megastore: Providing scalable, highly available storage for interactive services, Conference on Innovative Data Systems Research (CIDR), 2011. ,
Putting consistency back into eventual consistency, EuroSys, 2015. ,
DOI : 10.1145/2741948.2741972
URL : https://hal.archives-ouvertes.fr/hal-01109719
Robust data sharing with key-value stores, IEEE/IFIP International Conference on Dependable Systems and Networks, DSN, 2012. ,
DOI : 10.1145/1993806.1993843
Synchronized DSM models, Parallel Processing, 1997. ,
DOI : 10.1007/bfb0002771
PRACTI replication, NSDI, 2006. ,
Benchmarking eventually consistent distributed storage systems, 2014. ,
Consistency in distributed storage systems -an overview of models, metrics and measurement approaches, Networked Systems (NE-TYS), 2013. ,
Eventual consistency: How soon is eventual? An evaluation of amazon s3's consistency behavior, ACM Workshop on Middleware for Service Oriented Computing, 2011. ,
, Benchmarking eventual consistency: Lessons learned from long-term experimental studies, IEEE International Conference on Cloud Engineering (IC2E), 2014.
Rethinking eventual consistency, ACM SIGMOD International Conference on Management of Data (SIGMOD), 2013. ,
Concurrency Control and Recovery in Database Systems, 1987. ,
Midway: Shared memory parallel programming with entry consistency for distributed memory multiprocessors, Tech. Rep, 1991. ,
SCFS: A shared cloud-backed file system, USENIX Annual Technical Conference, USENIX ATC, 2014. ,
DepSky: Dependable and secure storage in a cloud-of-clouds, ACM Transactions on Storage (TOS), vol.9, issue.4, 2013. ,
SCFS: A shared cloud-backed file system, USENIX Annual Technical Conference (ATC), 2014. ,
Scalable state-machine replication, IEEE/IFIP International Conference on Dependable Systems and Networks, DSN, 2014. ,
Lightweight causal and atomic group multicast, ACM Transactions on Computer Systems (TOCS), vol.9, issue.3, 1991. ,
Bulletin board: A scalable and robust eventually consistent shared memory over a peer-topeer overlay, Operating Systems Review, vol.44, issue.2, 2010. ,
HAIL: a high-availability and integrity layer for cloud storage, ACM CCS, 2009. ,
Don't trust the cloud, verify: integrity and consistency for cloud object stores, ACM International Systems and Storage Conference (SYSTOR), 2015. ,
Pushing the CAP: Strategies for consistency and availability, IEEE Computer, vol.45, issue.2, 2012. ,
, Towards robust distributed systems (abstract), " in PODC, 2000.
TAO: facebook's distributed data store for the social graph, USENIX Annual Technical Conference (ATC), 2013. ,
Session guarantees to achieve pram consistency of replicated shared objects, Parallel Processing and Applied Mathematics (PPAM), 2003. ,
, From session causality to causal consistency, Workshop on Parallel, Distributed and Network-Based Processing (PDP), 2004.
Principles of Eventual Consistency, ser. Foundations and Trends in Programming Languages. now publishers, vol.1, 2014. ,
Cloud types for eventual consistency, Object-Oriented Programming (ECOOP), 2012. ,
Eventually consistent transactions, European Symposium on Programming (ESOP), 2012. ,
Replicated data types: specification, verification, optimality, ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL), 2014. ,
URL : https://hal.archives-ouvertes.fr/hal-00934311
The chubby lock service for loosely-coupled distributed systems, OSDI, 2006. ,
Efficient fork-linearizable access to untrusted shared memory, 2007. ,
Trusting the cloud, SIGACT News, vol.40, issue.2, 2009. ,
, Fork Sequential Consistency is Blocking, Information Processing Letters, vol.109, issue.7, 2009.
, Fail-aware untrusted storage, SIAM Journal on Computing (SICOMP), vol.40, issue.2, 2011.
Separating data and control: Asynchronous BFT storage with 2t + 1 data replicas, Stabilization, Safety, and Security of Distributed Systems (SSS), 2014. ,
Windows azure storage: a highly available cloud storage service with strong consistency, SOSP, 2011. ,
Characterizing private clouds: A large-scale empirical analysis of enterprise clusters, SoCC, 2016. ,
A framework for transactional consistency models with atomic visibility, Conference on Concurrency Theory, 2015. ,
Algebraic laws for weak consistency, CONCUR, 2017. ,
Harmony: Towards automated self-adaptive consistency in cloud storage, IEEE International Conference on Cluster Computing (CLUSTER), 2012. ,
URL : https://hal.archives-ouvertes.fr/hal-00734050
, Consistency in the cloud: When money does matter!" in Symposium on Cluster, Cloud, and Grid Computing (CCGrid), 2013.
Brief announcement: Consistency and complexity tradeoffs for highly-available multi-cloud store, DISC, 2013. ,
Attested appendonly memory: making adversaries stick to their word, SOSP, 2007. ,
Quickcheck: a lightweight tool for random testing of haskell programs, ACM SIGPLAN ICFP, 2000. ,
Observers -making ZooKeeper scale even further, 2009. ,
CloudSpaces EU FP7 project, 2015. ,
Limitations on database availability when networks partition, ACM Symposium on Principles of Distributed Computing, 1986. ,
Consul -distributed service discovery and configuration, 2016. ,
, Consul -consensus protocol, 2016.
Logic and lattices for distributed programming, SOCC, 2012. ,
Pnuts: Yahoo!'s hosted data serving platform, VLDB, vol.1, 2008. ,
Benchmarking cloud serving systems with ycsb, SoCC, 2010. ,
Spanner: Google's globally distributed database, ACM Transactions on Computer Systems (TOCS), vol.31, issue.3, 2013. ,
How to tolerate half less one Byzantine nodes in practical distributed systems, SRDS, 2004. ,
Practical hardening of crash-tolerant systems, USENIX Annual Technical Conference, 2012. ,
Consistency in partitioned networks, ACM Computing Surveys, vol.17, issue.3, 1985. ,
Dynamo: amazon's highly available key-value store, SOSP, 2007. ,
The eight fallacies of distributed computing, 1994. ,
Hybris: Robust hybrid cloud storage, SOCC, 2014. ,
URL : https://hal.archives-ouvertes.fr/hal-01610463
Inside dropbox: understanding personal cloud storage services, ACM SIGCOMM Internet Measurement Conference, IMC '12, 2012. ,
Benchmarking personal cloud storage, ACM SIGCOMM Internet Measurement Conference, IMC 2013, 2013. ,
URL : https://hal.archives-ouvertes.fr/hal-01346257
Gentlerain: Cheap and scalable causal consistency with physical clocks, SOCC, 2014. ,
Clock-rsm: Low-latency inter-datacenter state machine replication using loosely synchronized physical clocks, IEEE/IFIP International Conference on Dependable Systems and Networks, DSN, 2014. ,
Memory access buffering in multiprocessors, International Symposium on Computer Architecture (ISCA), 1986. ,
Consensus in the presence of partial synchrony, J. ACM, vol.35, issue.2, 1988. ,
Consistency for transactional memory computing, Bulletin of the EATCS, vol.113, 2014. ,
DOI : 10.1007/978-3-319-14720-8_1
Hybris -robust hybrid cloud storage library, 2016. ,
Watca: The waterloo consistency analyzer, IEEE International Conference on Data Engineering (ICDE), 2016. ,
DOI : 10.1109/icde.2016.7498354
Efficient Replication of Large Data Objects, DISC, 2003. ,
DOI : 10.1007/978-3-540-39989-6_6
Eventuallyserializable data services, PODC, 1996. ,
SPORC: group collaboration using untrusted cloud resources, OSDI, 2010. ,
Impossibility of distributed consensus with one faulty process, Journal of the ACM, vol.32, issue.2, 1985. ,
DOI : 10.1145/3149.214121
On the composability of consistency conditions, Information Processing Letters, vol.86, issue.4, 2003. ,
Redundancy does not imply fault tolerance: Analysis of distributed storage reactions to single errors and corruptions, USENIX Conference on File and Storage Technologies, 2017. ,
Redundancy does not imply fault tolerance: Analysis of distributed storage reactions to single errors and corruptions, FAST, 2017. ,
DOI : 10.1145/3125497
URL : http://dl.acm.org/ft_gateway.cfm?id=3125497&type=pdf
Location consistency-a new memory model and cache consistency protocol, IEEE Transactions on Computers, vol.49, issue.8, 2000. ,
DOI : 10.1109/12.868026
Memory consistency and event ordering in scalable shared-memory multiprocessors, International Symposium on Computer Architecture, 1990. ,
DOI : 10.1109/isca.1990.134503
The google file system, SOSP, 2003. ,
DOI : 10.1145/1165389.945450
Testing shared memories, SIAM J. Comput, vol.26, issue.4, 1997. ,
DOI : 10.1137/s0097539794279614
A cost-effective, high-bandwidth storage architecture, International Conference on Architectural Support for Programming Languages and Operating Systems, 1998. ,
DOI : 10.1145/291006.291029
Brewer's conjecture and the feasibility of consistent, available, partition-tolerant web services, SIGACT News, vol.33, issue.2, 2002. ,
Scalable consistency in scatter, SOSP, 2011. ,
DOI : 10.1145/2043556.2043559
Analyzing consistency properties for fun and profit, 2011. ,
DOI : 10.1145/1993806.1993834
Clientcentric benchmarking of eventual consistency for cloud storage systems, IEEE Conference on Distributed Computing Systems (ICDCS), 2014. ,
DOI : 10.1145/2523616.2525935
Cache consistency and sequential consistency, SCI Commitee, issue.61, 1989. ,
Cause I'm strong enough: Reasoning about consistency choices in distributed systems, ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL), 2016. ,
DOI : 10.1145/2914770.2837625
URL : https://hal.archives-ouvertes.fr/hal-01243192
Transaction Processing: Concepts and Techniques, 1993. ,
How fast can a very robust read be, PODC, 2006. ,
DOI : 10.1145/1146381.1146419
Why does the cloud stop computing?: Lessons from hundreds of service outages, SoCC, 2016. ,
A modular approach to fault-tolerant broadcasts and related problems, 1994. ,
Zoofence: Principled service partitioning and application to the zookeeper coordination service, IEEE International Symposium on Reliable Distributed Systems, 2014. ,
DOI : 10.1109/srds.2014.41
The cost of latency, 2009. ,
Random testing, Encyclopedia of Software Engineering, 1994. ,
Metasync: File synchronization across multiple untrusted storage services, USENIX Annual Technical Conference (ATC), 2015. ,
, Transactional Memory, 2010.
Life beyond distributed transactions: an apostate's opinion, Conference on Innovative Data Systems Research (CIDR), 2007. ,
Wait-Free Synchronization, ACM Trans. Program. Lang. Syst, vol.13, issue.1, 1991. ,
The art of multiprocessor programming, 2008. ,
DOI : 10.1145/1146381.1146382
Linearizability: A correctness condition for concurrent objects, ACM Transactions on Programming Languages and Systems (TOPLAS), vol.12, issue.3, 1990. ,
DOI : 10.1145/78969.78972
URL : http://www.cs.uoregon.edu/classes/06W/cis607atom/readings/herlihy-linearizability.pdf
Linearizability: A Correctness Condition for Concurrent Objects, ACM Trans. Program. Lang. Syst, vol.12, issue.3, 1990. ,
DOI : 10.1145/78969.78972
URL : http://www.cs.uoregon.edu/classes/06W/cis607atom/readings/herlihy-linearizability.pdf
Faster linearizability checking via p-compositionality, IFIP International Conference on Formal Techniques for Distributed Objects, Components, and Systems, 2015. ,
URL : https://hal.archives-ouvertes.fr/hal-01767332
Mysteries of dropbox: Propertybased testing of a distributed synchronization service, IEEE International Conference on Software Testing, Verification and Validation, 2016. ,
Zookeeper: wait-free coordination for internet-scale systems, USENIX Annual Technical Conference, USENIX ATC, 2010. ,
Slow memory: Weakening consistency to enchance concurrency in distributed shared memories, International Conference on Distributed Computing Systems (ICDCS), 1990. ,
DOI : 10.1109/icdcs.1990.89297
Improving release-consistent shared virtual memory using automatic update, IEEE International Symposium on High-Performance Computer Architecture (HPCA), 1996. ,
DOI : 10.1109/hpca.1996.501170
Scope consistency: A bridge between release consistency and entry consistency, ACM Symposium on Parallel Algorithms and Architectures (SPAA), 1996. ,
Maintenance of duplicate databases, vol.677, 1975. ,
Predictive modeling with big data: is bigger really better?, Big Data, vol.1, issue.4, 2013. ,
Durability with bookkeeper, Operating Systems Review, vol.47, issue.1, 2013. ,
CheapBFT: resource-efficient Byzantine fault tolerance, EuroSys, 2012. ,
Lazy release consistency for software distributed shared memory, International Symposium on Computer Architecture, 1992. ,
Jepsen -distributed systems safety analysis, 2016. ,
Trends in the cost of computing, 2015. ,
Safestore: A durable and practical storage system, USENIX Annual Technical Conference, USENIX ATC, 2007. ,
Consistency rationing in the cloud: Pay only when it matters, VLDB, vol.2, issue.1, 2009. ,
An adaptive framework for tunable consistency and timeliness using replication, Dependable Systems and Networks (DSN), 2002. ,
Providing high availability using lazy replication, ACM Transactions on Computer Systems (TOCS), vol.10, issue.4, 1992. ,
Cassandra: a decentralized structured storage system, Operating Systems Review, vol.44, issue.2, 2010. ,
A secure and highly available distributed store for meeting diverse data storage needs, Dependable Systems and Networks (DSN), 2001. ,
Paxos made simple, SIGACT News, vol.32, issue.4, 2001. ,
, Time, clocks, and the ordering of events in a distributed system, Communications of the ACM (CACM), vol.21, issue.7, 1978.
, How to make a multiprocessor computer that correctly executes multiprocess programs, IEEE Transactions on Computers, vol.28, issue.9, 1979.
, Specifying concurrent program modules, ACM Transactions on Programming Languages and Systems (TOPLAS), vol.5, issue.2, 1983.
, On interprocess communication. part i: Basic formalism, Distributed Computing, vol.1, issue.2, 1986.
, On interprocess communication. part ii: Algorithms, Distributed Computing, vol.1, issue.2, 1986.
The byzantine generals problem, ACM Transactions on Programming Languages and Systems (TOPLAS), vol.4, issue.3, 1982. ,
The theory and practice of specification based software testing, 1993. ,
Implementing linearizability at large scale and low latency, SOSP, 2015. ,
Chapar: certified causally consistent distributed key-value stores, ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL), 2016. ,
Cloudcmp: comparing public cloud providers, ACM SIGCOMM IMC, 2010. ,
Making geo-replicated systems fast as possible, consistent when necessary, OSDI, 2012. ,
Automating the choice of consistency levels in replicated systems, USENIX Annual Technical Conference (ATC), 2014. ,
Just say NO to paxos overhead: Replacing consensus with network ordering, OSDI, 2016. ,
Beyond one-third faulty replicas in byzantine fault tolerant systems, NSDI, 2007. ,
Secure untrusted data repository (sundr), OSDI, 2004. ,
Pram: A scalable shared memory, 1988. ,
XFT: practical fault tolerance beyond crashes, USENIX Symposium on Operating Systems Design and Implementation, OSDI, 2016. ,
Don't settle for eventual: scalable causal consistency for wide-area storage with cops, SOSP, 2011. ,
, Stronger semantics for low-latency geo-replicated storage, NSDI, 2013.
Declarative networking: language, execution and optimization, ACM SIGMOD International Conference on Management of Data, 2006. ,
Stacksync: Bringing elasticity to dropbox-like file synchronization, ACM/IFIP/USENIX Middleware, 2014. ,
Existential consistency: measuring and understanding consistency at facebook, SOSP, 2015. ,
RAMBO: A Reconfigurable Atomic Memory Service for Dynamic Networks, DISC, 2002. ,
An introduction to input/output automata, CWI Quarterly, vol.2, 1989. ,
Depot: Cloud storage with minimal trust, OSDI, 2010. ,
Consistency, availability, and convergence, 2011. ,
Depot: Cloud storage with minimal trust, ACM Trans. Comput. Syst, vol.29, issue.4, 2011. ,
Secure and scalable replication in phalanx, Symposium on Reliable Distributed Systems (SRDS), 1998. ,
, Byzantine quorum systems, Distributed Computing, vol.11, issue.4, 1998.
Building Secure File Systems out of Byzantine Storage, PODC, 2002. ,
Memcached, 2016. ,
Axioms for memory access in asynchronous hardware systems, ACM Transactions on Programming Languages and Systems (TOPLAS), vol.8, issue.1, 1986. ,
There is more consensus in egalitarian parliaments, SOSP, 2013. ,
Memory consistency models, Operating Systems Review, vol.27, issue.1, 1993. ,
The CISE tool: proving weakly-consistent applications correct, Workshop on the Principles and Practice of Consistency for Distributed Data, PaPoC@EuroSys, 2016. ,
URL : https://hal.archives-ouvertes.fr/hal-01350636
In search of an understandable consensus algorithm, USENIX Annual Technical Conference, USENIX ATC, 2014. ,
On consistency of encrypted files, DISC, 2006. ,
Principles of Distributed Database Systems, 2011. ,
YCSB++: benchmarking and performance debugging advanced features in scalable table stores, SOCC, 2011. ,
Reaching Agreement in the Presence of Faults, J. ACM, vol.27, issue.2, 1980. ,
Simba: tunable end-to-end data consistency for mobile apps, EuroSys, 2015. ,
Flexible update propagation for weakly consistent replication, SOSP, 1997. ,
Jerasure: A library in C/C++ facilitating erasure coding for storage applications -Version 1.2, 2008. ,
Toward a principled framework for benchmarking consistency, Computing Research Repository, 2012. ,
Using paxos to build a scalable, consistent, and highly available datastore, VLDB, vol.4, issue.4, 2011. ,
A suite of definitions for consistency criteria in distributed shared memories, Annales des Télécommunications, vol.52, issue.11-12, 1997. ,
A simple totally ordered broadcast protocol, Workshop on Large-Scale Distributed Systems and Middleware (LADIS), 2008. ,
Resolving file conflicts in the ficus file system, USENIX Summer 1994 Technical Conference, 1994. ,
High availability in dhts: Erasure coding vs. replication, IPTPS, 2005. ,
Replicated abstract data types: Building blocks for collaborative applications, Journal of Parallel and Distributed Computing, vol.71, issue.3, 2011. ,
Optimistic replication, ACM Computing Surveys, vol.37, issue.1, 2005. ,
URL : https://hal.archives-ouvertes.fr/inria-00444768
Vector-field consistency for ad-hoc gaming, ACM/IFIP/USENIX Middleware Conference, 2007. ,
Eventually Linearizable Shared Objects, 2010. ,
Convergent and commutative replicated data types, Bulletin of the EATCS, vol.104, 2011. ,
URL : https://hal.archives-ouvertes.fr/hal-00932833
, Conflict-free replicated data types, Stabilization, Safety, and Security of Distributed Systems (SSS), 2011.
Venus: verification for untrusted cloud storage, ACM Cloud Computing Security Workshop (CCSW), 2010. ,
Dapper, a large-scale distributed systems tracing infrastructure, 2010. ,
Zeno: Eventually consistent byzantine-fault tolerance, NSDI, 2009. ,
Temporal notions of synchronization and consistency in beehive, ACM Symposium on Parallel Algorithms and Architectures (SPAA), 1997. ,
Declarative programming over eventually consistent data stores, ACM SIGPLAN Conference on Programming Language Design and Implementation, 2015. ,
IBM SoftLayer, 2016. ,
Path ORAM: an extremely simple oblivious RAM protocol, ACM SIGSAC Conference on Computer and Communications Security, 2013. ,
A unified theory of shared memory consistency, Journal of the ACM, vol.51, issue.5, 2004. ,
The case for shared nothing, IEEE Database Eng. Bull, vol.9, issue.1, 1986. ,
The free lunch is over: a fundamental turn toward concurrency in software, 2005. ,
Secure file synchronization software for arbitrary storage backends, 2016. ,
Distributed systems -principles and paradigms (2. ed.). Pearson Education, 2007. ,
Replicated data consistency explained through baseball, Communications of the ACM (CACM), vol.56, issue.12, 2013. ,
Session guarantees for weakly consistent replicated data, Parallel and Distributed Information Systems (PDIS), 1994. ,
Managing update conflicts in bayou, a weakly connected replicated storage system, SOSP, 1995. ,
Consistency-based service level agreements for cloud storage, SOSP, 2013. ,
Memsat: checking axiomatic specifications of memory models, ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), 2010. ,
Convergence through a weak consistency model: Timed causal consistency, CLEI electronic journal, vol.8, issue.2, 2005. ,
Timed consistency for shared distributed objects, PODC, 1999. ,
Distributed systems tracing with zipkin, 2012. ,
Efficient byzantine fault-tolerance, IEEE Trans. Computers, vol.62, issue.1, 2013. ,
The Snowden Leak: A Windfall for Hybrid Cloud?, 2013. ,
Eventually consistent, vol.6, 2008. ,
The Byzantine empire in the intercloud, SIGACT News, vol.41, issue.3, 2010. ,
Data consistency properties and the trade-offs in commercial cloud storage: the consumers' perspective, Conference on Innovative Data Systems Research (CIDR), 2011. ,
Gnothi: separating data and metadata for efficient and available storage replication, USENIX Annual Technical Conference, USENIX ATC, 2012. ,
Erasure coding vs. replication: A quantitative comparison, IPTPS, 2002. ,
Ceph: A scalable, high-performance distributed file system, OSDI, 2006. ,
Verdi: a framework for implementing and formally verifying distributed systems, ACM SIGPLAN PLDI, 2015. ,
Testing and verifying concurrent objects, J. Parallel Distrib. Comput, vol.17, issue.1-2, 1993. ,
Spanstore: cost-effective geo-replicated storage spanning multiple cloud services, SOSP, 2013. ,
High-performance ACID via modular concurrency control, SOSP, 2015. ,
Nemos: A framework for axiomatic and executable specifications of memory consistency models, International Parallel and Distributed Processing Symposium (IPDPS), 2004. ,
Separating agreement from execution for byzantine fault tolerant services, SOSP, 2003. ,
Design and evaluation of a conit-based continuous consistency model for replicated services, ACM Transactions on Computer Systems (TOCS), vol.20, issue.3, 2002. ,
Simple testing can prevent most critical failures: An analysis of production failures in distributed data-intensive systems, OSDI, 2014. ,
, High-performance theorem prover, Z3, 2016.
Write fast, read in the past: Causal consistency for client-side applications, ACM/IFIP/USENIX Middleware Conference, 2015. ,
URL : https://hal.archives-ouvertes.fr/hal-01248194
Rationing data updates with consistency considerations in distributed systems, IEEE International Conference on Networks, ICON, 2011. ,
Consistency anomalies in multi-tier architectures: automatic detection and prevention, VLDB Journal, vol.23, issue.1, 2014. ,
Simplifying and isolating failure-inducing input, IEEE Trans. Software Eng, vol.28, issue.2, 2002. ,
Efficient and available in-memory kv-store with hybrid erasure coding and replication, USENIX Conference on File and Storage Technologies, 2016. ,
Building consistent transactions with inconsistent replication, SOSP, 2015. ,
, It follows trivially from RVal(F) > SeqRVal(F)
, n: cloud stores, exposing key-value API as in Alg. 2 30: Client state variables: 31: ts ? TS , initially (0, ?) 32: cloudList ? {Ci × . . . × Ci} ? {?}, initially ? 33: operation put (k, v) 34: (ts, ?, ?, ?) ? RM DS.read(k, f alse) 35: if ts = ? then ts ? (0, cid) 36: ts ? (ts.sn + 1, cid) 37: cloudList ? ? 38: trigger timer 39: forall f + 1 selected clouds Ci do 40: Ci.put(k|ts, v) 41: wait until |cloudList| = f + 1 or timer expires 42: if |cloudList| < f + 1 then 43: forall f secondary clouds Ci do 44: Ci.put(k|ts, v) 45: wait until |cloudList| = f + 1 46: RM DS.condUpdate(k, ts, cloudList, H(v), size(v)) 47: trigger garbage collection // see Section 3.3.4 48: return ok 49: upon put(k|ts, v) completes at cloud Ci 50: cloudList ? cloudList ? {Ci} 51: operation get (k) // worst-case, Section 3.3.5 code only 52: (ts, cloudList, hash, size) ? RM DS.read(k, true) 53: if ts = ? or cloudList = ? then return ? 54: forall Ci ? cloudList do 55: Ci.get(k|ts) 56: upon get(k|ts) returns data from cloud Ci 57: if H(data) = hash then return data 58: else Ci.get(k|ts) 59: upon received notify(k, ts ? ) from RMDS such that ts ? > ts 60: cancel all pending get 61: return get (k) 62: operation list () 63: mdList ? RM DS.list() 64: forall md ? mdList do 65: if md.cloudList = ? then 66: mdList ? mdList \ {md} 67: return mdList 68: operation delete (k) 69: (ts, cloudList, ?, ?) ? RM DS.read(k, f alse) 70: if ts = ? or cloudList = ? then return ok 71: ts ? (ts.sn + 1, cid) 72: RM DS, Proposition B.4. SequentialConsistency > Causality Proof. First, we proceed to show that (SingleOrder ? PRAM) ? CausalArbitration. By SingleOrder and PRAM we have that vis ? ar and so ? vis. Thus, hb = (so ? vis) + ? Types: 25: TS = (N0 × N0) ? {?}, vol.26
Let o and o ? be two get or put operations with timestamps ts(o) and ts(o ? ), respectively, such that o precedes o ? . Then ts(o) ? ts(o ? ), and if o ? is a, vol.2 ,
, RM DS denotes calls to RMDS within operation o (and similarly for o ? ), the following
, Alg. 3, precedes (all possible calls to) o ? .RM DS.read() at line 52, Alg. 3 (resp., line 34, Alg. 3). By linearizability of RMDS (and RMDS functionality in Alg. 1) and definition of operation timestamps, it follows that ts(o ? ) ? ts(o). Moreover, if o ? is a put, then ts(o ? ) > ts(o) because ts(o ? ) is obtained from incrementing the timestamp ts returned by o ? .RM DS, vol.46
, at line 52 (resp. 34) follow the latest call of o.RM DS.read() in line 52, by Alg. 1 and by linearizability of RMDS, it follows that ts(o ? ) ? ts(o), then since all possible calls to o ? .RM DS.read(, vol.2
Unique puts). If o and o ? are two put operations, then ts(o) ? = ts(o ? ), vol.2 ,
By lines 34-36, Alg. 3, RMDS functionality (Alg. 1) and the fact that a given client does not invoke concurrent operations on the same key ,
Let rd be a get(k) operation returning value v ? = ?. Then there exists a single put operation wr of the form put(k, v) such that ts, vol.2 ,
, rd receives v in response to get(k|ts(rd)) from some cloud C i . Suppose for the purpose of contradiction that v is never written by a put. Then, by the collision resistance of H(), the check at line 57 does not pass and rd does not return v. Therefore, we conclude that some operation wr issues put (k|ts(rd)) to C i in line 40. Hence, ts(wr) = ts(rd). Finally, Since rd returns v and has a timestamp ts(rd)
Every execution ex of Algorithm 3 satisfies linearizability, vol.2 ,
Alternative proof of Hybris linearizability In this section, we prove the linearizability of the Hybris protocol ( § D.1) using the axiomatic framework we ,
, If o is a put, then ts(o) is the value of client's variable ts when its assignment completes at line 36, Alg. 3. Else, if o is a get, then ts(o) equals the value of ts when client executes line 57, Alg. 3 (i.e., when get returns). Without loss of generality, Preliminaries We define the timestamp of operation o, denoted ts(o), as follows
, Let st be an equivalence relation on H that groups pairs of operations having the same timestamp
, Let o and o ? be two get or put operations with timestamps ts(o) and ts(o ? ), respectively, such that o rb ? ? o ? . Then there exists a partial order tso ? ar \ st induced by timestamps such that: if o ? is a put then o tso ? ? o ?
, RM DS denotes calls to RMDS within operation o (and similarly for o ? ), the following
, Alg. 3, precedes (all possible calls to) o ? .RM DS.read() at line 52, Alg. 3 (resp., line 34, Alg. 3). By linearizability of RMDS (and RMDS functionality in Alg. 1) and definition of operation timestamps, it follows that ts(o ? ) ? ts(o). Moreover, if o ? is a put, then o tso ? ? o ? , because ts(o ? ) is obtained from incrementing the timestamp ts returned by o ? .RM DS, vol.46
, at line 52 (resp. 34) follow the latest call of o.RM DS.read() in line 52, by Alg. 1 and by linearizability of RMDS, it follows that ts(o ? ) ? ts(o). If o ? is a put, then since all possible calls to o ? .RM DS.read(, vol.2
, No two operations ordered by the returns-before partial order have strictly decreasing timestamps. Formally: ?a, b ? H : a rb ? ? b ? b tso ? ? a ? rb ? st ? tso
Unique timestamps of puts). If o and o ? are two put operations, then ,
By lines 34-36, Alg. 3, RMDS functionality (Alg. 1) and the fact that a given client does ,
Let rd be a get(k) operation returning value v ? = ?. Then, there exists a single put operation wr of the form put(k, v) such that rd ? st wr, vol.3 ,
, De plus, grâce à l'approche axiomatique que nous avons adoptée, nous avons mis en place
, En outre, nous établissons la correspondance entre ces sémantiques et les implémentations de prototypes et de systèmes décrit dans la littérature de recherche (Annexe C). Enfin, dans l'Annexe B, nous fournissons des preuves de relations de force entre les modèles sémantiques