Coder Social home page Coder Social logo

blsm's Introduction

bLSM initial release
====================

This is an initial release of bLSM, which is scheduled to appear in 
Sigmod 2012.  bLSM is a general-purpose log structured merge tree that
targets highly-available, scalable, key-value storage systems.

We have been careful to minimize the number of seeks performed by read 
and scan optimizations, and have introduced a new spring-and-gear "level 
scheduler" that bounds write latencies.

The implementation is currently geared toward performance testing, and 
has a number of limitations that we plan to address in short order:

 * Recovery does not work until after enough data has been inserted to 
   start filling disk with data.

 * bLSM does not take advantage of write skew to reduce write 
   amplification.  As a side effect, certain heavily skewed workloads will 
   lead to unacceptably write latencies.  We plan to address this by
   partitioning the state on disk, and scheduling merges based on the heat of
   each partition.

In the mean time, feel free to drop me a line!

Licensing
=========

bLSM uses several 3rd party open source libraries and tools.

This file summarizes the tools used, their purpose, and the licenses
under which they're released.  Portions of bLSM are based upon Stasis'
"Rose" LSM-Tree implementation.

http://code.google.com/p/stasis/source/browse/trunk/benchmarks/rose.cpp

Except as specifically stated below, the 3rd party software packages
listed below are not distributed as part of this project, but instead
are separately downloaded from the respective provider and built on
the developer’s machine as a pre-build step.

bLSM relies upon Stasis, a transactional storage library written and
maintained by the authors of bLSM.

TCL/TK license (BSD-style)
http://code.google.com/p/stasis/source/browse/trunk/COPYING

http://code.google.com/p/stasis/

bLSM includes an example MapKeeper-compatible storage server, which
relies upon the MapKeeper prototocol specification, which we also
maintain:

https://github.com/m1ch1/mapkeeper
Apache 2.0 license: https://github.com/m1ch1/mapkeeper/blob/master/LICENSE.txt
The generated MapKeeper files (and, therefore the bLSM MapKeeper
bindings) also require Thrift and Boost.

Thrift is a serialization and RPC framework:
http://thrift.apache.org/
Apache 2.0 license: http://svn.apache.org/viewvc/thrift/trunk/LICENSE?view=markup

Boost is a collection of utility libraries for C++:
http://www.boost.org/
Boost Software License: http://www.boost.org/users/license.html

blsm's People

Stargazers

 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.