An open API service indexing awesome lists of open source software.

https://github.com/youngyangyang04/skiplist-java

A tiny KV storage based on skiplist written in Java language| 使用Java开发,基于跳表实现的轻量级键值数据库🔥🔥 🚀
https://github.com/youngyangyang04/skiplist-java

Last synced: 7 months ago
JSON representation

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

Awesome Lists containing this project

README

          

# 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 |