写点什么

地位堪比 S3!AWS 开放了它最核心的数据库 QLDB

  • 2018-12-04
  • 本文字数:4085 字

    阅读完需:约 13 分钟

地位堪比S3!AWS开放了它最核心的数据库QLDB

今年的 AWS re:Invent 大会,最让你印象深刻的发布是什么?


这个问题的答案对笔者来说,第一天是 RoboMaker,第二天是Firecracker,第三天是 Lake Formation。然而当第四天结束的时候,笔者才发现,第三天发布的 QLDB 的重要性可能被远远低估了。


所以,今天我们来好好聊聊 QLDB 这个事情。

区块链是真需求还是伪需求?

re:Invent大会第三天,AWS CEO Andy Jassy 在他的主题演讲上发布了 QLDB——Quantum Ledger Database,直译过来叫做量子账本数据库。之后,AWS CTO Werner Vogels 在自己的 Twitter 上表示,QLDB 是本次 re:Invent 他最爱的发布之一。



如前所述。根据 Andy Jassy 的说法,AWS 经过了一年以上时间对区块链“客户”的访谈调研之后,终于明确的发现了区块链“客户”们的两类真正的需求:

1. 中心化可信账本


主要使用场景:医疗领域的挂号跟踪、交管局的车辆管制、制造业的缺陷品跟踪、HR 领域的个人从业经历跟踪等。原理上,此类需求用通用型关系数据库(如 MySQL 或 Aurora)也是可以解决的,只是在部分情况下,通用型关系数据库很难把此类问题很好的解决。

2. 去中心化可信交易


主要应用场景:金融领域的 P2P 支付、房产领域的组合贷款处理、小微企业的供应商分销商交易管理、零售行业的客户奖励流水线等。


针对这两类需求全面分析之后,AWS 发布了两个新东西,第一个是 QLDB,第二个是 Managed Blockchain。其中,QLDB 的前身是 Amazon.com 内部使用了多年的一个数据库技术。


当时听完后笔者就纳闷了:既然 AWS 一直都还在评估“区块链是不是伪需求”这个问题,那就是说,Amazon 内部一直都是没有在使用区块链的。那么,Amazon.com 怎么会一直有一个 QLDB 这样的数据库在内部使用呢?


怀着这个问题,笔者询问了 Bill Vass——一位 AWS 副总裁,业务方向是存储、Kinesis、机器人(听起来是一个挺奇怪的组合)。

回到源头

你有没有想过,“账本”到底是啥意思?“可信”又是啥意思?


经过 Bill Vass 热心的介绍,QLDB 这个已经在 Amazon 内部用了 4、5 年的数据库技术,面貌逐渐清晰了起来。结合一些相关资料,笔者尝试对 QLDB 简述如下:

账本(ledger)

“链条”(chain)是这样一种东西:它一环扣一环,每一环都有前面一环和后面一环,新的环添加在链条的末尾,于是链条就越来越长。


从数据的角度,这就是强时序的数据。对于不要求时序性的数据来说,写进来的顺序是 1、2、3、4,存储成 1、3、2、4 也没关系;但是对于强时序的数据来说,写进来的顺序是 1、2、3、4,就一定要存储成 1、2、3、4 的顺序。这就是数据的链条。


于是你说了,这强时序有什么难的?数据库的代码只要没写错逻辑不都能实现?的确,难的并不是代码逻辑。难的是,如果一秒之内进入上千上万个请求,你如何确保它一定正确呢?要在吞吐量巨大的大规模集群上做到高性能还要保证不出错,这个活儿可不是谁都干得了。


什么样的数据特别需要强时序?“日志”(log)必然位列其中。2014年Werner Vogels发布Aurora的时候,用了极大的篇幅介绍其背后的机制,其中非常重要的一点就是,Aurora 之所以能够做到秒级的崩溃恢复,是因为它使用“操作日志”进行数据库重建的方式来做恢复。“操作日志”的顺序一定要完全正确,否则重建数据库无法成功。(那就完蛋了!)所以,Aurora 的背后,一定有一个强大的分布式高性能强时序数据库用来存取日志。Bill Vass 透露说,QLDB 就是这个 Aurora 背后的日志数据库。Bill Vass 还介绍道,除了 Aurora 之外,强时序数据库在电商的应用也很广泛,特别是“秒杀”场景,一边是订单一边是库存,如果交易的时序处理不好就会出现超售的问题,如果用通用型关系数据库的“锁”来避免超售又影响效率,所以 QLDB 很重要。


“交易的日志”,就是“账本”(ledger)。人类使用账本的历史至少也好几百年了,Amazon 使用账本的历史至少也 24 年了。所以,Amazon 有一个定制化的账本数据库用了 4、5 年,也不是什么奇怪的事情。

可信(trust)

2009 年中本聪发布 Bitcoin 白皮书,掀开了数字交易信任机制的新篇章。白皮书提出的方案有两个重点,一个是用“去中心化”来避免对权威角色的依赖,一个是用“加密算法”来取代权威角色的裁判动作。


