最具影响力的数字化技术在线社区

168大数据

 找回密码
 立即注册

QQ登录

只需一步,快速开始

1 2 3 4 5
打印 上一主题 下一主题
开启左侧

[NoSQL综合] NoSQL数据库中的分布式算法

[复制链接]
跳转到指定楼层
楼主
发表于 2015-1-3 00:15:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

作者 李士窑

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

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

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

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

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

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

分布式算法还包括分布式锁、一致性协议以及其他一些基础技术的内容,这些内容可以通过很多其他书籍或者网络资源查看。


文章出处:infoq



楼主热帖
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 赞 踩

168大数据 - 论坛版权1.本主题所有言论和图片纯属网友个人见解,与本站立场无关
2.本站所有主题由网友自行投稿发布。若为首发或独家,该帖子作者与168大数据享有帖子相关版权。
3.其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和168大数据的同意,并添加本文出处。
4.本站所收集的部分公开资料来源于网络,转载目的在于传递价值及用于交流学习,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
5.任何通过此网页连接而得到的资讯、产品及服务,本站概不负责,亦不负任何法律责任。
6.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源,若标注有误或遗漏而侵犯到任何版权问题,请尽快告知,本站将及时删除。
7.168大数据管理员和版主有权不事先通知发贴者而删除本文。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们|小黑屋|Archiver|168大数据 ( 京ICP备14035423号|申请友情链接

GMT+8, 2024-5-7 02:57

Powered by BI168大数据社区

© 2012-2014 168大数据

快速回复 返回顶部 返回列表