Giter VIP home page Giter VIP logo

memo's Introduction

memo, an elastic and resilient key-value store

Logo - Memo

The memo project combines a value store (where you manipulate blocks and addresses) and a key-value store (where you manipulate arbitrary data and arbitrary keys).

memo is supported by Docker and is used as backend by the Infinit Storage Platform project.

What is the difference between the value store and the key-value store

The key-value store uses the value store to provide a higher-level interface like common key-value stores (etcd, ZooKeeper, etc.), where arbitrary data can be stored under an arbitrary name.

The value store is the lowest brick of the architecture, providing the fundamental object named blocks, declined in a few flavors. Those blocks are cryptographically protected, their addresses are chosen randomly to guarantee a homogeneous distribution, optimize data placement, fault tolerance and more. All operations are atomic. The main drawback being the responsability of keeping blocks addresses is transfered to the caller.

For more details you can consult When shoould I use the value store against the key-value store.

How to get memo

To download the source code and build memo by yourself, get it from GitHub.

git clone https://github.com/infinit/memo --recursive # Clone memo and its submodules.

Note: If you cloned it using the GitHub "clone" button, do not forget to run git submodule update --init --recursive!

How to build memo

Requirements

Core library

memo uses Elle, Infinit's core library.

Build system

memo uses Drake and has it as a submodule.

How to compile

For a detailed procedure, visit our wiki: How to build.

First you need to install Python dependencies.

sudo pip3 install -r requirements.txt

Note: If you don't want dependencies to be installed system-wide, you should consider using virtualenv.

Change directory to _build/<architecture> where you can find a generic Drake configuration script.

GNU/Linux

cd _build/linux64
./drake //build -j 4 # Build everything (using 4 jobs).

macOS

cd _build/osx
./drake //build -j 4 # Build everything (using 4 jobs).

This will result on bin/memo.

Maintainers

memo's People

Contributors

akimd avatar chris-crone avatar kiney avatar mefyl avatar mnottale avatar mycure avatar nicobarray avatar

Watchers

 avatar  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.