NoSQL数据库:数据的一致性】的更多相关文章

数据锁 需求: 有一个账户,两个人在同一时间要对此账户操作,A要对账户充值100块,B要从账户中取出100块.操作前都要先看一下账户的 余额然后再操作. -- 窗口1 用户进行充值 -- 充值前 先查看余额 set @m=0; SELECT money into @m from account where id = 1; select @m; -- 看到余额后 充值100 块 update account set money = @m + 100 where id = 1; SELECT * f…
NoSQL数据库:数据的一致性 读取一致性 强一致性 在任何时间访问集群中任一结点,得到的数据结果一致: 用户一致性 对同一用户,访问集群期间得到的数据一致: 解决用户一致性:使用粘性会话,将会话绑定到特定结点来处理: 这样会降低负载均衡器的性能: 最终一致性 集群中各结点间由于数据同步不及时造成暂时的数据不一致,但数据同步完成后,最终具有一致性: 更新一致性 悲观方式 使用写锁 大幅降低系统响应能力 可能导致死锁 乐观方式 先让冲突发生,再检测顺序 自动合并的处理方式极具“领域特定”问题 放宽…
NoSQL不是不用SQL,是Not only SQL,不仅仅是结构化的查询. NoSQL兴起的原因 在Web2.0时代新浪一分钟可以发送两万条微博,苹果可以下载4.7万次应用. 数据的高并发性,同时有90万次的查询向百度的服务器提出了搜索要求.还有高扩展性,Web应用千变万化,可能对字段的需求在不断地增加.传统的数据库无法对字段进行简单的扩展. 关系型数据库作为一个统一的数据模型,既被用于数据分析,也被用于在线业务.数据分析强调的是高吞吐量,我要产生大量的计算结果.而在线业务需要低延时,意思是需…
NoSQL的三大基石:cap,Base,最终一致性   5.4.1 cap理论(帽子理论):   consistency:一致性availability:可用性partition tolerance:分区容忍性 理想的目标是设计一个分布式文件系统,同时实现CAP三个性质,但证明不可能,只能三者取二. 1)牺牲一致性换取可用性的实例: 无法传播的情况发生时,若p2要求马上读副本v2(保证可用性),数据不一致(牺牲一致性): 若p2等到p1把数据传过来再读副本v2(保证一致性),已经过了一段时间(牺…
5.1 NoSQL概论 最初:反SQL 概念演变,现在:Not only SQL 特点: 1.灵活的可扩展性 所以支持海量数据存储 2.灵活的数据模型 例如:HBase 3.和云计算的紧密结合 (一)nosql兴起原因: 1.关系性数据库无法满足web2.0的需求; 传统的关系数据库优点: 1.非常完备的关系理论基础 2.具有事务机制的支持 3.高效的查询优化机制 传统的关系数据库性能上的缺陷: 1.无法满足海量数据的管理需求: 互联网时代,数据产生速度非常快,那么庞大的数据如果还是按照传统的关…
1.NoSQL产生的原因 目前关系型数据库难以应对日益增多的海量数据,横向的分布式扩展能力比较弱,因此构建出非关系型数据库(所谓的NoSQL),其目的是为了构建一种结构简单.分布式.易扩展.效率高且使用方便的新型数据库系统. 2.NoSQL特点 NoSQL一般提供数据的分布式存储.数据表的统一管理和维护.以及快速的分布式写入和简单查询能力等. 一是流行的NoSQL软件满足业务需求而生 二是知名的NoSQL软件都是开源 3.NoSQL的典型应用场景 海量日志数据.业务数据或监控数据的管理和查询 特…
目前图数据库软件七种较为流行:Neo4J, Infinite Graph, DEX,InfoGrid, HyperGraphDB, Trinity, AllegroGraph(http://tech.it168.com/a2012/0112/1302/000001302117_all.shtml) •       Neo4j - 开源的Java属性图形模型 •       AllegroGraph,闭源,RDF-QuadStore •       HyergraphDB - 开源的Java超图模…
一直觉得“大数据”这个名词离我很近,却又很遥远.最近不管是微博上,还是各种技术博客.论坛,碎碎念大数据概念的不胜枚举. 在我的理解里,从概念理解上来讲,大数据的目的在于更好的数据分析,否则如此大数据的存储便没有这么大的意义了.至于从技术上, 恰好之前在<淘宝技术这十年>的引言部分,读到一篇小文,觉得放在这个大数据的讨论下,也还很贴切: “据不可靠消息,在双十一当天高峰,淘宝的访问流量最巅峰达到871GB/S.这个数字意味着需要178万个4Mb带宽的家庭宽带才能负担的起, 也完全有能力拖垮一个中…
大家都知道 Redis 是一个内存数据库,所谓内存数据库,就是将数据库中的内容保存在内存中,这与传统的MySQL,Oracle等关系型数据库直接将内容保存到硬盘中相比,内存数据库的读写效率比传统数据库要快的多(内存的读写效率远远大于硬盘的读写效率).但是保存在内存中也随之带来了一个缺点,一旦断电或者宕机,那么内存数据库中的数据将会全部丢失. 为了解决这个缺点,Redis提供了将内存数据持久化到硬盘,以及用持久化文件来恢复数据库数据的功能.Redis 支持两种形式的持久化,一种是RDB快照(sna…
NoSql数据库这个概念听闻许久了,也陆续看到很多公司和产品都在使用,优缺点似乎都被分析的清清楚楚.但我心里一直存有一个疑惑,它的出现究竟是为了解决什么问题? 这个疑惑非常大,为此我看了很多分析文章,但却总感觉是隔靴搔痒.为了一探究竟,半年前我决定用Mongodb这个著名的NoSql数据库做个产品试试.只有在真实的使用环境中才能得到最贴切的感受. 一晃眼,半年过去了,现在我能用亲身的体会来谈谈NoSql数据库存在的理由和试图解决的问题了.就像所有的哲学思考都来源于对日常活动的观察一样,我们也从最…