关键字: [Amazon Web Services re:Invent 2023, CockroachDB, Distributed Database, Serial Consistency, Global Scale, High Availability, Mission Critical]
本文字数: 1100, 阅读完需: 6 分钟
视频
如视频不能正常播放,请前往bilibili观看本视频。>> https://www.bilibili.com/video/BV1UM411d7db
导读
每家银行、零售商和 SaaS 公司都依赖关键任务应用程序为其业务提供动力。但是,如何构建关键任务应用程序以实现规模和弹性是一项挑战。可用性是不容置疑的--即使是少量的停机也可能意味着收入和客户的损失。一致性和正确性同样至关重要。了解如何对关键任务应用程序进行现代化改造,以创造更好的客户体验、适应不断变化的工作负载需求并确保业务连续性。本讲座将重点介绍企业如何使用分布式 SQL 数据库 CockroachDB 进行水平扩展、消除性能瓶颈、保持数据本地性并在几乎任何类型的中断中存活下来。本讲座由亚马逊云科技合作伙伴 Cockroach Labs 为您带来。
演讲精华
以下是小编为您整理的本次演讲的精华,共800字,阅读时间大约是4分钟。如果您想进一步了解演讲内容或者观看演讲全文,请观看演讲完整视频或者下面的演讲原文。
安德鲁·巴比特是一位拥有17年分布式系统经验的高级工程师,自18个月前加入Cockroach Labs以来,他一直致力于公司开创性的弹性和可扩展数据库系统。CockroachDB的名字源于蟑螂惊人的适应能力,能在恶劣环境中生存,这与CockroachDB的设计目标相呼应。
安德鲁详细阐述了数据库过去几十年的发展历程。从20世纪60年代和70年代的早期先驱系统如IBM的IMS等单节点、单体系统,到随着企业数据需求增长,通过在单个系统中添加更多资源来扩大规模的演变。然而,到了21世纪初,开发人员意识到单一数据库服务器的扩大规模非常复杂且容易出错。
为了解决这个问题,新一代的分布式NoSQL数据库应运而生,如DynamoDB和Cassandra。它们通过放弃复杂的分布式一致性保证,只支持简单的查询API,从而能够轻松地跨多个节点扩展。然而,开发人员发现受限的API使用起来非常痛苦。
为了解决这一矛盾,托管数据库提供商如Amazon RDS等将传统单体数据库的操作性变得更加简单。但仍然存在内在的扩展限制。开发人员渴望拥有传统关系型数据库的简单、功能丰富的SQL,同时也具备NoSQL的可扩展性。
CockroachDB正是为了满足这一需求而诞生的。它提供了易于使用的、与PostgreSQL兼容的SQL,同时不会牺牲分布式可扩展性、弹性和性能。尽管谷歌的Spanner在核心技术方法上取得了一些突破,但CockroachDB的目标是让这些功能惠及更广泛的大众。
安德鲁表示,CockroachDB非常适合任务关键型应用,因为停机时间可能是灾难性的,例如DoorDash这样的应用。即使是短暂的故障也可能成为CockroachDB主要用户的头条新闻。一位用户声称,他们在测试中找不到可能导致CockroachDB崩溃的任何故障场景。
在底层,CockroachDB将处理查询和交易的分布式SQL层与负责复制、一致性和可扩展性的分布式键值存储分开。数据被自动划分为一组排序的键值对范围。范围使用Raft共识协议进行复制。权限在提交之前在节点之间进行复制。
这种架构允许轻松地添加节点以扩大容量。系统会自动将数据副本在现有节点和新节点之间进行重新平衡。关闭一个节点将会反向这个过程。Andrew通过实时集群演示了这一过程,展示了重新平衡过程中对吞吐量没有影响。他还通过强制终止一个节点展示了恢复能力。在短暂的停顿后,集群在几秒钟内恢复正常运行。整个可用性区域可以在租赁转移和副本重建的过程中被暂时停止,这只会导致轻微的中断。CockroachDB旨在应对节点、机架、区域、乃至云服务提供商层面的故障。
CockroachDB的全球部署不仅提高了生存性,还带来了性能问题。北美和欧洲之间的往返延迟接近100ms的阈值,用户可能会感到延迟。CockroachDB采用了一些策略来实现全球分布式数据的低延迟:
-
区域表会将数据本地化到其所在的位置,例如来自相同地区的客户数据。这提供了几乎瞬时的响应时间。无论位置如何,权限只需进行一次往返操作。
-
参考表在全球范围内复制数据,使其对所有用户都可用。使用权限表确保跨区域序列化。虽然写入可能需要更长的时间,但读取速度很快。
-
追随者读取允许从任何区域读取可能过期的情况。这为减少非关键读的延迟提供了灵活性。
遵循严格的序列化并提供零停机时间的模式更改,这使得与简化应用程序开发相比,选择弱最终或快照隔离级别变得更加简单。然而,CockroachDB确实计划提供一个读提交的隔离级别作为迁移应用程序的选择。
在实际应用中,尽管在CAP定理下是一个AP系统,但CockroachDB为大多数实际场景提供了强大的一致性和可用性。只有已经被分区并无法处理服务流量的节点才会降低可用性。
CockroachDB在一个连贯且易于使用的平台上融合了传统关系型SQL的优势、可扩展的NoSQL特性和云端灵活性。它既可以在本地环境中运行,也可以在公共云环境、混合环境或通过其云服务进行管理。超过300家企业,其中包括一些大型金融机构,都在依赖CockroachDB来支持他们最为关键的应用和数据。
下面是一些演讲现场的精彩瞬间:
演讲者在讨论其从事分布式系统工作17年的经验时,分享了他对CockroachDB技术的热衷。
他强调了在大型、任务关键的系统中减少停机时间和提供低延迟数据访问的重要性。
为了实现应用架构中的自动且可负担的可扩展性,避免在需求突然激增时进行昂贵的重新设计,演讲者提出了范围作为系统的基本单位。
每个范围都由一个Raft共识组组成,该组将写入操作序列化为具有序列号日志。
亚马逊云科技采用了联合Raft配置,在DynamoDB副本重新平衡过程中同时运行两个临时Raft组,以确保在没有数据丢失的情况下正常运行。
通过了解数据和用户位置的模式,亚马逊云科技能够提供低延迟和一致性。
此外,演讲者宣布,所有亚马逊云科技的源代码都将公开,这表明了其对于透明度的承诺。
总结
演讲者探讨了CockroachDB如何提供一个针对可扩展性、弹性和数据局部性而设计的分布式SQL数据库。其功能包括自动伸缩、快速添加和移除节点以及从故障中迅速恢复。此外,CockroachDB还支持强序列化,以确保应用程序的正确运行。为了在分布式环境中实现低延迟,CockroachDB提供了区域表、全局复制表、行级别的地区分片以及稍过时数据的追随者读取功能。CockroachDB的目标是在大多数现实场景中同时实现一致性和可用性,从而挑战CAP定理的局限性。演讲者将通过实时演示缩放、故障恢复以及在节点维护期间的数据读取来展示这些功能。最后,他将描述各种部署选项,包括自主托管、专用云和服务无服务器模式。核心信息是CockroachDB结合关系型、NoSQL和云数据库的优点,为关键业务应用提供支持。
演讲原文
https://blog.csdn.net/just2gooo/article/details/134819680
想了解更多精彩完整内容吗?立即访问re:Invent 官网中文网站!
2023亚马逊云科技re:Invent全球大会 - 官方网站
点击此处,一键获取亚马逊云科技全球最新产品/服务资讯!
点击此处,一键获取亚马逊云科技中国区最新产品/服务资讯!
即刻注册亚马逊云科技账户,开启云端之旅!
【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用”
亚马逊云科技是谁?
亚马逊云科技(Amazon Web Services)是全球云计算的开创者和引领者,自 2006 年以来一直以不断创新、技术领先、服务丰富、应用广泛而享誉业界。亚马逊云科技可以支持几乎云上任意工作负载。亚马逊云科技目前提供超过 200 项全功能的服务,涵盖计算、存储、网络、数据库、数据分析、机器人、机器学习与人工智能、物联网、移动、安全、混合云、虚拟现实与增强现实、媒体,以及应用开发、部署与管理等方面;基础设施遍及 31 个地理区域的 99 个可用区,并计划新建 4 个区域和 12 个可用区。全球数百万客户,从初创公司、中小企业,到大型企业和政府机构都信赖亚马逊云科技,通过亚马逊云科技的服务强化其基础设施,提高敏捷性,降低成本,加快创新,提升竞争力,实现业务成长和成功。