MongoDB 杀手来了?新数据库太狠
各位老铁,今天咱们不聊 996,也不吐槽产品经理,咱来点硬核的——数据库。
是的,你没看错,就是那个藏在后端深处、默默扛下所有请求压力、背锅时永远第一个被拉出来祭天的 数据库。
如果你用过 MongoDB,那你一定经历过这些名场面:
-
数据量一大,查询开始卡成 PPT;
-
想扩容?不好意思,得先停机迁移数据,半夜三点上线改配置;
-
写入高峰一到,副本集直接罢工:“老子不干了!”
-
成本账单一出,财务小姐姐脸都绿了:“这云服务费怎么比工资还高?”
别急,这些问题不是你技术不行,而是传统架构的“先天不足”。但今天我要告诉你:有一个叫 eloqdoc 的新家伙,正悄悄颠覆这一切。
它长得像 MongoDB,说话像 MongoDB,API 兼容得连 driver 都认不出它是“李鬼”,但它内里却是个彻头彻尾的“六边形战士”——高性能、高弹性、低成本、分布式原生、事务强一致…
这不是吹牛,这是实打实的技术降维打击。
来吧,搬好小板凳,泡上枸杞茶,咱们一起扒一扒这个神秘项目:eloqdoc —— 一个披着 MongoDB 外衣的“未来数据库”。
它是谁家的孩子?从 GitHub 开始挖根
先来看一眼它的“身份证”:
-
项目名:
eloqdoc -
作者组织:
eloqdata -
语言:C++
-
官网:https://www.eloqdata.com[1]
而且注意,它是用 C++ 写的!不是 Python 小玩具,也不是 Go 快速原型,是那种能怼进操作系统内核、榨干 CPU 缓存的真·系统级语言。
说明什么?说明这不是某个大学生的课程设计,而是一群老炮儿工程师憋的大招。
再看 README 里的关键词:
“A MongoDB API compatible, high-performance, elastic, distributed document database.”
翻译一下就是:
我长得像 MongoDB,但我比它快、比它弹、比它便宜,还能跑在云上自动伸缩。
口气不小啊兄弟。
那它是吹牛,还是真有两把刷子?咱们一层层剥开看。
架构革命:把“对象存储”当硬盘使?
我们先问一个问题:为什么传统的 MongoDB 在云上这么贵又这么难扩?
答案很简单:因为它本质上还是“本地磁盘思维”的产物。
MongoDB 默认靠副本集(Replica Set)保命。比如三个节点,主写从读,数据同步靠 oplog。一旦主挂了,自动选个从变主。听着挺稳?
但问题来了:
-
每一份数据要复制三份 → 存储成本 ×3
-
每个节点都要有完整的内存和 CPU 来处理全量数据 → 计算资源 ×3
-
扩容时要搬数据 → 慢、容易出错、还得停机或限流
说白了,这就是典型的“为可靠性牺牲效率”的老派做法。
而 eloqdoc 干了一件非常反直觉的事:它把云上的对象存储(Object Storage),比如 AWS S3 或阿里云 OSS,当作真正的持久化层!
什么意思?
想象一下,你现在开了一家快递中转站。传统做法是:
每个分拣员(数据库节点)手里都有一份完整订单清单(数据副本),每天互相打电话对账(replication),生怕谁丢了单子。
而 eloqdoc 的做法是:
所有订单统一存在总部云端档案库(S3),每个分拣员只拿一块小白板记最近的几十单(NVMe 缓存)。谁要查历史订单?去总部调档就行。谁要新增订单?先写日志,再异步归档。
这样一来:
-
不怕分拣员离职(节点宕机)—— 档案都在总部;
-
新人上岗极快(弹性扩容)—— 只需接入系统,无需搬运历史数据;
-
总部永久保存,跨可用区冗余,安全性拉满;
-
小白板飞快,热点数据秒响应。
这就是 eloqdoc 提出的 Tiered Storage Architecture(分层存储架构):
+---------------------+
| Application |
+----------+----------+
|
v
+----------+----------+ +------------------+
| Frontend (MongoDB <--> TxService |
| Protocol) | | (Transaction |
+----------+----------+ | Engine) |
| +--------+---------+
v |
+-------+--------+ v
| LogService | +--------+---------+
| (WAL, Redo Log) <----+ Storage Service |
+-------+--------+ | (Checkpoint + |
| | Object Storage) |
v +--------+---------+
+------+-------+ |
| Local NVMe <-------------+
| (Cache) |
+---------------+
看到没?整个系统被拆成了四个独立模块:
-
Frontend + TxService:负责解析 MongoDB 协议、执行事务逻辑;
-
LogService:专管写前日志(WAL),保证崩溃不丢数据;
-
Storage Service:管理检查点和冷数据,直接对接 S3 类对象存储;
-
Local NVMe:仅作为热数据缓存,断电即丢也没关系。
这种“存算分离 + 日志解耦”的设计,在数据库圈子里其实不算新鲜事——Google Spanner、AWS Aurora 都玩得很溜。
但!能把这套思想套到 MongoDB 身上,并且做到 API 完全兼容的,eloqdoc 是第一个。
MongoDB 兼容?真的不用改代码?
这时候肯定有人拍桌子了:“吹这么多,你能兼容 MongoDB 我信,但你说 driver 不用换?骗鬼呢!”
别急,我们来看官方怎么说:
✅ Seamless integration with MongoDB clients, drivers, and tools.
也就是说,只要你现在的项目是这么连 MongoDB 的:
from pymongo import MongoClient
client = MongoClient("mongodb://localhost:27017")
db = client["myapp"]
collection = db["users"]
# 插入一条数据
collection.insert_one({"name": "张三", "age": 28})
那你只需要把连接地址换成 eloqdoc 的 endpoint:
client = MongoClient("mongodb://eloqdoc-cluster:27017") # 只改这里!
剩下的代码一行都不用动!
为啥能做到这一点?
因为 eloqdoc 实现了 完整的 MongoDB Wire Protocol(通信协议),包括:
-
OP_QUERY / OP_GETMORE 查询协议
-
OP_INSERT / OP_UPDATE / OP_DELETE 写操作
-
支持 BSON 格式传输
-
兼容常见的命令如
find,aggregate,createIndex,distinct等 -
甚至支持部分聚合管道(aggregation pipeline)
换句话说,它对外表现得就像一台标准的 mongod 进程,但实际上背后跑的是完全不同的引擎。
这就好比你去海底捞吃饭,服务员穿着一样的制服,端上来一样的麻酱碟,甚至连甩面绝活都一模一样,但厨房其实是预制菜中央工厂 + 机器人炒菜系统。
顾客毫无察觉,体验反而更好了。
性能对比:eloqdoc 真的吊打 Atlas?
光说不练假把式,咱们来看看官方放出的 benchmark 数据。
测试环境统一使用 AWS i4i.4xlarge 实例(16 核 CPU、128GB 内存、本地 NVMe),对比对象是 MongoDB Atlas(也就是 MongoDB 官方托管版)。
场景一:全内存命中(Hot Data)
也就是你的工作集完全装得下内存,属于“理想状态”。
混合读写(1:1)
EloqDoc vs Atlas Mixed Workload
结果:eloqdoc 吞吐高出约 60%,而且随着并发上升,Atlas 开始抖动,eloqdoc 依然平稳。
原因也很简单:
Atlas 基于 EBS 网络盘,即使开了 Provisioned IOPS,延迟也远高于本地 NVMe;而 eloqdoc 的缓存全走本地 SSD,命中率接近 100%,自然更快。
纯读场景
Read-only Benchmark
结果差不多:峰值吞吐提升 60%+,延迟更低更稳定。
结论:在热点数据场景下,eloqdoc 凭借本地 NVMe 缓存优势,完胜基于网络存储的传统方案。
场景二:缓存命中率低(Cold Data)
这才是真实世界的常态——数据总量远超内存,经常需要从磁盘加载。
这时 Atlas 使用的是 EBS 卷,受限于网络带宽和 IOPS 配额;而 eloqdoc 则通过本地 NVMe 作为 write-back cache 层,配合对象存储做最终落盘。
结果如何?
官方描述很直接:
当 workload 需要频繁访问磁盘时,Atlas 的 EBS 后端迅速达到 IO 瓶颈,出现明显性能下降和尾延迟飙升;而 eloqdoc 仍能维持数十万 IOPS 的稳定输出。
这意味着什么?
举个例子:
你是一个内容平台,每天新增百万篇文章,用户偶尔会翻几个月前的老帖。这类“长尾访问”对传统数据库简直是噩梦——要么全放内存浪费钱,要么放硬盘慢得像蜗牛。
而 eloqdoc 的分层架构天生适合这种场景:
-
新文章 → 存 NVMe 缓存 → 秒级响应
-
老文章 → 归档到 S3 → 成本降到几分钱/GB
-
用户访问老文 → 自动加载进缓存 → 下次就快了
既省钱,又不牺牲体验。
弹性扩展:100 倍速扩容是怎么做到的?
接下来是最震撼的一点:elastic scalability(弹性可扩展性)。
传统数据库扩容有多痛苦?
“老板,我们数据快满了。”
“那就加机器呗。”
“可是要重新 shard,得停服两小时……”
而在 eloqdoc 这里,扩容变得像呼吸一样自然。
三大独立扩展维度:
|
维度 |
是否可独立扩展 |
说明 |
|---|---|---|
|
Compute(计算) |
✅ 是 |
增加更多 frontend 节点即可,无需移动数据 |
|
Storage(存储) |
✅ 是 |
对象存储天然无限扩展,S3 管够 |
|
Redo Log(日志) |
✅ 是 |
可单独横向扩展 LogService 提升写吞吐 |
重点来了:因为数据不再绑定在本地磁盘上,所以增加计算节点时,根本不需要搬数据!
你想扩十倍?只要 Kubernetes 一键部署十个新 pod,它们启动后自动连接共享存储层,立刻加入集群提供服务。
官方说:“scaling compute is 100x faster than traditional databases”。
这不是夸张。传统方式搬 1TB 数据可能要几个小时,而 eloqdoc 新节点上线只需几秒钟——因为它压根不用搬。
这就带来了两个巨大好处:
-
突发流量应对自如:双十一秒杀来了?立刻扩二十个节点顶上;
-
资源利用率最大化:平时五台机器够用,高峰期五十台,用完立马缩容,只为实际使用的买单。
这才是真正的“云原生数据库”。
分布式事务:ACID 不只是口号
很多人以为文档数据库就等于“弱一致性”,其实不然。
eloqdoc 明确宣称支持 ACID 分布式事务,而且特别强调“fast distributed transactions”。
要知道,在分布式环境下实现 ACID 本来就很慢,尤其是跨节点写入时,要走两阶段提交(2PC),延迟高、容错差。
但 eloqdoc 用了啥黑科技?
根据其底层依赖的 Data Substrate[2] 技术文档推测,它很可能采用了类似 Paxos 或 Raft 的共识算法 + 时间戳排序(Timestamp Ordering) 的混合机制。
具体流程大概是这样的:
-
客户端发起一个多文档事务;
-
TxService 分配全局单调递增的时间戳;
-
所有参与节点按时间戳顺序执行操作,冲突则 abort;
-
提交阶段通过 LogService 持久化 redo log;
-
Storage Service 异步 checkpoint 到对象存储。
这套机制避免了传统 2PC 的阻塞问题,同时保证了串行化隔离级别(Serializable Isolation)。
举个实际例子:
session.startTransaction();
db.accounts.updateOne({name: "Alice"}, {$inc: {balance: -100}});
db.accounts.updateOne({name: "Bob"}, {$inc: {balance: +100}});
session.commitTransaction();
这段代码在 eloqdoc 上运行,要么全部成功,要么全部回滚,不会出现“Alice 扣钱了,Bob 没收到”的情况。
这对于金融类、订单类应用至关重要。
无分片设计:告别 mongos 和 config server
说到 MongoDB 的痛,除了性能,还有一个就是 sharding 架构太复杂。
你要搞清楚这几个玩意儿:
-
mongos:路由代理,负责把请求转发给正确的 shard; -
config server:存储元数据,记录哪个 chunk 在哪台机器; -
shard:真正存数据的副本集; -
balancer:后台进程,负责均衡 chunks。
稍微配置错一步,轻则查询变慢,重则数据丢失。
而 eloqdoc 直接说:我不需要 sharding coordinator。
因为它采用的是 native distributed hashing + consistent lookup table 的方式,所有节点都知道数据分布规则,可以直接定位目标节点。
相当于原来你要找某个文件得先问秘书(mongos),秘书再去查目录(config server),现在每个人手头都有完整地图,直接上门拜访就行。
好处显而易见:
-
减少网络跳数 → 延迟更低
-
去除单点故障 → 更可靠
-
运维复杂度骤降 → DBA 少掉一半头发
成本对比:一年能省一辆特斯拉?
让我们来做道数学题。
假设你有一个中等规模的应用,每天产生 1TB 数据,保留一年就是 365TB。
如果用 MongoDB Atlas 的 M40 层级(约 $200/月),三年下来大概要花:
200 × 12 × 3 = $7,200 ≈ 5.1 万人民币
而这还只是计算费用,不包括备份、监控、额外存储等附加服务。
而 eloqdoc 的成本结构完全不同:
-
计算层:只部署少量 frontend 节点(比如 3~5 个 i4i.xlarge),按需扩展;
-
存储层:全部扔 S3 Glacier Deep Archive,单价低至 $0.00099/GB/月;
-
日志层:可以用高速 SSD 单独部署,按流量计费;
粗略估算:
-
存储 365TB 在 S3 Deep Archive:
365 * 1024 ≈ 373,760 GB
373,760 × 0.00099 ≈ $370/年 ≈ 2,600 元/年 -
计算层(5 台中配实例):
每台约 月9,000/年
等等,这不是更贵了吗?
别忘了:eloqdoc 支持自动缩容!
白天高峰期跑 5 台,晚上低峰期缩到 1 台,平均利用率只有 40%?
那实际支出就是:
5 × 0.4 = 2 台等效
2 × 150 × 12 = $3,600 ≈ 2.5 万元/年
再加上存储不到 3 千,总成本约 2.8 万元/年。
而 Atlas 固定套餐基本无法缩容,三年就得准备 15 万元以上。
算下来,三年至少省下 12 万,够买一辆 Model Y 了。
开源现状与社区生态
目前 eloqdoc 还处于早期阶段(v0.x),功能虽已可用,但尚未进入生产推荐列表。
但从代码结构来看,工程规范非常严谨:
/src # C++ 核心代码
/tests # 单元测试 & 集成测试
/docs # 文档齐全
/scripts # 部署脚本
/concourse # CI/CD 流水线配置
/scons # 构建系统(替代 Makefile)
特别是用了 SCons 构建工具,而不是简单的 CMake,说明团队重视跨平台构建一致性。
License 是 AGPL-3.0,意味着:
-
你可以免费使用、修改、部署;
-
但如果你在产品中集成并对外提供服务,必须开源你的改动;
-
商业公司可以购买企业授权规避限制。
这也是很多新兴数据库(如 CockroachDB、TiDB)走的路线:开源引流,商业变现。
他们还提供了托管版本 EloqCloud[3],显然是想走“开源核心 + 云服务盈利”的路子。
适用场景:谁该考虑切换?
说了这么多优点,那是不是所有人都应该立刻迁移到 eloqdoc?
当然不是。
任何技术都有适用边界。以下是几个典型适用场景:
✅ 推荐使用:
-
Web 应用后端:CMS、社交平台、UGC 内容库;
-
日志与事件存储:高写入频率,偶尔查询;
-
微服务架构下的共享数据层:需要 JSON 文档模型 + 强一致性事务;
-
初创公司快速搭建 MVP:不想被 vendor lock-in 绑架,追求极致性价比;
-
已有 MongoDB 架构但遇到瓶颈者:扩容难、成本高、性能上不去。
❌ 暂时不建议:
-
极度成熟稳定的 legacy 系统:改不动,也不敢动;
-
对 SLA 要求极高且不允许试错的企业:毕竟项目尚新,缺少大规模验证;
-
纯 OLAP 场景:虽然支持聚合,但不如专门的数据仓库(如 ClickHouse)高效;
-
预算充足、图省事的大厂:宁愿花钱买服务,也不想自己运维。
如何体验?动手试试看!
想亲自感受一下 eloqdoc 的威力?这里有几种方式:
方式一:本地尝鲜(Docker)
虽然官方还没发布 Docker 镜像,但从构建脚本看,支持容器化部署:
git clone https://github.com/eloqdata/eloqdoc.git
cd eloqdoc
scons # 编译核心组件
后续预计会推出 Helm Chart 和 Operator,用于 Kubernetes 部署。
方式二:上云体验(EloqCloud)
访问 https://cloud.eloqdata.com[4],注册账号即可获得免费额度,一键创建集群,连接方式与 MongoDB 完全一致。
适合想快速验证兼容性和性能的同学。
方式三:贡献代码
项目欢迎 PR,尤其是:
-
更多语言的 driver 测试(Node.js、Java、Python 等)
-
监控插件(Prometheus Exporter)
-
备份恢复工具
-
UI 管理界面
GitHub 地址:https://github.com/eloqdata/eloqdoc[5]
未来展望:会不会成为下一个 MongoDB?
这个问题很难回答,但我们可以说几点趋势:
-
云原生数据库是大势所趋:存算分离、弹性伸缩、按需付费,已是主流方向;
-
MongoDB 自身也在转型:Atlas 已经拥抱云,但底层仍是传统架构,难以彻底革新;
-
开发者越来越反感 vendor lock-in:谁都不想被一家公司绑架;
-
中国市场对自主可控数据库需求强烈:类似 PingCAP、OceanBase 的成功证明这条路可行。
eloqdoc 正好踩在这些趋势的交汇点上。
如果它能在未来两年内:
-
完成 v1.0 发布
-
积累足够多的真实案例
-
建立活跃的中文社区
-
提供完善的文档和支持
那么,它完全有可能成长为新一代文档数据库的领导者。
结语:技术的进步,从来都是“站在巨人肩膀上踹一脚”
最后我想说,eloqdoc 并不是一个凭空蹦出来的天才发明。
它的每一块拼图,都能在历史上找到影子:
-
存算分离 ← Google Spanner
-
日志即数据库 ← AWS Aurora
-
分层存储 ← Facebook Cold Storage
-
分布式事务 ← Calvin、FaunaDB
-
MongoDB 兼容 ← DynamoDB API 兼容模式
但它聪明的地方在于:把这些先进的理念打包起来,穿上 MongoDB 的外衣,让开发者零门槛接入。
📌 参考资料 & 延伸阅读:
-
GitHub 项目主页:https://github.com/eloqdata/eloqdoc[6]
-
官方博客(Data Substrate 解析):https://www.eloqdata.com/blog[7]
-
EloqCloud 托管服务:https://cloud.eloqdata.com[8]
-
MongoDB vs Aurora 架构对比:https://aws.amazon.com/cn/blogs/database/amazon-documentdb-mongodb-compatibility/[9]
-
分布式事务经典论文:Highly Available Transactions: Virtues and Limitations (Michael Stonebraker et al.)
参考资料
[1] https://www.eloqdata.com: https://www.eloqdata.com
[2] Data Substrate: https://www.eloqdata.com/blog/2024/08/11/data-substrate
[3] EloqCloud: https://cloud.eloqdata.com
[4] https://cloud.eloqdata.com: https://cloud.eloqdata.com
[5] https://github.com/eloqdata/eloqdoc: https://github.com/eloqdata/eloqdoc
[6] https://github.com/eloqdata/eloqdoc: https://github.com/eloqdata/eloqdoc
[7] https://www.eloqdata.com/blog: https://www.eloqdata.com/blog
[8] https://cloud.eloqdata.com: https://cloud.eloqdata.com
[9] https://aws.amazon.com/cn/blogs/database/amazon-documentdb-mongodb-compatibility/: https://aws.amazon.com/cn/blogs/database/amazon-documentdb-mongodb-compatibility/
关注公众号
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
微软 AI 主管:微软不会开发情色类 AI,与 OpenAI 划清界限
据 CNBC 报道,微软 AI 业务首席执行官穆斯塔法·苏莱曼(Mustafa Suleyman)周四在加州门洛帕克举行的佩利国际理事会峰会上明确表示,微软不会开发情色类 AI 服务,并强调“这绝非我们打算提供的服务”,显示出公司在生成式 AI 伦理边界上的明确立场。 这一表态正值微软长期合作伙伴 OpenAI 公开表示将允许经过验证的成年人在 ChatGPT 上创作情色内容后一周。OpenAI 首席执行官 萨姆·奥特曼(Sam Altman) 当时表示,公司“并非世界的道德裁判”,这一决定在业内引发了广泛讨论与争议。 苏莱曼指出,“看似具备意识的 AI 正在出现,而其中相当一部分集中在情色服务领域。” 他警告称,这一趋势存在滑向“性机器人情色化”的风险,是人工智能产业中“非常危险的方向”,呼吁业界保持克制与伦理意识。 他还提及了马斯克旗下 Grok 在7月推出的虚拟伴侣功能,其中包含女性动漫角色,并表示这类现象反映出行业在商业化探索中逐渐靠近风险边缘。 值得注意的是,微软当天也为其 Copilot 聊天机器人推出了多项新功能,其中包括名为 Mico 的 AI 伴侣,可通过语音通话与用...
-
下一篇
AI 数据中心公司 Crusoe 完成 13. 8 亿美元股权融资
人工智能(AI)数据中心公司 Crusoe 宣布已通过一轮股权融资成功筹集13. 8 亿美元,公司估值一举突破100 亿美元大关。 Crusoe目前运营着一个位于德克萨斯州的大型数据中心综合体,为行业巨头OpenAI和甲骨文公司提供关键服务。 此轮融资由知名投资机构Valor Equity Partners和阿布扎比主权财富基金穆巴达拉投资公司旗下的资产管理机构Mubadala Capital联合领投。 参与投资的其他重要方包括:英伟达(NVIDIA)、Altimeter Capital、BAM Elevate、Founders Fund、富达管理(Fidelity Management)、Salesforce Ventures以及超微电脑(Super Micro Computer)。 Crusoe的业务模式专注于利用低成本、清洁能源为大规模AI计算提供基础设施,其高达 100 亿美元的估值,使其成为AI“军备竞赛”中基础设施提供商的关键力量。
相关文章
文章评论
共有0条评论来说两句吧...

微信收款码
支付宝收款码