通过上面2节,大家了解到了RDBMS遇到的问题,以及对Cassandra有了基本的了解。下面将介绍下Cassandra内部简单结构。
创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于网站制作、网站建设、三水网络推广、微信小程序开发、三水网络营销、三水企业策划、三水品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联公司为所有大学生创业者提供三水建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com
通过本章,大家应该了解到:
Cassandra Write流程
什么是SSTable
Cassandra Read流程
Cassandra Write流程
Writes可以被写入到集群中的任意节点
Writes被写入到commit log,同时写到memtable
每一个write包含一个timestamp
Memtable定期flush到硬盘中(sstable)
当memtable的内容超过了其配置的限制,它包含的数据就会被放到一个队列中并刷新到磁盘。你可以通过修改cassandra.yaml中 memtable_flush_queue_size的值来改变队列的长度
新的memtable在内存中创建
删除是一种特殊write,称之为”tombstone”(墓碑)
什么是SSTable
SSTable有序字符串表(Sorted String Table),是从Google的Bigtable里借鉴过来的概念。一旦memtable被刷写入磁盘,成为一个SSTable,它就是不可变的了。
特点如下:
数据文件:存储记录,不可变
每一个write包含一个timestamp
Partition被分割到多个SSTable
新的memtable在内存中创建
通过compaction合并,只保存最新的timestamp
删除被标记为tombstone
Cassandra Read流程
任何server都可以作为coordinator被查询
通过查询key定位交互的nodes
在每一个node上,数据都是从SSTable拉取并合并
一致性< ALL时,将会在后台执行read repaire(read_repaire_chance)