AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

地位堪比 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:302798

评论 2 条评论

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

【LeetCode】三数之和Java题解

Albert

算法 LeetCode 8月日更

Go与Redis连接池的那些事儿~

Regan Yue

redis Go 语言 8月日更

巨头纷纷布局分布式云,一场新的云战争即将打响

云计算

只需6步,教你从零开发一个签到小程序

华为云开发者联盟

小程序 App 移动 智慧校园 FunctionGraph

如何实时打通数据孤岛?Tapdata 创始人唐建法受邀于GOTC深度分享

tapdata

数据库 打通数据孤岛 数据同步 Real Time DaaS GOTC

elaticsearch kibana介绍与安装

Rubble

Swift 实现获取、展示 Mac 的 WiFi 密码

fuyoufang

ios swift SwiftUI Mac 软件 8月日更

「免费开源」基于Vue和Quasar的前端SPA项目crudapi后台管理系统实战之数据库逆向(十二)

crudapi

Vue crud crudapi quasar 数据库逆向

手撸二叉树之路径总和

HelloWorld杰少

数据结构与算法 8月日更

专业好用的数据恢复软件推荐

淋雨

EasyRecovery 文件恢复 硬盘数据恢复

快来看,大数据两地三中心的容灾也可以如此省心!

华为云开发者联盟

大数据 数据湖 容灾 华为云MRS 两地三中心

服务器的升级,不可避免的安全问题

九河云安全

oeasy教您玩转vim - 6 - # 保存修改

o

让数据库从业者用实力对美国说不!

博文视点Broadview

带你读AI论文:SDMG-R结构化提取—无限版式小票场景应用

华为云开发者联盟

语义 多模态 推理模型 SDMG-R 检测文本

Vue进阶(十):NPM 管理 node.js 依赖

No Silver Bullet

Vue npm nodejs 8月日更

增强自动化测试的8大技巧

禅道项目管理

测试 自动化测试

赛迪发布《2020-2021年中国IT服务市场研究年度报告》,联想位居第一梯队

科技大数据

科技互联网

2021第二届云原生编程挑战赛正式启动,抢先报名!

阿里巴巴云原生

阿里云 Serverless RocketMQ 云原生 dubbo

netty系列之:netty中的Channel详解

程序那些事

Java Netty nio channel 程序那些事

十大排序算法--快速排序

Ayue、

排序算法 8月日更

这几个棘手的面试常见问题,如何高情商的回答?

架构精进之路

面试 情商 8月日更

TrafficStatsRunnable 实用封装

Changing Lin

8月日更

推动数据中心行业的“水电煤”,可视化如何用数据改变传统产业?

一只数据鲸鱼

机房 数据可视化 数字孪生 智能IDC

论 Erda 的安全之道

尔达Erda

云原生 安全 企业数字化转型 云平台 开发平台

你的工作有弹性么?

escray

学习 极客时间 朱赟的技术管理课 8月日更

DAPP智能合约系统源码开发

获客I3O6O643Z97

智能合约 DAPP智能合约交易系统开发

Pangaea AI 智能机器人炒币系统开发

获客I3O6O643Z97

量化策略 量化跟单 量化机器人

CC挖矿系统源码开发

获客I3O6O643Z97

挖矿 挖矿矿池系统开发案例 fil矿机

Mysql读写锁保姆级图文教程

华为云开发者联盟

MySQL 数据 读写锁 读锁 MyLSAM

2021全球开源技术峰会|IoT 时代的开源数据基础设施

EMQ映云科技

开源 IOT Platform IoT emq 开源技术

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