什么是最适合云数据库的架构设计?

分布式数据库技术发展多年,但是在应用、业务的驱动下,分布式数据库的架构一直在不断发展和演进。

开源金融级分布式数据库SequoiaDB,经过6年的研发,坚持从零开始打造数据库核心引擎。在技术探索中,选择了更适合云数据库场景的架构和引擎设计。本文也将详细展开,介绍目前SequoiaDB的架构与设计理念。

SequoiaDB近日也完成由嘉实投资领投的C轮融资。本轮的领投方为嘉实投资,启明创投与DCM作为早期投资方跟投。SequoiaDB巨杉数据库一直坚持技术驱动产品,专注打造金融级分布式数据库,成为中国首次入选Gartner数据库报告的数据库厂商。目前,巨杉数据库付费企业级客户与社区用户总数超过1000家,并已在超过50家500强级别的银行、保险、证券等大型金融机构核心生产业务上线。

Multimodel多模数据库引擎
在云计算与分布式时代,为单一结构化数据服务的传统关系型数据库也开始了不断地发展。从2007年IBM DB2支持XML以来,越来越多的关系型数据库开始支持XML与JSON等半结构化数据。因此,Gartner认为未来数据库的发展方向是多模式的时代,一款成熟的数据库产品需要利用分布式技术,支持除了关系型以外的多种访问方式。
SequoiaDB则是一款典型的多模(Multi-Model)数据库,全面覆盖了结构化、半结构化与非结构化数据,同时满足交易、影像存储业务、以及统计分析业务的需求。
SequoiaDB通过其计算存储分离架构,在NewSQL结构化数据领域有效利用MySQL、SparkSQL与PGSQL解析执行器,在保持行业标准100%兼容的同时,完美实现了在线交易与离线分析的HTAP混合交易分析负载的支撑。同时SequoiaDB使用API满足企业对半结构化JSON数据的支持,以及通过兼容Posix文件系统以及S3接口实现了非结构化数据的存储与访问。
SequoiaDB存储使用双引擎架构,将文件大对象与数据记录分别以最优的结构进行解析与存放,上层辅以统一的事务管理、集群管控、同步复制、会话管理等机制,支持数据与会话的逻辑与物理隔离,使其最大化满足云时代的分布式管理与混合业务负载需求。
2017年底SequoiaDB发布了其3.0版本。在其发展路径中可以看到,SequoiaDB的每一个大版本迭代均在之前的版本上进行了巨大的扩展与增强。其中,2013年正式发布的1.0版本作为单纯的JSON数据库,提供了对半结构化数据的支撑能力。而到了2015年的2.0版本,SequoiaDB开始完全支持了对象存储。直到2017年底发布的3.0版本更是提供了对MySQL、PGSQL与SparkSQL的完美对接与100%兼容,全面支持NewSQL的分布式事务处理能力。

SequoiaDB产品 发展历程
计算-存储分离架构
当前业界中常见的分布式架构包括分库分表与计算存储分离两类。其中分库分表架构以应用中间件切分或MyCat等产品为代表。而如果说分库分表架构是基于传统数据库进行简单的上层封装,真正的计算存储分离架构则意味着在SQL解析与底层的数据存储均可进行自由的弹性扩展。
当前行业中最主流的云数据库实现(例如AWS的Aurora、阿里云的PolarDB等)即通过将MySQL服务器直接构建在底层的分布式高性能存储之上,通过定制化标准的SQL引擎与底层数据通讯接口,实现底层分布式存储与上层的SQL解析执行器完全松耦合,两者均可自由动态伸缩。

计算(SQL)-存储 分离架构示意

计算存储分离体系的设计思想是以松耦合的方式将计算与存储层分别部署,通过标准接口或插件对各个模块和组件进行无缝替换,在计算层与存储层均可实现自由的弹性伸缩。MySQL与MariaDB的架构可以说是关系型数据库计算存储松耦合结构的代表。在MySQL 5.7及之前的版本中,其SQL解析引擎与后台的数据存储内核通过几百个C++函数进行通讯。因此,在MySQL数据库中,DBA可以选择InnoDB、MyISAM、NDB、Memory、甚至自己实现一套数据库引擎来与前端的SQL解析执行器进行对接。


分布式数据库“计算-存储分离”架构详细示意

计算存储分离架构的优势之一在于,用户可以根据自身的业务特征自由选择面向交易的SQL解析器(例如MySQL或PGSQL),或面向统计分析的执行引擎(例如SparkSQL)。众所周知,使用不同的SQL优化与执行方式,数据库的访问性能可能会存在上千上万倍的差距。计算存储分离的核心思想便是在数据存储层面进行一体化存储,而计算层面则有效利用每种执行引擎的特点,针对不同的业务场景进行选择和优化。

SequoiaDB架构示意

同时,由于数据存储层与计算层完全分离,用户完全可以在存储层进行逻辑与物理的隔离,将面向高频交易的前端业务,与面向高吞吐量的统计分析使用不同的硬件进行存储,确保在多类型数据访问时互不干扰,以真正达到生产环境可用的多租户与HTAP能力。

