每日一书|从原理架构案例三个维度深度剖析分布式数据库

《新程序员》编辑部 《新程序员》编辑部     2023-02-06     201

关键词:

杜甫诗云:“读书破万卷,下笔如有神”。开发者多读书、读好书,能打好基础、掌握实践、答疑解惑、拓展视野。正基于此,2021年11月1日起,CSDN、《新程序员》推出“每日一书”栏目,为你推荐精选好书,助力你的开发工作如行云流水。

分布式数据库是分布式计算与数据库结合的产物。分布式数据库的概念早就存在,但是直到最近才真正引起产业界的高度重视。这得益于互联网和云计算技术的高速发展与广泛应用。

以“国家政务服务平台”为例,据称其实现了统一身份认证服务、统一证照服务、统一事项服务、统一好差评等体系。平台的数据不是集中存储的,而是分散存储在全国多个数据中心的多个数据库系统中,而且许多“事项服务”类应用还会要求跨域、跨库访问。这个系统刚刚起步,提供的服务还很有限。可以想象,随着这个系统汇聚的数据越来越多,支持的应用越来越丰富,数据的一致性问题、系统的效率问题等都会显现出来。更进一步,这个系统由于支撑着日常的行政服务,对高可用性还会提出更高的要求。凡此种种,都需要分布式数据库技术的支持。分布式数据库将会越来越重要。

在分布式数据库领域体系化的、深入剖析数据库原理的书籍,《分布式数据库原理、架构与实践》是作者李海翔老师基于对该领域多年的科研和实践,历经数年,把对分布式数据库领域一些重要技术的理解和在实践中所得的经验整理成册。从原理、架构、案例三个维度深度剖析分布式数据库所涉一致性、高可用性等。

腾讯T14级数据库专家的分布式数据库解决方案

底层原理·架构设计·产品解读

学术研究·经典理论·一线实践

本书主要讨论如下3个话题。

  • 分布式数据库中存在的问题和原理。科学研究,始于问题。本书首先对分布式数据库技术中一些典型问题进行分析,以明确本书所要研究和解决问题的技术方向。之后讨论CAP原理与ACID技术结合后的一些问题(重点是一致性问题)及技术,以及业界在这方面的科研成果和工程实现思路。

  • 分布式数据库架构。从分布式数据库架构的角度,讨论影响架构的内在、外在技术因素,内在因素如强一致性、高可靠性、高可用性,外在因素如云计算、Serverless需求等。

  • 分布式数据库案例实践。从工程实践的角度,以案例的形式讨论诸多分布式系统的实现技术,涉及的数据库包括Spanner、CockroachDB、HBase、Greenplum等。

主要特色

本书以前沿技术和工程实践为抓手,通过问题确认、原理阐述、架构剖析、实例分析,有深度地进行了以下三项工作。

  • 深入经典技术:对经典技术进行深度探索,如剖析CAP原理的发展过程,深度解读事务处理技术(如MVCC、OCC、DTA等技术)的发展和相关研究。

  • 前沿探索按照本书的内容规划,对前沿技术方向与内容从广度层面进行剖析和介绍,以开阔读者的思路和眼界。前沿内容散布于各个章节,与各章节主题互相映衬。

  • 原理、案例相结合:立足原理,对分布式数据库的架构进行深度剖析,并对业界多个产品从问题、原理、前沿技术研究成果、架构相关因素等角度进行深度分析。用多个案例多样化地印证其他部分介绍的原理和前沿技术。

读者对象

本书面向的主要读者

  • 分布式数据库的设计者和开发者;

  • 分布式数据库前沿技术的研究者;

  • 其他对分布式数据库感兴趣的读者。

讲了什么

对现代分布式数据库(CAP+传统分布式数据库)的分布式一致性和事务一致性进行本质分析,通过梳理CAP、一致性协议、分布式事务原理指导数据库架构设计,并以拆解主流产品的方式介绍落地方法

(1)CAP与ACID结合:引发的问题,业界科研成果,工程实现

(2)多种角度探讨一致性:分布式一致性(结果一致性、次序一致性、分布式事务一致性、架构一致性),事务一致性

(3)一致性解决方案:逻辑时钟、向量时钟、混合逻辑时钟、Paxos协议、Raft算法

(4)分布式事务原理:并发访问控制、OCC算法、MVCC技术、分布式提交

(5)分布式数据库设计:近10种典型架构实现,内外因素影响下的架构实现,数据库解耦与重构

