Code Monkey home page Code Monkey logo

mdlin's Introduction

Gryff

What is Gryff?

Gryff is a replicated storage system that provides the shared object programming interface. Objects of arbitrary size are accessed with read, write, and read-modify-write operations. Read and write operations correspond to the simplified get/put interface of key-value stores and they comprise the bulk of many application workloads. Read-modify-write operations allow clients to atomically read and modify the value of an object, which enables strong synchronization such as compare-and-swaps or conditional writes.

What makes Gryff novel?

Gryff provides its interface with low read tail latency relative to state-of-the-art linearizable replication protocols. It does so by unifying two existing techniques for replicated storage: state machine replication and shared registers. State machine replication is necessary to implement strong synchronization primitives, but it has fundamental limitations that inhibit practical systems from achieving low read tail latency. Shared register protocols, on the other hand, provide a read/write interface with low read tail latency, but are fundamentally too weak to implement strong synchronization. Gryff safely and efficiently unifies these two techniques to achieve the best of both.

How does Gryff work?

Our NSDI 2020 paper describes the motivation, design, implementation, and evaluation of Gryff.

What is in this repository?

This repository contains the Go implementations of:

  • Gryff
  • ABD
  • EPaxos
  • (classic) MultiPaxos
  • Mencius
  • Generalized Paxos

The implementations of EPaxos, MultiPaxos, Mencius, and Generalized Paxos were created by Iulian Moraru, David G. Andersen, and Michael Kaminsky as part of the EPaxos project.

This repository also contains the experimental scripts and configuration used in our NSDI 2020 paper. The experiments may be run on CloudLab using these scripts. A more detailed explanation of how to run these experiments is coming soon!

AUTHORS:

Matthew Burke -- Cornell University

Audrey Cheng, Wyatt Lloyd -- Princeton University

mdlin's People

Contributors

gakalaba avatar jmhelt avatar sktollman avatar alevy avatar imoraru avatar kyunghoj avatar

Stargazers

Jordan Safer avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.