读写机制调研-PPT精品ppt课件.pptx

读写机制调研-PPT精品ppt课件.pptx

ID:59765897

大小:95.90 KB

页数:34页

时间:2020-11-23

读写机制调研-PPT精品ppt课件.pptx_第1页
读写机制调研-PPT精品ppt课件.pptx_第2页
读写机制调研-PPT精品ppt课件.pptx_第3页
读写机制调研-PPT精品ppt课件.pptx_第4页
读写机制调研-PPT精品ppt课件.pptx_第5页
资源描述:

《读写机制调研-PPT精品ppt课件.pptx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Cassandra读写机制调研在数据的读取过程中,Cassandra会根据需要读取的ColumnFamily查询该ColumnFamily下的Memtable以及所有的SSTable,合并查询的结果,将最新的结果返回给客户端。读取操作根据一致性级别分为两类:强读取弱读取Cassandra的数据读取机制对于每一个读取命令,Cassandra的执行流程如下:从集群中找出一台最适合读取的服务器。从最适合读取的服务器读取数据如果最适合读取的服务器是本机,对本机的数据进行异步读取如果最适合读取的服务器不是本机

2、,向该服务器请求需要读取的数据,并根据一定概率计算是否进行读修复操作(这里读修复操作异步执行,不会等待读修复操作完毕后再将结果返回客户端)等待结果返回将返回的结果返回给客户端弱读取对于每一个读取命令,Cassandra的执行流程如下:从集群中找出一台最适合读取的服务器。向该服务器请求需要读取的数据。根据读取一致性级别,从集群中找出其他需要读取的服务器。向其他需要读取的服务器请求需要读取数据的摘要信息,用于对比多台机器之间数据是否一致。等待符合读取一致性要求结果的返回。从不同服务器返回的结果,对比数据

3、是否一致,对于不一致的数据,进行QUORUM级别的读修复操作。将最终结果返回给客户端。强读取TableColumnFamilyStore对象的集合,可以通过columnfamily的名字查找到对应的CFSColumnFamilyStoreDataTracker关于该ColumnFamily的信息一个Memtable对象。该对象保存了最近的对该CFS中的Columnfamily的修改,这些修改还没有被flush到磁盘上。一个SSTableTracker对象。这是一个SStableReader对象的集合

4、,每个SSTableReader对象维护了关于磁盘上的CF数据的必要信息。与数据模型相关的数据结构Commitlog先写日志再写数据数据写入Memtable前需要由CommitLogExecutorService线程先写CommitlogCommitlogHeader记录了CF的脏标志位和该CF的恢复起始偏移位置。CommitlogSegment记录了变更的RowMutation信息。MemtableConcurrentNavigableMap

5、这个哈希表用于从row-key查找对应的ColumnFamily对象。与数据模型相关的数据结构(续)CassandraServerpublicListget_slice(ByteBufferkey,ColumnParentcolumn_parent,SlicePredicatepredicate,ConsistencyLevelconsistency_level)Exception:InvalidRequestExceptionUnavailableExce

6、ptionTimedOutException读操作thrift接口判断是否对指定ColumnFamily具有读权限,如果没有该权限,则抛出InvalidRequestException异常privateMap>multigetSliceInternal取得ColumnFamily的元数据判断predicate里存储的是columnname集合还是范围,构造不同Command集合,每个Key具有一个Command对象privat

7、eMap>getSlice(commands,consistency_level)get_Slice根据一致性级别和构造出的读取命令从指定ColumnFamily中读取数据readColumnFamily(未来可支持每行多个ColumnFamily,目前仅支持一行)如果一致性级别为ANY,抛出InvalidRequestException异常通过调度,执行StorageProxy.read(commands,consisten

8、cy_level)取出行数据,可能抛出TimeoutException和IOException两种异常。如果处于BootstrapMode(集群joining状态),则抛出UnavailableException调用StorageProxy的fetchRow取出行数据根据读操作命令从返回结果中取出指定column数据getSlice执行本地和远程读取操作,阻塞等待结果返回针对每个Command,执行如下读取操作:取出负责指定key的目前活着的节点将其按与本地节点之间距

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。