暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

分布式SQL数据库内部结构(1)——前言

原创 eternity 2022-09-26
257

深入探讨分布式数据库的工作原理,以TiDB为例

数据库系统很重要

数据库系统对企业至关重要。这些应用程序侧重于业务逻辑和用户界面,而数据库系统则负责数据的完整性、一致性和可用性。组织获取和存储的数据在确定目标和帮助制定业务战略方面起着至关重要的作用。本质上,任何需要收集和存储大量可轻松访问和分析的数据以跟踪性能趋势的组织都可以使用数据库管理系统来提高运营效率。

为了更好地理解数据库,让我们首先看一下历史。关系模型最早由Edgar F.Codd于1970年提出。在几十年的发展过程中,这一领域出现了许多创新。本系列将不是数据库系统的全面内容。我们专注于分布式数据库。让我们简单地看一下。

分布式数据库的发展

在2000年之前,大多数选择是独立的关系数据库,其中最著名的是商业数据库Oracle、IBM DB2以及开源数据库MySQL和PostgreSQL。随着数据量和业务增长,一些数据库产品通过运行多个数据库实例并从应用层或代理层在多个实例之间传播数据来解决扩展问题(横向扩展),从而解决单个数据库处理能力有限的问题。其他一些产品侧重于优化分析工作负载,以解决复杂报告工作负载的性能问题。传统的独立数据库很难解决这两个问题。

大约在2010年,非关系数据库——NoSQL(不仅仅是SQL)和大数据技术(如Hadoop及其生态系统)——变得流行起来。这些技术的出现始于谷歌关于分布式系统的三篇论文(GFS、BigTable和MapReduce)和Amazon的Dynamo论文。通过开源社区的不断努力和大型互联网公司不断增长的数据量,它最终成为事实上的标准。

2012年,谷歌发表了关于Spanner和F1系统的论文,这是新SQL时代或更流行的分布式SQL的开始。除了Spanner,分布式SQL产品(如TiDB和CockroachDB)也出现在这一类别中。同时,由于公共云的逐渐普及,也有一些数据库利用公共云基础设施来区别于传统数据库,AWS Aurora就是其中的代表之一。分布式数据库与公共云基础设施的集成是一件很自然的事情,因为它们是分布式的。Google Spanner本身就是在Google的内部云平台上诞生的。所有分布式数据库都是或将是云原生数据库。

数据库发展背后的驱动因素

纵观数据库的历史,数据库技术的演变背后有两个基本驱动因素:1.硬件和基础设施软件的创新2.业务需求的演变。这两种驱动程序相互促进。

NoSQL和大数据系统背后的驱动力是互联网业务的繁荣和遵循摩尔定律的硬件的进步。互联网企业的收入引擎是广告系统。这种业务具有巨大的数据量(大量用户生成大量行为数据)。你拥有的数据越多,你就可以从广告系统中获得更多的收入,只要你有正确的技术来充分利用这些数据。对于在线数据处理,工作负载相对简单,不依赖于ACID事务。对于离线数据处理,重点是如何处理大量数据并获得用户的兴趣。硬件遵循摩尔定律的进步提供了足够的计算能力来满足规模的要求。规模的需求超过了其他要求。人们可以牺牲一致性、易用性和其他更高级的特性。

分布式SQL数据库的驱动程序也由两部分组成。在技术方面,是硬件的变化(SSD磁盘的普及,摩尔定律的失败),公共云的普及(底层有不同的技术设施),以及技术软件组件的成熟度(如Raft、RocksDB、Etcd、K8s)。在业务方面,业务模式发生了变化。互联网业务增长逐渐放缓。互联网技术逐渐渗透到其他行业,特别是金融行业和软件行业。这一合并产生了FinTech、SaaS和其他新业务。这些业务不仅有大量的数据量,而且有数据一致性、可靠性和复杂业务逻辑的业务需求。这些字符对数据库提出了更高的要求。关系数据库从独立到分布式,从OP到Cloud,从简单的工作负载到更多的功能,都在不断发展。最后,还有云本地分布式关系数据库。

如何学习分布式数据库

展望未来,让我们看看数据库系统的未来会是什么样子。数据是推动世界发展的众多应用程序和业务的命脉。如何收集、存储和分类不断增长的海量数据,以增强新业务的能力,将是数据库开发人员需要回答的关键问题。还有很多事情要探索,值得花时间学习分布式数据库技术。许多人肯定使用过不同类型的数据库,但很少有人有开发数据库的经验,尤其是分布式数据库。了解实现数据库的原理和细节有助于构建其他系统。

学习一项技术的最佳方式是投入开源项目。在独立数据库领域有许多好的开源项目。其中,MySQL和PostgreSQL是最著名的。许多人已经阅读了他们的源代码来学习数据库技术。然而,对于分布式数据库,开源项目并不多。TiDB是少数几个公司之一。许多人希望参与这个项目。然而,由于分布式数据库的复杂性,许多人发现很难理解这个庞大的项目。

这就是本系列文章阐述TiDB技术的动机,包括开发人员可以看到的技术以及SQL接口背后的许多不可见的技术。

原文标题:Distributed SQL Database Internals (1) — Foreword
原文作者:Li Shen
原文链接:https://medium.com/@shenli3514/distributed-sql-database-internals-1-9c88790b83b

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论