Scalable-Key-Value / code

Source code of the Scalable Key/Value Store (SKV)
Eclipse Public License 1.0
5 stars 9 forks source link
  1. CONTENT

    1. configuration
    2. compile
    3. install
    4. runtime env
    5. troubleshooting

================

  1. CONFIGURATION

SKV uses cmake to build libraries and executables. We require cmake version 2.8.

After downloading the skv source (lets say to $HOME/skv), you create a build directory (e.g. $HOME/skv_build).

Go into the build directory and start configuring the build:

$> cmake ../skv [OPTIONS]

We've prepared a few site-specific cmake files in CMake/Site/. These files set essential paths and config options for a particular site. A site could also be just your computer. You might want to look into CMake/Site/pers_example.cmake. This file sets the path to the MPI compilers. If you need different settings, you can either modify the file directly or create your own and then run:

$> cmake ../skv -DSKV_SITE:STRING=

Predefined sitenames are ykt, cscs, pers_example (the name of the file in CMake/Site/ without the .cmake extension)

Alternatively, you can run:

$> ccmake ../skv

to start a gui-like cmake configuration tool that allows you to set/adjust individual variables. You can set the SKV_SITE there and configure.

Note on multi-configuration requirements, in case your environment requires different build configurations (for example if you run clients and servers on different architectures):

The cmake philosophy separates the build from the source. Therefore, if you need multiple build configurations, you'd just create a new build directory and configure the next/separate build in there.

================

  1. COMPILE

If configuration was successful, stay in the build directory and run

$> gmake

to build SKV.

================

  1. INSTALL

To install, run:

$> gmake install

You can also build packages for your Linux distribution by using cpack. For example:

$> cpack -G RPM

will create an RPM that can be used to install SKV.

================

  1. RUNTIME ENVIRONMENT

4.1 prerequisites and dependencies

Installation and setup of the following is not covered here:

4.2 SKV runtime

================

  1. TROUBLESHOOTING

    • Large Scale runs fail because of open file limit exceeded

    • when running SKV at a large scale - i.e. with many many clients, it is important to observe the user's limit for open file descriptors. The server needs at least one file desciptor per client (unless clients connect via the forwarder option).