980Cassandra简介使用案例.ppt

上传人:sccc 文档编号:5736370 上传时间:2023-08-15 格式:PPT 页数:39 大小:1,007.01KB
返回 下载 相关 举报
980Cassandra简介使用案例.ppt_第1页
第1页 / 共39页
980Cassandra简介使用案例.ppt_第2页
第2页 / 共39页
980Cassandra简介使用案例.ppt_第3页
第3页 / 共39页
980Cassandra简介使用案例.ppt_第4页
第4页 / 共39页
980Cassandra简介使用案例.ppt_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《980Cassandra简介使用案例.ppt》由会员分享,可在线阅读,更多相关《980Cassandra简介使用案例.ppt(39页珍藏版)》请在三一办公上搜索。

1、Cassandra简介,Jametongb2bdba童家旺http:/,A highly scalable,eventually consistent,distributed,structured key-value store.,议题介绍,背景基本前提Scalability基本的Storage ModelCAP 公理简介Cassandra使用案例Cassandra设计它山之石Consistency Models(Eventual Consistency)Consistent HashingData ModelsStorage Model(SSTable&MemTable)故障检测&Gossi

2、p 通讯,Cassandra的设计背景,Scale Up不可接受满足海量数据存储需求海量数据,主要是用户的信息与用户消息(类似于我们的反馈)大量随机的读写没有现成的解决方案,或者说现成的解决方案无法解决(4000个节点的Memcached)很多应用并不是很依赖于关系模型了,Cassandra的设计目标,高可用性最终一致性经过权衡,在强一致性与高可用性之间选择了高可用性动态可伸缩乐观复制可以动态调整一致性/持久性与延时节点管理要保持低开销最小化管理开销,Scalability,当我们增加一个系统中的资源,并能获取与增加的资源保持适当的比例关系的性能提升,我们就认为这个服务具备了伸缩性。资源投入与

3、输出保持线性关系为促进冗余投入的资源不会带来性能损失能够处理异构资源能做到运维高效具备自修复能力scalability is a function that represents the relationship between workload and throughput,Scalability2,Scale Out Vs Scale UpScale Up-在同一个逻辑单元内增加资源,例如增加CPU/内存/网卡数量等.Scale Out-增加多个逻辑单元的资源,并使它们如同一个集中的资源那样提供服务(集群/分布式/负载均衡等)Scale Up较为简单,但是规模有限,代价越来越大Scale

4、Out需要从架构层面设计,规模没有限制,代价由架构决定.,基本的存储模型,行存储 Vs 列存储 Vs 混合存储行存储适合查找整行的存储,不过需要配合索引列存储适合查找少量列,适合做基于列的统计/查询混合列存储.将需要经常组合查询的列组合在一起.将其他列(列的组合)单独存储.,基本的存储模型2,CAP Theorem,Consistencythe system provides a view of the distributed state which is consistent between observers所有的用户都可以看到一致的系统状态AvailabilityThe system a

5、s a whole should continue functioning,even if servers should fail or be unreachable due to network failures无论何时,哪怕出现硬件故障,数据中心故障,系统也可提供服务,哪怕是降级的服务Partition ToleranceThe system as a whole should continue to function,potentially with degradations in service,even if the network can fail in arbitrary way

6、s.哪怕在网络出现分割的情况下,各个独立的子系统都可以继续提供服务Can Only Choose Two From Above Three,CAP Theorem2,BASEBasic AvailabilitySoft stateEventual ConsistencyACIDAtomicConsistencyIsolationDurability,CAP Theorem3,http:/,Cassandra使用案例,Cassandra使用案例2,Cassandra设计,它山之石Consistency Models(Eventual Consistency)Consistent HashingD

7、ata ModelStorage Model(SSTable&MemTable)Gossip 通讯故障检测,它山之石,它山之石2,Dynamo-like featuresSymmetric,P2P architectureNo Special nodes,No SPOF(Single Point Of Failure)Gossip Based cluster managementDistributed hash table for data placementPluggable partitioningPluggable topology discoveryPluggable placemen

8、t strategiesTunable,Eventual ConsistencyBigTable-like FeaturesSparse,”columnar”data modelOptional,2-level maps Called Super-Column FamiliesSSTable Disk StorageAppend-only Commit LogMemTable(Buffer&Sort)Immutable SSTable FilesHadoop Integration,Consistency Models,一致性模型是程序员与系统之间交互的一个协议,如果程序员遵循特定的规则,系统

9、就可以保证结果的一致性以及结果的可预测性一致性模型决定了数据可见与显示更新顺序的规则一致性是一个连续的平衡的过程,客户端一致性,强一致性所有用户都可以同时看到同一份一致的数据(ACID标准)弱一致性最终一致性(弱一致性的变种)如果系统确保一定的时间不做任何变更,最终所有的查询都会返回相同的最新值因果一致性读己之所写(read-your-writes)一致性会话(Session)一致性单调(Monotonic)读一致性单调写一致性,服务端一致性,N 数据复制的份数W 更新数据是需要保证写完成的节点数R 读取数据的时候需要读取的节点数如果W+RN,写的节点和读的节点重叠,则是强一致性如果W+R=N

