分布式数据库30讲

分布式数据库30讲 / 从功能特性到运行机制,讲透本质

王磊

光大银行首席数据架构师

  • 课程目录
  • 课程介绍
  • 开篇词|为什么要学习分布式数据库?

    分布式数据库凝聚了无数学者与工程师的智慧,灿若星辰。希望这个课程能带你穿越时空,开启一场与大师的对话之旅。

  • 01|什么是分布式数据库?

    在这一讲中,我想和你探讨一个最基本的问题:什么是分布式数据库?回答这个问题,其实就是在给分布式数据库下定义。

  • 02|强一致性:那么多数据一致性模型,究竟有啥不一样?

    当我们谈论分布式数据库的一致性时,实质上是在谈论数据一致性和事务一致性两个方面。今天,我会先介绍数据一致性。

  • 03|强一致性:别再用BASE做借口,来看看什么是真正的事务一致性

    今天我们会继续强一致性这个话题,谈谈事务一致性。它可以细化为ACID四个方面,其中隔离性是事务的核心。

  • 04 | 架构风格:NewSQL和PGXC到底有啥不一样?

    怎样更高效地了解不同产品的特点呢?这就需要你把它们分分类。业界已经有共识,把分布式数据库按照架构风格划分到不同的阵营。

  • 05 | 全局时钟:物理时钟和逻辑时钟你Pick谁?

    今天,我想和你聊聊时间的话题。分布式数据库的很多设计都和时间有关,更确切地说是和全局时钟有关。

  • 06 | 分片机制:为什么说Range是更好的分片策略?

    分片是解决性能和存储这两个问题的关键设计,甚至不仅是分布式数据库,在所有分布式存储系统中,分片这种设计都是广泛存在的。

  • 07 | 数据复制:为什么有时候Paxos不是最佳选择?

    今天这一讲我会聚焦在与分布式数据库相关的,比较重要也比较有意思的两个知识点上,这就是分片元数据的存储和数据复制的效率。

  • 08 | 基础篇大串讲:重难点回顾+思考题答疑+知识全景图

    这一讲是答疑篇,我会集中讨论基础篇布置的思考题,以及留言区中大家关注的一些内容,帮助大家阶段性地复习前面的课程。

  • 09|原子性:2PC还是原子性协议的王者吗?

    事务可以理解为包含一系列操作的序列,原子则代表不可分割的最小粒度。今天,我要和你讲一讲分布式事务的原子性。

  • 10 | 原子性:如何打破事务高延迟的魔咒?

    2PC虽然可以保证原子性,但性能成为问题。对此,分布式数据库做了什么优化来打破高延迟的魔咒呢?

  • 11|隔离性:读写冲突时,快照是最好的办法吗?

    我们今天的话题要从多版本并发控制(MVCC)开始。它是一项非常重要也非常普及的技术,可以解决读写冲突,消除阻塞问题。

  • 12 | 隔离性:看不见的读写冲突,要怎么处理?

    除了上一讲提到的显式的读写冲突,还有一种看不见的读写冲突,它是由于时间的不确定性造成的,更加隐蔽,处理起来也更复杂。

  • 13 | 隔离性:为什么使用乐观协议的分布式数据库越来越少?

    我们这一讲,专门来探讨什么是乐观控制协议,以及为什么TiDB和CockroachDB不再把它作为默认选项。

  • 14 | 隔离性:实现悲观协议,除了锁还有别的办法吗?

    我们今天的主题是悲观协议,我会结合第13讲的内容将并发控制技术和你说清楚。

  • 15 | 分布式事务串讲:重难点回顾+思考题答疑+知识全景图

    今天这一讲是第二个答疑篇,我会带你回顾第9讲到第14讲的主要内容,集中解答留给你的思考题,同时回复一些留言区的热点问题。

  • 16 | 为什么不建议你使用存储过程?

    现在的我面对分布式数据库,会更倾向于少用或者不用存储过程。下面,我就来和你分享下这个心路历程吧。

  • 17 | 为什么不建议你使用自增主键?

    随着业务规模扩大,在真正的海量并发下,数据库提供的一些特性就可能被削弱或者失效,比如自增主键。

  • 18 | HTAP是不是赢者通吃的游戏?

    进入大数据时代后,OLAP系统需要更快地反映业务的变化。HTAP要解决的就是OLAP的时效问题,不过它也不是唯一的选择。

  • 19 | 查询性能优化:计算与存储分离架构下有哪些优化思路?

    分布式数据库的主体架构是朝着计算和存储分离的方向发展的,这一点在NewSQL架构中体现得尤其明显。

  • 20 | 关联查询:如何提升多表Join能力?

    多表关联也就是数据库中常见的Join操作。只要你掌握关联算法的基本原理,就能快速掌握具体数据库的实现了。

  • 21 | 查询执行引擎:如何让聚合计算加速?

    查询请求输入和查询计划完成后,整体查询任务的下一个阶段就是查询计划的执行,承担这部分工作的组件一般称为查询执行引擎。

  • 22|RUM猜想:想要读写快还是存储省?又是三选二

    今天这一讲我们面临查询的最后一个步骤,直接和磁盘打交道,实现最终的数据存储,这就是存储引擎。

  • 23 | 数据库查询串讲:重难点回顾+思考题答疑+知识全景图

    我会和你一起回顾第16讲到22讲的主要内容,集中解答留给大家思考题,并回复一些大家关注的热点内容。

  • 24 | 全球化部署:如何打造近在咫尺且永不宕机的数据库?

    全球化部署本质就是全球范围下的异地多活。总体上看,异地多活的直接目标是要预防区域级的灾难事件,保障关键业务的持续开展。

  • 25 | 容灾与备份:如何设计逃生通道保证业务连续性?

    在分布式数据库的实践没有成为绝对主流前,逃生通道都是一个重要的用户需求。它可以降低实施风险,减少新技术应用中遇到的阻力。

  • 26 | 容器化:分布式数据库要不要上云,你想好了吗?

    今天,我想和你分享的话题是分布式数据库的容器化部署。容器化技术可以将资源虚拟化,从而更灵活快速地调配。

  • 27 | 产品测试:除了性能跑分,还能测个啥?

    这一讲我们的关键词是“测试”。为了保证系统的安全运行,即使不是开发者,我们也仍然需要做大量的验证和测试工作。

  • 28 | 选型案例:银行是怎么选择分布式数据库的?

    对稳定性要求最严苛的行业,就是金融业,尤其是银行业。今天,我会通过几家银行的案例带你了解如何做分布式数据库的选型。

  • 29 | 产品图鉴:哪些分布式数据库值得看?

    今天这一讲,我会把视角切换到产品方向,为你做一次整体介绍。所以,你也可以将这一讲当作一个产品版的课程索引。

  • 30 | 实践篇大串讲:重难点回顾+思考题答疑+知识全景图

    这一讲是我们课程的最后一个答疑篇。我会回顾第24讲到第29讲的主要内容,解答留给大家思考题,回复一些大家关注的热点内容。

  • 结束语 | 享受职业带给你的快乐

    《分布式数据库30讲》这门课程,到今天就结束了。能够跟着学完整个课程非常不容易,让我为你鼓鼓掌,真的很棒。

  • 结课测试|这些分布式数据库的问题,你都掌握了吗?

    为了帮助你检验自己的学习效果,我特别给你准备了一套关于分布式数据库的结课测试题。这套测试题共有20道题目,满分100分。

  • 用户故事 | 李兆龙:博观而约取,厚积而薄发

    我叫李兆龙,是一个软件工程专业的大三学生。很高兴有机会能跟你分享一下我学习《分布式数据库30讲》的经历和心得。

