1984年,诞生了一款十分优秀的关系型数据库系统,利用VAX/CLUSTER可以实现多节点并发访问,同时还支持类似IBM SYSTEM/R的CBO优化器。可能有朋友会认为这款数据库是Oracle,实际上Oracle比这款数据库的出生要早5年。如果你不用查资料就能知道这款数据库是什么,那么我猜你至少也年过半百了,这个数据库叫做VAX/RDB,现在叫Oracle RDB。
VAX/RDB这个比Oracle 晚几年出生的数据库产品因为有一个好爹,比起Oracle来是有巨大的技术优势。RDB在当时已经先进到什么程度呢?首先,在一套多节点的VAX/CLUSTER环境中安装一套RDB数据库,那么我们就可以从任何一个VAX小型机节点上并发访问这个数据库,想要扩展系统资源,只要往这个VAXCLUSTER中添加一个节点就行了,连数据库软件和数据库实例都无需添加。这个特性甚至现在的Oracle RAC都还没有做到,这是全世界第一套支持共享存储并发读写的集群数据库系统。
不仅如此,从这套数据库的第一个版本开始,优化器就支持CBO,而Oracle的CBO优化器要到1998年才凑合能用,这已经是Oracle收购RDB之后的第四个年头了。95年我把一套系统的数据库从VAX/RDB迁移到ALPHA服务器上的Oracle 7上的时候,发现很多多表关联的SQL语句性能都下降了,必须准确的按照顺序书写FROM后面的表顺序才比较快的执行。
RDB虽然一出生就点中了正确的科技树,但是并没有在商用数据库市场上成长成为一个顶级的产品。反而在发展过程中点错了一次科技树,过于依赖底层的硬件与操作系统的核心能力,错失了拥抱更为开放的Unix平台的机会 ,路越走越窄,最终在十年寿辰的时候被其竞争对手Oracle收购,最终沦为一个三流的数据库产品。
反观刚开始没有点中正确科技树的Oracle,经过15年的不断积累,不断通过用户侧的应用纠正和发展自己的技术路线,并在1994年抓住了DEC公司业务调整的机会,把RDB数据库收入囊中,从而获得了集群计算和CBO的核心技术。两年后Oracle在VAX/CLUSTER上推出了共享存储集群产品ORACLE OPS;三年后Oracle的CBO优化器也上线了。在这一轮信息技术大潮中,Oracle好像拥有了金手指一样,频频点开正确的科技树,抓住了更为开放的UNIX系统替代专用系统和linux替代专用UNIX的两次机会,在开放平台的加持下成为关系型数据库的霸主。
图片
不过天底下没有永远的赢家,在云计算风起云涌之际,Oracle在云布局上不仅远远落后于亚马逊、谷歌等互联网企业,甚至更大幅度地落后于老对手微软。这是因为Oracle在这个阶段丢失了金手指的灵感,重点发展过于厚重的数据库一体机为核心的软硬一体化的技术,给了云厂商巨头和勇于壮士断腕果断转型的微软以可乘之机,在2021年丢失了保持了二十年之久的商用数据库一哥的宝座。甚至在2021年被亚马逊超越,目前屈居第三。
虽然目前Oracle在目前的商用数据库市场竞争中暂时处于落后,不过这场竞争依然在继续,Oracle凭借着自己深厚的底蕴,只要能够在未来的竞争中抓住市场要点,未尝没有在这个长期主义为核心的市场上翻身的那一天。
仔细回味一下这三十年的龙争虎斗,我有一个感觉:先进性属于未来,长时间积累才能成就数据库产品的辉煌。不要说年近半百的Oracle和而立之年的微软数据库,哪怕是亚马逊AWS数据库,也已经有了十多年的历史积累。目前我们的大多数国产数据库缺乏长时间的存在,更谈不上长时间的积累了。因此他们总是希望点开一棵新的科技树,从而获得成功。不过点科技树这个事情,总是没那么稳妥的,一旦点错了科技树,一条道走下去,不见得就能够成功。奉行长期主义,做好长期和用户在场景上不断地磨合,才有可能走向成功。