Skip to content

Latest commit

 

History

History
69 lines (49 loc) · 1.75 KB

README.md

File metadata and controls

69 lines (49 loc) · 1.75 KB

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.)