OceaBase开发者大会落地上海!4月20日共同探索数据库前沿趋势!报名戳 了解详情
写点什么

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 )关注我们,并与我们的编辑和其他读者朋友交流。

公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2014-12-31 03:433707
用户头像

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

关注

评论

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

高防游戏服务器的优势:为玩家提供流畅安全的游戏环境

一只扑棱蛾子

游戏服务器 高防服务器 高防游戏服务器

一端开发、多端部署,多操作系统”争艳“背景下的开发思路

Speedoooo

混合开发 多端能力服务统一 混合开发框架 Hybird App

科技创新引领零售商品部降本增效的未来

第七在线

什么是数据同步利器DataX,如何使用?

快乐非自愿限量之名

大数据 数据同步

敏捷开发最佳实践:工具维度实践案例之落地工具提升研发质量

PingCode

敏捷 敏捷开发

内置AI加速器,第五代英特尔至强打造更可靠性能和更出色能效

E科讯

PHP“牵手”淘宝代采系统,跨境淘宝代买系统

tbapi

淘宝代购系统 淘宝代购集运系统 淘宝代采系统 海外代购系统 跨境外贸系统

JavaScript 的新数组分组方法

伤感汤姆布利柏

远超 IVF_FLAT、HNSW,ScaNN 索引算法赢在哪?

Zilliz

Milvus scann fastscan

这个酸爽的过程,只有我们自己知道

开放签开源电子签章

开源 电子合同 电子签章

如何使用ETLCloud拉通金蝶云

RestCloud

数据同步 ETL 金蝶云

已解决org.springframework.dao.ConcurrencyFailureException并发失败异常的正确解决方法,亲测有效!!!

小明Java问道之路

GitHub 斩获 8300 星,小红书爆火开源 InstantID 要开直播了!

小红书技术REDtech

开源 AI AIGC AI写真 instantID

释放创新潜能!英特尔携广泛生态伙伴赋能5G核心网

E科讯

英特尔边缘平台亮相MWC 2024,模块化设计引领行业创新

E科讯

思维导图真有效?亲测5款好用的AI思维导图软件!

彭宏豪95

思维导图 在线白板 协同办公 AIGC 效率软件

一款高温型霍尔效应传感器

二哈侠

如何通过快速且安全的API基础设施策略为工程师赋能并提升效率,同时避免影子IT

Gingxing

kong API网关 Kong 网关 消息网关 Kong Gateway

Kubernetes与低代码:构建现代化应用的完美组合

不在线第一只蜗牛

Kubernetes 低代码 项目开发

谷歌发布世界模型,能生成可交互虚拟世界;华为发布全球首个 5.5G 智能核心网丨 RTE 开发者日报 Vol.152

声网

Tapdata 正式登陆 Google Cloud Marketplace,面向全球用户提供专业的实时数据服务

tapdata

数据转换 数据同步工具

低代码开发如何助力企业实现员工赋能

快乐非自愿限量之名

低代码 项目开发 企业赋能

【架构笔记1】剃刀思维-如无必要,勿增实体

文思源想

软件架构设计 文思架构笔记 设计感悟

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