下面文章来自mongodb官方博客。
原文地址 https://www.percona.com/blog/mongodb-fcbis/
我代表整个 Percona MongoDB 产品团队,很高兴地宣布 Percona Server for MongoDB 的重大增强: 基于文件复制的初始同步 (FCBIS)。 它旨在通过更有效的初始数据同步方法加速您的大规模数据库部署。FCBIS 减少了初始同步过程所需的时间和资源。
初始同步是部署 MongoDB 副本集成员的关键步骤,它依赖于数据复制技术,而对于大型数据集来说,这些技术非常耗时。初始化 Percona Server for MongoDB 新成员的逻辑方法(默认方法)太慢,无法满足数字世界的快速和动态可扩展性需求。此外,在服务器恢复的情况下,尽快恢复它尤为重要。到目前为止,Percona 和 MongoDB 社区用户只有这种方法来设置新的 ReplicaSet 成员,或者在它们超出可用的 oplog 窗口时恢复它们。这一挑战促使我们缩小了与 MongoDB Enterprise Advanced 的差距,并开发了一种源代码可用的解决方案,该解决方案可以在不影响可靠性和供应商锁定的情况下加速初始同步过程。
基于文件复制的初始同步代表了 Percona Server 在 MongoDB 部署效率方面的飞跃。
利用此功能,Percona Server for MongoDB 用户现在可以显着减少引导新集群或向现有部署添加新节点所需的时间和资源。这是通过将数据文件从完全同步的 MongoDB 实例直接复制到新节点来实现的,无需通过网络进行冗长的逻辑数据复制。
当新的 MongoDB 节点添加到现有副本集时,它会选择具有兼容设置的源节点。
然后,它使用源上的备份光标来获取要复制的文件列表和标记数据一致点的时间戳。
然后,文件复制开始,而源节点继续正常运行。为了防止源和目标之间的数据差距过大,目标节点执行 $backupCursorExtend 以拉取复制文件时发生的最新更改。
根据文件复制所需的时间,此“追赶”步骤可能会发生几次。
一旦复制了文件并且源节点和目标节点的 oplog 之间的间隙是可以接受的,目标节点就会关闭备份光标。
最后,它将复制的文件移动到其 dbPath,并调整时间戳以确保数据一致性。此时,节点已准备好加入集合并启动正常的 oplog apply。
逻辑与文件基于复制的初始同步
默认情况下,Percona Server for MongoDB 和 MongoDB 社区用户依赖于逻辑初始同步方法,该方法涉及数据库实例通过读写 BSON 数据来复制数据,然后重新构建耗时的索引。
虽然有效,但此过程可能会占用大量资源,尤其是对于大型数据集。
相比之下,FCBIS 通过直接将数据库文件从源实例复制到目标实例来优化此过程,从而显着减少同步时间和服务器开销。这种方法可确保更快、更高效地初始化数据库实例,使用户能够以增强的敏捷性部署和扩展其数据库。
在性能测试中,我们观察到基于文件复制的初始同步执行可预测,并且尽管数据分布或索引数量存在差异,但初始化同步时间相似。总体初始化同步时间主要取决于外部因素,例如网络、磁盘 I/O 利用率和要复制的文件的大小。
更新到最新版本的 PSMDB,其中包括对 FCBIS(7.0.22-12 和即将发布的 8.0 版本)的支持:
配置新的副本集成员 : 若要启用基于文件复制的初始同步,请 根据初始同步的目标成员将 initialSyncMethod 参数设置为 fileCopyBases。
setParameter:
initialSyncMethod: fileCopyBased
调整初始同步 :配置参数允许您自定义 FCBIS 进程的同步尝试和最大延迟大小。
通过采用 FCBIS,Percona Server for MongoDB 用户可以简化其数据库部署工作流程、降低运营复杂性并加快其应用程序的上市时间。这是一项重要的创新,不仅提高了可扩展性,而且:
本地
数据库本文系外文翻译,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系外文翻译,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。