You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Niko PLP bac5e73ead removed unused binary libs for windows 10 months ago
..
library removed unused binary libs for windows 10 months ago
test_linux Merge commit 'b27419fd24fa0872febcda63dd89e081b4bc3765' 2 years ago
test_macos Merge commit '46d37bf23a5d16e084677eee6440f3658e8a9715' 2 years ago
test_plain Merge commit 'b27419fd24fa0872febcda63dd89e081b4bc3765' 2 years ago
tests Merge commit '081ffa92ee05d06c98eab5222656d7b6b34fb042' as 'librocksdb-sys/rocksdb' 2 years ago
.gitignore Merge commit 'b27419fd24fa0872febcda63dd89e081b4bc3765' 2 years ago
CODE_OF_CONDUCT.md Merge commit '081ffa92ee05d06c98eab5222656d7b6b34fb042' as 'librocksdb-sys/rocksdb' 2 years ago
CONTRIBUTING.md Merge commit '081ffa92ee05d06c98eab5222656d7b6b34fb042' as 'librocksdb-sys/rocksdb' 2 years ago
LICENSE Merge commit '081ffa92ee05d06c98eab5222656d7b6b34fb042' as 'librocksdb-sys/rocksdb' 2 years ago
README.md Merge commit '081ffa92ee05d06c98eab5222656d7b6b34fb042' as 'librocksdb-sys/rocksdb' 2 years ago
ippcp.mk Merge commit 'b27419fd24fa0872febcda63dd89e081b4bc3765' 2 years ago
ippcp_db_bench_env.cc Merge commit '081ffa92ee05d06c98eab5222656d7b6b34fb042' as 'librocksdb-sys/rocksdb' 2 years ago
ippcp_provider.cc Merge commit '081ffa92ee05d06c98eab5222656d7b6b34fb042' as 'librocksdb-sys/rocksdb' 2 years ago
ippcp_provider.h Merge commit '081ffa92ee05d06c98eab5222656d7b6b34fb042' as 'librocksdb-sys/rocksdb' 2 years ago
security.md Merge commit '081ffa92ee05d06c98eab5222656d7b6b34fb042' as 'librocksdb-sys/rocksdb' 2 years ago

README.md

Intel® Integrated Performance Primitives Cryptography Plugin for RocksDB* Storage Engine

ippcp is an encryption provider for RocksDB that is based on Intel's Integrated Performance Primitives for Cryptography (IPPCP). IPPCP is a lightweight cryptography library that is highly optimized for various Intel CPUs. It's used here to provide AES-128/192/256 encryption, with a CTR mode of operation, for RocksDB.

Prerequisite

There is a dependency on ipp cryptograhy library (ippcp) which needs to be installed. Please refer below link for installtion. https://www.intel.com/content/www/us/en/develop/documentation/get-started-with-ipp-crypto-for-oneapi-linux/top.html

Once Installed source /opt/intel/oneapi/ippcp/latest/env/var.sh

Build

The code first needs to be linked under RocksDB's "plugin/" directory. In your RocksDB directory, run:

$ pushd ./plugin/
$ git clone https://github.com/intel/ippcp-plugin-rocksdb.git ippcp

Next, we can build and install RocksDB with this plugin as follows:

$ popd
$ make clean && ROCKSDB_PLUGINS=ippcp make -j48 release

Testing

LIB_MODE=shared make -j release

  • Go to the tests directory of ippcp plugin and build as mentioned below:
cd plugin/ippcp/tests/
mkdir build
cd build
cmake -DROCKSDB_PATH=<rocksdb_install_directory> -DIPPCRYPTOROOT=<ippcp_install_directory> ..
make run

Tool usage

For RocksDB binaries (such as the db_bench we built above), the plugin can be enabled through configuration. db_bench in particular takes a --fs_uri where we can specify "dedupfs" , which is the name registered by this plugin. Example usage:

$ ./db_bench --benchmarks=fillseq --env_uri=ippcp_db_bench_env --compression_type=none

Application usage

The plugin's interface is also exposed to applications, which can enable it either through configuration or through code. Example available under the "examples/" directory.