此白皮书一出,广泛流传,一时之间给广大吃瓜群众产生了一种错觉:一切不可信的源头就是权威,解决了权威就解决了不可信问题。


但其实人家说的根本不是这么一回事!中本聪论文的第一段话就说,权威第三方可信机制在大部分数字交易中是挺好用的。主要问题在于,如果交易者存心诈骗,利用“可撤销的支付”作为系统漏洞进行双重支付,从而产生交易纷争,则权威第三方需要去处理交易纷争,这个成本一般是比较高的,对小额度交易而言并不现实。


那么问题又来了:数字交易中的“可信”就是指防诈骗吗?


也并不是。“可信”是一个统计学问题。所谓“可信”,是“不可信”的反义词。不可信的因素增多,系统整体趋于不可信。不可信的因素排除的越多,系统整体趋于可信。诈骗只是众多不可信因素当中的一种而已。数据丢失或数据损坏,也都是不可信因素当中的一种。


为了更准确的描述 QLDB 解决的问题和区块链解决的问题之间的区别,以下从 AWS 官方网站QLDB的FAQsManaged Blockchain的FAQs分别摘取几段介绍:

Q:账本数据库与其他数据库有什么不同?

A:传统数据库支持数据覆写(overwrite)与删除,所以如果需要跟踪数据的时序性,开发者需要另外用到审计表(audit tables)和审计跟踪(audit trails)等技术。此类技术虽然可以实现该目的,但它们需要定制化研发,并且比较难以扩展,而且确保数据正确性的责(hei)任(guo)落在了应用开发者的头上。在 QLDB,数据被写入到 append-only journal(只增型日志)上以保证数据的时序性,QLDB 日志是不可篡改(immutable)和可验证(verifiable)的,也就是说,你可以信任账本中的数据。

Q:账本数据库适合存什么数据?

A:QLDB 天然适合记录型系统(system-of-record)应用,此类应用对数据完备性、数据完整性、数据可验证性有强需求。比如在供应链与物流领域,使用 QLDB 构建的应用能够将一切变更的完整历史留存下来,无论是货车之间的移动还是跨境移动,每一条记录都能够完整留下来以供查询分析。在金融领域,记录型系统应用对关键数据进行跟踪,比如信贷交易和借记卡交易。以前的话,此类应用需要构建一套复杂的记录留存功能,而有了 QLDB,这就变得很容易实现,所有的金融交易记录都被永久的、完整的保存下来。

Q:QLDB 是分布式账本吗?QLDB 是区块链服务吗?

A:QLDB 不是区块链,也不是分布式账本。区块链与分布式账本技术主要致力于解决另一个问题,就是当多个利益方使用去中心化应用的时候,该应用不属于任何一个利益方,也没有任何一个利益方是完全受信任的。而 QLDB 的适用场景则是,一个客户自己拥有一个应用,并且需要一个账本数据库来维护所有数据变更历史的完整性与可验证性。QLDB 的优势在于强时序性、不可篡改性、可验证性,并且由于 QLDB 作为托管的 AWS 服务被提供给客户,它还有可扩展、简单易用等优点。如果你的应用是去中心化的,牵涉到多个互相之间不信任的利益方,那么区块链解决方案可能更适合你。如果你的应用对数据变更记录的完整性和可验证性有需求,并且不涉及多个互相不信任的利益方,则 QLDB 会非常适合。

Q:所以,Managed Blockchain 和 QLDB 到底有啥区别?

A:QLDB 是中心化的账本数据库,客户就是应用的拥有者,客户自己维护数据变更记录的一切历史。而在区块链技术里,区块链网络中有多个成员,网络中的每一个成员都拥有一份独立的、可验证的、不可篡改的账本的副本,每一个成员都可以互相之间发起交易、或认可(endorse)别人的交易,一切的交易与数据共享都是以加密方式进行的,并不需要一个中心化的“应用拥有者”或者“可信的权威”来做裁判。


再补充一条官网上没写的:根据 Bill Vass 的描述,QLDB 的速度是目前区块链技术的 1000 倍

应用开发的下一个阶段

关系型数据库(relational database)是个好东西。一张一张的表(table),表里一个一个的列(column),每一行(row)就是一条数据,每一条数据都可以增删改查(CRUD),这些特点让它几乎适用于所有的应用场景。基本上我们可以这么说:后来出现的数据库能做的事情,关系型数据库都能做。


但这句话也可以反过来说:恰恰是因为关系型数据库啥都能做,所以才出现了一个又一个“不以啥都能做为目标”的新型数据库。这些新型数据库专门为了把特定的事情做好而设计。比如:Key-Value Database 键值数据库,在社交网络类应用崛起的时候开始流行(键值数据库常被视为 NoSQL 数据库的典型代表,其中 NoSQL 是 Not only SQL 的缩写);Graph Database 图数据库,在社交网络成为热门分析对象的时候开始流行;Time-Series Database 时序数据库,应对越来越多的物联网设备的数据存储需求。而 Ledger Database 账本数据库,也是新型数据库当中的一种。


