在昨天谈到哪些数据库是真正的开源数据库时,有朋友认为应该重点关注“完全独立自主开源的,而不是拿着国外开源魔改出来的”。
所以我想说说:国产数据库真的有必要从头写起吗?
首先,存在即合理,无所谓对错。所以从头写和开源改,都有其存在的合理性。
可是我想起图灵奖获得者迈克尔·斯通布雷克今年讲到的一句有趣的话,他说:
stand on the shoulders of those who came before and not on their toes(要站在前人的肩膀上,而不是站在他们的脚趾上)。
(关于斯通布雷克的故事,在我的新书《数据库简史》中有详细述及)
我觉得,在开源的基础上“魔改”演进,就属于站在前人的肩膀上;而如果我们通过学习、理解了原理,从头写一次,就相当于站在了前人的脚趾上。
斯通布雷克同时呼吁:为了加速下一代数据库管理系统的发展,社区应该促进可重复使用的开源组件和服务的开发,努力制定类似 POSIX 的数据库管理系统内部标准,以加速互通性。
这是非常好的建议,通过构建高度成熟的标准件,让过往的经验可以被后来者借鉴,从而加速创新,共同推动技术进步,这是最高效的方法。而且,Ingres开创的数据库时代无比精彩,由其迭代衍生的数据库创新产品难以详数。很多国产数据库产品都是Ingres开放的受益者。
所以,在国产数据库领域,在符合知识产权许可的条件下,通过借鉴开源,在开源的基础上迭代创新,打造更先进、更经济的产品,是有利于用户的(当然我们更欢迎原始创新,从头开始打造全新的产品架构,推动数据库技术跃迁)。
我们通常将数据库的发展定义为三个时代,商业数据库、开源数据库和云数据库时代。开源数据库的出现,彻底改变了计算机世界,推动了互联网世界的快速发展,也让数据库以更低的门槛(包括成本、易用性等)变得无处不在。
在中国数据库的国产化时代,在用户现有数据库的替代进程中,我们更应该考虑用户的成本问题。如果能够通过基于开源数据库的产品和社区,在满足生产需求的条件下,让用户以更低的成本创造价值,则一定是对当下数字经济发展的重要促进。
在这种情形下,优质高效的服务,就成为了对用户最重要的保障。此外,为了实现产品可控,我们还需要能够深入理解内核的工程师,在出现问题时能够持续修复和改进产品,确保应用安全。而且,未来能够深入内核的工程师会越来越多,国产数据库已经从DBA时代进入了内核工程师时代。
就如同我们经历过操作系统技术的演进变革,现在几乎不再需要多少独立的操作系统工程师了;我相信,当数据库足够成熟、简单、自动化,那么数据库就能够更深的隐入应用软件之中,不再成为需要重点关注的技术域。
在路上,有感而发,匆匆几句。
云和恩墨大讲堂 | 一个分享交流的地方
长按,识别二维码,加入万人交流社群
请备注:云和恩墨大讲堂