10、,则是弱一致性,Cassandra支持的一致性,一致性模型取决于副本(Replicas)的数量(N),一般为3 在Cassandra中一般选择Quorum数量的读节点数(R,一般为2)以及Quorum数量的写节点数(W,一般为2),Read Repair,每次读取时都读取所有的副本只返回一个副本的数据对所有副本应用Checksum或Timestamp校验如果存在不一致取出所有的数据并做合并将最新的数据写回到不同步(out of sync)的节点,Hinted handoff,Hinted handoff 主要解决节点Down掉以后的复制问题.Cassandra会往一个活动节点记录信息,此节点需

11、要重新Apply此变更.如果节点Down掉时间较长,可能会导致出现较大的Hinted handoff 日志.,Hinted handoff解决的主要问题降低一个临时Down掉的节点恢复的速度在一致性(Consistency)允许的情况下,提供尽可能好的写可用性(always writable),Consistent Hashing,为所有的Key计算一个Hash值(一般为Md5计算的128位Hash值)这些Hash值都分布在一个环(Ring)上.最大的Hash值的位置与最小的Hash值相邻每个可提供服务的节点负责环上的一段区间每个节点都有一个环上的令牌(Token)每个节点负责它的令牌到顺时针

12、方向的下一个令牌之间的区域,Consistent Hashing2,Data Model,Keyspace 包含Column FamilyColumn Family标准Column Family或Super Column Family两级索引(Key以及Column Name),Column以及SubColumn的排列顺序Column总是有序的,Column通过其ColumnName进行排序指定你使用的ComparatorTimeUUIDLexicalUUIDUTF8LongBytesCreateYourOwn,Data Model,KEY,ColumnFamily1 Name:MailLis

13、t Type:Simple Sort:Name,Name:tid1Value:TimeStamp:t1,Name:tid2Value:TimeStamp:t2,Name:tid3Value:TimeStamp:t3,Name:tid4Value:TimeStamp:t4,ColumnFamily2 Name:WordList Type:Super Sort:Time,Name:aloha,ColumnFamily3 Name:System Type:Super Sort:Name,Name:hint1,Name:hint2,Name:hint3,Name:hint4,Name:dude,C2

14、V2T2,C6V6T6,Column Families are declared upfront,Columns are added and modified dynamically,SuperColumns are added and modified dynamically,Columns are added and modified dynamically,Storage Model,Key(CF1,CF2,CF3),Commit LogBinary serialized Key(CF1,CF2,CF3),Memtable(CF1),Memtable(CF2),Memtable(CF2)

15、,FLUSH,Data size Number of Objects Lifetime,Dedicated Disk,-,BLOCK Index Offset,Offset,K128 OffsetK256 OffsetK384 OffsetBloom Filter,(Index in memory),Data file on disk,Storage Model-Compactions,K1 K2 K3-,Sorted,K2 K10 K30-,Sorted,K4 K5 K10-,Sorted,MERGE SORT,K1 K2 K3 K4 K5 K10 K30,Sorted,K1 OffsetK

16、5 OffsetK30 OffsetBloom Filter,Loaded in memory,Index File,Data File,D E L E T E D,Storage Model-写操作,客户端给Cassandra集群的任一随机节点发送写请求分割器决定由哪个节点对此数据负责RandomPartitioner(完全按照Hash进行分布)OrderPreservingPartitioner(按照数据的原始顺序排序)Owner节点先在本地记录日志,然后将其应用到内存副本(MemTable)提交日志(Commit Log)保存在机器本地的一个独立磁盘上.,Storage Model-写相

17、关特性,关键路径上没有任何锁顺序磁盘访问表现类似于写入式缓存(write through cache)只有Append操作,没有额外的读开销只保证基于ColumnFamily的原子性始终可写(利用Hinted Handoff)即使在出现节点故障时仍然可写,Storage Model-读操作/特性,从任一节点发起读请求由分割器路由到负责的节点等待R个响应在后台等待N-R个响应并处理Read Repair,读取多个SSTable读速度比写速度要慢(不过仍然很快)通过使用BloomFilter降低检索SSTable的次数通过使用Key/Column index来提供在SSTable检索Key以及Co

18、lumn的效率可以通过提供更多内存来降低检索时间/次数可以扩展到百万级的记录,Anti-Entropy Gossip 通讯,Gossip 协议主要用来管理集群会员信息还用来管理各种系统状态.每个节点的状态以及其他会员的活动状态等.通讯效率非常高,只需要Log(N)回合就可以将状态传递给集群的N个节点每隔T秒,每个节点都会自增自己的Heartbeat信息并通过Gossip传递给其他节点,Gossip-初时状态,Gossip-第一回合,Gossip-第3回合,Gossip-第3回合,Gossip-第4回合,故障检测,Cassandra使用Accrual 故障检测器在系统管理,复制,负载均衡等领域应用广泛它的输出值为一个数值(Phi,),表示此节点面临故障的可疑级别它也被称为自适应故障检测器,可根据网络环境做自适应调整应用设置相应的Phi值,触发可疑节点并做针对性的处理在Cassandra中,默认的Phi值为5,检测到故障的时间在10-15秒具体设置的Phi值表明达到这个可疑级别的节点被认为已经出现故障,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号