Skip to content

An implementation of the persistent skiplist based on Intel Optane Persistent Memory. It is with Intel's pmemkv as an storage engine

Notifications You must be signed in to change notification settings

4paradigm/pskiplist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 

Repository files navigation

pskiplist

An implementation of the persistent skiplist based on Intel Optane Persistent Memory. The persistent skiplist data structure is firstly introduced in a VLDB'21 paper ("Optimizing In-memory Database Engine for AI-powered On-line Decision Augmentation Using Persistent Memory". Cheng Chen, Jun Yang, Mian Lu, Taize Wang, Zhao Zheng, Yuqiang Chen, Wenyuan Dai, Bingsheng He, Weng-Fai Wong, Guoan Wu, Yuping Zhao, Andy Rudoff).

With the simplicity and good performance, skiplist is widely used in many scenarios where the sorted keys are needed to support efficient scan operations. For example, Redis uses skiplist to implement its 'sorted set' data structure, RocksDB's memtable has a InlineSkiplist implemetation. Internally, our RTIDB, an in-memory database system specifically designed for feature engineering and online feature extraction for AI applications, uses a double-layered skiplist to manage all the in-memory data.

It is now being actively developed to support more data storage systems (e.g., PmemKV, RocksDB, Kafka and etc.) as the underlying core data structure.

Usage

PmemStore - PmemKV with the new storage engine PSKIPLIST

Please checkout our PmemStore to find out how to use the persistent skiplist storage engine (ENGINE_PSKIPLIST) as the storage engine for a persistent key-value store.

Latest updates will also be periodically merged to Intel's PmemKV to keep upstream.

Stay tuned for the integration with more systems/applications.

About

An implementation of the persistent skiplist based on Intel Optane Persistent Memory. It is with Intel's pmemkv as an storage engine

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages