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