随笔分类 -  存储

leveldb的搜索
摘要:参考: http://taobaofed.org/blog/2017/07/05/leveldb-analysis/ 和leveldb源码(block.cc的Seek函数)。 leveldb的key、value是放在一起的,可以scan,但搜索不是全量搜索,而和搜索相关的是,bloom filter 阅读全文
posted @ 2018-09-03 23:33 dearplain 阅读(712) 评论(0) 推荐(0)
分布式存储bfs
摘要:来自bilibili的bfs,很喜欢它的分层结构,我认为,把它改造成类似hadoop的平台,也是可以的。 1.实现分布式存储 其实就是同步元信息和调度的问题,同步元信息可以使用zk,调度具体看应用。bfs的调度是随机的,根据硬盘容量来决定。bfs的调度和存储是分开的,因此可以定制,这也是它的优点之一 阅读全文
posted @ 2018-08-30 23:55 dearplain 阅读(967) 评论(0) 推荐(0)
boltdb的实现和改进
摘要:整个代码不是很复杂,可以从代码中理解如何实现。 特点:btree,很小巧,但实现了完整事务机制,稳定,即使丢电也不会导致数据库错误。 整个结构如下: meta page (前两页) > freelist page (第三页) | > bucket page (属于leaf page 开始是第4页) 阅读全文
posted @ 2017-12-09 16:02 dearplain 阅读(2040) 评论(2) 推荐(0)
如何保证数据掉电不损坏?
摘要:1. 建议使用ext3 ext4等日志式文件系统,并打开journal。 2. 文件系统无法保证write是原子的,所以,建议直接使用一些优秀的数据库保存数据或者配置,比如sqlite。 sqlite可以考虑打开synchronous = FULL, fullfsync = 1。如果还是出现文件损坏 阅读全文
posted @ 2017-12-06 17:15 dearplain 阅读(1121) 评论(0) 推荐(0)