Skip to content

A tiny KV storage based on skiplist written in Java language| 使用Java开发,基于跳表实现的轻量级键值数据库🔥🔥 🚀

Notifications You must be signed in to change notification settings

youngyangyang04/Skiplist-Java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 

Repository files navigation

Skiplist-Java

KV 存储引擎

众所周知,levedb,rockdb 其核心存储引擎的数据结构就是跳表。

在 Redis 中,跳表被用于实现有序集合(sorted sets)数据类型。

本项目就是基于跳表实现的轻量级键值型存储引擎,使用 Java 实现。插入数据、删除数据、查询数据、数据展示、数据落盘、文件加载数据等功能。

项目中文件

  • SkipList.java:跳表的核心实现
  • StressTest.java:对跳表进行压力测试

存储引擎数据表现

  • 跳表最大树高为 32
  • 在单线程环境下测试(多线程反而会消耗更多时间以及资源,因为在插入操作时进行加锁操作
  • 机器配置:MacOS(14.3.1) M1 芯片 + 16 GB 内存

插入操作

插入数据规模(万条) 耗时(毫秒) QPS
10 129 775,194
50 935 534,759
100 2198 454,959

读取操作

读取数据规模(万条) 耗时(毫秒) QPS
10 101 990,099
50 813 615,006
100 2130 469,484

About

A tiny KV storage based on skiplist written in Java language| 使用Java开发,基于跳表实现的轻量级键值数据库🔥🔥 🚀

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages