分布式专题——详解Google levelDB底层原理
本文始发于个人公众号: TechFlow ,原创不易,求个关注 今天是 分布式专题的第10篇 文章,我们继续来聊聊LSMT这个数据结构。 LSMT是一个在分布式系统当中应用非常广泛,并且原理直观简单的数据结构。在上一篇文章当中我们进行了详细的讨论,有所遗忘或者是新关注的同学可以点击下方的链接回顾一下上一讲的内容。 分布式——吞吐量巨强、Hbase的承载者 LSMT leveldb简介 上一篇的内容我们介绍的算是最基础版本的LSMT,在这一篇当中,我们来具体看下levelDB这个经典的KV数据库引擎当中LSMT的使用以及优化。 leveldb,既然是叫做db,显然和数据库有关。和一般的关系型数据库不同,它内部的数据全部以KV也就是key-value形式存储,并且不支持结构化的SQL进行数据查询,只支持api调用。也就是说它就是一个典型的我们常说的noSQL数据引擎库。它最早由 google 开发并且开源, Facebook 在此基础上进行优化,推出了更普及的RocksDB,后来包括TiDB等多种分布式noSQL数据库的底层都是基于leveldb。 如果上面这些名词你都没听说过,也没有关系,对于这些库而言,上手去用容易,但是了解原理难。搞懂了原理再实际上手去用,除了更加简单之外,也会有更多的体会。 leveldb架构 这是一张leveldb的架构图