Happy Apache Cassandra 2: File Store Format

原创 2011年11月28日 14:37:57

h3. Model Review

Cassandra data model

Column Family



Super Column Family



h3. File Format

h4. Keyspace

  • Each Keyspace(Eg. Lobs)in separated directory
  • Each ColumnFamily(Eg. object) in separated sstable files
    • ColumnFamilyName-version-#-Data.db
    • ColumnFamilyName-version-#-Index.db
    • ColumnFamilyName-version-#-Filter.db

h4. Index File 

  • Each entry is [Key, Position], order by key
  • Index Summary(pre-loaded into memory), every 1 entry in 128 entries
  • Key Cache, cache the entry after access it


h4. data file

  • Each entry is [Row], order by key
  • Each Row contains columns, order by column name
  • Each Row contains column index (in range)


h4. others

  • Bloom filter file
    • Given {an element}, answer {is contained in a set} .
    • Given a {key}, answer {is contained in current sstable file}
  • Commit log file
    • Used in write, avoid data lost 
  • Statistical file

h3. CRUD

h4. write

BigTable

  • First write to a disk commit log (sequential) 
  • Update to appropriate memtables
  • Memtables are flushed to disk into SSTable ( immutable)


h4. read

  • Check row cache
  • Cassandra will read all the SSTables for that Column Family
    • Bloom Filter for each SSTable to determine whether this SSTable contains the key
    • Use index in SSTable to locate the data (check key cache)
    • Read from data file

h4. update

  • Same sequence with write
    • SSTable is immutable
    • Update is write into new SSTable
  • Column Reconcile
    • Read columns from all the SSTables
    • Merge/Reduced columns with same name, CollationController
      • Use timestamp, return latest column

h4. delete

  • Same sequence with write
    • SSTable is immutable
    • Delete is write into new SSTable
  • Delete a column
    • Column flag is set to delete flag
  • Delete a Row
    • markedForDeleteAt  is set to delete timestamp
    • Column timestamp is compared with markedForDeleteAt when reducing columns in read

h4. drop

  • Drop a Column Family
    • Take snapshots (move to snapshot dir)
    • Remove column family definition
  • Drop a Keyspace
    • Take snapshots (move to snapshot dir)
    • Remove keyspace definition

h4. Compaction

Periodically data files are merged sorted into a new file (and creates new index)
  • Merge keys 
  • Combine columns 
  • Discard tombstones


References

http://jonathanhui.com/how-cassandra-read-persists-data-and-maintain-consistency

HFile: A Block-Indexed File Format to Store Sorted Key-Value Pairs

Schubert Zhang也是HBase代码提交者,他在这篇文章除了介绍HFile以外,更重要的他给出了一个关于Hbase 2.0的性能测试报告并对测试结果进行了简单的分析:正文文章来源:http:...
  • macyang
  • macyang
  • 2011年02月16日 11:11
  • 1363

Apache Cassandra架构理解

转载自:http://www.360doc.com/content/17/0116/11/39871333_622789686.shtml 架构 基本流程: 点对点分布式系统,集群中各节点平等,数...
  • nangongyanya
  • nangongyanya
  • 2017年01月16日 11:15
  • 1319

Happy Apache Cassandra 3: Monitor

http://wiki.apache.org/cassandra/Operations#Monitoring bin/cassandra-cli -h host bin/nodetoo...
  • FireCoder
  • FireCoder
  • 2011年12月14日 17:02
  • 1259

Happy Apache Cassandra 1: Setup

Cassandra Setup Setup Cassandra GettingStarted Single Node Download tar xvf cassandra-*.ta...
  • FireCoder
  • FireCoder
  • 2011年11月25日 21:19
  • 1029

MAC下jdk、cassandra的安装

一、安装jdk 下载最新版http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html 按照提示默认安...
  • u013298318
  • u013298318
  • 2016年09月01日 20:16
  • 688

数据恢复之commitlog

cassandra作为海量数据处理的DB,为了提升性能,则先将数据写入到内存表memtable中,然后当memtable达到一定容量条件时,再将memtable中数据持久化到硬盘上。但是如果系统宕机,...
  • avrilwu
  • avrilwu
  • 2013年03月07日 21:55
  • 1450

Datastax文档Apache Cassandra v2.1 第二部分 理解Cassandra架构_数据分发和副本

本文主要翻译自Datastax公司的在线文档,Cassandra版本为2.1。由于水平有限,翻译不当之处还请大家指正。 在Cassandra中数据分发和复制是同步的。数据由表组织,并且由主键唯一...
  • pzoozq
  • pzoozq
  • 2015年09月23日 01:47
  • 1290

Cassandra HintedHandoff

Cassandra HintedHandoff
  • wh62592855
  • wh62592855
  • 2010年08月03日 18:50
  • 947

openoffice使用总结001---版本匹配问题unknown document format for file: E:\apache-tomcat-8.5.23\webapps\ZcnsDms\

openoffice使用总结001---版本匹配问题unknown document format for file: E:\apache-tomcat-8.5.23\webapps\ZcnsDms\...
  • lidew521
  • lidew521
  • 2017年10月20日 23:21
  • 450

Datastax文档Apache Cassandra v2.1 第二部分 理解Cassandra架构之架构概要

Cassandra被设计用来处理大数据工作负载,跨越多个节点,并且无单节点故障。该架构假设系统和硬件会发生故障并且一定会发生。Cassandra采用分布在对等节点上的P2P分布式系统来解决故障问题,数...
  • pzoozq
  • pzoozq
  • 2015年09月22日 15:40
  • 981
收藏助手
不良信息举报
您举报文章:Happy Apache Cassandra 2: File Store Format
举报原因:
原因补充:

(最多只允许输入30个字)