【3周年特惠|立省¥30】

结算时,叠加口令「study2020」

拼团再减¥10,到手仅¥69,共省¥30

你将获得

  • 分布式数据库技术内核深度剖析
  • NewSQL 和 PostgreSQL-XC 架构详解
  • 分布式数据库强一致性的实现方式
  • 海量数据和超高并发的应对方案

讲师介绍

王磊,光大银行首席数据架构师,在数据领域有超过15年工作经验,曾服务于多家大型金融机构,在分布式架构方面有丰富经验。

他作为数据领域的主要设计者,推动了光大银行从传统数据仓库向大数据生态的转型,主导了大数据开发平台、数据中台等多个重要系统的架构设计工作,获得了银行业的多个技术奖项,是大数据技术在金融行业的首批践行者。

同时,他也没有脱离一线,亲自带领小团队自研了Pharos,实现了百亿海量数据下的复杂查询。

课程介绍

近几年,阿里巴巴、腾讯、字节跳动、美团、滴滴、58、知乎等互联网公司,都已经开始使用分布式数据库;而传统的金融和电信行业也在快速跟进,交通银行、中信银行、光大银行、北京银行和一些城市商业银行都已经上线了分布式数据库。可以说,在各种因素的推动下,分布式数据库已经成为一种技术潮流,甚至是新基建的一部分。

  • 分布式数据库到底是什么?
  • 它跟传统数据库有什么不同?
  • 为什么会出现这样一种新技术?
  • 它可以帮助我们解决什么问题?
  • 怎样才能高效地学习和掌握它?

