排行
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
中国数据库
向量数据库
时序数据库
实时数据库
搜索引擎
空间数据库
图数据库
数据仓库
大调查
2021年报告
2022年报告
年度数据库
2020年openGauss
2021年TiDB
2022年PolarDB
2023年OceanBase
首页
资讯
活动
大会
学习
课程中心
推荐优质内容、热门课程
学习路径
预设学习计划、达成学习目标
知识图谱
综合了解技术体系知识点
课程库
快速筛选、搜索相关课程
视频学习
专业视频分享技术知识
电子文档
快速搜索阅览技术文档
文档
问答
服务
智能助手小墨
关于数据库相关的问题,您都可以问我
数据库巡检平台
脚本采集百余项,在线智能分析总结
SQLRUN
在线数据库即时SQL运行平台
数据库实训平台
实操环境、开箱即用、一键连接
数据库管理服务
汇聚顶级数据库专家,具备多数据库运维能力
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
我的订单
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
资讯
活动
大会
课程
文档
排行
问答
我的订单
首页
专家团队
智能助手
在线工具
SQLRUN
在线数据库即时SQL运行平台
数据库在线实训平台
实操环境、开箱即用、一键连接
AWR分析
上传AWR报告,查看分析结果
SQL格式化
快速格式化绝大多数SQL语句
SQL审核
审核编写规范,提升执行效率
PLSQL解密
解密超4000字符的PL/SQL语句
OraC函数
查询Oracle C 函数的详细描述
智能助手小墨
关于数据库相关的问题,您都可以问我
精选案例
新闻资讯
云市场
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
专家团队
智能助手
精选案例
新闻资讯
云市场
1
微信扫码
复制链接
新浪微博
分享数说
采集到收藏夹
分享到数说
首页
/
Neondb-穷人的aurora
Neondb-穷人的aurora
白鳝的洞穴
2023-06-12
503
这篇文章本来是昨天要发的,因为上班路上有所思,所以到公司后临时写了一篇发出了。这两天经常有朋友问我,儿子高考怎么不回家陪陪。十分感谢这些热心的朋友,说实在的,儿子高考还真没啥可陪的,上周日返校后今天考完才离开学校。不过今天怎么都得在化学考试结束前赶到校门口去接一下,所以今天上午我就回深圳了。
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数据库生态,以此为基础开发一个云原生数据库产品也是可行的。
数据库
云存储
aurora
文章转载自
白鳝的洞穴
,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
领墨值
有奖问卷
意见反馈
客服小墨