Skip to content

skyhookdm/libkinetic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

libkinetic

Client library for connecting to, and communicating with, a kinetic key-value server.

Build

Prequisites

Ubuntu

  • sudo apt install build-essential autoconf libtool libssl-dev libreadline-dev pkg-config

Google Protobuf v2.6.1

Clone the source

Prep protobuf-c

  • cd libkinetic/vendor/protobuf-c
  • ./autogen.sh
  • cd ../../..

Build

  • cd libkinetic
  • make
  • make dist

API Overview

Library Overview

Figure 1 Overview of library modules and how they fit in to a high-level overview of the lifecycle of a kinetic command.

Blocking Operations

Each blocking kinetic interface operation (e.g. ki_del) encompasses the end to end logic of:

1. Access connection configuration

2. Validate existence of function arguments

3. Validate values of function arguments

4. Create the kio (kinetic IO) structure

5. Populate the request data of the kio structure (`kio->kio_sendmsg`)

6. Pack request data (into protobufs) and send to the kinetic server

7. Receive the response data from the kinetic server (`kio->kio_recvmsg`)

8. Unpack response data into data structure (e.g. `kv_t`, `keyrange_t`, etc.)