得益于SequoiaDB 3.0的分离架构,整个数据库可以通过自由对接不同的执行引擎,对同一份数据以不同的接口进行访问。同时,SequoiaDB可以通过配置,指定在线业务访问三副本中的两份,而另一份则专门供SparkSQL进行统计分析,从而做到对同一份数据的访问,在线应用与统计业务在物理硬件层面完全隔离。

计算-存储分离架构下的业务灵活隔离划分

对于在线交易业务来说,由于所有的分布式事务、锁、索引等机制都是直接在底层的分布式引擎完成,上层使用任何SQL解析器都可以做到完全的ACID。
弹性伸缩
在云计算的时代,任何应用程序与中间件早已经通过微服务架构实现了动态扩容缩容。例如,企业可以在双十一高峰前大规模租赁AWS或阿里云的服务器,将应用程序的计算与处理能力几十倍地扩张。
但是,不同于应用程序,数据层面的弹性伸缩能力往往是应用程序扩展性最大的制约。例如,应用程序可以在一天内不停机地从3个Tomcat服务器扩展到30个,但底层的数据分库分表机制几乎不可能轻松自如地增减数据库的服务节点。

SequoiaDB存储引擎原生分布式架构

SequoiaDB通过一致性散列等机制,对底层数据库扩容缩容做到完全在线且对应用透明无感知。对于需要存放大量数据的流水类业务,SequoiaDB甚至能够提供“零数据迁移”策略,确保增加节点后系统不会产生任何需要产生大量I/O的后台重平衡操作。
SequoiaDB可以通过增加数据分区与数据节点数量,对整个集群的存储容量与计算能力进行弹性水平横向扩张。
MySQL全兼容
SequoiaDB通过“计算-存储分离”架构,提供了应用程序层面的MySQL全兼容能力。SequoiaDB直接利用在MySQL官网下载的MySQL Server,通过其存储引擎插件的能力,提供了平行于InnoDB的SequoiaDB分布式存储引擎插件。
SequoiaDB完全利用了大家多年来所习惯使用的MySQL数据库服务,对于应用程序开发人员与DBA来说并不需要学习任何新的知识与语法,便可以无缝地将其应用程序从传统的单点架构迁移到分布式数据库。在从InnoDB存储引擎向SequoiaDB分布式引擎切换时,所有的数据分区机制对上层应用程序完全透明零感知。同时SequoiaDB也提供了包括离线、在线、实时等多种迁移工具,供用户在不同场景下进行选择。
如今MySQL已经被大量互联网与企业级用户所使用。相比起需要重新构建SQL解析器与执行器的分库分表策略,SequoiaDB的计算-存储分离架构能够最大化重用开发人员与DBA的原有技能,同时与MySQL社区保持紧密结合互动,通过其分布式存储能力参与到MySQL的生态建设。

SequoiaDB对MySQL完整兼容示意
小结
以Multimodel多模数据存储引擎为基础,通过业界主流的计算-存储分离架构,实现引擎的分布式以及SQL层对于MySQL、PostgreSQL以及SparkSQL的完整兼容。这一整体架构设计相信是云数据发展的主流架构设计。

SequoiaDB正是应用了这一架构设计,实现了弹性扩张、多租户、HTAP支持、与MySQL全兼容等能力,这也使开源的SequoiaDB能够更加紧密地参与到社区建设中,为我国的数据库基础软件发展与MySQL社区的壮大贡献自己的力量!通过此次融资,巨杉数据库将持续投入核心研发与技术创新,立足于金融行业覆盖其他垂直领域市场,拓展更多企业级应用场景,加速国际化步伐,将巨杉数据库打造成为世界级的分布式数据库产品!

原文地址:http://blog.51cto.com/13722387/2286317

时间: 2024-08-24 18:05:23

什么是最适合云数据库的架构设计?的相关文章

【IT名人堂】何云飞:阿里云数据库的架构演进之路

[IT名人堂]何云飞:阿里云数据库的架构演进之路 原文转载自:IT168 ? 如果说淘宝革了零售的命,那么DT革了企业IT消费的命.在阿里巴巴看来,DT时代,企业IT消费的模式变成了“云服务+数据”,阿里云将打造一个像淘宝电商一样多方共赢的云生态.而作为阿里云庞大帝国的重要成员,阿里云RDS为社交网站.电子商务网站.手机App提供了可靠的数据存储服务.好的架构不是设计出来的,而是演化出来的,那么RDS经历了怎样的架构演进?本期名人堂我们邀请到了阿里云RDS首席产品架构师何云飞,为我们揭秘RDS的

no.14数据库的架构设计与性能优化读后感

