【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

NoSQL 数据库中的分布式算法

  • 2014-12-31
  • 本文字数:1162 字

    阅读完需:约 4 分钟

随着互联网 Web2.0 的发展,在应对超大规模和高并发的 SNS 类型的 Web2.0 动态网站等的高性能挑战时,关系型数据库会遇到性能瓶颈。再加上当前移动互联网的发展,关系数据库已经不能满足应用的扩展性、灵活性、高可用性的需要,而 NoSQL 数据库则显得更加能够适应这些需求。NoSQL(即 Not Only SQL),即“不仅仅是 SQL”,它是一种非关系型(结构化 / 半结构化)的数据库,它已经引起了一项全新、革命性的数据库运动,并引发了多种相关协议和算法的研究以及实践,从而总结出了一些行之有效的数据库构建方法。

在专注于大数据、NoSQL 和高扩展性的软件工程方面报道的博客“ Highly Scalable Blog ”中报道了一篇关于 NoSQL 数据库中的分布式算法的文章。在这篇文章里,作者从数据一致性、数据布局、系统协调三个方面以及分布式相关策略(数据复制策略、数据恢复策略、数据分布策略、集群领导选举算法等)对NoSQL 数据库的分布式特点进行了一系列系统化的描述。

在数据一致性方面,鉴于一致性问题是由数据隔离和复制引起,所以文章首先对复制的可用性、读写延迟、读写扩展性、容错性、数据持久性、一致性等特点进行了分析,尤其对一致性中的读写一致性、写一致性进行了详细讨论。还以图例的形式分析了不同复制技术之间的逻辑关系和不同技术在系统的一致性、扩展性、可用性、延迟性之间的权衡以及每个技术的详细情况,如下两图所示:

文章还针对能够处理数据一致性维护和集群状态同步的反熵协议以及能够使得所有副本都最终达到语义上正确的数据最终一致性进行了介绍。

在数据布局方面,文章主要讲述了控制分布式数据库中如何高效放置数据的算法。这些算法主要负责把数据项映射到合适的物理节点上以及在节点间迁移数据和分配内存资源。对于如何在集群扩容时做到数据的平衡分配、如何合理在动态环境中进行数据分片和复制以实现把记录合理地映射到物理节点上、如何按照多个属性进行数据分片以及如何合理利用内存而提高数据随机读取性能的要求等方面进行了一一介绍。

在如何系统协调方面,文章讨论了与系统协调相关的故障检测和协调者选举两种技术。故障检测是任何一个拥有容错性的分布式系统必须具有的基本功能,且所有的故障检测协议都是基于心跳通讯机制实现。而真正的分布式系统还有一些额外的功能要求,如能够应对短暂的网络故障和延迟、集群拓扑和负载、应对带宽变化、应对节点失效、应对作业重新分配、分布式系统中失败检测功能的可扩展性和健壮性等要求。协调者选举是保证数据库强一致性的一个重要技术,而 Bully 算法是一种相对简单的协调者选举算法, MongoDB 就用了该算法来决定副本集的主机节点。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2014-12-31 03:433714
用户头像

发布了 92 篇内容, 共 45.1 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

软件开发

Geek_8da502

BRC20铭文发币成本是多少?一文读懂

西安链酷科技

铭文币

投放户外LED广告屏有什么好处?

Dylan

媒体 广告 网络 消费

Enfocus PitStop Pro 2022 for Mac(pdf增强插件) v22.0.1378944中文

南屿

波场能量租赁平台开发 带宽租赁收益挖矿

西安链酷科技

波场能量 能量租赁

HTTPS可能遇到的安全问题

德迅云安全杨德俊

安全 网站 中间人攻击 HTTPS协议

九章云极DataCanvas公司两大标杆案例入选《2023大模型落地应用案例集》

九章云极DataCanvas

2023年总结:NFT经济从不可替代到可替代的转变

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

MT7915 and QCA9880: the duo in wireless connectivity

wallysSK

MindNode for mac思维导图 中文完美解锁版 支持M/Intel

南屿

大模型训练显存优化策略

百度开发者中心

深度学习 大模型 LLM

兼容M1 Mac下载工具Folx pro 5 v5.27中文激活版 安装包

南屿

小企业是否应该采用SD-WAN组网?

Ogcloud

网络 SD-WAN 组网 组网网络

大模型训练在人脸表情识别中的应用

百度开发者中心

深度学习 大模型 LLM

GLM助力通用预训练

百度开发者中心

人工智能 LLM

Autodesk Maya 2023中文版安装教程 附maya破解补丁 Mac/win

南屿

spss统计软件:IBM SPSS Statistics 27 (Win/mac)中文激活版

南屿

BRC20铭文合约代币系统开发

西安链酷科技

加密货币 ERC20 发币

TinyEngine 服务端正式开源啦!!!

OpenTiny社区

开源 前端 低代码

SD-WAN:推动企业上云的全新路径

Ogcloud

网络 SD-WAN 组网

ZCube:在我的优惠券中的落地实践 | 京东云技术团队

京东科技开发者

水杉3D建模:Metasequoia 4 Mac激活版 附永久注册码 支持intel/M1/M2

南屿

迪士尼视频下载工具Disney Plus +使用教程

南屿

喜讯!九章云极DataCanvas公司顺利通过ITSS运维二级认证

九章云极DataCanvas

大模型训练中的断点继续训练问题

百度开发者中心

深度学习 大模型

提升软件质量的利器:Mock 测试教程

Apifox

前端 前端开发 Mock Mock 服务 Mock.js

Sensei for Mac专业的硬盘清理优化工具

南屿

ClkLog访谈之1:某大拍卖公司互联网运营经理

ClkLog

macOS高品质音频播放器:HQPlayer 4 Pro for mac

南屿

mac软件下载 mac音乐播放器 HQPlayer 4 Pro下载 苹果电脑无损播放器 HQPlayer 4 Pro破解版

iOS实时查看App运行日志

雪奈椰子

MySQL常用图形管理工具

小魏写代码

NoSQL数据库中的分布式算法_数据库_李士窑_InfoQ精选文章