CurveFS方案设计© XXX Page 1 of 14 CurveFS方案设计(总体设计,只实现了部分)© XXX Page 2 of 14 时间 修订人 修订内容 2021-03-23 李小翠 初稿(背景,调研,架构设计) 2021-03-30 李小翠 增加快照部分 2021-04-13 李小翠、陈威 补充元数据数据结构 2021-04-19 李小翠、吴汉卿、许超杰等 补充文件空间分配,讨论与确认 背景 计会涉及到多次rpc的交互。这里需要确认的一点是:我们需要怎样的元数据节点的性能? 可行性分析 方案对比 根据上述调研和测试结果,我们考虑了三种curvefs的元数据设计方案: CurveFS kv方案设计 curve实现块设备时,元数据不是扁平化的设计,而是采用来有目录层级的 namespace 方式,namespace 已经实现了 fs 元数据管理的雏形,具备了基本的元数据管理功能。(当时为什么要设计为0 码力 | 14 页 | 619.32 KB | 6 月前3
CurveFS对接S3方案设计© XXX Page 1 of 11 curvefs对接s3方案设计(过程文档)© XXX Page 2 of 11 时间 修订人 修订内容 2021-05-20 胡遥 初稿 2021-07-20 胡遥 细化write和read流程 整体架构 整体思路 接口和关键数据结构 mds.proto client端数据结构 metaserver.proto space相关数据结构和proto0 码力 | 11 页 | 145.77 KB | 6 月前3
Curve文件系统元数据持久化方案设计0 码力 | 12 页 | 384.47 KB | 6 月前3
CurveFS S3本地缓存盘方案本地写缓存盘方案© XXX Page 2 of 9 背景 方案设计 主要数据结构定义 方案设计思考 POC验证 背景 当前,s3客户端在写底层存储的时候是直接写入远端对象存储,由于写远端时延相对会较高,所以为了提升性能,引入了写本地缓存盘方案。也即要写底层存储时,先把数据写到本地缓存硬盘,然后再把本地缓存 硬盘中的数据异步上传到远端对象存储。 方案设计© XXX Page 3 of 9 S3模 int loadAllCacheReadFile() {}; private: std::string CacheReadDir_;© XXX Page 8 of 9 }; 方案设计思考 本地硬盘如何管理 借用linux本地文件系统进行管理,存储进本地硬盘的内容以文件的形式来表现。 配置一个目录用于本地硬盘的文件管理,对作为缓存盘的本地硬盘进行格式化并挂载到该目录(如果0 码力 | 9 页 | 150.46 KB | 6 月前3
curvefs client删除文件和目录功能设计Page 2 of 15 背景 相关调研 moosefs chubaofs 方案设计思考 1.Trash机制是实现1个(类似chubaofs),还是2个(类似moosefs)? 2. Trash放在哪里? 3. 是否需要做session机制(在metaserver打开),来维护inode的打开情况? 方案设计 Trash机制: Session机制: 遗留问题 工作量评估 背景 由于link、unlink等接口涉及跨服务器的两个请求的处理,可能会存在孤儿inode的问题,这一情况,chubaofs是通过运维手段去修复,见遗留问题。moosefs由于单mds,不存在这个问题。 方案设计思考 首先我们可以确定以下几个设计点: 删除的大致过程如下,首先移除dentry,然后移除inode,可以容忍只存在inode,也就是孤儿inode情况,这部分内容见下面遗留问题。 的。 3. 是否需要做session机制(在metaserver打开),来维护inode的打开情况? 经讨论,需要实现session机制,以应对打开文件被另一个进程删除的场景的场景。 方案设计 经小组会议讨论,决定使用trash + session机制去实现上述功能。 ulink流程如下:© XXX Page 10 of 15© XXX Page 11 of 15 1. 20 码力 | 15 页 | 325.42 KB | 6 月前3
CurveFS rename 接口实现方案存在) 4. 当 2 个操作的 dentry 属于同一个 copyset 有什么不一样? 背景 当前 curvefs 并没有实现 rename 接口,本文档是对 rename 接口实现的调研及方案设计。 rename 操作,主要操作的是 dentry,如 rename /dir1/file1 /dir2/file2,主要有 2 个步骤:(1) 删除 file1 的 dentry,(2) 增加 (备注:我认为利用 MVCC 可以保证事务 ACID 中的 C(一致性) 和 I(隔离性)) 方案主要借鉴 leveldb 与 etcd(boltdb) 中事务的实现(主要利用 mvcc),方案设计如下:© XXX Page 7 of 15 整体思路如下: 在 MDS 所有 copyset 中增加一个 txid 字段,保存当前 copyset 已成功的事务 id(该事务 id 顺序递增,事务每成功一次则加一)0 码力 | 15 页 | 555.93 KB | 6 月前3
TiDB 与 TiFlash扩展——向真 HTAP 平台前进 韦万Console Ad hoc Data Platform - What You Think It Is OLTP DBs App Data Warehouse / Data Lake ETL Analytical DBs Reporting BI Console Ad hoc Data Platform - What It Really Is VS Why ● Large database or NoSQL ○ For historical data, use Hadoop / analytical database ● Offload data via the ETL process into your Hadoop cluster or analytical database ○ Per hour or even per day ○ Complex offload Warehouse / Data Lake ETL Analytical DBs Reporting BI Console Ad hoc Traditional Data Platform Traditional data platform relies on complex architecture moving data around via ETL. This introduces maintenance0 码力 | 45 页 | 2.75 MB | 6 月前3
Curve文件系统空间分配方案小文件处理 并发问题 文件系统扩容 接口设计 RPC接口 空间分配器接口 背景 根据 ,文件系统基于当前的块进行实现,所以需要设计基于块的空间分配器,用于分配并存储文件数据。 CurveFS方案设计(总体设计,只实现了部分) 本地文件系统空间分配相关特性 局部性 尽量分配连续的磁盘空间,存储文件的数据。这一特性主要是针对HDD进行的优化,降低磁盘寻道时间。 延迟分配/Allocate-on-flush0 码力 | 11 页 | 159.17 KB | 6 月前3
CurveFS Client 概要设计时间 作者 内容 2021-04-27 许超杰 初稿 背景 CurveFS初步设计见 , 目前需细化Client端设计 CurveFS方案设计(总体设计,只实现了部分) 概述 CurveFS client 向上提供两层接口,分别是© XXX Page 3 of 11 对接fuse,提供通用文件系统接口。对于fuse接口,先前进行了一些调研,见FUSE调研0 码力 | 11 页 | 487.92 KB | 6 月前3
分布式NewSQL数据库TiDBHTAP 场景 场景 随着 5G、物联⽹、⼈⼯智能的⾼速发展,企业所⽣产的数据会越来越多,其规模可能达到数百 TB 甚⾄ PB 级别,传统的解决⽅案是通过 OLTP 型数据库处理在线联机交易业务,通过 ETL 适⽤场景 分布式NewSQL数据库 TiDB Copyright © 2012-2021 UCloud 优刻得 14/120 ⼯具将数据同步到 OLAP 型数据库进⾏数据分析,这种处理⽅案存在存 分散在各个系统的 数据汇聚在同⼀个系统并进⾏⼆次加⼯处理⽣成 T+0 或 T+1 的报表。传统常⻅的解决⽅案是采⽤ ETL + Hadoop 来完成,但 Hadoop 体系太复杂,运维、存储成本太⾼⽆法满⾜⽤⼾ 的需求。与 Hadoop 相⽐,TiDB 就简单得多,业务通过 ETL ⼯具或者 TiDB 的同步⼯具将数据同步到 TiDB,在 TiDB 中可通过 SQL 直接⽣成报表 真正⾦融级⾼可⽤0 码力 | 120 页 | 7.42 MB | 6 月前3
共 41 条
- 1
- 2
- 3
- 4
- 5













