Giter Site home page Giter Site logo

jwma2012 / indexfs Goto Github PK

View Code? Open in Web Editor NEW

This project forked from zhengqmark/indexfs-0.4

0.0 1.0 0.0 522 KB

New IndexFS core

License: BSD 3-Clause "New" or "Revised" License

Makefile 2.34% C++ 81.41% Shell 2.17% C 8.46% M4 1.93% XSLT 0.08% HTML 3.11% CSS 0.07% Thrift 0.43%

indexfs's Introduction

IndexFS - 0.4.x

IndexFS is designed as file system middleware layered on top of an existing cluster file system deployment to improve metadata performance as well as small file operation efficiency of the original file system. IndexFS reuses the data path of the underlying file system and packs directory entries, file attributes, and small file data into a set of large, immutable, log-structured, and indexed, data structures (SSTables) that are stored in the underlying file system. Our experiments show that IndexFS is able to our-perform existing solutions such as PVFS, Lustre, and HDFS, by as much as orders of magnitude.

The following is a guide describing how to install and run IndexFS on your local Linux machine. Please visit our project home at http://www.pdl.cmu.edu/indexfs for more information. Please also note that the current implementation of IndexFS is not of production quality and is recommended to be used for research purpose only. Thanks a lot.

INDEXFS INSTALLATION GUIDE

  1. System Prerequisites
  2. Build from Source
  3. IndexFS in Standalone Mode

SYSTEM PREREQUISITES

IndexFS depends on gflags-2.1.2+, glog-0.3.4+, and thrift-0.9.3+. They can be downloaded from https://www.assembla.com/spaces/deltafs/documents. In order to build IndexFS from its source, you will also need a C++ building system such as GUN including gcc, g++, make, autoconf, automake, and libtool.

In addition, some benchmarks that IndexFS uses to evaluate system performance are build with MPI -- at least one implementation of MPI (such as MPICH) should be present for these benchmarks to run.

STEP-BY-STEP INSTRUCTIONS

INSTALL SYSTEM PACKAGES
  • Ubuntu

      sudo apt-get install gcc g++ make flex bison
      sudo apt-get install autoconf automake libtool pkg-config
      sudo apt-get install zlib1g-dev libsnappy-dev
      sudo apt-get install libboost-all-dev libevent-dev libssl-dev
      sudo apt-get install libfuse-dev libmpich-dev mpich pdsh
    
Build & Install Depends

Use GNU standard building process to build and install gflags, glog, and thrift, in that order.

  • To build gflags and glog:

      ./configure && make && sudo make install
    
  • To build thrift:

      ./configure --without-qt4 --without-qt5 --without-c_glib \
                  --without-csharp --without-java --without-erlang \
                  --without-nodejs --without-lua --without-python \
                  --without-perl --without-php --without-php_extension  \
                  --without-ruby --without-haskell --without-go \
                  --without-haxe --without-d --enable-tests=no --enable-tutorial=no
      make && sudo make install
    

BUILD INDEXFS FROM SOURCE

Build IndexFS

IndexFS also follows GNU standard building process. For your convenience, IndexFS provides bootstrap.sh which does this automatically for you.

  • To build IndexFS:

      autoreconf -ifv && bash bootstrap.sh
    

NB: you don't have to install IndexFS into your system. Our scripts will not assume IndexFS binaries to be accessible from your system path.

INDEXFS IN STANDALONE MODE

Run standalone IndexFS

Running IndexFS in standalone mode is a quick way to test if IndexFS has been successfully built.

By being standalone, we mean running one single IndexFS (metadata) server instance and multiple client processes at one single machine. So everything is in one box.

  • To start IndexFS server:

      $INDEXFS_HOME/sbin/start-idxfs.sh
    
  • To start IndexFS clients (processes) and run tests:

      $INDEXFS_HOME/sbin/tree-test.sh
    
  • To stop IndexFS server:

      $INDEXFS_HOME/sbin/stop-idxfs.sh
    

In the above scripts, IndexFS server will be started as a daemon running in the background. It's pid will be remembered at /tmp/indexfs/run/s0/indexfs_server.pid.0.

A simple MPI-based test will be performed against IndexFS in terms of its metadata path. The test will fork 2 client processes to collectively create and stat 8000 files under a single shared directory. This test is expected to conclude within 1 second.

indexfs's People

Contributors

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