logo

第二代分布式数据库:键值(KV)数据库

第二代分布式数据库的出现是由离散数据需求推动的,诞生了键值对(Key-Value)型分布式数据库。

分布式时代的“新·不可能三角”

在分布式数据库时代,持久化已经不是分布式数据库“真正的持久化”了,取而代之的是“数据一致性”:由于数据存在了多台机器上,那机器之间数据的一致性就成了新时代的“持久化”。于是新不可能三角出现了:①一致性 ②事务隔离 ③高性能。

你是不是在期待 CAP 理论呀?别着急,我们后面会说。

分布式 KV 数据库放弃了事务隔离

数据库技术一共获得过四次图灵奖,后面三次都在关系型数据库领域。事务隔离模型是关系型数据库的核心,非常地简洁、优美、逻辑自恰。

Google 是第一个全民搜索引擎,系统规模也达到了史上最大。但是,搜索引擎技术本身却不需要使用关系型数据库来存储:搜索结果中的网页链接之间是离散的,这已经在前面的第 3 章第 4 节“实战:Go 协程开发高性能爬虫” 中有所体现。

由于搜索不需要关系型数据库,自然谷歌搞的分布式数据库就是使用的 KV 模型。谷歌的三驾马车论文发布以后,业界迅速发展出了一个新的数据库门类 NoSQL(Not Only SQL),专门针对非结构化和半结构化的海量数据。

目前,缓存(Redis)和日志(MongoDB)大家一般都会用 NoSQL 来承载。在这个领域,最成功的莫过于基于 Hadoop 生态中 HDFS 构建的 HBase 了:它主要提供的是行级数据一致性,即 CAP 理论中的 CP,放弃了事务,可以高性能地存储海量数据。

KV 数据库结构简单,性能优异,扩展性无敌,但是它只能作为核心数据库的高性能补充,绝大多数场景下,核心数据库还是得用关系型。

阅读数:1752      字数:621 最后更新:2023-10-26 13:03:18