(6)典型案例分析:Spanner、Percolator、CockroachDB、Hekaton、Mongo、HBase、Greenplum

有什么不同

(1)直指分布式问题本质:从底层原理角度分析各种问题的根因。

(2)通过经典理论寻找解决方案用从经典理论入手寻找因分布式引入的问题的解决方案。

(3)吸收50年数据库研究成果:借鉴了自20世纪70年代至今的近300份数据库领域专著和文献。  

(4)通过案例指导分布式落地实践:立足原理剖析问题,结合产品指导实践。  

(5)20年一线实践经验:融合作者在腾讯、甲骨文MySQL全球开发团队20余年数据库研发经验。

作者简介

李海翔

腾讯金融云数据库首席研究员(T14)

腾讯TDSQL分布式数据库首席架构师

中国人民大学、北京林业大学特聘硕士导师

数据库事务处理之数据异常体系化研究的创立者

《数据库查询优化器的艺术》《数据库事务处理的艺术》作者

在VLDB等数据库大会上发表论文多篇参与了多个国家863重大专项、核高基、工信部、科技部等的项目。

大咖推荐

海翔对Spanner、Percolator、CockroachDB等多个分布式数据库系统进行了深入分析,对其中的一些核心技术有了较好的理解。在此基础上,对分布式数据库的一些原理进行了梳理,特别是对“一致性”的概念进行了系统的研究,弄清楚了分布式计算中的一致性(CAP的C)和数据库系统中的事务一致性(ACID的C)的概念的区别和联系。他还深度研究和实践了高可用分布式数据库的架构设计、主流并发访问控制算法等。这些都是很有价值的工作。

 ——杜小勇博士中国人民大学教授/中国计算机学会大数据专家委员会主任


 本书作者长期从事数据库研究与开发工作,这是他继《数据库查询优化器的艺术》和《数据库事务处理的艺术》之后又一部集原理、架构与实践于一体的分布式数据库力作,非常值得数据库学术界和产业界人士参考,也是高校学生学习分布式数据库技术很好的教材。

 ——彭智勇博士武汉大学教授/中国计算机学会会士/数据库专家委员会副主任


本书的内容涵盖了分布式技术领域和分布式OLTP数据库领域最新的理论进展和技术实现原理,无论是对数据库内核的资深开发者、还是进阶者,对基于分布式数据库的应用开发者,对学习数据库课程的同学们,相信本书都可以带来有价值的帮助和指导。这是一本分布式数据库领域最近几年最值得推荐的一本书。

 ——武新博士易鲸捷信息技术有限公司 CEO

很高兴看到国内有这样的一线专家著书分享最新核心技术的原理,设计思想和架构。相信这本书的出版会激发更多的开发者深入研究基础核心技术,未来帮助中国成为全球技术的领先者。

 ——蒋涛 CSDN创始人、董事长/ 极客帮创投创始合伙人

实拍图

(声明:本文转载自机械工业出版社华章科技品牌官方微信公众号“华章计算机”。)

每日一书丨serverless架构从原理入门到实战的技术指南

Serverless架构是云计算发展的产物,它继承了云计算的优点,并具备极致弹性、按量付费、免运维等优势。Serverless架构让开发者可以将更多精力放在业务逻辑上,让资源浪费更少,让服务器运维成本更低,真正... 查看详情

老司机带带我:数仓建模架构|维度建模剖析与案例演示(代码片段)

    作者基于多年的大数据处理经验,当前管理着100PB+数据仓库和2000+节点的集群。持续系统化给大家分享一下关于数据仓库建设的经验总结。本系列既有数据仓库的形而上学理论体系,也有结合公司业务的实践&#... 查看详情

老司机带带我:数仓建模架构|维度建模剖析与案例演示(代码片段)

    作者基于多年的大数据处理经验,当前管理着100PB+数据仓库和2000+节点的集群。持续系统化给大家分享一下关于数据仓库建设的经验总结。本系列既有数据仓库的形而上学理论体系,也有结合公司业务的实践&#... 查看详情

深度剖析spark分布式执行原理

转载自:https://zhuanlan.zhihu.com/p/25772054让代码分布式运行是所有分布式计算框架需要解决的最基本的问题。Spark是大数据领域中相当火热的计算框架,在大数据分析领域有一统江湖的趋势,网上对于Spark源码分析的文章有很多,但... 查看详情

网站架构设计

...提高客户体验度。再到分层,数据库的读取分离,集群,分布式部署等。处理网站高并发的问题肯定会牵扯到高并发,现在web的开发都是支持多线程的,但是多 查看详情

