数据读取流程

Cassandra会根据需要读取的ColumnFamily查询该ColumnFamily下的Memtable以及所有的SSTable,合并查询结果,将最新的结果返回给客户端。Cassandra从SSTable中读取数据时,先要读取Bloom Filer文件判断该Key是否在被SSTable中,如果在,再从Index文件中定位到数据的位置,最后从Data文件中读取需要查询的信息。

弱读取的执行流程如下:

  1. 从集群中找出一台最适合读取的服务器。
  2. 从这个服务器读取数据,如果是本机则对本机的数据进行异步读取。如果不是本机,向该服务器请求需要的数据,并根据一定的概率进行计算是否进行读取修复操作。
  3. 等待结果返回。
  4. 将返回的结果返回给客户端。

在强读取下执行流程如下:

  1. 找最适合的一个服务器。
  2. 发送读取请求。
  3. 根据一致性的级别从集群中找出其他需要读取的服务器。
  4. 向其他需要读取的服务器,对比数据是否一致。
  5. 如果一致就返回结果,不一致就进行QUORUM级别的读取修复。
  6. 将最终的 结果返回。

集群数据读取策略

在集群中提供5中一致性读取策略保证高可用性:

  1. ONE:有一个成功就返回,不要求最新。
  2. QUORUM:成功数目不少于ReplicationFactor/2+1。
  3. LOCAL_QUORUM:与2不同的是要有一个服务器是和接收读取操作的服务器处于同一数据中心才算成功。
  4. EACH_QUORUM:和3刚好相反。
  5. ALL:服务器数量为ReplicationFactor时才算成功,这样就是高一致性,低可用性。

读修复

有一定的概率去执行修复。Cassandra向集群中的每一个包含该数据并且存活的服务器发送该读取数据的摘要信息的读取请求,然后进行对比找出最新的数据,并且更新数据国企的服务器,从而保证数据的一致性。

数据缓存

Cassandra提供RowCache和KeyCache。RowCache缓存的是数据,而KeyCache缓存的是在SSTable文件中的位置。

二级索引

Cassandra在使用二级索引查询的时候,不是直接去寻找存储数据的ColumnFamily,而是先通过存储索引的ColumnFamily定位到存储数据的位置,再去存储数据的ColumnFamily中寻找实际的值。

转载于:https://www.cnblogs.com/ggzwtj/archive/2011/07/23/2114665.html

Cassandra数据读取机制相关推荐

  1. linux 读取大量图片 内存,10 张图帮你搞定 TensorFlow 数据读取机制

    导读 在学习tensorflow的过程中,有很多小伙伴反映读取数据这一块很难理解.确实这一块官方的教程比较简略,网上也找不到什么合适的学习材料.今天这篇文章就以图片的形式,用最简单的语言,为大家详细解 ...

  2. tensorflow 1.0 学习:十图详解tensorflow数据读取机制

    本文转自:https://zhuanlan.zhihu.com/p/27238630 在学习tensorflow的过程中,有很多小伙伴反映读取数据这一块很难理解.确实这一块官方的教程比较简略,网上也找 ...

  3. 十图详解TensorFlow数据读取机制(附代码)

    在学习TensorFlow的过程中,有很多小伙伴反映读取数据这一块很难理解.确实这一块官方的教程比较简略,网上也找不到什么合适的学习材料.今天这篇文章就以图片的形式,用最简单的语言,为大家详细解释一下 ...

  4. TensorFlow数据读取机制:文件队列 tf.train.slice_input_producer和 tf.data.Dataset机制

    TensorFlow数据读取机制:文件队列 tf.train.slice_input_producer和tf.data.Dataset机制 之前写了一篇博客,关于<Tensorflow生成自己的 ...

  5. PyTorch框架学习八——PyTorch数据读取机制(简述)

    PyTorch框架学习八--PyTorch数据读取机制(简述) 一.数据 二.DataLoader与Dataset 1.torch.utils.data.DataLoader 2.torch.util ...

  6. tensorflow数据读取机制

    原博客地址:https://zhuanlan.zhihu.com/p/27238630 代码地址:https://github.com/hzy46/Deep-Learning-21-Examples/ ...

  7. 数据读取机制Dataloader和Dataset和Transforms

    人民币二分类模型 数据-模型-损失函数-优化器-迭代训练 数据收集 img label 数据划分 train valid test 数据读取 Dataloader [sampler-生成索引 data ...

  8. 系统学习Pytorch笔记三:Pytorch数据读取机制(DataLoader)与图像预处理模块(transforms)

    Pytorch官方英文文档:https://pytorch.org/docs/stable/torch.html? Pytorch中文文档:https://pytorch-cn.readthedocs ...

  9. 『TensorFlow』数据读取类_data.Dataset

    一.资料 参考原文: TensorFlow全新的数据读取方式:Dataset API入门教程 API接口简介: TensorFlow的数据集 二.背景 注意,在TensorFlow 1.3中,Data ...

最新文章

  1. Activiti——工作流之流程实例、任务的执行(五)
  2. jdb java_JDB - 介绍
  3. 噪声与平滑滤波(MATLAB)
  4. linux id 命令 显示用户id和组id信息
  5. java 多进程写一个文件_java高并发多线程及多进程同时写入文件研究
  6. java高级类_Java高级类特性(一)
  7. Centos7-Lvs+Keepalived架构实验详解
  8. sql字符处理函数concat()、concat_ws()
  9. Windows服务器配置DFS实现文件同步
  10. Topaz DeNoise AI 3.6.2 for Mac(图片降噪软件)
  11. mt4代理服务器存放文件,MT4指标EA DLL等文件放置目录
  12. c语言汉字转拼音,C#汉字转拼音(支持多音字)
  13. 新型安卓木马SpyNote生成器遭泄露
  14. Java 动态代理机制讲解(Proxy.newProxyInstance)
  15. Ubuntu安装yum
  16. spring boot+thymeleaf+layui实现后台管理系统界面
  17. Axure R8学习记录
  18. html5 在线签名,html5手写签名
  19. PTA乙级1014(python3)
  20. Linux C-学习笔记(一)

热门文章

  1. 深度学习(三十九)可视化理解卷积神经网络(2.0)
  2. python__画图表可参考(转自:寒小阳 逻辑回归应用之Kaggle泰坦尼克之灾)
  3. sorted函数python_python中排序函数sort,sorted和operator.itemgetter的使用
  4. person p = new person();_Python函数__new__及__init__作用及区别解析
  5. 系统集成项目管理工程师教程第二版
  6. 基于Android平台淘宝网手机客户端实战开发(共四季,涉及各类技术应用)
  7. BootstrapTable自定义ajax方法
  8. Android控件系列之XML静态资源
  9. javaWeb项目带红色感叹号问题原因
  10. UI进阶--UIPikcerView实现省市联动示例