Git Product home page Git Product logo

dnbaker / comanche Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ibm/comanche

1.0 1.0 0.0 190.52 MB

Component-based development framework for memory-centric storage systems

License: Apache License 2.0

CMake 1.13% C++ 41.63% Cuda 0.16% Dockerfile 0.04% Shell 4.58% Makefile 0.71% C 50.61% Python 0.41% M4 0.03% Batchfile 0.01% HTML 0.03% Perl 0.09% Roff 0.39% Java 0.01% Emacs Lisp 0.18%

comanche's Introduction

Comanche

Framework for user-level compositional storage systems development. See wiki for more information.

Build Status Build Status

NOTE: Comanche is in its early stages of development and while we welcome collaboration from the open source community, this effort is not for the faint hearted and requires a certain level of systems expertise.

HowTo

  • Prepare (one time - although it may change across checkouts)
( cd deps
  sudo ./install-apts.sh # use ./install-yum.sh for fedora
)
  • Populate submodules
git submodule update --init --recursive
  • Build (now we enforce out-of-source build)
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX:PATH=`pwd`/dist ..
make bootstrap  # build the core and dependencies
make # build comanche components & tests, etc

To include python APIs etc. add BUILD_PYTHON_SUPPORT:

cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_PYTHON_SUPPORT=1 -DCMAKE_INSTALL_PREFIX:PATH=`pwd`/dist ..
  • Install libs into cmake installation prefix
make install
  • Load modules (XMS) and attach NVMe devices to SPDK
sudo ./load-module.sh
sudo ./tools/nvme_setup.sh /* optionally attach ALL Nvme devices to VFIO */
cmake .
make bootstrap
make
  • Build components in debug mode (e.g., with asan)
cmake -DCMAKE_BUILD_TYPE=Debug .

Other build options:

cmake -DCMAKE_BUILD_TYPE=ASAN .
cmake -DCMAKE_BUILD_TYPE=Release .
cmake -DCMAKE_BUILD_TYPE=NOOPT .
  • Prepare to run (use tools scripts)
  • SPDK/DPDK requires huge pages e.g. # echo 2000 > /proc/sys/vm/nr_hugepages

Tested Compilers and OS/HW

  • Software

    • Ubuntu 16.04.3 LTS and 18.04 LTS (x86_64)
    • Fedora 27 (x86_64)
    • gcc 5.4
    • clang 3.8.0
  • Hardware

    • Intel x86
    • Intel PC3700 and P4800X NVMe SSD
    • Samsung P1725a SSD
  • Change compiler preference on Ubuntu with:

    'sudo update-alternatives --config c++'
    'sudo update-alternatives --config cc' 

Compiling for debug

DPDK

export EXTRA_CFLAGS='-O0 -g'

SPDK

CONFIG_DEBUG=y (command line or CONFIG file)

Conventions

C++ style guide - https://genode.org/documentation/developer-resources/coding_style

comanche's People

Contributors

dickeycl avatar dwaddington avatar fengggli avatar fengggli2 avatar kant avatar tjanssen3 avatar

Stargazers

 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.