分布式New SQL数据库的起源

       关系型数据库是企事业单位、政府机构信息系统的核心资源,对于一些关键行业(例如银行、非银行金融机构、电信等),由于自身业务的特点,决定了其信息系统在可靠性、可用性、可扩展性以及强一致性等方面有着极高的要求。因此,现有这些企业的信息系统在设计与实现时大部分采用了数据集中式的架构,软硬件产品选型也以IBM、Oracle、EMC等大型商业公司提供的商用产品为主。比如使用小型机和SAN存储来保证数据库的可用性、可靠性;在扩展性方面,主要通过增加CPU、内存、磁盘等纵向扩展方式(scale up)提高处理能力。

       近些年,随着互联网、移动互联网、云计算、大数据和人工智能技术的飞速发展并结合新的商业模式创新,给各行业带来了深刻的影响和变革。个人和企业、企业和企业、企业和政府之间需要大量的交互,与以往相比会产生更大的访问量和数据量。这对支持企业运营和管理的信息系统,特别是核心资源的关系型数据库系统带来了巨大的挑战:

  • 数据量巨大

       联机单表记录数几亿 ~ 几百亿

       联机数据库数据量几TB ~ 几百TB

  • 访问量巨大

      几万TPS  ~  几十万TPS

      几十万QPS  ~  几百万QPS

     

    “互联网+”带来的巨大流量使得企业、机构面临外部访问负载以及数据量的大幅提升,很多企业信息系统目前所采用的这种集中式架构,越来越不适应海量数据以及高并发环境下对数据处理能力的要求,在应对此类场景时数据库逐渐成为整体系统的瓶颈,而提升系统性能只能靠替换式的硬件升级,成本昂贵。

      为了解决关系型数据库扩展能力的瓶颈,互联网企业最先进行了尝试和探索。目前他们普遍采用分库、分表,使用 MySQL+数据库中间件方案来解决数据库扩展能力不足的问题,这种方案有人把它叫做“第二代分布式数据库方案”。这种方案能够比较好的满足互联网企业自身的业务需求,但是对于很多企业比较复杂的业务场景、特别是金融机构的金融业务场景来讲,无法满足强一致性ACID事物的要求 ;此外,这种方案对业务和应用具有侵入性,对上线之后,数据库扩容、升级等运维工作的挑战也是很大的。

      在这种背景下,能够支持SQL和强一致性ACID事物,并且具有可弹性扩展、高可用、能够支持OLTP场景(或者OLTP和OLAP混合负载场景),并且对应用无侵入性的关系型数据库成为很多企业和机构的热切需求。

      随着分布式计算理论和数据库技术的发展,近几年诞生了新一代分布式New SQL数据库产品(Google F1/Spanner、阿里OceanBase、PingCap的 TiDB、Cockroach Labs的 CockroachDB),它们采用了新的架构,吸收了关系型数据库和NoSQL数据库各自的优点,具有SQL模型的简单易用、水平弹性扩展、支持强一致性分布式ACID事物、高可用等一些列特点,逐渐成为解决海量数据环境下高并发OLTP交易的最有希望和前景的技术方向。

        在后续的一系列博文中,我将跟大家分享分布式NewSQL数据库中最有活力的开源产品——TiDB 和 CockroachDB(这两个产品很多地方是相类似的,前者兼容MySQL,后者兼容PostgreSQL)的相关知识,包括:产品简介、基本原理、针对初学者的快速入门、针对开发人员的用户指南以及针对运维管理人员的运维指南等内容。


猜你喜欢

转载自blog.csdn.net/u011782423/article/details/80913470