蚂蚁|中国核心数据对美国的依赖,可能真要结束了( 二 )


这位落魄程序员从此开启了自己的传奇人生 。
随后的几十年中 , 看到“钱景”的IBM和微软纷纷加入数据库市场竞争 , 甲骨文并不缺少挑战者 。 直到2010年 。
那一年 , 甲骨文在TPC-C测试中跑出3024万的成绩 , 是同年IBM的3倍 , IBM再无还手之力 。 尤其是在产业起步较晚的中国 , 人们提起数据库 , 几乎只能想到甲骨文 。
巧合的是 , 甲骨文王朝的衰落 , 也在那一年埋下种子 。
硅谷天才埃里森 , 不久之后就要见识到中国工程师的“恐怖”了 。

蚂蚁|中国核心数据对美国的依赖,可能真要结束了
文章图片
2018年 , 埃里森接受福克斯商业新闻采访 , 渲染“中国威胁论”
2.
2010年 , 45岁的百度高级科学家阳振坤 , 应阿里云之父王坚的要求 , 从北京辞职南下杭州 。 他的新工作 , 是为阿里研发一款自己的数据库 。
彼时 , 淘宝网的电商业务正在席卷中国大地 , 如火山般爆发的用户数据让阿里成为甲骨文最大的亚洲客户 , 也挑战着甲骨文的极限 。
淘宝首先遇到的问题是 , 数据库的成本实在是太高了 。
在数据库领域有一个“IOE”的说法 , 意思是一个完整的数据库系统 , 软件加硬件 , 需要IBM服务器、Oracle数据库、EMC存储设备“三驾马车” 。 为了保证数据不出错 , Oracle数据库必须运行在高端服务器和存储硬盘上 。
然而随着淘宝流量的爆发 , 阿里算了笔账 , 未来采购这“三驾马车”的费用 , 甚至会超过公司的全部利润 。 寻求低成本的数据库解决方案势在必行 。
更紧迫的问题是 , 甲骨文数据库已经要崩溃了 。 2010年 , 是“双11”启动第二年 , 当天23时59分30秒 , 眼看“双11”就要结束 , 支付宝核心账务系统突然报警 , 数据库资源即将耗尽 。 当技术人员砍掉最后一个非关键应用的时候 , 距离整个系统崩溃只剩下4秒 。
为此 , 阿里首席架构师王坚提出了一个去IOE计划:以廉价PC服务器替代IBM小型机 , 以基于开源的自研数据库替代Oracle数据库 , 不再用高端存储设备 。
于是就有了那个著名的军令状:“淘宝2010年起不再购买小型机” 。
最初 , 王坚提出的“基于开源的自研数据库” , 是指以当时流行的国外开源数据库MySQL为基础自行改造 , 这是中国软件行业最常见的自主化路径 。
这条道路后来衍生出2016年开源的AliSQL , 比原版MySQL有70%的性能提升 。
但阳振坤选择了一条更艰难的路——自己开发一种全新的分布式数据库 。
事实证明 , 这个选择是极其明智的 , 因为不久以后 , Oracle就收购了MySQL , 不再完全开源 。

蚂蚁|中国核心数据对美国的依赖,可能真要结束了
文章图片
阳振坤
3.
所谓分布式数据库 , 是指区别于Oracle传统的集中式数据库 , 不再将数据储存在一台服务器上 , 而是直接运行在云上 。
这是一个颠覆性的变化 。
一个合格的数据库 , 必须满足ACID特性 。 简单地理解 , 当A给B转账100元钱时 , 数据库必须做到:

原子性(Atomicity):A的账户减少100元 , B的账户增加100元 , 这两件必须同时发生 , 像原子一样不可分割;
一致性(Consistency):转账之后 , A和B的账户总和必须跟转账前一致;
隔离性(Isolation):A和B之间的转账不影响其它任何账户;
持久性(Durability):转账记录必须长久存在 , 即使发生断电等故障也不能消失 。
甲骨文等传统数据库 , 被称为集中式数据库 , 运行在一个单一的服务器上 , 因此可以最大程度上保证ACID特性 。 即使服务器出现故障 , 也可以保证一个任务要么都发生 , 要么都不发生 , 不会出现A的账户少了100块钱 , B的账户却没收到的情况 。


推荐阅读