POSTGRESQL NEON - Serverless 式的POSTGRESQL 数据库的独特技能 分支数据

2023-09-06 09:09:12 浏览数 (3)

之前没有关注过 SERVERLESS 的数据库产品之前,我很少会关注SERVERLESS的东西,因为一直在实体机数据库类型打拼的我,从来不关心什么 云原生 什么 SERVERLESS ,I don't care about that ,it's not my business !!!!

但是后来上云了,上的很深,没法了,开始关注什么是云原生,什么是POALRDB 最终也是双脚结结实实的踏入了,之前睬都不睬的领域。没有办法,人才江湖,身不由己,吃那锅的饭,说那个国的话!

所以今天看看POSTGRESQL 的一个新的分支,NEON, 他和我们的国产的POSTGRESQL 分支不同,他是在底层进行工作,让POSTGRESQL 变成一个 SERVERLESS 的POSTGRESQL同时还有一个特别的功能。

实际上在很多现今的企业有一些业务是需要进行SERVERLESS化的,如那些餐饮企业,平日门可罗雀,节假日是踩到水泥地板都漏了的状态,那么基于这样业务的数据库,可想而知是一个什么样的状态,平日CPU在 1% - 2%徘徊,而到了节假日,CPU 可能要爆掉,管理维护的人员会很难,平日看老板的脸色,认为你根本没用, 而到了节假日,还是认为,你真的根本没用。

那么拯救这类业务的SERVERLESS 类型的数据库,就从无需求到有需求的状态,NEON 属于POSTGRESQL 的一个分支,提供一种可以控制和管理SERVERLESS POSTGRESQL 的产品。

NEON 本身是基于AWS AURORA POSTGRESQL 的开源替代品,采用无服务的结构,存算分离的结构,Neon将POSTGRESQL 的存储层替换为数据节点,将计算节点分布在一个节点集群中。

Neon是一个开源(Apache 2.0)的替代AWS Aurora或Google Cloud SQL for Postgres的选择。Neon是可无服务器和可扩展的PostgreSQL实现,可以在本地运行或通过托管服务进行部署。

Neon将PostgreSQL架构分解为两个层次:计算和存储。计算层由在Kubernetes上运行的无状态PostgreSQL组成,允许根据需求扩展Pod。

数据库使用Neon存储引擎实现,该引擎是一个定制的层,处理事务和数据。事务日志通过一组冗余的safekeeper服务进行处理,而数据页由pageserver在磁盘上进行管理。

实际上Neon在2021年6月推出。作为一个新项目,与竞争对手相比,这个托管服务的功能可能会更少。但是Neon有一个功能,在我看来,其他人没有:分支--- 数据的分支

每个开发人员都熟悉分支。在Neon中,分支的工作方式与Git几乎相同,除了它们不能合并(虽然将来有计划添加基于模式的合并)。您可以在任何时候从主干分支分支,从而有效地创建“备选时间线”。

由于在Neon中的分支是可写的,这个功能使我们可以做到其他数据库引擎做不到的事情。例如:

自由实验而不影响主分支。

立即备份数据库。因此,如果数据被错误地删除,我们可以切换到最新的好分支。

简化集成测试。开发人员可以在具有一次性测试的专用分支中运行测试

安全地在生产中尝试自动数据库迁移。

在隔离环境中运行分析或机器学习工作负载。

立即复制为特定微服务群集提供服务的所有数据库。

您不能在传统的数据库引擎上执行任何这些操作。一些数据库引擎,如SQL Server,具有快照功能,确实可以创建数据库的即时副本。但是快照是只读的,这限制了它们的作用。在大多数数据库引擎上,我们必须采用更笨重的机制,如备份和恢复或复制。

Neon在存储节点上使用写时复制快照(copy-on-write snapshots),这样可以非常便宜地分支数据。

您是否曾经想过能够分叉数据集并独立工作,类似于使用Git分支的方式?现在使用Serverless PostgreSQL可以轻松实现。只需分叉数据,进行实验,放心知道您的主要数据集保持不变。

如果你对POSTGRESQL 的 SERVERLESS的NEON 数据感兴趣可以访问PERCONA,Percona提供了基于Neon的Serverless PostgreSQL二进制构建版本。这是唯一可以获取预构建二进制版本并了解如何使用它们的地方。

目前,这些二进制版本是实验性的,仅用于测试目的。此时,Percona不提供对构建版本的官方支持。

相关参考信息:

Introducing Percona Builds for Serverless PostgreSQL

Releases · Percona-Lab/neon (github.com)

Website location: https://percona.community/labs/serverless-postgresql/

Documentation: https://percona.community/labs/serverless-postgresql/docs/

0 人点赞