Neondb-穷人的Aurora,你看明白了吗?

这篇文章本来是昨天要发的,因为上班路上有所思,所以到公司后临时写了一篇发出了。这两天经常有朋友问我,儿子高考怎么不回家陪陪。十分感谢这些热心的朋友,说实在的,儿子高考还真没啥可陪的,上周日返校后今天考完才离开学校。不过今天怎么都得在化学考试结束前赶到校门口去接一下,所以今天上午我就回深圳了。

AWS Aurora的出现让人眼前一亮,这种云原生生态的数据库产品大大简化了用户数据库使用门槛,只不过Aurora没有线下版本,因此也很难进入寻常百姓家了。前阵子我一个客户也和我讨论了Serverless Database的问题,他们企业中存在数百个规模不大,重要性也不高的系统,数据库系统的建设与运维管理一直占用了大量的企业IT资源,能不能想个办法,用Serverless Database来替代现在的云上的大量的小型MYSQL RDS实例。最好是计算可以放到k8s里,数据可以持久化到S3的。

正好前几天群里有个朋友提到Neon Database这个开源数据库,我就简单地研究了一下。

从Neon的官网上我们可以看到Neon是一个serverless的开源数据库,可以作为AWS Aurora Postgres的替代。它对PG进行了存算分离改造,将PG的存储层改造为一个分布式的集群。

经过对PG的架构进行重构后,Neon的计算单元是部署在k8s pods中的postgresql兼容SQL引擎,应用可以通过PG客户端或者PG兼容的JDBC/ODBC引擎连接计算单元来访问数据库。Neon可以为每个租户创建一个独立的数据库实例,其SQL引擎跑在K8S pods里,当有会话访问数据库实例的时候,容器被激活,向外提供服务。当一段时间内没有会话访问数据库的时候,POD会被清理,从而回收资源。Neon目前支持PG 14/PG15,与原生态的PG保持极高的兼容性,支持大量的PG插件。

Safekeeper集群:负责数据库的持久化。PostgreSQL将预写日志(WAL)流式传输到Safekeepers,Safekeepers持久地存储WAL,直到它被Pageserver处理并上传到云存储。同时WAL也可以在对象存储中持久化保存。如果Safekeeper可以把数据存储在高性能SSD上,那么数据修改可以快速落盘,实现较大并发的数据写入。

Pageserver:负责处理读取请求。为此, Pageserver将传入的 WAL 流处理为自定义存储格式,使所有page版本都易于访问。Pageserver还将数据上传到云对象存储,并按需下载数据。同时,Pageserver还承担了一个缓冲层,存储了经常会被数据库访问的较热的PAGE。

Neon 使用 S3 等云对象存储进行长期数据存储。存储的数据是静态加密的。持久化的数据和不怎么访问的数据页存储在S3中,价格低廉,容量巨大,扩展方便的对象存储为持久化数据提供了有效的存储。

在这个架构中,Safekeepers可以被认为是一个超可靠的写入缓冲区,它保存最新的数据,直到它被处理并上传到云存储。Safekeepers通过Paxos协议以确保可靠性。Pageserver还用作云存储的读缓存,提供对数据页面的快速随机访问。在这个架构中,已经消除了bgwriter,因为物理PAGE已经不需要写入,而是完全通过WAL异步回放。

目前Neon已经开放了公有云服务,并且提供免费试用,于是我在新加坡的Neon公有云免费申请了一个数据库。申请完毕后,就可以通过本地的psql客户端连上去使用了。

我在上面创建了一个测试PG表连接的DEMO。然后测试一下几个表连接的语句。

EXPLAIN ANALYZE SELECT  count(*) FROM join1 j1 INNER JOIN join2 j2 ON j1.id = j2.id WHERE J1.ID>1 AND J1.ID<10;

128毫秒执行时间,性能一般,不过还不算坏。

Neon 允许以与分支代码相同的方式即时对数据进行分支。可以快速且经济高效地对数据进行分支,用于开发、测试和各种其他目的,从而提高开发人员的工作效率并优化持续集成和交付 (CI/CD) 管道。分支数据可以方便地通过云存储的复制克隆来实现。可以从当前或过去的状态创建分支。例如,您可以创建一个分支,其中包含截至当前时间点或更早时间点的所有数据。