很多人都被这样的问题困扰。网络上对分布式数据库的讨论热度很高,但众说纷纭,我们难以辨别出客观且有价值的信息。

其实,学习分布式数据库并不难,难的是要找到高效的学习路径,抓住它的核心。因此,我们特意邀请了王磊老师从我们比较熟悉的单体数据库出发,通过原理层面的对比学习,带你抓住分布式数据库的核心,高效学习。

这样,还能让你避免在学习数据库产品时一下子就陷入安装部署、操作指令等细节中,摆脱学完以后还是不知道产品原理、碰到没见过的问题依然是束手无策的窘境。

同时,王磊老师服务过多家大型金融机构,还深度参与了产品选型工作,所以能够从一个中立的视角,为你剖析主流产品的运行机制和理论依据,横向比较它们的差异,并且解读企业在进行技术决策时背后的动机,帮助你快速建立起对分布式数据库全面的认知体系。

常见问题

1. 学习这门课需要什么基础?

这门课程的设计初衷和思路,就是为了帮你可以低门槛地学习,只要你具备一定的编程基础,有一些数据库的使用经验,以及对SQL运行优化有直观的感受,就能够从课程里汲取前人的智慧、提升自己的技术竞争力。

因此,学习这门课,你不用对数据库的内部运行机制或者分布式技术有深刻的认识。

2. 这门课不会讲什么?

这门课的目标是,从功能特性到运行机制,带你吃透分布式数据库的本质。因此,这门课不会讲解各种产品的安装部署、操作指令、性能调优等内容。一方面,分布式数据库产品众多,而且更新速度非常快;另一方面,只要你选择了正确的方向,就很容易从其他渠道获得详实的资料和具体的指导。

模块设计

本课程包括3大模块。

基础篇:为你讲解分布式数据库的基本概念、主流产品的架构风格、一些基本功能,以及分布式数据库设计的难点,帮助你建立对分布式数据库的整体认知。

开发篇:带你深入到一个个关键功能的设计中,挖掘其背后可选择的理论设计方案,分析方案之间的差异,以及工业界产品在落地实现时的改进。因此,这个模块的设计思路是从问题到解决方案,再到产品实现,目的就是帮你不仅能在纵向上搭建一个分布式数据库的多层知识目录,还能从横向上针对每一个关键功能对比各种主流产品的设计选择,最终形成一个网络化的体系。

实践篇:聚焦于架构选型,告诉你在企业中引入分布式数据库需要关注哪些事情、做些什么准备,比如会给运维带来哪些冲击、怎么去做测试,其他企业是基于什么原因选择分布式数据库的。同时,这个模块还会为你梳理一份分布式数据库的产品图鉴,带你一起检阅这个时代最酷的基础软件。你也可以把这份产品图鉴当成产品维度的课程索引,反向检索产品的设计。

课程目录

特别放送

订阅须知

相关教程

Learnfk - 进程通信教程

Learnfk - iOS教程

Learnfk - Kotlin教程

Learnfk - C#教程

Learnfk - Python数据结构教程

Learnfk - PostgreSQL教程

随机推荐

天堂伞雨伞黑胶防晒防紫外线太阳伞遮阳晴雨伞男女质量好吗,分析...

华为华为手表watch到底要怎么选择,哪个值得买!

格兰仕电烤箱家用烤箱评测好不好用,究竟合不合格

启初面霜宝宝霜儿童霜评测性价比高吗,优劣分析评测结果!

阿奇猫华为智能手表gt分析哪款更适合你,好不好

小熊加湿器卧室婴儿办公室客厅迷你大雾量落地空气加湿器为什么买...