说到关系型数据库,Postgres 是至高无上的,尤其是在云计算领域。然而,以现代云方式运行这种开源数据库还有待改进。这正是 NewSQL 数据库资深专家Nikita Shamgunov希望通过他的最新创业公司 Neon 来填补功能空白。
Shamgunov是MemSQL的联合创始人之一,后来担任首席执行官。MemSQL是一种分布式SQL数据库,可以同时处理分析和事务性工作负载。Shamgunov说,这种超可扩展性数据库现在被称为SingleStore,继续服务于高端市场。但是,在关系数据库的大部分事务性工作负载方面,Postgres 是当之无愧的赢家。
“Postgres在这一点上基本上是不可阻挡的。”Shamgunov在上周接受Datanami采访时说,“它正在成为 Linux。”
数据无疑证明了这一点。上个月,Postgres 被 DB-Engines.com 评为 2023 年度最 佳数据库。在 Stack Overflow 的 2023 年开发者调查中,Postgres 数据库名列第一,力压 MySQL、SQL Server 和 MongoDB 等数据库中坚力量。
插件架构使 Postgres 能够快速、轻松地处理不同的数据类型,如时间序列、地理位置和向量嵌入,这使 Postgres成为关系数据库中的瑞士军刀。唯一缺少的是用于分析工作负载的列存储,Shamgunov说:“Postgres生态系统最终可能会解决这个问题。”
三大云巨头都提供 Postgres 作为服务,但在这一领域,AWS 是无可争议的重量级冠军。根据 Shamgunov 的说法,Amazon Aurora 每年的收入达到 40 亿美元,而 Amazon 关系数据库服务(RDS)每年的收入达到 70 亿美元,加起来占到了 Gartner 估计 2023 年全球数据库市场 1000 亿美元的 11%。“其他所有东西都只是个小数目,”这位前 Microsoft SQL Server 工程师说。
Shamgunov说,虽然Postgres在云计算领域占据主导地位,但该数据库却没有人们在当今时代所期望的功能和性能。AWS 和谷歌云(Google Cloud)等公司已经完成了在其 Postgres 产品中分离计算和存储的工程工作,这使它们能够提供Serverless Postgres 实例,可以随时启动和关闭。不过,这些都不是开源产品。到 2024 年底,Aurora Serverless V1 将停止服务,该产品可以一直缩减到零,这让客户非常懊恼。
Shamgunov说,数据库市场缺乏的是一种Serverless Postgres产品,开发人员可以轻松地在云中启动它,同时它又是开源的,并与庞大的开源Postgres生态系统保持完全兼容。这就是Shamgunov与Postgres贡献者Heikki Linnakangas和Stas Kelvich于2021年共同创立的Neon公司的基本目标。
这家于 2022 年 6 月公开亮相的初创公司,早期专注于将数据库中的计算与存储分离的艰苦工程工作,这是提供Serverless体验所必需的。该公司为 Postgres 开发了自己的存储引擎,使其能够使用Amazon S3 作为数据库的后端网络存储,同时不引入数据流的不兼容性。
“我们将存储分离出来,使用专为Postgres定制的网络附加存储。”Shamgunov说,“API 不是文件系统 API。它是 Postgres 可以理解的 API。”
Shamgunov说,Neon存储引擎以“极低级别”与Postgres连接,这是实现与Postgres完全兼容的关键因素。
Neon 存储引擎由两部分组成:根据Neon GitHub页面的介绍,Pageserver组件是位于计算节点旁边的可扩展存储后端,而Safekeepers则作为冗余的预写日志(WAL)服务,接收来自计算节点的WAL,并将其持久存储,直到Pageserver处理完毕并上传到云服务器。
Shamgunov说,只要Neon存储引擎在预期时间内返回数据,查询引擎就不会知道其中的差别。他说,这意味着Postgres堆栈中的任何其他部分都不会受到影响,Postgres的所有扩展和应用都能正常工作。
“对我们来说,100%兼容Postgres是非常重要的,”他补充说,“我们也将自己定位为Postgres,而不是其他数据库。”
Shamgunov 说,这种方法有几个好处,首先是几乎无限的可扩展性。他说,由于 Neon 建立在共享存储架构之上,而不是其他 Postgres 兼容数据库使用的无共享架构,因此它基本上可以根据只读副本的数量进行线性扩展。
“像我们、Amazon Aurora 和 Google Cloud AlloyDB 这样的共享存储系统,每个查询的计算是由单个节点完成的,”Shamgunov 解释说。“你可以有多个只读副本,但每个单独的查询都是由单个节点计算处理的。但那个计算节点连接到分布式存储,所以你基本上可以将你的 IOPS 推送到分布式存储上。现在你的 IOPS 几乎是无限的。”
Shamgunov 说,开发人员也能从这种方法中受益。得益于 Neon 的Serverless特性,像克隆或分支数据库这样的开发者活动变得相对微不足道。他说,这使得 Neon 对开发者来说更容易使用。
“你看现在的数据库,根本找不到它们。它们不是为现代云消费而构建的,也不是根据现代开发人员生命周期构建的,”Shamgunov 说。“其基础功能是分支能力。就像 Git 允许你分支一样,Neon 也允许你分支。因此,你可以在生产中拥有一个数据库,而数据库就是 URL。因此,我们有一个 URL,它代表你在云中的数据库。你可以对其进行分支。现在,你有了一个不同的 URL,就可以立即拥有该数据的完整副本,并有一个独立的端点,该端点也是隔离的。”
Neon 首席执行官说,当开发人员构建应用程序时,他们可以在每次拉取请求甚至每次提交时对数据库进行分支。他说,“因此,现在你有了面包屑。”他说:“你可以构建隔离环境,如果没有这项功能,成本会高得惊人。”Shamgunov说,Neon与GitHub和Vercel集成,用于源代码管理,其API可以使用Jenkins等工具轻松集成到CI/CD管道中。
曾在 SQL Server 团队工作过的 Shamgunov 说,微软的 SQL Server Hyperscale 也提供了类似的以开发人员为中心的功能。不过,该数据库与 Postgres 不兼容,这使它在当今的数据库市场上处于劣势。
Neon 数据库在 Neon GitHub 项目下提供,该项目拥有超过 11000 个星标,并且采用宽松的 Apache 2.0 许可证。用户可以自由下载源代码并编译自己的 Postgres 数据库。Shamgunov 表示,甚至连 Snowflake 也已经将开源的 Neon 引入到了 Snowpark 中。
他说,除了开源部分,公司还提供了企业版 Neon,在云中为客户托管,就像 MongoDB 或 Databricks 模式一样。“这是 Postgres 的 Mongo Atlas。”他说。
另外,开发人员也可以在Neon Free Tier下建立自己的托管数据库,该层作为技术预览版提供。免费层客户可以拥有一个 Neon 项目,最多 10 个分支,每个分支有 3GB 的存储空间。该公司表示,Neon 目前管理着 50 多万个数据库环境。
Shamgunov 终于建立了一个数据库,它保留了他认为现代数据库必须具备的两个最关键的特征:一个是云架构,它提供了可扩展性;另一个是开源,它消除了锁定(或对锁定的恐惧)。SingleStore/MemSQL 具有云的可扩展性,但该数据库从未开源。Shamgunov说,价值40亿美元的Postgres巨头Amazon Aurora同样没有开放源代码,这使它很容易受到要求开放的Postgres用户的攻击。
在如此短的时间内取得如此大的发展势头,Neon 的前景无疑是光明的。该公司目前还没有盈利,但正在快速注册新用户,希望能将他们转化为稳定的付费用户。迄今为止,该公司已通过五轮融资筹集了 1.04 亿美元,其中包括 2023 年 8 月由 Menlo Ventures 领投,Databricks、Snowflake 和谷歌的风险投资部门参与的 4600 万美元的 B 轮融资。
“这个架构恰到好处,然后价值就像乐高积木一样开始在这个架构上分层。”Shamgunov说。“它在很大程度上受到了Amazon Aurora 的启发,但可以把它想象成 Aurora 的 V3。如果说 V1 存储是 Aurora,V2 存储是 Microsoft SQL Server Hyperscale,那么 V3 就是对这两个系统的重新实施,它吸取了这两个系统的所有经验教训,并提出了一种现代存储实施方案。”
作者:Alex Woodie