Skip to content

OpenMPDK/NKV

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

# SDK for Samsung-KV Device(s) - Network KV (NKV) API


## Root Directory Structure

  * README_INSTALL.txt  --> README for the installation and run test application on top of KV device(s)
  * README              --> README for NKV project
  * config              --> Sample config file to run NKV app
  * build.sh            --> Script for Building entire NKV stack (including openmpdk) 
  * spec                --> NKV spec document for application Integration
  * include             --> Header files for application Integration
  * CMakeLists.txt      --> Cmake file (will be invoked by build.sh script)
  * src                 --> NKV library source code
	  * include_private     --> Include files for internal use
	  * nkv_api.cpp         --> Library entry point
	  * test                --> Directory containing sample test application code
	  * nkv_framework.cpp   --> Library framework implementation
	  * openmpdk            --> openmpdk is the Samsung opensource driver code base for communicating with KV devices
	  * logger              --> Log wrapper on top of log4cpp, log4cpp is added as submodule underneath
	
## Checking out the source

You can clone from github with

	git clone --recursive git@github.com/OpenMPDK/NKV.git

or, if you are not a github user,

	git clone --recursive https://github.com/OpenMPDK/NKV.git

## Prerequisites

### Install dependent packages

	sudo yum group install "Development Tools"
	sudo yum install cmake boost-devel numactl-devel tbb-devel libcurl-devel

## Building SDK

   # SNIA compatible openmpdk APIs
	cd NKV/
	sudo ./build.sh kdd

   # Samsung openmpdk APIs
        cd NKV/
        sudo ./build.sh kdd-samsung

   # SNIA compatible openmpdk apis with emulator support
        cd NKV/
        sudo ./build.sh emul


   * the above build script creates build directory, just above current working directory with appending **\_out** and builds under it. ex)"NKV/../NKV_out"
   * build generates nkv bins "nkv-sdk-bin-TIMESTAMP.tgz" which contains shared libraries and cli test tool
   * SNIA compatible binaries doesn't support async APIs for NKV yet
   * The above shared libraries are used to integrate with MINIO S3 APP server, refer [minio](https://github.com/minio/minio/blob/nkv/docs/nkv/README.md) for more info

About

APIs at host software level abstracting multiple direct attached or remote KV SSDs (NVMeOF coming soon)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published