文档详情

数据库应用精品教学(华南理工大学)NoSQL-综述.ppt

发布:2018-07-05约9.91千字共50页下载文档
文本预览下载声明
/art/201012/236150.htm 一般MySQL使用Query Cache,每次表的更新Cache就失效,是一种大粒度的Cache,在针对web2.0的交互频繁的应用,Cache性能不高。而NoSQL的Cache是记录级的,是一种细粒度的Cache,所以NoSQL在这个层面上来说就要性能高很多了。 当然,牺牲一致性,只是不再要求关系型数据库中的强一致性,而是只要系统能达到最终一致性即可,考虑到客户体验,这个最终一致的时间窗口,要尽可能的对用户透明,也就是需要保障“用户感知到的一致性” 注意:Master没有单点问题,HBase中可以启动多个Master,通过Zookeeper的Master Election机制保证总有一个Master运行 注意:Master没有单点问题,HBase中可以启动多个Master,通过Zookeeper的Master Election机制保证总有一个Master运行 Dynamo简介 Dynamo 最初是 Amazon 所使用的一个私有的分布式存储系统。 设计要点 P2P 的架构:这区别于 Google FS 的 Single Master 架构,无须一个中 心服务器来记录系统的元数据。 ? 六、几种主流NoSQL数据库——Dynamo 设计要点 Performance(性能), Availability(可用性), Durability(数据持久性) 三者的折衷,可以根据应用的需求自由调整三者比例。 ? 六、几种主流NoSQL数据库——Dynamo 技术要点 数据定位使用一致性哈希; Vector lock,允许数据的多个备份存在多个版本,提高写操作的可用性(用弱一致性来换取高的可用性) 容错:Sloppy Quorum, hinted handoff, Merkle tree Sloppy Quorum马虎仲裁,并非采用严格的数据一致性检查,用于实现最终一致性 hinted handoff,节点故障会恢复时,可动态维护系统可用性,使系统的写入成功大大提升。 使用Merkle tree为数据建立索引,只要任意数据有变动,都将快速反馈出来。 网络互联: Gossip-based membership protocol ,一种通讯协议,目标是让节点与节点之间通信,实现去中心化。 Storage load balancing Client-driven Coordination 六、几种主流NoSQL数据库——Dynamo 特点 高可用:设计上天然没有单点,每个实例由一组节点组成,从应用的角度看,实例提供 IO 能力。一个实例上的节点可能位于不同的数据中心内, 这样一个数据中心出问题也不会导致数据丢失。 总是可写:hinted handoff确保在系统节点出现故障或节点恢复时,能灵活处理 可根据应用类型优化可用性、容错性和高效性配置 去中心化,人工管理工作少 可扩展性较差:由于增加机器需要给机器分配DHT(分布式hash table)算法所需的编号,操作复杂度较高,且每台机器存储了整个集群的机器信息及数据文件的Merkle Tree信息,机器最大规模只能到几千台。 六、几种主流NoSQL数据库——Dynamo Cassandra简介 Apache Cassandra 是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据,集Google BigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身。Facebook于2008将 Cassandra 开源,此后,由于Cassandra良好的可扩放性,被Digg、Twitter等知名Web 2.0网站所采纳,成为了一种流行的分布式结构化数据存储方案。 ? 六、几种主流NoSQL数据库——Cassandra 架构要点 使用了Google BigTable的数据模型 这是一种面向列的数据库,列被组织成为列族(Column Family),在数据库中增加一列非常方便。对于搜索和一般的结构化数据存储,这个结构足够丰富和有效。 系统架构与Dynamo一脉相承 是基于O(1)DHT(分布式哈希表)的完全P2P架构,与传统的基于Sharding的数据库集群相比,Cassandra可以几乎无缝地加入或删除节点,非常适于对于节点规模变化比较快的应用场景。 Cassandra的数据会写入多个节点 保证数据的可靠性,在一致性、可用性和网络分区耐受能力(CAP)的折衷问题上,Cassandra比较灵活,用户在读取时可以指定要求所有副本一致(高一致性)、读到一个副本即可(高可用性)或是通过选举来确认多数副
显示全部
相似文档