Code Monkey home page Code Monkey logo

xstore's Introduction

XStore: an RDMA-based Ordered Key-Value Store

XStore is an RDMA-enabled ordered key-value store targeted at a client-sever setting. Specifically, the server has an in-memory B+Tree; and the client uses one-sided RDMA READs to traverse the B+Tree. To accelerate the lookup, we deploy a learned cache (xcache) at the client to accomplish the traversal in one round-trip (if the learned cache is all cached). Even if the xcahe is not cached, XStore client only needs at most 2 round-trips for the traversal.

Feature Highlights

  • High-performance & scalable in-memory ordered key-value store
  • High-performance learned index with a two-layer RMI structure as a cache
  • Various machine learning models pre-built
  • Fast communication by leveraging RDMA feature of InfiniBand network

Features not supported yet

This codebase has the basic functionality of XStore, including basic XCache training, deployment, various learned models. It also provides various benchmark code for XCache analysis and static benchmark code. Other features will be released soon.

Getting Started

XStore is a header-only library. Basically, git clone https://github.com/SJTU-IPADS/xstore.git xstore-open --recursive is all you need to use XStore. To use XStore, just include the required header to your project. For instance, xkv_core/src/xtree/mod.hh provides the implementation of XTree.

XStore also provides various benchmark and unit tests code. To build these, please check the following documents:

License

XStore uses SATA License (Star And Thank Author License, originally here) :)

If you use XStore in your research, please cite our paper:

@inproceedings {xstore2020,
    author = {Xingda Wei and Rong Chen and Haibo Chen},
    title = {Fast RDMA-based Ordered Key-Value Store using Remote Learned Cache},
    booktitle = {14th {USENIX} Symposium on Operating Systems Design and Implementation ({OSDI} 20)},
    year = {2020},
    isbn = {978-1-939133-19-9},
    pages = {117--135},
    url = {https://www.usenix.org/conference/osdi20/presentation/wei},
    publisher = {{USENIX} Association},
    month = nov,
}

Academic and Reference Papers

[OSDI] Fast RDMA-based Ordered Key-Value Store using Remote Learned Cache. Xingda Wei and Rong Chen and Haibo Chen. Proceedings of 14th USENIX Symposium on Operating Systems Design and Implementation, Nov, 2020.

xstore's People

Contributors

wxdwfc avatar projectmitosisos avatar

Watchers

James Cloos 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.