前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Cassandra基本介绍(3) - 架

Cassandra基本介绍(3) - 架

作者头像
py3study
发布2020-01-08 18:46:29
6960
发布2020-01-08 18:46:29
举报
文章被收录于专栏:python3python3

    通过上面2节,大家了解到了RDBMS遇到的问题,以及对Cassandra有了基本的了解。下面将介绍下Cassandra内部简单结构。

    通过本章,大家应该了解到:

  1. Cassandra Write流程
  2. 什么是SSTable
  3. Cassandra Read流程

  • Cassandra Write流程
  1. Writes可以被写入到集群中的任意节点
  2. Writes被写入到commit log,同时写到memtable
  3. 每一个write包含一个timestamp
  4. Memtable定期flush到硬盘中(sstable)     当memtable的内容超过了其配置的限制,它包含的数据就会被放到一个队列中并刷新到磁盘。你可以通过修改cassandra.yaml中 memtable_flush_queue_size的值来改变队列的长度
  5. 新的memtable在内存中创建
  6. 删除是一种特殊write,称之为”tombstone”(墓碑)
wKioL1dWfYWS986iAAB9v7Fk5YE723.png
wKioL1dWfYWS986iAAB9v7Fk5YE723.png
wKiom1dWfH6RgmDsAACklsVSMaA321.png
wKiom1dWfH6RgmDsAACklsVSMaA321.png
  • 什么是SSTable

    SSTable有序字符串表(Sorted String Table),是从Google的Bigtable里借鉴过来的概念。一旦memtable被刷写入磁盘,成为一个SSTable,它就是不可变的了。

    特点如下:

  1. 数据文件:存储记录,不可变
  2. 每一个write包含一个timestamp
  3. Partition被分割到多个SSTable
  4. 新的memtable在内存中创建
  5. 通过compaction合并,只保存最新的timestamp
  6. 删除被标记为tombstone
wKioL1dWft_xHBdVAAE8z8vtlA8483.png
wKioL1dWft_xHBdVAAE8z8vtlA8483.png
  • Cassandra Read流程
  1. 任何server都可以作为coordinator被查询
  2. 通过查询key定位交互的nodes
  3. 在每一个node上,数据都是从SSTable拉取并合并
  4. 一致性< ALL时,将会在后台执行read repaire(read_repaire_chance)
wKiom1dWgKnSHRvTAAFspihkQPs096.png-wh_50
wKiom1dWgKnSHRvTAAFspihkQPs096.png-wh_50
wKioL1dWgbHDoTIGAACMp7OCMQg792.jpg-wh_50
wKioL1dWgbHDoTIGAACMp7OCMQg792.jpg-wh_50
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档