最新 最热

LevelDB Put如何写入数据

LevelDB Put如何写入数据leveldb插入数据步骤用户输入的kv数据首先组装为wal log entry写入到wal log中然后将kv数据从内存中的wal log entry解析为memtable中的数据最后在插入到memtable中,完成此次数据的put操作写入...

2022-08-17
4

levelDB 的版本控制[通俗易懂]

在一个使用levelDB的服务中,必然存在多个线程同时访问数据库的情况。例如,如果正好有thread2正在访问sstable4。与此同时,thread1在写数据时,发生了compaction,level0中的sstable1需要与level1中的sstable4进行compaction,...

2022-07-25
2

LSM-Tree - LevelDb之LRU缓存

LRU缓存在各种开源组件中都有使用的场景,常常用于做冷热数据和淘汰策略,使用LRU主要有三点。

2022-07-10
2

谷歌三件套 - Bigtable

如标题所言,这一篇文章简单介绍BigTable,其实个人更建议看LevelDB这款开源数据库,因为这数据库也是Bigtable的作者 JeffreyDean 设计的,很多内容不能说像简直就是一模一样。...

2022-05-21
2

LSM-Tree - LevelDb Skiplist跳表

跳表(SkipList)是由William Pugh提出的。他在论文《Skip lists: a probabilistic alternative to balanced trees》中详细地介绍了有关跳表结构、插入删除操作的细节。

2022-05-19
2

leveldb源码分析--写数据

由于WAL日志文件和MemTable内存结构是全局共享资源,在多线程同时写入数据时,需加互斥锁来保证操作的隔离性。考虑到写WAL涉及磁盘的写入操作,耗时较久,会影响数据写入的并发性能。...

2021-03-22
2

2020-12-23:如何保证MQ的高可用?

Master-Slave 部署方式主从热备,方式包括通过共享存储目录来实现(shared filesystem Master-Slave)、通过共享数据库来实现(shared database Master-Slave)、5.9版本后新特性使用 ZooKeeper 协调选择 master(Replicate...

2020-12-24
2

LevelDB原理解析:数据的读写与合并是怎样发生的?

导语 | LevelDB是一款十分优秀的存储引擎,具有极高的数据读写性能,尤其是写入性能,在笔者经历的多个项目中都有用到,因此本文打算结合LevelDB的部分源码对 LevelDB进行介绍,首先会介绍LevelDB的整体架构,然后围绕数据读写流...

2020-12-23
3

掌握了LSM架构,你就掌握了90%的分布式数据库

很多的数据库现在都在使用LSM tree作为其核心结构,因为它可以提供非常高的写入吞吐量。一些分布式数据库比如Bigtable、HBase、LevelDB、SQLite4、Tarantool、RocksDB、WiredTiger(MongoDB新一代的引擎)、Apache Cassand...

2020-11-03
2

LevelDB 完全解析(7):初始化

options - 打开/创建 LevelDB 实例的配置参数。 dbname - 保存数据的目录名。 dbptr - 初始化成功的 LevelDB 实例保存在 *dbptr。

2020-05-26
2