值得一提的是,本次发布的 QLDB,在 AWS 众多服务当中是一个重要度在 Tier 0 级别的服务,与 S3、Kinesis 同级。什么是 Tier 0 级别?简单来说,其他服务都依赖于它,所以它绝对不能出问题,一旦它出问题,整个 AWS 都要挂掉。也可以说,QLDB 是众多 AWS 服务当中最可靠、最不会出故障的那一类——因为 AWS 会最优先保证它不会出故障。


所以,我们有了三个有意思的发现:


“啥都能做的数据库”越来越不重要了。反而是那些“只能做好一件事的数据库”,越来越成为互联网的基石,被广泛使用。


应用开发者有越来越多的“只能做好一件事”的底层工具可以搭配起来使用,可以把更多精力放在应用层的逻辑实现。


IT 世界的分层分工越来越精细化,而这在云计算没有积累到今天这么多用户之前,几乎是不可能发生的。

总结

QLDB 不是区块链。


QLDB 不是区块链。


QLDB 不是区块链。


但是你需要的真的是区块链吗?你需要的到底是什么?


如果你只能做好一件事,你会选择做什么?别人擅长做什么?如何跟他们充分合作?什么工具最擅长做什么?如何在自己的场景用好这些工具?在接下来的这个时代,这些问题很重要。


反过来说,如果听到区块链很火就去搞区块链,听到人工智能很火就去搞人工智能,那必然什么也做不好。这是一定的。


2018-12-04 17:302683

评论 2 条评论

发布
用户头像
把QLDB解释的很清楚,认同作者最后的观点。
2018-12-05 10:18
回复
没有更多了
发现更多内容

北京哪家web前端培训班比较好

小谷哥

基于 OpenMLDB 的联邦学习方案被国际数据挖掘学术会议 CIKM 录取

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

横空出世,智见未来,戴尔Latitude 9430傲视群雄

科技热闻

Qt | QList的removeAt、takeAt的区别

YOLO.

qt 10月月更 C++

IM跨平台技术学习(五):融云基于Electron的IM跨平台SDK改造实践总结

JackJiang

Qt|使用QDialog窗口调用exec时崩溃解决问题

中国好公民st

c++ qt 10月月更

MASA MAUI Plugin (四)条形码、二维码扫描功能

MASA技术团队

MASA MAUI MASA Blazor

CEF | CEF浏览器客户端功能扩展:实现与JS交互的功能

YOLO.

qt 10月月更 C++

.NET开发者转型AI?只需要学会这个工具!

博文视点Broadview

选对方法,窜货不再是棘手难题!

旺链科技

区块链 溯源 产业区块链 企业号十月PK榜 VoneTracer

好文分享 | 记一次Oracle12c数据库SQL短暂缓慢问题分析

墨天轮

数据库 oracle 性能优化 征文投稿

极客时间运维进阶训练营第一周作业

忙着长大#

极客时间

火力全开-Precision 7670触顶性能天花版

科技热闻

【云安全】云安全产品有哪些?哪个品牌好?

行云管家

云计算 网络安全 安全 云安全

得物API一站式协作平台探索与落地

得物技术

架构 数据分类 API Mock 10月月更

基于炼丹神器深度学习下的生命科学冷冻电镜单细胞基因分析的解决方案

GPU算力

如何利用Java在Word中创建表格

Geek_249eec

Java word 表格

大数据培训技术学费是多少

小谷哥

web前端技术培训的就业前景

小谷哥

博客马拉松|和 OpenMLDB 一路向前

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

Baklib|打造属于您自己的企业维基

Baklib

产品 效率工具 企业 wiki 产品文档

跑批为什么这么难

陈橘又青

嵌入式 Linux 入门(一、Linux 基本介绍及文件结构)

矜辰所致

Linux 10月月更 文件结构

EMQ走进富士康,探讨新生态模式下智能制造与智能汽车基础架构的未来

EMQ映云科技

车联网 物联网 IoT emqx 10月月更

云管理工具是干什么的?有哪些?哪个品牌好?

行云管家

云计算 云管理 云工具

线下技术培训班怎么选择比较好?

小谷哥

报名中!阿里云、统信软件、西安邮电等多位专家教授畅谈eBPF和Linux的硬核技能 | 2022云栖大会

OpenAnolis小助手

阿里云 开源 统信软件 龙蜥操作系统峰会 eBPF&Linux

在云南,我用华为云AI开发出千万级用户的应用

华为云开发者联盟

人工智能 程序员 华为云 文字识别 企业号十月 PK 榜

北京前端技术培训机构怎么样?

小谷哥

OpenHarmony轻松玩转GIF数据渲染

OpenHarmony开发者

OpenHarmony

Baklib|企业知识管理的一些建议分享

Baklib

效率工具 知识管理 企业 知识 知识库

地位堪比S3!AWS开放了它最核心的数据库QLDB_数据库_sai_InfoQ精选文章