PalDB 介绍

简介: 开篇 PalDB在我的工作中被大面积使用,场景我就不描述了,这里我只想直白的说一句,这个系列的PalDB博文绝对是国内最详细的,如果有兴趣非常建议收藏了好好看看。

开篇

 PalDB在我的工作中被大面积使用,场景我就不描述了,这里我只想直白的说一句,这个系列的PalDB博文绝对是国内最详细的,如果有兴趣非常建议收藏了好好看看。
 整个系列的文章会讲清楚PalDB的存储结构,写过程,读过程这三个核心过程,然后会创新的写明我们这边大神是如何解决线程不安全问题。网上绝无仅有,感谢组内大神!!!

PalDB介绍

PalDB 是一个由 LinkedIn 开源并使用 Java 编写的一次写入键值存储数据库。当存储创建后所有的操作都是禁止的,它是只读的。这样做的目的是提升读操作的性能并降低内存占用。LinkedIn 的建议是使用它来存储 side data,他们对于 side data 的定义是“一个过程以完成其工作而需要的额外的只读数据。

 PalDB的性能还是非常客观的,具体测试数据参考官方资料如下图


img_90a3f8b2fd6b1533a3e7e9f6a73a9ce9.png
PalDB读取性能测试
img_634347c1045057d315f3aaef2e563df7.png
PalDB占用内存数据


PalDB用法介绍

//写数据
StoreWriter writer = PalDB.createWriter(new File("store.paldb"));
writer.put("foo", "bar");
writer.put(1213, new int[] {1, 2, 3});
writer.close();
//读数据
StoreReader reader = PalDB.createReader(new File("store.paldb"));
String val1 = reader.get("foo");
int[] val2 = reader.get(1213);
reader.close();


PalDB存储结构

 PalDB的文件存储结构很重要,后面分析数据的读写过程都需要参考下面这张图,可以很自豪的说全网最详细的PalDB的存储格式就是下图了。

 PalDB是采用文件直接存储数据的,所有的key/value数据都是存在文件当中,在文件内部数据存储主要分为三大块,数据之间通过位移进行关联:

  • 元数据:存储整个PalDB数据存储的元数据信息,通过位移和key数据&value数据进行关联。
  • key数据:存储key数据,通过位移与value数据进行关联
  • value数据:存储value数据
img_9bf47af41ad5d2f3a2311af834eb4e2f.png
PalDB存储结构
目录
相关文章
|
供应链 机器人
什么是RPA?
什么是RPA?
370 0
|
SQL Java 数据库连接
JPA
JPA
164 1
|
Kubernetes 网络协议 应用服务中间件
k8s的HPA
实现pod的自动伸缩
522 0
|
Java 程序员 Spring
new ParameterizedTypeReference<YourType>(){}
好的技术,是项目成功的简单答案
5384 0
|
数据安全/隐私保护 开发工具 API
|
Android开发 开发者
|
索引
pageinspect介绍
pageinspect介绍
1356 0