每日一书丨源码剖析flink设计思想,解决flink中的难题

流计算从出现到普及,经历了非常多的变化——从早期ApacheStorm等技术的落地和使用,到现在越来越多的公司选择使用ApacheFlink作为流处理核心技术。Flink以其强大的批流一体处理能力以及低延迟、高吞吐等特性,正在... 查看详情

mysqlbinlog应用场景与原理深度剖析

本文深入介绍MysqlBinlog的应用场景,以及如何与MQ、elasticsearch、redis等组件的保持数据最终一致。最后通过案例深入分析binlog中几乎所有event是如何产生的,作用是什么。1基于binlog的主从复制Mysql5.0以后,支持通过binarylog(二进制... 查看详情

深度剖析apacheeventmesh云原生分布式事件驱动架构(代码片段)

一、前言近年来,随着微服务、云原生和Serverless概念的普及以及容器化技术的发展,事件驱动也再次成为热点,引起IT界广泛的关注。事件驱动架构是一种用于设计应用的软件架构和模型。对于事件驱动系统而言࿰... 查看详情

深度剖析apacheeventmesh云原生分布式事件驱动架构(代码片段)

一、前言近年来,随着微服务、云原生和Serverless概念的普及以及容器化技术的发展,事件驱动也再次成为热点,引起IT界广泛的关注。事件驱动架构是一种用于设计应用的软件架构和模型。对于事件驱动系统而言࿰... 查看详情

mybatis核心源码深度剖析工作机制和实现原理

...入剖析2.1MyBatis的整体架构体系2.2MyBatis的工作机制和实现原理2.2.1接口层2.2.1.1获取SqlSession流程分析2.2.1.2SqlSession源码分析2.2.2数据处理核心层2.2.2.1配置解析(参数映射) 查看详情

深度剖析apacheeventmesh云原生分布式事件驱动架构(代码片段)

...好地扩展与适配不同类型的服务组件,因此是现代化分布式应用架构的理想之选。本文会从以下几个方面来剖析ApacheEventMesh云原生分布式事件驱动架构:什么是EventMesh云原生生态下的事件驱动架构模型EventMesh架构EventMesh... 查看详情

深度剖析apacheeventmesh云原生分布式事件驱动架构(代码片段)

...好地扩展与适配不同类型的服务组件,因此是现代化分布式应用架构的理想之选。本文会从以下几个方面来剖析ApacheEventMesh云原生分布式事件驱动架构:什么是EventMesh云原生生态下的事件驱动架构模型EventMesh架构EventMesh... 查看详情

kafka剖析:kafka背景及架构介绍

Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用。目前越来越多的开源分布式处理系统如Cloudera、ApacheStorm、Spark都支持与Kafka集成。InfoQ一直在紧密关注Kafka的应用以及发展,... 查看详情

从三个维度看待区块链的前世今生,他究竟是什么?

...到的基于生  物逻辑的自然、社会、技术的进化规律:分布式、去中心;从边缘到中  心再到边缘,从失控到控制再到失控。微信之父张小龙奉《失控》为自  己行动指南的行为,最好的说明了互联网时代的组织及经济发... 查看详情

从底层原理深度剖析volatile关键字

 本篇文章从底层原理层面深度剖析volatile关键字是如何实现内存可见性的,同时引入了Java内存模型、指令重排序以及内存屏障等知识点作为原理分析的知识支撑。阅读本文之前,推荐大家先阅读作者之前的一篇关于happens-befo... 查看详情

《大型网站技术架构核心原理与案例分析》读书笔记

...务器分离应用服务器增加本地缓存,本地缓存优先,增加分布式缓存服务器使用应用程序服务器集群提高网站的并发,由负载均衡服务器统一调度分发使用分布式文件系统和分布式数据库系统使用CDN网络加速和反向代理服务器:... 查看详情

serverless从入门到进阶:架构原理与实践

Serverless从入门到进阶:架构、原理与实践腾讯云Serverless项目早期参与者撰写,基于腾讯云、阿里云和亚马逊云等多个云厂商的产品和技术;从产品和技术两个维度展开,讲解Serverless的架构设计、技术原理、开发流程、实战案例... 查看详情

《大型网站技术架构:核心原理与案例分析》阅读笔记二

...人体会。   网站架构模式可以从分层、分割、分布式、集群、缓存、异步、冗余、自动化和安全九个方面描述。  分层是应用系统中最常见的一种架构模式。在大型网站中也采用分层结构,网站软件系统分为应用层... 查看详情