Jetbrains开发者日见闻(三)之Kotlin1.3新特性(inline class篇)
943
2022-05-30
说到数据库,大家并不陌生,因为数据库是企业的数据底座。在曾庆聪从业的多年里,可以明显感觉到相比从前,数据库变得非常热门,业务也已经不满足于传统集中式的数据库了,分布式数据库、云数据库、云原生,自主可控等技术话题被广泛讨论。
这些现象的背后是数据库正在经历一个云+分布式的重要里程碑,这将深刻的影响企业对数据库的选型,乃至企业的数字化转型。
曾庆聪是华为云数据库NoSQL域高级产品经理,曾就职于大型国企、外企,担任DBA和研发工作,获得Oracle OCP认证。在华为云也曾担任MySQL域产品经理,负责推动RDS、GaussDB(for MySQL)的上线和商用。
在华为云负责数据库产品这些年来,他也见证了企业使用数据库方式的变革。为了满足不同业务场景的需求,华为云GaussDB也从单一的数据库升级为一个产品家族、一个统一的数据库品牌。
GaussDB代表了华为先进的计算存储分离的架构,遵循“日志即数据”的原则,使用了算子下推先进的云内生性等技术,满足金融、政企、大型企业等的核心业务方方面面诉求。
下面,曾庆聪将从生态和业务两方面解读华为云GaussDB的产品能力。
开源到自研,开放的数据库生态
GaussDB坚持开放,可以分为2大生态:上半部分是广泛认知的生态,下半部分是华为自有生态,不同的生态意味着不同的自主程度,可以适应企业的不同选择。
广泛认知的生态兼容市面上主流开源数据库,其中关系型数据库有GaussDB(for MySQL)、NoSQL有GaussDB for Mongo、for Canssandra、for Redis、for Influx,和社区一样的用法但拥有更优秀的能力。
华为自有生态包含两条线:一套是社区版本,一套是云上版本,两者同源。以openGauss为例,去年openGauss社区正式开源,云上的单机和主备版本下沉到了社区,经过一段时间发展后于上个月发布了第二大版本,上线了许多关键能力,社区主备版可以平滑切换至云上分布式。同时华为将持续运营社区,一同与合作伙伴、高校、开发者来促进生态繁荣。
从架构看GaussDB层次解耦的存算分离
华为云GaussDB支持混合云方案,互联网和中小企业可以直接通过华为云订阅云数据库服务,而金融、政企、大企业则可以通过华为stack,在本地部署和云上体验一致的云服务,共享华为云的创新能力,并实现无缝的升级和演进。
说完生态,我们来介绍一下GaussDB的架构。GaussDB架构的核心就是计算存储分离,我们先看下图右边的物理情况:上面是无状态的计算层、CPU和内存,下面是有状态的数据存储层。云原生数据库如果要实现一套统一的架构,同时支持不同的多种数据模型接入。那么它必然面临2个问题:不同的数据库SQL语法不同,数据组织形式和访问形式也不同。
所以计算层又分为2个逻辑层:SQL接口层和数据索引组织层来解决这个问题。SQL接口层面向的是生态,负责兼容语法,考虑到不同的数据库SQL语法不相同,所以这一层设计无法做到统一,它的要点是接口接入,做到生态兼容。
数据索引组织层面向的是数据的组织和访问,A数据库的数据组织和B数据库的数据组织是不一样的,关系型数据库和非关系型数据库数据组织也是完全不同的,所以这一层也无法做到统一,它的设计要点是插件化接入。
存储层面向的是数据,这一层可以做到统一,它提供脱离语义的数据理解能力,只聚焦数据。分布式存储提供基础的分布式一致性可扩展存储能力,跨AZ、Region的部署模式,所有的数据引擎都可以部署到统一的存储层。
总结下这样的架构:计算层面负责无状态的SQL语义和数据组织,通过存储管理模块与存储层进行通讯。存储层面负责有状态的数据持久化,上层无需关心数据的分布式一致性。这样全面解耦的架构,是目前所看到的最先进的分布式云原生数据库架构,通过层次解耦的存算分离,向生态兼容,数据融合,多模接入走出了关键一步。
如何解决热点数据问题,保证数据0丢失?
基于云原生存算分离的架构,GaussDB能够轻松地解决一些长期存在的问题,比如这套架构可以避免数据库层分库分表难以优雅处理的数据分片热点问题。
在分库分表中,如果分片容量不够大,就很容易出现某个分片访问压力特别大。但是存算分离的架构,加上华为存储的软硬件深度整合的数据库插件,可以做到在存储层实现数据分片的映射,打散IO。而且经由我们各研究所的算法专家,尤其是俄研所的数学家们研发的分布算法,能基于大小、IO等因素均匀分布数据块。
另一方面,由于存算分离后计算层无状态,因此可以做到RTO低于10秒。基于华为DFV分布式存储软件的能力,可以做到存储RPO=0。数据库和存储深度融合,实现多副本强一致。基于存储快照级别备份,实现分钟级别的备份性能。
在与500家以上不同行业的政企客户深度交流和研讨过程中,我们发现客户将其核心数据安全上云方面主要有3个顾虑:
一方面,数据库繁杂的类型造成选型难与核心数据业务强绑定,所以不影响业务是客户首要考虑的问题。另一方面,客户上层应用与业务的改造范围希望尽量小,且成本在可接受范围内。第三个顾虑是上云后的核心数据是否好管理、好运维。
基于多年的企业客户服务经验,以及华为自身对云化、数字化的理解,华为云提供全场景、全开放的数据库生态选择,不必担心被封闭生态锁定。同时为解决客户核心数据上云的痛点,我们打造了一站式的数据库架构+应用+数据一体化迁移方案。
下面,我将分别介绍华为云GaussDB数据库的产品特性,帮助大家理解云原生数据库的技术优势是如何解决业务难点的。
GaussDB(for OpenGauss)
GaussDB(for openGauss)定位是华为自有生态下的金融级+分布式数据库,该产品具备企业级复杂事务混合负载能力,同时支持优异的分布式事务,同城跨AZ部署,数据0丢失。支持1000+扩展能力,PB级海量存储等企业级数据库特性。
GaussDB(for openGauss)拥有云上高可用、高可靠、高安全、弹性伸缩、一键部署、快速备份恢复、监控告警等关键能力,能为企业提供功能全面、稳定可靠、扩展性强、性能优越的企业级数据库服务。同时,开源openGauss单机主备社区版本,鼓励更多伙伴、开发者共同繁荣中国数据库生态。
GaussDB (for MySQL)
GaussDB (for MySQL)定位是一写多读云原生数据库,是云原生元素最多的一款产品。
通过这个架构,GaussDB for MySQL可以提供超高的性能,很好的扩展性,极高的可靠性,以及高度兼容MySQL。单节点读轻松达到100W,写50W,可以创建15个只读副本。有高达128T的存储空间,提供存储级别的跨AZ部署,数据三副本强一致,四个九的可用性,也能配合DRS服务实现MySQL的在线迁移。
它非常适合对数据库有高吞吐、高可用、高可靠、异地容灾、弹性伸缩、大数据量处理需求的行业。
常言道,软件优化到一定程度,不如硬件一个小的提升。华为DFV存储原生具备算子下推能力,所以GaussDB (for MySQL)在DFV上实现了算子下推的多个算子,例如聚合、MVCC等。同时也在Server层上实现优化器的并行查询,以及NDP的感知,可以判断查询是否触发NDP。同时支持PQ+NDP结合,多线程批量操作下发,以Count(*)计数操作为例,在PQ+NDP的双重加持下,有超百倍的性能提升,网络传输减少到趋于1次,仅仅返回计数结果即可。
GaussDB NoSQL
GaussDB NoSQL 属于云原生多模NoSQL数据库,包括MongoDB、Cassandra、Redis和InfluxDB 4种开源接口,相比较自建NoSQL数据库,它们的优势明显。
基于计算存储分离架构构建,计算节点和存储可以分别扩容,以MongoDB为例,添加分片的时候不需要数据的rebalance,可以在5分钟内即添加好一个分片,效率非常高,并且在添加分片的时候对数据库性能无影响,相比于自建NoSQL数据库添加分片,效率达到了百倍的提高。
计算存储分离还带来了极致的高可用,理论上可以达到N-1个节点故障容忍。举个例子:假设一个GaussDB NoSQL集群具备12个节点的分片,可以容忍11个节点故障的情况下还能提供访问。
GaussDB NoSQL单个集群最大可支持96TB的数据存储,而且计算和存储之间通过高速的RDMA直连网络,带来极大的性能提升,在相同资源消耗情况下,比自建NoSQL集群性能有平均3倍的提升。
在可靠性方面,DFV存储池实现数据三副本,支持业务无感的坏块修复。DFV池化技术使单台存储设备故障对数据库无影响,支持跨3AZ部署。另外,数据库存储通过DFV快照技术实现极速的备份和恢复能力,带来极致的备份恢复体验。
大规模商用正在进行时
业界有句俗话叫-自己吃,华为云数据库在向外部客户推出前,已经在内部的消费者云得到充分验证。消费者云整体数据量达到PB级别,单业务最大数据容量超过100T,有900套数据库遍布全球。
消费者云最开始是多AZ四副本架构,由第三方组件来选主,单点故障后会选择新的主节点接替服务,实现准强一致。但是遇到AZ级别的故障,却无法依靠数据库本身来确保绝对安全。
升级到GaussDB(for MySQL)之后,基于DFV存储底座的3AZ强一致,消费者云物理存储从8份(有RAID)减少到3份,从准强一致升级到强一致。分布式存储可以动态均衡压力,也能避免单点数据库访问过热,大大提升了消费者云的数据库服务能力并降低了成本。
NoSQL生态方面,GaussDB帮助天地图为4亿客户提供了最佳体验。在GaussDB的架构和能力下,客户数据库系统的备份性能提高了20倍,数据恢复速度提升7倍,扩容速度和性能提升3倍,大大提升了客户数据库的可维护性和可靠性。
当前,华为云GaussDB案例已经覆盖全场景客户,在1000+大客户的业务上规模化商用。无论是泛金融、政府、运营商,还是快递、电商领域,都有华为云数据库的身影。华为云数据库将继续努力,做好技术提升和帮助客户成功,为更多企业上云数字化转型提供坚实可靠的数据库底座。数据组织形式和访问形式也不同。
专家 云原生 开发者 数据库
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。