anna

  • Owner: keith/swift.vim
  • Platform:
  • License:: MIT License
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

Anna: A KVS for any scale

Note: This is a snapshot of the Anna codebase as of March, 2018.
The latest codebase is released and maintained here (https://github.com/fluent-project/fluent).

Anna is an in-memory KVS that delivers high performance at multiple scales, from a single core machine to NUMA to geo-distributed deployment. It also provides a wide spectrum of coordination-free isolation levels that aim to meet the consistency requirements of different applications.

Build Instruction (Ubuntu):

  1. Install Clang and libc++, run:
    sudo apt-get update.
    sudo apt-get install -y build-essential autoconf automake libtool curl make g++ unzip pkg-config wget clang-3.9.
    sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-3.9 1.
    sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-3.9 1.
    sudo apt-get install -y libc++-dev libc++abi-dev libtbb-dev.

  2. Install cmake, run:
    wget https://cmake.org/files/v3.9/cmake-3.9.4-Linux-x86_64.tar.gz.
    tar xvzf cmake-3.9.4-Linux-x86_64.tar.gz.
    mv cmake-3.9.4-Linux-x86_64 /usr/bin/cmake.
    export PATH=$PATH:/usr/bin/cmake/bin.
    rm cmake-3.9.4-Linux-x86_64.tar.gz.

  3. Install protobuf: after cloning the protobuf repo, run:
    ./autogen.sh.
    ./configure CXX=clang++ CXXFLAGS='-std=c++11 -stdlib=libc++ -O3 -g'.
    make.
    make check.
    sudo make install.
    ldconfig.

  4. Build KVS, run:
    bash scripts/build_release.sh.
    (This command will build a KVS that provides last-writer-win consistency. Lattice composition for other consistency levels can be found in kvs/include)

IP Configuration:

For each server node:

  1. The ip of the current node should be stored in conf/server/server_ip.txt.
  2. The ip of the seed node should be stored in conf/server/seed_server.txt. The seed node can be any proxy node.
  3. The ip of all the proxy nodes should be stored in conf/server/proxy_address.txt. Each line contains a single proxy ip.

For each proxy node:

  1. The ip of the current node should be stored in conf/proxy/proxy_ip.txt.

For each user/benchmark node:

  1. The ip of the current node should be stored in conf/user/user_ip.txt.
  2. The ip of all the proxy nodes should be stored in conf/user/proxy_address.txt. Each line contains a single proxy ip.

Run Instruction:

Please start the proxy first, and then the server and client.

  1. Start a proxy by running ./build/kvs/kvs_proxy.
  2. Start a server by running ./build/kvs/kvs_server.
  3. Start a client by running ./build/kvs/kvs_user.

The accepted input formats are GET $key and PUT $key $value.

Main metrics

Overview
Name With Ownerkeith/swift.vim
Primary LanguageVim Script
Program languageCMake (Language Count: 3)
Platform
License:MIT License
所有者活动
Created At2014-06-13 18:08:01
Pushed At2025-02-11 17:33:03
Last Commit At2025-02-12 02:33:03
Release Count0
用户参与
Stargazers Count821
Watchers Count22
Fork Count44
Commits Count252
Has Issues Enabled
Issues Count84
Issue Open Count19
Pull Requests Count62
Pull Requests Open Count4
Pull Requests Close Count9
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private