您的位置:首页 > 其它

6.Tachyon文件存储以及读写过程

2016-02-18 13:32 232 查看

1.1 Tachyon文件存储方式

为了高效地对文件进行管理,Tachyon文件在内存中按块(Block)组织。文件和块信息保存在Master端,每个Worker以块为单位进行存储和管理,一个块可以同时被缓存在不同Worker的内存中。在UFS中,以文件形式对Tachyon文件进行备份。



1.2 Tachyon读写过程

由于Tachyon文件存储位置的多样性(内存,UFS),Tachyon API提供了多种文件读写类型以处理不同情况。



(1)读类型

CACHE –读取数据并缓存在本地内存

NO_CACHE –读取数据但不缓存在本地内存



过程:

1、首先,直接读取缓存文件信息。

2、如果不存在缓存信息,则请求主节点获取文件信息,从本地内存文件系统中读取该文件。

3、如果本地Ramfs中不存在,则从远程读取块文件

4、如果选择CACHE 类型,读取过来之后还会选择在本地Ramfs存储

5、如果远程读取失败,尝试读取检查点文件,连接到底层UFS进行文件读取。

6、底层文件读取失败,才会抛出I/O异常



(2)写类型

MUST_CACHE –只写本地内存,空间不足时报ERROR

TRY_CACHE –只写本地内存,空间不足时报WARNING

THROUGH –只写UFS

CACHE_THROUGH – 同时写本地内存和UFS(TRY_CACHE +THROUGH)

ASYNC_THROUGH–先写本地内存,异步备份到UFS



过程:

1、首先请求主节点,请求分配FID

2、根据不同的写入请求,启动相应的文件流向本地临时文件夹写(checkpoint文件),再存在本地,本地存在Ramfs,则随机选取工作节点

3、写入临时目录成功之后将checkpoint文件重命名为FID,写入数据目录

4、如果需要想向底层文件写,过程同上

5、均写完成之后报告文件写入完成,供读取。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: