Skip to content

本项目是一个基于跳表的轻量级键值存储数据库。

License

Notifications You must be signed in to change notification settings

liao123123123/SkipListDataBase

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

轻量级键值型存储数据库(SkipListDataBase)

熟知的非关系型数据库redis,其核心存储引擎的数据结构就是跳表。本项目是一个基于跳表的轻量级键值存储数据库。

主要接口

  • insertElement(插入数据)
  • deleteElement(删除数据)
  • searchElement(查询数据)
  • displayList(展示已存数据)
  • dumpFile(外部数据打印)
  • loadFile(加载数据)
  • size(返回数据规模)

项目运行

编译代码:

make                 // 编译 main.cpp
./bin/main num     // num为最大跳表树高(不大于10)

测试代码:

sh stress_test_start.sh

性能

插入操作(Insert)

采用随机插入数据测试:

为了避免实验偶然性:实验了十次取平均值:

插入数据数目/万条 耗时/秒
10 0.389503
50 2.40938
100 5.29607

每秒可处理写请求数(QPS): 19.77w

查询操作(Search)

为了避免实验偶然性:实验了十次取平均值:

查询数据数目/万条 耗时/秒
10 0.468989
50 2.1963
100 4.63294

每秒可处理读请求数(QPS): 21.92w

About

本项目是一个基于跳表的轻量级键值存储数据库。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages