大咖直播-鸿蒙原生开发与智能提效实战!>>> 了解详情
写点什么

MongoDB 的开源替代方案 FerretDB 发布 2.0 版本

作者:Renato Losio

  • 2025-03-06
    北京
  • 本文字数:1312 字

    阅读完需:约 4 分钟

MongoDB 的开源替代方案 FerretDB 发布 2.0 版本

近日 FerretDB 宣布推出 2.0 版本的首个候选发布版。FerretDB 由新近发布的 DocumentDB 驱动,作为 MongoDB 的开源替代方案,它带来了显著的性能提升、更强的功能兼容性、向量搜索能力以及复制支持。


正如 InfoQ 此前报道,FerretDB 最初在三年前以 MangoDB 的名称推出,并于去年正式发布。FerretDB 的联合创始人兼首席执行官 Peter Farkas 写道:


“FerretDB 2.0 在性能和兼容性方面实现了巨大飞跃。由于底层的改进,FerretDB 在处理某些工作负载时速度提升了 20 倍,性能与市场上的领先竞品相当。之前版本中可能遇到兼容性问题的用户会惊喜地发现,FerretDB 现在支持更广泛的应用程序,能让更多应用无缝运行。”


FerretDB 基于 Apache 2.0 许可发布,通常与 MongoDB 的驱动程序和工具兼容。对于许多倾向于避开 SSPL 许可(一种 copyleft 开源软件许可)的开源项目和早期商业项目而言,它被设计为 MongoDB 5.0 及以上版本的直接替代品。


FerretDB 2.x 利用了微软的 DocumentDB PostgreSQL 扩展。这个基于 MIT 许可的开源扩展为 PostgreSQL 引入了 BSON 数据类型及相关操作。该解决方案包含两个 PostgreSQL 扩展:用于 BSON 优化的 pg_documentdb_core 和用于数据操作的 pg_documentdb_api。


FerretDB 团队表示,保持 DocumentDB 与 FerretDB 之间的兼容性,能让用户在 Postgres 上运行文档数据库工作负载时获得更好的性能,并且对现有应用程序有更好的支持。Azure 的首席产品经理 Abinav Rameesh 在描述基于 vCore 的 Azure Cosmos DB for MongoDB 背后的引擎时解释道:


“寻找即用型 NoSQL 数据库的用户可以借助 FerretDB 中的现有解决方案……用户可以通过 Postgres 与 DocumentDB 进行交互,而 FerretDB 2.0 则提供了符合文档数据库协议的接口。”


Farkas 在领英(LinkedIn)上评论补充道:


“随着微软开源 DocumentDB,我们比以往任何时候都更接近,能真正在行业内开展协作共同创建文档数据库的开放标准。”


在另一篇文章中,Farkas 解释了为什么他认为文档数据库除了做到 “与 MongoDB 兼容” 之外,还需要标准化。FerretDB 列出了与 MongoDB 的 已知差异,并指出虽然它使用相同的协议错误名称和代码,但在某些情况下,确切的错误消息可能有所不同。尽管与 DocumentDB 集成提升了性能,但与 FerretDB 1.0 相比,这代表了重大转变并引入了回归限制。Farkas 写道:


“随着 FerretDB 2.0 的发布,我们现在专注于利用 DocumentDB 支持 PostgreSQL 数据库(……)不过,对于那些依赖早期版本和后端的用户,FerretDB 1.x 版本仍可在我们的 GitHub 仓库中获取,我们鼓励社区继续为其开发作出贡献,或者自行进行分支和扩展。”


作为 FerretDB 2.0 发布的一部分,FerretDB Cloud 正在开发中。这个托管数据库即服务选项最初将在 AWS 和 GCP 上提供,后续还计划支持微软 Azure。FerretDB 项目的高级路线图可在 GitHub 上查看 。


关于作者


Renato Losio,Renato 作为云架构师、技术主管和云服务专家,拥有丰富的经验。目前,他居住在柏林,担任首席云架构师开展远程工作。他主要感兴趣的领域包括云服务和关系型数据库。他是 InfoQ 的编辑,也是经过认证的 AWS Data Hero。


原文链接:


https://www.infoq.com/news/2025/02/ferretdb-documentdb/

2025-03-06 11:0011813

评论

发布
暂无评论

架构实战营第一期 -- 模块五作业

clay

架构实战营

抖音快手智能获客黑科技软件系统开发费用

【LeetCode】合并两个排序的链表Java题解

Albert

算法 LeetCode 8月日更

vue入门:http客户端axios

小鲍侃java

8月日更

netty系列之:自定义编码和解码器要注意的问题

程序那些事

Java Netty 程序那些事

接口测试--apipost如何自定义变量

与风逐梦

软件测试 接口测试

JS对象拷贝:深拷贝和浅拷贝

华为云开发者联盟

js 对象 对象拷贝 深拷贝 浅拷贝

如何请求一个需要登陆才能访问的接口(基于cookie)——apipost

Proud lion

大前端 后端 Postman Cookie 接口工

前端,测试如何修改后端接口返回的响应数据

CodeNongXiaoW

项目管理 大前端 测试 后端 接口管理工具

波场链DAPP开发|波场链TRONCHAIN介绍

Geek_23f0c3

DAPP智能合约交易系统开发 波场链DAPP开发 tronchainDAPP

抖音快手短视频智能询盘获客系统软件开发介绍

有效管理数据安全性—— Pulsar Schema 管理

Apache Pulsar

Apache Pulsar StreamNative schema

spring 大事务

Rubble

8月日更

Java筑基 - JNI到底是个啥

码农参上

Java jni 8月日更

低代码:时代的选择

华为云开发者联盟

云计算 软件开发 低代码 硬件 IT系统

Apache HBase MTTR 优化实践:减少恢复时长

华为云开发者联盟

Apache hadoop zookeeper HBase MapReduce服务

抖音快手短视频获客系统软件开发

JVM集合之类加载子系统

阿Q说代码

JVM 加载 类加载器 双亲委派 8月日更

LT浏览器——响应式网站测试利器

FunTester

性能测试 自动化测试 web测试 兼容性测试 测试报告

Go 语言,一文彻底搞懂 slice 实现原理

微客鸟窝

Go 语言 8月日更

手撸二叉树之单值二叉树

HelloWorld杰少

数据结构与算法 8月日更

AI+云原生,把卫星遥感虐的死去活来

华为云开发者联盟

AI 容器 云原生 k8s 遥感影像

Compose 中的文字

Changing Lin

8月日更

面试官:你说说一条更新SQL的执行过程?

艾小仙

2分钟玩转中文接口测试工具-ApiPost

CodeNongXiaoW

项目管理 大前端 测试 后端

老用户运营从哪里切入?

boshi

运营 私域运营

AI 场景的存储优化之路

焱融科技

人工智能 云计算 AI 分布式 高性能

【Flutter 专题】64 图解基本 TextField 文本输入框 (一)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

Python代码阅读(第12篇):初始化二维数组

Felix

Python 编程 Code Programing 阅读代码

业内首发!腾讯位置服务推出移动端3D数据可视化图层

摄影利器一加9 Pro,让你轻松成为手机摄影师

Geek_8a195c

MongoDB 的开源替代方案 FerretDB 发布 2.0 版本_数据库_InfoQ精选文章