Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Christopher Meiklejohn is active.

Publication


Featured researches published by Christopher Meiklejohn.


principles and practice of declarative programming | 2015

Lasp: a language for distributed, coordination-free programming

Christopher Meiklejohn; Peter Van Roy

We propose Lasp, a new programming model designed to simplify large-scale distributed programming. Lasp combines ideas from deterministic dataflow programming together with conflict-free replicated data types (CRDTs). This provides support for computations where not all participants are online together at a given moment. The initial design presented here provides powerful primitives for composing CRDTs, which lets us write long-lived fault-tolerant distributed applications with nonmonotonic behavior in a monotonic framework. Given reasonable models of node-to-node communications and node failures, we prove formally that a Lasp program can be considered as a functional program that supports functional reasoning and programming techniques. We have implemented Lasp as an Erlang library built on top of the Riak Core distributed systems framework. We have developed one nontrivial large-scale application, the advertisement counter scenario from the SyncFree research project. We plan to extend our current prototype into a general-purpose language in which synchronization is used as little as possible.


european conference on computer systems | 2014

Riak DT map: a composable, convergent replicated dictionary

Russell Brown; Sean Cribbs; Christopher Meiklejohn; Sam Elliott

Conflict-Free Replicated Data-Types (CRDTs) [6] provide greater safety properties to eventually-consistent distributed systems without requiring synchronization. CRDTs ensure that concurrent, uncoordinated updates have deterministic outcomes via the properties of bounded join-semilattices. We discuss the design of a new convergent (state-based) replicated data-type, the Map, as implemented by the Riak DT library [4] and the Riak data store [3]. Like traditional dictionary data structures, the Map associates keys with values, and provides operations to add, remove, and mutate entries. Unlike traditional dictionaries, all values in the Map data structure are also state-based CRDTs and updates to embedded values preserve their convergence semantics via lattice inflations [1] that propagate upward to the top-level. Updates to the Map and its embedded values can also be applied atomically in batches. Metadata required for ensuring convergence is minimized in a manner similar to the optimized OR-set [5]. This design allows greater flexibility to application developers working with semi-structured data, while removing the need for the developer to design custom conflict-resolution routines for each class of application data. We also discuss the experimental validation of the data-type using stateful property-based tests with QuickCheck [2].


annual erlang workshop | 2013

Riak PG: distributed process groups on dynamo-style distributed storage

Christopher Meiklejohn

We present Riak PG, a new Erlang process group registry for highly available applications. The Riak PG system is a Dynamo-based, distributed, fault-tolerant, named process group registry for use as an alternative to the built-in Erlang process group facility, pg2, and the globally distributed extended process registry, gproc. Riak PG aims to provide a highly-available, fault-tolerant, distributed registry by sacrificing strong consistency for eventual consistency in applications where availability of the registry is paramount to application function and performance.


european conference on computer systems | 2014

On the composability of the Riak DT map: expanding from embedded to multi-key structures

Christopher Meiklejohn

The Riak DT library [2] provides a composable, convergent replicated dictionary called the Riak DT map, designed for use in the Riak [1] replicated data store. This data type provides the ability for the composition of conflict-free replicated data types (CRDT) [7] through embedding. Composition by embedding works well when the total object size of the composed CRDTs is small, however suffers a performance penalty as object size increases. The root of this problem is based in how replication is achieved in the Riak data store using Erlang distribution. [4] We propose a solution for providing an alternative composition mechanism, composition by reference, which provides support for arbitrarily large objects while ensuring predictable performance and high availability. We explore the use of this new composition mechanism by examining a common use case for the Riak data store.


pervasive computing and communications | 2017

Loquat: A framework for large-scale actor communication on edge networks

Christopher Meiklejohn; Peter Van Roy

We provide a lightweight decentralized publish-subscribe framework for supporting large-scale actor communication on edge networks. Our framework, called Loquat, does not depend on any reliable central nodes (e.g., data centers), provides reliability in the face of massive node failures and network partitioning, and provides scalability as the number of nodes increases. We consider that high reliability, i.e., that send operations reach close to 100% of live destination nodes, is a critical property for communication frameworks on edge networks. But reliability is difficult to achieve in a scalable way on edge networks because of the networks dynamicity, i.e., frequent node failures and partitioning. For example, both Internet of Things networks and mobile phone networks consist of devices that are often offline. To achieve reliability, our framework is based on two hybrid gossip algorithms, namely HyParView and Plumtree. Hybrid gossip algorithms combine gossip with other distributed algorithms to achieve both efficiency and high resilience. Our current implementation is written in Erlang and has demonstrated scalability up to 1024 nodes in Amazons cloud computing environment.


consumer communications and networking conference | 2016

Declarative, sliding window aggregations for computations at the edge

Christopher Meiklejohn; Seyed Hossein Haeri; Peter Van Roy

We present a work in progress report on a new programming model that supports declarative, functional style aggregation operations over devices at the edge. This programming model bridges the gap between the two competing approaches for large-scale aggregations, streaming all data back to a central coordinator versus designing an optimized, distributed algorithm, by leveraging convergent data structures, dynamic scoping, and a declarative functional semantics implemented by a distributed runtime. We motivate our design with an industrial application susceptible to message reordering and arbitrary message delays on an unreliable network.


european conference on computer systems | 2016

Towards property-based consistency verification

Paolo Viotti; Christopher Meiklejohn; Marko Vukolić

We propose a novel approach to the verification of consistency models implemented in distributed storage systems. We base our work on a declarative semantic model defining consistency conditions as predicates expressing ordering and visibility of operations. This model allows for a testing methodology focused on correctness properties rather than operational semantics. Finally, we present and discuss the design and preliminary implementation of a practical property-based consistency verification framework.


Electronic Proceedings in Theoretical Computer Science | 2016

Worlds of Events: Deduction with Partial Knowledge about Causality

Seyed Hossein Haeri; Peter Van Roy; Carlos Baquero; Christopher Meiklejohn

-This work was partially funded by the SyncFree project in the European Seventh Framework Programme under Grant Agreement 609551 and by the Erasmus Mundus Joint Doctorate Programme under Grant Agreement 2012-0030. Our special thanks to the SyncFree peers for their prolific comments on the early versions of this work. We would like to also thank the anonymous referees for their constructive discussion over the ICE forum.


Proceedings of the Posters & Demos Session on | 2014

Augmented inverted indexes to track causality in eventually consistent data stores

Christopher Meiklejohn

We propose a novel algorithm for providing highly-available and fault-tolerant distributed search queries in a Dynamo-inspired distributed data store. It leverages the use of advanced causality tracking mechanisms to allow quorum reads of an inverted index, while maintaining the ability to reason about the correct response. This algorithm improves on existing distributed search mechanisms by providing higher availability in the event of failures, given the use of multiple replicas.


symposium on reliable distributed systems | 2015

Selective Hearing: An Approach to Distributed, Eventually Consistent Edge Computation

Christopher Meiklejohn; Peter Van Roy

Collaboration


Dive into the Christopher Meiklejohn's collaboration.

Top Co-Authors

Avatar

Peter Van Roy

Université catholique de Louvain

View shared research outputs
Top Co-Authors

Avatar

Seyed Hossein Haeri

Université catholique de Louvain

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Manuel Bravo

Université catholique de Louvain

View shared research outputs
Top Co-Authors

Avatar

Zhongmiao Li

Université catholique de Louvain

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Annette Bieniusa

Kaiserslautern University of Technology

View shared research outputs
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge