和所有事物一样,NoSQL的兴起也是由许多理论支撑作为前提的,正是由下面一些理论的支撑,NoSQL的方向才能如此明朗。

1.CAP理论

CAP理论无疑是导致技术趋势由关系数据库系统向NoSQL系统转变的最重要原因。

CAP(Consistency,Availability,Patition tolerance)理论论述的是在任何分布式系统中,只可能满足一致性,可用性及分区容忍性三者中的两者,不可能全部都满足。所以不用花时间精力在如何满足所有三者上面。

原理的证明简单的说就是,在保证分区容忍性的情形下,一致性和可用性是不可能同时达到的,高一致性就得牺牲可用性,高可用性就得牺牲一致性。(为什么要保证分区容忍性?因为在网络应用越来越大的今天,数据分区是一个基本要求)

证明过程:Brewer’s CAP Theorem

2.一致性hash

这个不用多说了,用过MC的人应该都清楚,直接上图:

3.MapReduce

MapReduce思想分为Map和Reduce两个部分,简单来说Map就是将大的计算量分片,以便并行的进行计算,Reduce就是将并行计算的结果进行组合,以便得到一个最终的输出。

更详细的描述见wikipedia:MapReduce

Google关于MapReduce的文档PDF版:MapReduce: Simplified Data Processing on Large Clusters

4.Gossip

Gossip是一个应用于p2p中的理论(不是当下流行的Gossip Girl[绯闻女孩]),他的主要过程是通过一个N节点集群中的每一个节点与所有其它N-1个节点进行通信,实现数据的同步,Gossip基于不要求集群中有一个Master存在,并能以病毒传播的方式将一个节点的变更传达到所有其它节点,而系统增加或减少一个结点的成本几乎为0。

更详尽描述见wikipedia:Gossip

and more…

http://blog.nosqlfan.com/html/62.html

NoSQL世界的几个重要理论的更多相关文章

  1. NoSql的三大基石:CAP理论&BASE&最终一致性

    关系型数据库的局限 NoSql出现在关系型数据库之后,主要是为了解决关系型数据库的短板,我们先来看看随着软件行业的发展,关系型数据库面临了哪些挑战: 1.高并发 一个最典型的就是电商网站,例如双11, ...

  2. NoSQL 世界交换数据的事实标准

    https://www.elastic.co/guide/cn/elasticsearch/guide/current/data-in-data-out.html An object is a lan ...

  3. NoSQL精粹(NoSQL Distilled)——序言

    之前说到博客长草的问题,想了想除了很忙特别忙非常忙各种瞎忙忙你妹啊外,主要还是不知道写什么好--到这家公司的两年中从JS到领域驱动到缓存服务器从前端到后端各种折腾,有些东西虽然有所心得,不过既然前人已 ...

  4. [转载]12款免费与开源的NoSQL数据库介绍

    Naresh Kumar是位软件工程师与热情的博主,对于编程与新事物拥有极大的兴趣,非常乐于与其他开发者和程序员分享技术上的研究成果.近日,Naresh撰文谈到了12款知名的免费.开源NoSQL数据库 ...

  5. 转:有事务处理的NoSQL数据库

    原文来自于:http://www.infoq.com/cn/articles/MarkLogic-NoSQL-with-Transactions Java平台在其几乎整个生命周期中,都在煞费苦心地努力 ...

  6. 12款免费与开源的NoSQL数据库

    Naresh Kumar是位软件工程师与热情的博主,对于编程与新事物拥有极大的兴趣,非常乐于与其他开发者和程序员分享技术上的研究成果.近日,Naresh撰文谈到了12款知名的免费.开源NoSQL数据库 ...

  7. 一文读懂非关系型数据库(NoSQL)

    为了更好的理解非关系型数据库,我又深入的度娘了下 原文地址:https://baijiahao.baidu.com/po/feed/share?wfr=spider&for=pc&co ...

  8. 解决分布式事务基本思想Base和CPA理论、最终一致性|刚性事务、柔性事务

    在学习解决分布式事务基本思路之前,大家要熟悉一些基本解决分布式事务概念名词比如:CAP与Base理论.柔性事务与刚性事务.理解最终一致性思想,JTA+XA.两阶段与三阶段提交等. 如何保证强一致性呢? ...

  9. MongoDB 安装和可视化工具

    MongoDB 是一款非常热门的NoSQL,面向文档的数据库管理系统,官方下载地址是:MongoDB,博主选择的是 Enterprise Server (MongoDB 3.2.9)版本,安装在Win ...

随机推荐

  1. BZOJ1855 股票交易 单调队列优化 DP

    描述 某位蒟佬要买股票, 他神奇地能够预测接下来 T 天的 每天的股票购买价格 ap, 股票出售价格 bp, 以及某日购买股票的上限 as,  某日出售股票上限 bs, 并且每次股票交 ♂ 易 ( 购 ...

  2. 03. pt-config-diff

    pt-config-diff h=192.168.100.101,P=3306,u=admin,p=admin h=192.168.100.102,P=3306,u=admin,p=admin pt- ...

  3. Spring PropertyResolver 占位符解析(二)源码分析

    Spring PropertyResolver 占位符解析(二)源码分析 Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.html) ...

  4. 摹客 iDoc 12月上半月新功能点评

    转眼就到了2018年的最后一个月,小伙伴们是不是都在奋力拼搏做年底的冲刺呢?摹客也没有放慢脚步,不断地优化,给大家带来一个又一个的惊喜.那么,让小摹来带大家看看12月摹客iDoc更新了哪些特色功能: ...

  5. vue 设置button disabled

    <button v-bind:disabled="dis" @click="alert">button</button> dis:'' ...

  6. NotificationMangerService处理显示通知

    设置——>应用——>点击“已下载”列表中的任一APP,如图:  代码位置:Settings\src\com\android\settings\applications\InstalledA ...

  7. UVA 10405 Longest Common Subsequence

    题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=16&p ...

  8. spring学习 六 spring与mybatis整合

    在mybatis学习中有两种配置文件 :全局配置文件,映射配置文件.mybatis和spring整合,其实就是把mybatis中的全局配置文件的配置内容都变成一个spring容器的一个bean,让sp ...

  9. linux_制作本地yum源

    新建文件夹 mkdir /root/guazai 并将本地磁盘挂载到当前文件夹 mount -o loop /dev/cdrom /root/guazai/ 新建文件夹 mkdir /mnt/loca ...

  10. ubuntu安装rubyOnRails

    https://gorails.com/setup/ubuntu/16.04#ruby-rbenv 文章很详细