Skip to content

basho-labs/riak_kinetic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

riak_kinetic

This repository provides the Erlang files necessary for Riak to use Seagate Kinetic Drives for key-value storage.

For more information about Seagate's Kinetic Drive, please see developers.seagate.com.

Note that the Erlang code here is experimental and so is subject to changes that can break backwards compatibility for stored data or for the network protocol between Riak and Kinetic Drives.

Installation

These instructions assume you're willing to perform a source install of Riak 1.4.2 from github. The instructions also assume you already have Seagate's Kinetic Drive simulator, which you can get from github.com/Seagate/Kinetic-Preview, already running on localhost at port 8123.

These instructions also assume you've already installed Erlang, as explained here.

Note that the riak-install script at the top level of this repository contains all the installation commands, so feel free to execute the script instead of copying and pasting the following commands.

First, clone this repository:

git clone https://github.com/basho-labs/riak_kinetic.git

Next, clone riak and fetch all its dependencies:

git clone https://github.com/basho/riak.git
cd riak
git checkout riak-1.4.2
./rebar get-deps

Next, install the ekinetic driver and dependencies as a dependency for riak_kv:

mkdir -p deps/ekinetic/ebin
cp ../riak_kinetic/ebin/ekinetic* ../riak_kinetic/ebin/kinetic* deps/ekinetic/ebin
( cd deps/protobuffs ; git checkout master )
perl -i -pe 's/(riak_pipe)/\1,ekinetic/' deps/riak_kv/src/riak_kv.app.src

Now, make a riak devrel release and install the riak_kv_ekinetic_backend as shown below. Note that if you're running Seagate's Kinetic Drive simulator on an endpoint other than localhost port 8123, please adjust the perl command below appropriately.

make devrel
for i in {1..5} ; do
  cp ../riak_kinetic/ebin/riak_kv_ekinetic_backend.beam dev/dev$i/lib/basho-patches
  perl -i -pe 's/(storage_backend,\s*)[^}]+/\1riak_kv_ekinetic_backend/; print "{ekinetic, [{ip_port,{\"localhost\",8123}}]},\n" if (/%%\s*Bitcask/);' dev/dev$i/etc/app.config
done

After this, please start riak as described here, starting with the second step (cd dev). Note that if you ran the riak-install script, you need to cd riak/dev instead before proceeding with these steps.

About

Riak storage backend and ekinetic driver for Seagate Kinetic Drives

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages