Marc Shapiro 0001

dblp:s/MarcShapiro · DBLP profile ↗
← Back
51ranked-venue papers
12as first author
4since 2021 · last 2025
0000-0002-8953-9322ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 22 · 5 first-author · 3 since 2021Software engineering, systems software and programming languages · 16 · 2 first-author · 1 since 2021Security and privacy · 5 · 2 first-authorDatabases, data management, data science and information retrieval · 2 · 1 first-authorHuman-computer interaction and ubiquitous computing · 2Theory of computation · 1 · 1 first-author
YearPublicationVenuePosition
2025 CALock: Multi-Granularity Locking in Dynamic Hierarchies
abstract
Hierarchies are fundamental structures across various disciplines, modelling hierarchical relationships in computer science, biology, social networks, and logistics. However, dynamic and concurrent updates in real-world systems necessitate synchronisation techniques for maintaining data consistency despite concurrent access. This paper explores a novel approach called CALock to synchronise operations on hierarchies by utilising a labelling scheme that facilitates multi-granularity locking. Our approach addresses both concurrent data reads and writes as well as structural modifications. CALock exploits the hierarchical topology via a new labelling scheme to identify the common ancestors of vertices. This enables a thread to identify an appropriate lock granule for its lock request. Leveraging variable lock granularity optimises operations across the hierarchy while ensuring consistency and performance. We provide a detailed discussion of the CALock labelling and the locking algorithm, prove its properties, and evaluate it experimentally. CALock remains competitive with previous labelling schemes on static hierarchies and has better concurrency and throughput when structural modifications change the hierarchy. In particular, CALock improves throughput by up to 4.5 times and lock response time by up to 1.5 times for workloads that contain structural modifications.
Ayush Pandey 0003, Julien Sopena, Marc Shapiro 0001, Swan Dubois
IPDPS3
2023 Transactional-Turn Causal Consistency
Benoît Martin, Laurent Prosperi, Marc Shapiro 0001
Euro-Par3
2021 CRDTs for truly concurrent file systems
abstract
Building scalable and highly available geo-replicated file systems is hard. These systems need to resolve conflicts that emerge in concurrent operations in a way that maintains file system invariants, is meaningful to the user, and does not depart from the traditional file system interface. Conflict resolution in existing systems often leads to unexpected or inconsistent results. This paper introduces ElmerFS, a geo-replicated, truly concurrent file system designed with the aim of addressing these challenges. ElmerFS is based on two key ideas: (1) the use of Conflict-Free Replicated Data Types (CRDTs) for representing file system structures, which ensures that replicas converge to a correct state, and (2) conflict resolution rules, which are determined by the choice of CRDT types and their composition, are designed with the principle of being intuitive to the user. We argue that if the state of the file system after resolving a conflict conveys to the user the resolved conflict in an intuitive way, the user can complement or reverse it using traditional file system operations. We discuss the challenges in the design of geo-replicated weakly consistent file systems, and present the design of ElmerFS.
Romain Vaillant, Dimitrios Vasilas, Marc Shapiro 0001, Thuy Linh Nguyen
HotStorage3
2021 Highly-available and consistent group collaboration at the edge with colony
abstract
Edge applications, such as gaming, cooperative engineering, or in-the-field information sharing, enjoy immediate response, autonomy and availability by distributing and replicating data at the edge. However, application developers and users demand the highest possible consistency guarantees, and specific support for group collaboration. To address this challenge, Colony guarantees Transactional Causal Plus Consistency (TCC+) globally, strengthened to Snapshot Isolation within edge groups. To help with scalability, fault tolerance and security, its logical communication topology is forest-like, with replicated roots in the core cloud, but with the flexibility to migrate a node or a group. Despite this hybrid approach, applications enjoy the same semantics everywhere in the topology. Our experiments show that local caching and peer groups improve throughput and response time significantly, performance is not affected in offline mode, and that migration is seamless.
Ilyas Toumlilt, Pierre Sutra, Marc Shapiro 0001
Middleware3
2020 Proving the Safety of Highly-Available Distributed Objects
abstract
Abstract To provide high availability in distributed systems, object replicas allow concurrent updates. Although replicas eventually converge, they may diverge temporarily, for instance when the network fails. This makes it difficult for the developer to reason about the object’s properties, and in particular, to prove invariants over its state. For the subclass of state-based distributed systems, we propose a proof methodology for establishing that a given object maintains a given invariant, taking into account any concurrency control. Our approach allows reasoning about individual operations separately. We demonstrate that our rules are sound, and we illustrate their use with some representative examples. We automate the rule using Boogie, an SMT-based tool.
Sreeja Nair 0001, Gustavo Petri, Marc Shapiro 0001
ESOP3
2020 MemOpLight: Leveraging application feedback to improve container memory consolidation
abstract
The container mechanism amortizes costs by consolidating several servers onto the same machine, while keeping them mutually isolated. Specifically, to ensure performance isolation, Linux relies on memory limits. These limits are static, despite the fact that application needs are dynamic; this results in poor performance. To solve this issue, MemOpLight uses dynamic application feedback to rebalance physical memory allocation between containers focusing on under- performing ones. This paper presents the issues, explains the design of MemOpLight, and validates it experimentally. Our approach increases total satisfaction by 13% compared to the default.
Francis Laniel, Damien Carver, Julien Sopena, Franck Wajsbürt, Jonathan Lejeune, Marc Shapiro 0001
NCA6
2019 Highlighting the Container Memory Consolidation Problems in Linux
abstract
The container mechanism supports server consolidation; to ensure memory performance isolation, Linux relies on static memory limits. However, this results in poor performance, because an application needs are dynamic. In this article we will show current problems with memory consolidation for containers in Linux.
Francis Laniel, Damien Carver, Julien Sopena, Franck Wajsbürt, Jonathan Lejeune, Marc Shapiro 0001
NCA6
2018 Distributed transactional reads: the strong, the quick, the fresh & the impossible
abstract
International audience
Alejandro Z. Tomsic, Manuel Bravo, Marc Shapiro 0001
Middleware3
2018 Co-Design and Verification of an Available File System
Mahsa Najafzadeh, Marc Shapiro 0001, Patrick Eugster
VMCAI2
2016 Consistency in 3D
abstract
Comparisons of different consistency models often try to place them in a linear strong-to-weak order. However this view is clearly inadequate, since it is well known, for instance, that Snapshot Isolation and Serialisability are incomparable. In the interest of a better understanding, we propose a new classification, along three dimensions, related to: a total order of writes, a causal order of reads, and transactional composition of multiple operations. A model may be stronger than another on one dimension and weaker on another. We believe that this new classification scheme is both scientifically sound and has good explicative value. The current paper presents the three-dimensional design space intuitively.
Marc Shapiro 0001, Masoud Saeida Ardekani, Gustavo Petri
CONCUR1
2016 High Responsiveness for Group Editing CRDTs
abstract
Group editing is a crucial feature for many end-user applications. It requires high responsiveness, which can be provided only by optimistic replication algorithms, which come in two classes: classical Operational Transformation (OT), or more recent Conflict-Free Replicated Data Types (CRDTs).
Loïck Briot, Pascal Urso, Marc Shapiro 0001
GROUP3
2016 Cure: Strong Semantics Meets High Availability and Low Latency
abstract
Developers of cloud-scale applications face a difficult decision of which kind of storage to use, summarised by the CAP theorem. Currently the choice is between classical CP databases, which provide strong guarantees but are slow, expensive, and unavailable under partition, and NoSQL-style AP databases, which are fast and available, but too hard to program against. We present an alternative: Cure provides the highest level of guarantees that remains compatible with availability. These guarantees include: causal consistency (no ordering anomalies), atomicity (consistent multi-key updates), and support for high-level data types (developer friendly API) with safe resolution of concurrent updates (guaranteeing convergence). These guarantees minimise the anomalies caused by parallelism and distribution, thus facilitating the development of applications. This paper presents the protocols for highly available transactions, and an experimental evaluation showing that Cure is able to achieve scalability similar to eventually-consistent NoSQL databases, while providing stronger guarantees.
Deepthi Devaki Akkoorath, Alejandro Z. Tomsic, Manuel Bravo, Zhongmiao Li, Tyler Crain, Annette Bieniusa, Nuno M. Preguiça, Marc Shapiro 0001
ICDCS8
2016 'Cause I'm strong enough: reasoning about consistency choices in distributed systems
abstract
Large-scale distributed systems often rely on replicated databases that allow a programmer to request different data consistency guarantees for different operations, and thereby control their performance. Using such databases is far from trivial: requesting stronger consistency in too many places may hurt performance, and requesting it in too few places may violate correctness. To help programmers in this task, we propose the first proof rule for establishing that a particular choice of consistency guarantees for various operations on a replicated database is enough to ensure the preservation of a given data integrity invariant. Our rule is modular: it allows reasoning about the behaviour of every operation separately under some assumption on the behaviour of other operations. This leads to simple reasoning, which we have automated in an SMT-based tool. We present a nontrivial proof of soundness of our rule and illustrate its use on several examples.
Alexey Gotsman, Hongseok Yang, Carla Ferreira 0001, Mahsa Najafzadeh, Marc Shapiro 0001
POPL5
2015 NumaGiC: a Garbage Collector for Big Data on Big NUMA Machines
abstract
On contemporary cache-coherent Non-Uniform Memory Access (ccNUMA) architectures, applications with a large memory footprint suffer from the cost of the garbage collector (GC), because, as the GC scans the reference graph, it makes many remote memory accesses, saturating the interconnect between memory nodes. We address this problem with NumaGiC, a GC with a mostly-distributed design. In order to maximise memory access locality during collection, a GC thread avoids accessing a different memory node, instead notifying a remote GC thread with a message; nonetheless, NumaGiC avoids the drawbacks of a pure distributed design, which tends to decrease parallelism. We compare NumaGiC with Parallel Scavenge and NAPS on two different ccNUMA architectures running on the Hotspot Java Virtual Machine of OpenJDK 7. On Spark and Neo4j, two industry-strength analytics applications, with heap sizes ranging from 160GB to 350GB, and on SPECjbb2013 and SPECjbb2005, ourgc improves overall performance by up to 45% over NAPS (up to 94% over Parallel Scavenge), and increases the performance of the collector itself by up to 3.6x over NAPS (up to 5.4x over Parallel Scavenge).
Lokesh Gidra, Gaël Thomas 0001, Julien Sopena, Marc Shapiro 0001
ASPLOS4
2015 Putting consistency back into eventual consistency
abstract
Geo-replicated storage systems are at the core of current Internet services. The designers of the replication protocols used by these systems must choose between either supporting low-latency, eventually-consistent operations, or ensuring strong consistency to ease application correctness. We propose an alternative consistency model, Explicit Consistency, that strengthens eventual consistency with a guarantee to preserve specific invariants defined by the applications. Given these application-specific invariants, a system that supports Explicit Consistency identifies which operations would be unsafe under concurrent execution, and allows programmers to select either violation-avoidance or invariant-repair techniques. We show how to achieve the former, while allowing operations to complete locally in the common case, by relying on a reservation system that moves coordination off the critical path of operation execution. The latter, in turn, allows operations to execute without restriction, and restore invariants by applying a repair operation to the database state. We present the design and evaluation of Indigo, a middleware that provides Explicit Consistency on top of a causally-consistent data store. Indigo guarantees strong application invariants while providing similar latency to an eventually-consistent system in the common case.
Valter Balegas, Sérgio Duarte, Carla Ferreira 0001, Rodrigo Rodrigues 0001, Nuno M. Preguiça, Mahsa Najafzadeh, Marc Shapiro 0001
EuroSys7
2015 Write Fast, Read in the Past: Causal Consistency for Client-Side Applications
abstract
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.
Marek Zawirski, Nuno M. Preguiça, Sérgio Duarte, Annette Bieniusa, Valter Balegas, Marc Shapiro 0001
Middleware6
2015 Extending Eventually Consistent Cloud Databases for Enforcing Numeric Invariants
abstract
Geo-replicated databases often offer high availability and low latency by relying on weak consistency models. The inability to enforce invariants across all replicas remains a key shortcoming that prevents the adoption of such databases in several applications. In this paper we show how to extend an eventually consistent cloud database for enforcing numeric invariants. Our approach builds on ideas from escrow transactions, but our novel design overcomes the limitations of previous works. First, by relying on a new replicated data type, our design has no central authority and uses pairwise asynchronous communication only. Second, by layering our design on top of a fault-tolerant database, our approach exhibits better availability during network partitions and data center faults. The evaluation of our prototype, built on top of Riak, shows much lower latency and better scalability than the traditional approach of using strong consistency to enforce numeric invariants.
Valter Balegas, Diogo Serra, Sérgio Duarte, Carla Ferreira 0001, Marc Shapiro 0001, Rodrigo Rodrigues 0001, Nuno M. Preguiça
SRDS5
2015 Merging semantics for conflict updates in geo-distributed file systems
abstract
We present our model of file systems and our merging semantics for resolving conflict updates in geo-distributed file systems. The system model fully describes a file system with all of its components including hard links. This model is able to identify all conflict cases which are classified into direct, such as concurrent updates to the same file, and indirect, such as cycles in the namespace of the file system. The merging semantics resolve all types of conflicts while being able to preserve the effect of all conflict updates. Our implementation of the system and the merging semantics outperforms the existing systems in terms of feature completeness.
Vinh Tao, Marc Shapiro 0001, Vianney Rancurel
SYSTOR2
2014 G-DUR: a middleware for assembling, analyzing, and improving transactional protocols
abstract
A large family of distributed transactional protocols have a common structure, called Deferred Update Replication (DUR). DUR provides dependability by replicating data, and performance by not re-executing transactions but only applying their updates. Protocols of the DUR family differ only in behaviors of few generic functions. Based on this insight, we offer a generic DUR middleware, called G-DUR, along with a library of finely-optimized plug-in implementations of the required behaviors. This paper presents the middleware, the plugins, and an extensive experimental evaluation in a geo-replicated environment. Our empirical study shows that:(i) G-DUR allows developers to implement various transactional protocols under 600 lines of code; (ii) It provides a fair, apples-to-apples comparison between transactional protocols; (iii) By replacing plugs-ins, developers can use G-DUR to understand bottlenecks in their protocols; (iv) This in turn enables the improvement of existing protocols; and (v) Given a protocol, G-DUR helps evaluate the cost of ensuring various degrees of dependability.
Masoud Saeida Ardekani, Pierre Sutra, Marc Shapiro 0001
Middleware3
2013 A study of the scalability of stop-the-world garbage collectors on multicores
abstract
Large-scale multicore architectures create new challenges for garbage collectors (GCs). In particular, throughput-oriented stop-the-world algorithms demonstrate good performance with a small number of cores, but have been shown to degrade badly beyond approximately 8 cores on a 48-core with OpenJDK 7. This negative result raises the question whether the stop-the-world design has intrinsic limitations that would require a radically different approach. Our study suggests that the answer is no, and that there is no compelling scalability reason to discard the existing highly-optimised throughput-oriented GC code on contemporary hardware. This paper studies the default throughput-oriented garbage collector of OpenJDK 7, called Parallel Scavenge. We identify its bottlenecks, and show how to eliminate them using well-established parallel programming techniques. On the SPECjbb2005, SPECjvm2008 and DaCapo 9.12 benchmarks, the improved GC matches the performance of Parallel Scavenge at low core count, but scales well, up to 48~cores.
Lokesh Gidra, Gaël Thomas 0001, Julien Sopena, Marc Shapiro 0001
ASPLOS4
2013 On the Scalability of Snapshot Isolation
Masoud Saeida Ardekani, Pierre Sutra, Marc Shapiro 0001, Nuno M. Preguiça
Euro-Par3
2013 Non-monotonic Snapshot Isolation: Scalable and Strong Consistency for Geo-replicated Transactional Systems
abstract
Modern cloud systems are geo-replicated to improve application latency and availability. Transactional consistency is essential for application developers; however, the corresponding concurrency control and commitment protocols are costly in a geo-replicated setting. To minimize this cost, we identify the following essential scalability properties: (i) only replicas updated by a transaction T make steps to execute T; (ii) a read-only transaction never waits for concurrent transactions and always commits; (iii) a transaction may read object versions committed after it started; and (iv) two transactions synchronize with each other only if their writes conflict. We present Non-Monotonic Snapshot Isolation (NMSI), the first strong consistency criterion to allow implementations with all four properties. We also present a practical implementation of NMSI called Jessy, which we compare experimentally against a number of well-known criteria. Our measurements show that the latency and throughput of NMSI are comparable to the weakest criterion, read-committed, and between two to fourteen times faster than well-known strong consistencies.
Masoud Saeida Ardekani, Pierre Sutra, Marc Shapiro 0001
SRDS3
2012 Gargamel: Boosting DBMS Performance by Parallelising Write Transactions
abstract
Parallel transactions in distributed DBs incur high overhead for concurrency control and aborts. We propose an alternative approach by pre-serializing possibly conflicting transactions, and parallelizing non-conflicting update transactions to different replicas. Our system provides strong transactional guarantees. In effect, Gargamel partitions the database dynamically according to the update workload. Each database replica runs sequentially, at full bandwidth, mutual synchronisation between replicas remains minimal. Our simulations show that Gargamel improves both response time and load by an order of magnitude when contention is high (highly loaded system with bounded resources), and that otherwise slow-down is negligible.
Pierpaolo Cincilla, Sébastien Monnet, Marc Shapiro 0001
ICPADS3
2012 Brief Announcement: Semantics of Eventually Consistent Replicated Sets
Annette Bieniusa, Marek Zawirski, Nuno M. Preguiça, Marc Shapiro 0001, Carlos Baquero, Valter Balegas, Sérgio Duarte
DISC4
2011 Assessing the scalability of garbage collectors on many cores
abstract
Managed Runtime Environments (MRE) are increasingly used for application servers that use large multi-core hardware. We find that the garbage collector is critical for overall performance in this setting. We explore the costs and scalability of the garbage collectors on a contemporary 48-core multiprocessor machine. We present experimental evaluation of the parallel and concurrent garbage collectors present in OpenJDK, a widely-used Java virtual machine. We show that garbage collection represents a substantial amount of an application's execution time, and does not scale well as the number of cores increases. We attempt to identify some critical scalability bottlenecks for garbage collectors.
Lokesh Gidra, Gaël Thomas 0001, Julien Sopena, Marc Shapiro 0001
PLOS@SOSP4
2011 Fast Genuine Generalized Consensus
abstract
Consensus (agreeing on a sequence of commands) is central to the operation and performance of distributed systems. A well-known solution to consensus is Fast Paxos. In a recent paper, Lamport enhances Fast Paxos by lever aging the commutativity of concurrent commands. The new primitive, called Generalized Paxos, reduces the collision rate, and thus the latency of Fast Paxos. However if a collision occurs, Generalized Paxos needs four communication steps to recover, which is slower than Fast Paxos. This paper presents FGGC, a novel consensus algorithm that reduces recovery delay when a collision occurs to one. FGGC tolerates f <; n/2 replicas crashes, and during failure-free runs, processes learn commands in two steps if all commands commute, and three steps otherwise; this is optimal. Moreover, as long as no fault occurs, FGGC needs only f + 1 replicas to progress.
Pierre Sutra, Marc Shapiro 0001
SRDS2
2011 Conflict-Free Replicated Data Types
Marc Shapiro 0001, Nuno M. Preguiça, Carlos Baquero, Marek Zawirski
SSS1
2009 A Commutative Replicated Data Type for Cooperative Editing
abstract
A commutative replicated data type (CRDT) is one where all concurrent operations commute. The replicas of a CRDT converge automatically, without complex concurrency control. This paper describes Treedoc, a novel CRDT design for cooperative text editing. An essential property is that the identifiers of Treedoc atoms are selected from a dense space. We discuss practical alternatives for implementing the identifier space based on an extended binary tree. We also discuss storage alternatives for data and meta-data, and mechanisms for compacting the tree. In the best case, Treedoc incurs no overhead with respect to a linear text buffer. We validate the results with traces from existing edit histories.
Nuno M. Preguiça, Joan Manuel Marquès, Marc Shapiro 0001, Mihai Letia
ICDCS3
2008 Topic 8: Distributed Systems and Algorithms
Elsa M. Macías, Marc Shapiro 0001
Euro-Par2
2008 Fault-Tolerant Partial Replication in Large-Scale Database Systems
Pierre Sutra, Marc Shapiro 0001
Euro-Par2
2007 A comparison of optimistic approaches to collaborative editing of Wiki pages
abstract
Wikis, a popular tool for sharing knowledge, are basically collaborative editing systems. However, existing Wiki systems offer limited support for co-operative authoring, and they do not scale well, because they are based on a centralised architecture. This paper compares the well-known centralised MediaWiki system with several peer-to-peer approaches to editing of wiki pages: an operational transformation approach (MOT2), a commutativity-oriented approach (WOOTO) and a conflict resolution approach (ACF). We evaluate and compare them, according to a number of qualitative and quantitative metrics.
Claudia-Lavinia Ignat, Gérald Oster, Pascal Molli, Michèle Cart, Jean Ferrié, Anne-Marie Kermarrec, Pierre Sutra, Marc Shapiro 0001, Lamia Benmouffok, Jean-Michel Busca, Rachid Guerraoui
CollaborateCom8
2007 Exploiting Our Computational Surroundings for Better Mobile Collaboration
abstract
Mobile collaborative environments, being naturally loosely-coupled, call for optimistic replication solutions in order to attain the requirement of decentralized highly available access to data. However, such connectivity assumptions are also a decisive hindrance to the ability of optimistic replication protocols to rapidly guarantee consistency among the set of loosely-coupled replicas. This paper proposes the extension of conventional optimistic replication protocols to exploit the presence of extraneous nodes surrounding the group of replica nodes in an increasingly ubiquitous computational universe. In particular, we show that using such extra nodes as temporary carriers of lightweight consistency meta-data may significantly improve the efficiency of a replicated system; notably, it reduces commitment delay and conflicts, and allows more network-efficient propagation of updates. We support such a statement with experimental results obtained from a simulated environment.
João Barreto 0001, Paulo Ferreira 0001, Marc Shapiro 0001
MDM3
2006 An Application Framework for Nomadic, Collaborative Applications
James O'Brien, Marc Shapiro 0001
DAIS2
2006 Practical proofs of concurrent programs
abstract
No abstract available.
Marc Shapiro 0001
ICFP1
2006 Proving correctness of highly-concurrent linearisable objects
abstract
We study a family of implementations for linked lists using fine-grain synchronisation. This approach enables greater concurrency, but correctness is a greater challenge than for classical, coarse-grain synchronisation. Our examples are demonstrative of common design patterns such as lock coupling, optimistic, and lazy synchronisation. Although they are are highly concurrent, we prove that they are linearisable, safe, and they correctly implement a high-level abstraction. Our proofs illustrate the power and applicability of rely-guarantee reasoning, as well of some of its limitations. The examples of the paper establish a benchmark challenge for other reasoning techniques.
Viktor Vafeiadis, Maurice Herlihy, Tony Hoare, Marc Shapiro 0001
PPoPP4
2005 Topic 8 - Distributed Systems and Algorithms
Marc Shapiro 0001, Idit Keidar, Felix C. Freiling, Luís E. T. Rodrigues
Euro-Par1
2005 Brief announcement: exploring the consistency problem space
abstract
We study formally the consistency problem, for replicated shared data, in the Action-Constraint framework (ACF). ACF can describe a large range of application semantics and replication protocols, including optimistic and/or partial replication. ACF is used to decompose the consistency problem into simpler sub-problems. Each is easily understood. Existing algorithms from the literature can be explained as combinations of concrete sub-problem implementations. Using ACF, we design a new serialisation algorithm that does not cause aborts and only needs pairwise agreement (not global consensus).
Nishith Krishna, Marc Shapiro 0001, Karthikeyan Bhargavan
PODC2
2004 Rufis: Mobile Data Sharing Using a Generic Constraint-Oriented Reconciler
abstract
Existing systems for disconnected data access and reconciliation are monolithic, complex and somewhat ad-hoc. In contrast, we demonstrate here a principled approach based on a general-purpose reconciliation engine. We describe the Reconcilable and Undoable File System, Rufis, implemented on top of the IceCube reconciler. IceCube is generic but supports application-specific reconciliation invariants. Consequently, the code for Rufis is quite small and simple, and the reconciliation logic is well separated from the main file system code. Furthermore, Rufis supports specialised reconciliation for files containing data of known types and enables ad-hoc user scenarios involving multiple applications.
Marc Shapiro 0001, Nuno M. Preguiça, James O'Brien
Mobile Data Management1
2004 A Constraint-Based Formalism for Consistency in Replicated Systems
Marc Shapiro 0001, Karthikeyan Bhargavan, Nishith Krishna
OPODIS1
2001 The IceCube approach to the reconciliation of divergent replicas
abstract
We describe a novel approach to log-based reconciliation called IceCube. It is general and is parameterised by application and object semantics. IceCube considers more flexible orderings and is designed to ease the burden of reconciliation on the application programmers. IceCube captures the static and dynamic reconciliation constraints between all pairs of actions, proposes schedules that satisfy the static constraints, and validates them against the dynamic constraints.
Anne-Marie Kermarrec, Antony I. T. Rowstron, Marc Shapiro 0001, Peter Druschel
PODC3
1998 Modelling a Distributed Cached Store for Garbage Collection: The Algorithm and Its Correctness Proof
Paulo Ferreira 0001, Marc Shapiro 0001
ECOOP2
1998 An Implementation for Complete, Asynchronous, Distributed Garbage Collection
abstract
Most existing reference-based distributed object systems include some kind of acyclic garbage collection, but fail to provide acceptable collection of cyclic garbage. Those that do provide such GC currently suffer from one or more problems: synchronous operation, the need for expensive global consensus or termination algorithms, susceptibility to communication problems, or an algorithm that does not scale. We present a simple, complete, fault-tolerant, asynchronous extension to the (acyclic) cleanup protocol of the SSP Chains system. This extension is scalable, consumes few resources, and could easily be adapted to work in other reference-based distributed object systems---rendering them usable for very large-scale applications.
Fabrice Le Fessant, Ian Piumarta, Marc Shapiro 0001
PLDI3
1996 Larchant: Persistence by Reachability in Distributed Shared Memory Through Garbage Collection
abstract
We consider a shared store based on distributed shared memory (DSM) supporting persistence by reachability (PBR) a very simple data sharing model for a distributed system. This DSM+PBR model is based on distributed garbage collection (GC). Within a general model for DSM+PBR, we specify a distributed GC algorithm that is efficient and scalable. Its main features are: (i) independent collection of memory subsets (even when replicated), (ii) orthogonal from coherence, (iii) asynchrony, and (iv) a simple heuristic to collect cycles avoiding extra I/O costs. We briefly describe our implementation and show some performance results.
Paulo Ferreira 0001, Marc Shapiro 0001
ICDCS2
1994 A Binding Protocol for Distributed Shared Objects
Marc Shapiro 0001
ICDCS1
1994 Garbage Collection and DSM Consistency
Paulo Ferreira 0001, Marc Shapiro 0001
OSDI2
1992 Robust, Distributed References and Acyclic Garbage Collection
abstract
We propose efficient, programming language-independent, location-transparent references as a substitute for pointers in distributed applications.These references provide the semantics of normal pointers for both local and distributed, transient and persistent objects.They may be passed in messages between and within nodes using a low-overhead presentation-layer protocol.of thousands of nodes connected using both local and wide-area networks.
Marc Shapiro 0001, Peter Dickman, David Plainfossé
PODC1
1991 A Fault-Tolerant, Scalable, Low-Overhead Distributed Garbage Detection Protocol
abstract
The author presents a protocol for the distributed detection of garbage in a distributed system subject to common failures such as lost and duplicated messages, network partition, dismounted disks, and process, site, and disk crashes. The protocol uses only information local to each site, or exchanged between pairs of sites; no global mechanism is necessary. Overhead is low. The protocol is parallel and should scale to extremely large systems.>
Marc Shapiro 0001
SRDS1
1989 Persistence and Migration for C++ Objects
Marc Shapiro 0001, Philippe Gautron, Laurence Mosseri
ECOOP1
1989 Generic Virtual Memory Management for Operating System Kernels
abstract
We discuss the rationale and design of a Generic Memory management Interface, for a family of scalable operating systems. It consists of a general interface for managing virtual memory, independently of the underlying hardware architecture (e.g. paged versus segmented memory), and independently of the operating system kernel in which it is to be integrated. In particular, this interface provides abstractions for support of a single, consistent cache for both mapped objects and explicit I/O, and control of data caching in real memory. Data management policies are delegated to external managers.
Vadim Abrossimov, Marc Rozier, Marc Shapiro 0001
SOSP3
1986 Structure and Encapsulation in Distributed Systems: The Proxy Principle
Marc Shapiro 0001
ICDCS1
1982 An Experiment in Distributed Program Design, Using Control Enrichment
Marc Shapiro 0001
ICDCS1