几天前,Bytetech组织的Byte Beat Technology Salon的第四阶段成功地结束了字节击败技术。在本期中,沙龙的主题是“字节云数据库架构设计与现实”。“ 与你。本文根据分享进行编译。
数据库技术一直是信息技术的极其重要的一部分。在进入云时代之后,云基础架构和数据库进一步集成,弥补了传统数据库的痛点,带来了高扩展性,全面的自动化,快速部署,快速部署,快速部署,快速部署,快速部署,快速部署,快速部署,快速部署,快速部署,快速部署,快速部署,快速部署,快速部署,快速部署,快速部署,快速部署,快速部署,快速部署部署,快速部署,快速部署,快速部署以及快速部署以及快速部署。SAVE成本和方便管理。
从2018年到2021年,随着业务和数据的迅速增长,带有字节击败的分布式数据库系统已引起了令人兴奋的开发。如下图所示,在这四年中,公司的数量已从50,000增加到50,000到目前为止,有750万,已经超过1000万。这些1000万个集装箱已使用字节建造了坚实的云基础架构,支持整个业务系统的发展。
从在线数据的角度来看,1000万个容器构成了100,000多个微服务。这些微服务将在在线操作期间产生大量数据。在2020年,在线数据级别击败将达到EB级别;到2021年5月,Byte Beating数据库团队已支持10个以上EB的存储量表。
面对如此庞大的应用程序量表和数据量表,如何在数据库字段中管理和数据治理已成为数据库团队面前的一个巨大问题。在字节跳动中,数据库构造主要面临三个主要挑战:
例如,为了管理用户之间复杂的社会关系,同时,根据用户的赞美和注意,我们需要使用图表来管理智能建议。是Douyin E -Commerce Mall的订单,库存和其他数据的设计。这些信息适用于结构化结构。此外,Douyin还具有大量的结构化和非结构化数据,例如用户上传的图片和视频,此信息适用于管理云存储和对象存储等系统。
业务增长率很快,需求不断变化。如上图所示,在过去三年中,数据击败的数量已成为增长的近100倍,并且对数据的业务需求也发生了变化一开始,客户只需要几个TB或数十个GB数据即可。在一两年的时间里,他们要求基础架构应对数十个结核病甚至数百个结核数据级别。如何快速满足应用程序方面的数据容量要求和吞吐量要求是我们遇到的第二个挑战。
数据库存太多了,成本很高。随着业务的快速发展,如何管理庞大的结构化和非结构化数据以及有效地应对高成本,对我们来说也非常具有挑战性。
字节跳动数据库已经完成了以下三个阶段:
2015-2017:刀耕作的石制文物的时期。在此阶段,Byte Beating的业务水平相对较小。主要应用程序是今天的头条新闻。因此,数据库的示例约为1?2K。这些产品主要是开源Mysql和Myrocks.relying在人工和脚本上。
2018-2021:标准化和系统性。随着Douyin的快速发展,Bytes的业务规模也迎来了快速增长,达到了成千上万的图书馆和成千上万的数据库实例。原始产品系统很难解决用户需求。因此,我们还在2019年开发了云本地分布式数据库产品VEDB的开发。我们还更新了操作和维护系统,该系统逐渐从原始的半自动化和半人工状态转移到平台化,从而大大提高了操作效率。
从2021年底开始:在现场,已经开始开发数据库的第三代产品技术系统已经开始开发数据库。在接下来的几年中,我们预计该公司的业务规模将上升到成千上万的图书馆以及成千上万的数据库实例。因此,在原始产品系统的基础上,我们介绍了运营和维护系统中的操作和维护系统HTAP,无服务器DB,MEMDB等产品和技术,也引入了AI技术,以使操作更加聪明。
第一代数据库系统体系结构主要分为三层。示意图如下:
总体而言,第一代数据库系统体系结构主要是开源MySQL。它通过中间件的拆分表解释为用户提供更好的服务。它主要存在以下三个问题:
为了解决这三个问题,数据库团队已经开发了第二个代理数据库,以围绕标准化和系统构建庞大的产品矩阵以及操作和维护平台。
如上图所示,当前的字节跳动数据库系统具有两个特征:产品多样性和产品智能。其中,矩阵底层的Inf-Bran是数据库管理大脑,它主要承担交通预测,保险丝预测和智能参数调整的能力。上层的每个模块是一个细分的产品,例如智能操作和维护,分布式中间件,分布式缓存,KV,地图等。在云数据库方向上也有一些与VEDB和HTAP相关的技术。
VEDB本身是一个较大的产品矩阵。除了提供MySQL,PG和MongoDB外,它还在Byte Beating的内部研发中扩展了弹性搜索服务,包括用于处理TP/AP相关事务HTAP的自开发产品数据库团队在设计中使用层次的体系结构,通过高性能网络连接上层数据库和基础分布式存储引擎平台。
整个VEDB架构的基本哲学是分开的。
第一个是分离和存储分离。如下图所示,将VEDB分为计算层和存储层。其中,计算层分为数据库流程调度,访问,身份验证和数据库计算层的代理层。在计算层中,有一些数据库的操作示例。它与MySQL,PG和MongoDB数据库引擎兼容。它是无状态的,可以在数据中心动态分发和安排。底部是存储层。我们在其中卸载数据库日志,数据库页面和相应的处理逻辑,并支持HDD,SSD,PM。
第二个是日志和数据的分离。我们将数据库的WAL和页面放入不同的媒体中,以在成本和性能之间达到平衡。
第三个是读取和写作分离。我们可以支持15的最大集合。当阅读流量相对较大时,用户可以使用弹性扩展来响应阅读的负载,这已应用于内部直觉的直觉。
根据上述设计,VEDB介绍了6个主要功能:
在业务级别上,数据库团队主要面临以下三种类型。
第一类是容量类型。例如,尽管电子商务的某些顺序不是吞吐量,但数据量特别大,远远超过了先前的2T-3T独立容量。基于第二代数据库系统,在计算存储分级后,存储层可以无限扩展,因此用户无需担心数据库,而只关注业务开发。
第二类是QPS类型。在春节2021年,数据库团队支持特定中央和台湾的推动业务,目标数(设备)最多为10亿。最终,我们的峰值吞吐量超过600万QP,总体数据量也超过了20TB。事件发生后,由于计算节点都是无状态的,并且数据放在共享存储层上。我们可以轻松完成离线节点,并帮助公司节省大量计算资源。
第三类是一个很小的实例。大多数在线实例都是很小的实例,QPS相对较低,并且数据量也处于GB级别。这种类型的实例可以通过虚拟化,混合,容器和其他技术来降低计算成本。在数据级别上,它们还可以通过共享存储空间降低总体存储成本。
随着业务的发展,我们希望在2022年之后,字节殴打数据库的规模将达到成千上万的图书馆和成千上万的实例。如何更好地支持业务的发展以及如何确定的实力管理数以万计的图书馆已成为我们下一代技术的主题 - 如前所述,就产品而言,数据库团队将继续推出更多的产品和更多产品,并且新技术的引入使产品允许产品拥有一个类型和协议中的某些集成;在操作和维护方面,团队还将引入AI技术来解决当前的疼痛点。
在谈论未来之前,我们可以首先回顾两个问题:
挑战已成为如何帮助用户选择正确的数据库。
对于第二个问题,由于数据量表并不大,因此数据库团队会注意如何保持一些存储和计算资源来构建用于构建操作环境的操作和维护系统;现在,我们已经有了一百万级服务器量表。在环境下构建数据库产品的服务已成为我们的新探索方向。
如果我们回顾数据库技术的整体开发,则不难找到这样的发展定律。
自1980年代DBM的出现以来,IBM等商业公司在早期就启动了OLTP数据库。在此期间,数据库的典型特征是解决应用程序开发过程中管理数据的复杂性。从1990年代,公司开始有大量的数据分析需求,例如银行报告,这些需求已产生了新的数据分支机构。
到21世纪初,互联网行业迎来了大规模的爆发。OLTP开始无法满足在线数据的管理要求。OLAP很难管理离线分析和操作处理系统数据。另外,即可使公司难以承受。NOSQL和Bigdata代表的数据库革命正式爆发。无论是Google的开源HDF,Bigtable还是HBase,MongoDB,它们都旨在解决OLTP数据库吞吐量不足和可扩展性不足的问题。
到2010年,Google开始使用大量NOSQL和BIGDATA数据库系统,但很快它发现了很多问题。例如,NOSQL不支持交易,每种产品的NOSQL接口都不同。
总体而言,数据库在短短的两三十年中拥有大量分支机构,而且技术和产品变得越来越复杂。直到今天,每个人都认为这些东西太复杂了,它们开始简化它。例如,在2015年左右,AWS与OLTP和Cloud Native相结合,发布了分布式数据库Aurora,并结合了OLAP和Yunyun Native Release Redshift,包括BigData,以及Data Lake也是数据湖。概念的组合得出了一些新形式。
此外,HTAP近年来已经变得很流行,有机地结合了云,OLAP和BIGDATA,因此数据库不仅可以处理复杂的查询,而且可以支持在线业务需求。发展趋势?我们不知道。
数据库字段中的技术和产品已经经历了简单性至简单性的过程,但是如果您查看数据管理的真正原始意图,恐怕每个人的目标是促进用户 - 各种复杂的分支机构,用户更难做到这一点。技术选择。
我们不能选择性地解决一些问题,而是建立一个庞大而全面的系统来解决问题吗?我们可以为用户提供统一的数据管理服务吗?即使我们现在不能这样做,我们可以提供尽可能少的数据管理服务尽可能简化研发人员的研发成本,包括用户的成本和学习成本?
基于上述思维,Byte Beating数据库团队产生了两个重要的观察思维:
首先是水平集成探索,以简化业务应用程序数据管理系统。例如,我们过去曾在过去构建微服务。数据层必须同时考虑在线数据和离线数据。它不可避免地涉及每个数据库下不同数据库和不同表的管理。从在线数据生成到离线分析的同一时间,数据的可见性通常在天空,小时和分钟内计算。ETL,如何确保数据的完整性也是一个很大的挑战。
您只需要注意数据本身,无需关注数据并维护各种数据库。在交易处理级别,VEDB已经可以实现可见的秒数,并且是一致的,并且支持快照隔离级别。通过存储层的技术整合,VEDB还大大优化了数据的存储成本,从而大大降低了数据冗余系数。
第二个是垂直融合探索,重塑了应用程序缓存和数据库边界。在单体和微服务的时代,使用数据库时,用户需要在前面悬挂一个redis,因为数据库的吞吐量通常不是很大,而且它很容易被QP太高挂起。当公司体系结构从单个时代的时代到在线微服务时代时,此方法将带来大量的缓存系统和数据库类型的复杂管理问题。因此,我们希望通过Systemessence重塑应用程序缓存和数据库,例如,我们在VEDB中进行了一些软件和技术硬件级别的探索,从而使用户的数据管理成本和学习成本尽可能降至最低。同时,消除了用户多到达数据流管理,使用户可以专注于业务逻辑,并帮助他们消除原始的DatainStry问题,例如缓存不一致。
第三是分离和集成:新变量,硬件和系统。除了在用户级别集成某些应用程序方案的外,我们还看到了公司基础架构系统内的一些分离和集成内容,例如软件,硬件和操作Systems.在下图的左侧是数据库模块,从上到下是SQL层,交易层,缓存层和存储层。右侧是云数据中心中使用的运行时环境。例如,该公司的大多数微服务在K8SON顶部运行,新的计算能力,新的互连和硬件级别的新存储都随着时间而变化。
以计算能力为例,从CPU到CPU+GPU+DPU+FPGA的开发,数据库团队一直在尝试将需要将计算能力的复杂和加密和解密操作放入FPGA中。功率从96C到192C甚至超过300c,如何重塑数据库中的索引和交易处理也是我们需要提前考虑的问题。
第四个是分离和集成:目前的构建块。
通常,数据库也是一个软件。目前,我们是否可以在云的中心使用硬件和运行时环境,以使数据库更强,更灵活,这也是一个重要方向。
数据库团队在软件和系统级别上做了很多工作。例如,数据库无休止地将其放置在由分布式持续内存构建的高性能存储引擎中,以实现存储层中的自动层次结构。通过此,我们可以使计算层更加灵活。
例如,有三个租户,其中租户需要一些MySQL和PG。我们可以在容器中运行这些租户的数据库实例,动态分配计算资源,并根据不同尺寸和数据库的数据库实例提供弹性根据业务的高峰期和低谷期。在这个统一的操作模型下,我们可以摆脱过去不足的独立物理机器的困境,并使用公司的百万级服务器来实现计算功率重复使用。
将来,数据库团队将围绕应用程序场景级别的集成,垂直技术集成以及硬件和系统集成,以使其能够返回用户价值,帮助用户提高开发效率,运行运行,将云数据库重新构建。效率和运营效率,降低学习和学习和学习以及运营效率各种类型的成本。
数据库和云存储团队为击败所有产品的字节提供服务。这里,我们拥有大量的云存储产品,负责管理数十个EB级别的大量数据;有多种数据库产品可提供最终的延迟和超大吞吐量云本机数据库服务;有剪切的技术研究,探索新的硬件和新的硬件,探索新的硬件,探索新的硬件,探索新的硬件,探索新的硬件,探索新的硬件,探索新的硬件并探索新软件架构的融合,创建了革命性的云云下一代的存储和数据库产品。
上面的内容是从第四期Beating Technology Salon“ Berbolic Cloud数据库架构设计和实用战斗”中解决的。
原始:https://juejin.cn/post/7101968489170567181