杭州湖畔网络技术有限公司是一家专业提供SaaS化电商ERP服务的创业公司,主要用户群体为经营淘宝.天猫.京东等主流电商平台.自建商城.线下渠道的商家及中小企业.作为SaaS服务提供商,服务数万乃至数十万级用户是业务架构初期就必须考虑的问题.庞大的用户群以及海量的用户数据意味着基础设施的构建必须兼顾高效与稳定,而按照通用的基础设施建设方案的话,需要面对成本过高.实现复杂.需要投入太多精力等问题,这对当时的湖畔网络这样的初创公司来说,完全不能承受.因此,更经济.更方便扩展的云服务平台成为首选.在对比

云数据库架构演进与实践

  如今,大型企业如金融企业和银行等,在下一代的微服务架构转型要求下,需要基础软件和数据平台能够实现原生的云化,以满足微服务架构的需求. 微服务,也就是一种面向服务的,有特定边界的松散耦合的架构. 主要特点包括,每一个微服务是一个独立的自治系统,可以不依赖外部组件独立运行:对应用只暴露接口,用户可以灵活的调整过每个微服务的使用:业务粒度足够小. 在企业架构"云化"的过程中,数据库的云化是最为重要也是难度较大的一个部分.数据库云平台(dbPaaS)是一类支持弹性扩张.多租户.自我管理.并

云计算之云数据库

云数据库: 架构在云端数据库集群上,通过云服务的方式让关系型数据库的可靠性更高,免去繁琐的维护工作,节约硬件成本,其具备以下特点: 云数据库特点: 1:管理方便:可以自动备份.弹性扩展. 2:性能出色:针对数据库高性能需求,采用高端高性能硬件配置,同时对数据库性能参数做了特定的优化. 3:配置简单:轻轻松松1分钟搭建主从等高可用架构.

重新定义数据库的时刻,阿里云数据库专家带你了解POLARDB

摘要:POLARDB是阿里云ApsaraDB数据库团队研发的基于云计算架构的下一代关系型数据库,其最大的特色是计算节点与存储节点分离,借助优秀的RDMA网络以及最新的块存储技术.POLARDB不但满足了公有云计算环境下用户业务快速弹性扩展的刚性需求,同时也满足了互联网环境下用户对数据库服务器高可用的需求.本文就带领大家了解什么是"云原生数据库",云原生数据库的标准是什么,如何定义以及为何如此定义?为大家介绍下一代云原生数据库POLARDB的架构.产品设计.未来工作等内容. 以下内容根据

云计算及云数据库集群架构师

行动成就梦想 课程 课程提要 课程模块 上课要求 Linux部分课程 ULE-Linux基础部分 Linux系统环境及权限管理 LINUX初级与高级 Linux系统配置及网络配置 Linux系统.网络服务及安全配置 Shell部分 Linux Bash Shell编程及系统自动化 Mysql部分 Mysql数据库管理及 高并发数据库读写分离项目 ULE项目部分 企业级运维技术及实践项目 ULA-高级部分 Linux系统高级安全及入侵恢复 Linux系统性能分析及调优 Linux高级存储.共享存储

OpenStack之路: OpenStack架构设计指南 - 一般用途云架构(摘录并翻译)

第二章. 一般用途General purpose 目录 用户需求 技术考虑因素 运维考虑因素 架构体系 规范性示例 一般用途云架构是开始建设云实施的常常被考虑使用的方案,这种价格原本就是被设计为平衡所有组件,而且在整个计算环境中不强调任何特殊因素.云架构的设计必须给予计算.网络,及存储组件相同的权重.一般用途云架构在私有云.公有云及混合云环境中都较常见,这也就使得这种价格可以用于很多不同的案例. 注: 一般用途云架构是均匀分布部署的,而且不适合用于特殊环境或者边缘使用案例. 一般用途云架构的常见

面向云数据库,超低延迟文件系统PolarFS诞生了

摘要: 如同Oracle存在与之匹配的OCFS2,POLARDB作为存储与计算分离结构的一款数据库,PolarFS承担着发挥POLARDB特性至关重要的角色.PolarFS是一款具有超低延迟和高可用能力的分布式文件系统,其采用了轻量的用户空间网络和I/O栈构建,而弃用了对应的内核栈,目的是充分发挥RDMA和NVMe SSD等新兴硬件的潜力,极大地降低分布式非易失数据访问的端到端延迟. 随着国内首款Cloud Native自研数据库POLARDB精彩亮相ICDE 2018的同时,作为其核心支撑和使

写的不错的一篇云数据库的文章

本文作者:许中清,腾讯云自研数据库CynosDB的分布式存储CynosStore负责人.从事数据库内核开发.数据库产品架构和规划.曾就职于华为,2015年加入腾讯,参与过TBase(PGXZ).CynosDB等数据库产品研发.专注于关系数据库.数据库集群.新型数据库架构等领域.目前担任CynosDB的分布式存储CynosStore负责人. 企业IT系统迁移到公有云上已然是正在发生的趋势.数据库服务,作为公有云上提供的关键组件,是企业客户是否愿意将自己运行多年的系统搬到云上的关键考量之一.另一方面