分支与其原始数据隔离,因此您可以自由地使用它,修改它,或者在不再需要它时删除它。对分支的更改是独立的。分支及其父分支共享相同的历史记录,但在分支创建时会有所不同。对分支的写入将另存为增量。创建分支不会增加父分支上的负载或以任何方式影响它,这意味着您可以随时创建分支,而不会影响生产系统的性能。每个 Neon 项目都是使用一个名为 的主分支创建的。您创建的第一个分支是从项目的主分支分支。后续分支可以从主分支或以前创建的分支上进行。

我可以在管控台上快速创建一个分支。如果创建一个branch仅仅为了备份,可以不创建compute endpoint,否则需要创建一个compute endpoint。我创建了一个分支,就可以用它来做一些其他的应用了,比如用于测试或者研发,亦或是交给审计部门去使用。每个compute endpoint都有一个独立的pod来承载,可以作为一个独立数据库使用,系统会生成一个访问连接串。

Neon总体来说看上去不错,后续我们团队会进行本地化部署和验证。不过Neon的历史还比较短,功能也还比较简单,可靠性也欲待验证。

目前Neon对备份和灾备的支持还比较简单,数据的安全完全依靠云平台和对象存储来保障。这决定了Neon还很难承载关键性的大型应用,不过企业中的一些小型数据库应用使用还是足够的,其最大的好处是方便。

Neon是以Apache V2开源的,我们目前可以到GITHUB上去下载,项目名称为NervanaSystems/neon。整个项目是用Rust开发的,其易读性不错,作为数据库产品,性能应该也没问题。Neon使用Postgresql作为嵌入项目,目前Neon支持PG14/PG15两个版本,有兴趣的朋友可以去试试。Neon的出现,将会大大丰富PG数据库生态,以此为基础开发一个云原生数据库产品也是可行的。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/229121.html<

(0)
管理的头像管理
上一篇2025-04-18 15:10
下一篇 2025-04-18 15:11

相关推荐

  • 骨干网络体系结构能干什么?骨干网络体系结构的作用

    骨干网络体系结构是现代信息社会的“超级高速公路网”,它通过分层设计、冗余备份和智能调度,确保海量数据在全球范围内高速、稳定、安全地传输,是支撑云计算、物联网及人工智能应用的底层基石,想象一下,如果你把互联网比作一个巨大的城市交通系统,那么骨干网络就是连接各个城市的主干道和立交桥,没有它,你的每一次微信发送、每一……

    2026-06-18
    0
  • 高io数据库可以干什么用?高io数据库适合什么场景

    高IO数据库的核心价值在于通过极高的读写吞吐量,解决海量数据场景下的性能瓶颈,是支撑高并发交易、实时分析及大规模内容分发的关键基础设施,在数字化转型的深水区,数据不再仅仅是静态的记录,而是流动的资产,传统的机械硬盘或普通SSD早已无法满足现代应用对速度的极致追求,高IO(Input/Output)数据库,就是那……

    2026-06-18
    0
  • 高io服务器性能如何?高io服务器适合什么场景

    高IO服务器并非单纯指代某种硬件,而是指在随机读写、高并发连接及小文件处理场景下,具备极致IOPS(每秒输入输出操作次数)和低延迟特性的计算资源,它是支撑现代高并发应用稳定运行的核心基石,在2026年的数字化浪潮中,业务负载早已从简单的静态页面展示演变为复杂的实时数据处理,许多开发者在排查系统瓶颈时,往往忽略了……

    2026-06-18
    0
  • 隔离网络空间哪里便宜?国内隔离网络空间价格

    隔离网络空间并没有统一的“便宜”标准,其成本高度取决于物理隔离等级、带宽需求及安全合规要求,通常物理网闸方案初期投入较高但长期运维成本低,而逻辑隔离方案虽初期便宜但存在潜在安全风险,建议根据业务敏感度选择混合隔离架构以平衡成本与安全,在数字化时代,企业构建独立网络环境的需求日益增长,但“隔离网络空间哪里便宜”这……

    2026-06-18
    0
  • 骨干网络体系结构设备为何故障?常见原因有哪些

    骨干网络体系结构设备故障的核心原因通常归结为硬件老化、配置错误、物理链路中断及外部攻击四大类,其中电源模块失效与光模块性能衰减是占比最高的隐性故障源,骨干网作为数字经济的“大动脉”,其稳定性直接关乎国计民生,当核心路由器或交换机出现丢包、震荡甚至宕机时,运维人员往往面临巨大的压力,很多人第一反应是检查软件配置……

    2026-06-18
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注