Bigtable
1.如何在文件内进行快速查询?
关键点: 从File 到 Table Table = a list of sorted
2.如何保存一个很大的表?
关键点: A table = a list of tables (小表)
A tablet = a list of sorted
使用MetaData的形式保存每一个小表的位置
3.如何保存一个超大的表?
关键点:A table = a list of tablets (小表)
A tablet = a list of SSTables (小小表)
A SSTables = a list of sorted
4.如何向表中写数据?
关键点:通过写入memTable(内存表)来加速
A tablet = memTable + a list of SSTables
5.内存表过大怎么办?如何避免内存丢失数据?
内存表过大时,重新写成一个小小表 导入硬盘进行保存 成为一个新的SSTables
在硬盘中添加Tabletlog 记录写入的数据
A Tablet = memTable + a list of SSTables + log
6.如何读数据?(相当于是查找数据)
关键点: SSTable 内部的数据是有序的,但是SSTable之间的数据是无序的
需要查找所有的SSTables 和 memTable 需要在硬盘中的SSTable中查找该元素
7.如何加速读数据?
关键点:A SSTable = a list of sorted
Index会预先加载到内存 通过Index才能找到硬盘的位置
8.继续加速读数据?
关键点 : 使用bloomfilter A SSTables = a list of sorted
Bloomfilter会预先加载到内存 通过bloomfilter判断元素是否会存在
9.将表装入内存?
10.如何将表的物理视图装入表的逻辑视图?
Key = string(row,column,time)
11.BigTable的架构
Chubby锁服务
总结:BigTable使用
吃内存的BigTable和吃硬盘的GFS合为一体