PalDB 介绍

开篇

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

PalDB介绍

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

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


PalDB读取性能测试
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数据
PalDB存储结构
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,208评论 2 89
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,224评论 19 139
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,907评论 1 32
  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 30,045评论 8 265
  • 飞机落地的时候,已快午夜。因为双脚浮肿,我拎着鞋走出机场。 翌日一早,我在母亲病房一露头,第一句话说:“警告你,别...
    逆鳞之魂阅读 3,038评论 0 1

友情链接更多精彩内容