半结构化数据存储系统调研_第1页
半结构化数据存储系统调研_第2页
半结构化数据存储系统调研_第3页
半结构化数据存储系统调研_第4页
半结构化数据存储系统调研_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

半结构化数据存储系统调研现有的半结构化系统BigtableGoogle的分布式nosql数据存储系统有一个开源的版本HBaseDynamoAmazon的分布式存储引擎CassandraFacebook的开源分布式存储系统MongoDBGoogle的基于分布式文件存储的数据库开源项目CouchDBIBM开发的面向文档的数据库(团队已组建新公司CouchIO)RedisVmware的开源key-value数据库Bigtable概述大量应用需要类似数据库的访问查询一般比较简单不需要完整的数据关系模型数据规模非常大要保证高效(带宽&延迟),高可用优点与传统数据库不同,类似Key-Values列簇式存储(ColumnFamily)可以随时添加column字段可以保存历史数据缺点不支持类似关联(join)这样的操作BigTable逻辑模型传统表格:Row/Column/CellBitTableRow:RowkeyColumn:<ColumnFamily:Qualifier>同一个columnfamily的数据类型一致Columnfamily在设计table时创建,运行后很少修改可在运行时再columnfamily中添加columnTimestampsCell有多个版本可用针对columnfamily设定查询:(row:string,column:string,time:int64)stringBigtable物理模型用户table按rowkey划分为多个Tablet在内存中开辟缓冲区memtable来保存数据数据的持久化存储使用SSTable,永久保存在GFS上Tablem*TabletTabletn*columnfamilyn*columnfamilySstableSSTable(V1:Rowkey,CF0-C1,CF0-C2,CF0-C3,CF1-C1),(V2),….V1V2V3BigTable的组成Master分配Tablet监测TabletServer的状态,容错处理保证系统负载均衡TabletServer服务读写请求,Tablet处理Client直接与TabletServer交互操作TableChubby保证系统可用性保存TableSchemaGFS作为底层存储Dynamo概述优点完全的分布式,去中心化,存储分层松耦合度高可用性,可扩展性缺点最终一致性:写入的数据可能在后继的读操作中不能获取Quorum一致性:读取代价高(一旦有某个节点未同步,读取会失败)WANconsideration跨IDC造成异地传输数据加Dynamo架构客户端请求通过pagerendering组件返回内容Pagerendering组件根据请求查询大量服务器后台通过dynamoinstance提供服务本地持久化存储可通过不同引擎,如Berkeley

DB,MySQL等Dynamo数据划分使用consistenthashing算法Node对应一个hash值范围,key根据hash值在hashring中顺时针查找引入虚拟节点概念Dynamo数据版本控制使用vectorclocks通过比较vectorclock来进行版本合并Dynamo同步与恢复一个node中的同步由client来解决使用(N,R,W)模型,其中N表示node中机器的总数,R表示一个读请求需要的机器参与数,W表示一个写请求需要的机器参与数配置R+W>N暂时性故障处理:hintedhandoff永久性故障处理:基于MerkleTree的副本同步Cassandra概述混合型的非关系数据库以完全分布式的Dynamo为基础,集合了Bigtable基于列簇的数据模型优点分布式基于column的结构化高可扩展性缺点最终一致性不支持多个key之间的原子操作不支持分布式事务Dynamo数据模型Dynamo数据分布与副本与Dynamo类似,基于DHT(分布式哈希表)数据写入多个节点,可折衷CAP(一致性,可用性和网络分区)MongoDB概述为Web应用提供在线服务优点结合了NoSQL数据库的可扩展性和传统RDBMS的功能提供强一致性保证(fullyserializableACID)和高可用性面向集合存储,易存储对象类型的数据提供传统的数据库功能缺点在32位模式运行时支持的最大文件尺寸为2GBMongoDB数据模型面向集合(collection-oriented)数据被分组存储在数据集中,被称为一个集合(collection),相当于RDMBS里的表(talbe)每个集合在数据库中都有唯一的标示,可以包含多个文档文档使用key-value形式存放模式自由(schema-free)对于存储在mongodb数据库中的文件,可以有不同结构MongoDB系统架构在交互的应用中使用paxos协议,保证多副本跨数据中心的同步包括一个clientlibrary和多个server本地使用bigtable存储CouchDB概述面向文档的数据库,无中心节点架构与mongoDB很类似相同点

数据存储格式都是是json,使用javascript进行操作,支持map/reduce不同点CouchDB是一个MVCC系统,mongoDB是一个update-in-place系统MongoDB能够通过sharding实现水平扩展MongoDB支持动态查询,CouchDB必须为每一个查询模式建立相应viewCouchDB是RESTFul的数据库,操作完全走HTTP协议,mongoDB是自己的二进制协议Redis概述RemoteDictionaryServer本质上是一个key-value类型的内存数据库,很像memcached,定期通过异步操作将内存数据持久化优点提供多种语言的AP除了常规的数值或字符串,Redis的键值还可以是以下形式Lists(列表),Sets(集合),Sortedsets(有序

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论