从百度文件系统看大型分布式系统设计中的定式与创新颜世光 百度 搜索基础架构 从百度文件系统 看大型分布式系统设计 自我介绍 • 颜世光, 专注于大规模分布式系统 • 代表作品 - 百度第三代Spider系统 - 百度文件系统BFS - 万亿量级实时数据库Tera - 集群调度系统Galaxy • 个人主页&Blog - https://github.com/bluebore - http://bluebore.cn 提纲 • • 百度文件系统简介 • 分布式系统设计实践 • 总结与致谢 百度的集群环境 • 单个集群通常几千台机器 • 百度文件系统(BFS)、集群调度系统(Galaxy)、分布式协 调服务(Nexus)是核心服务 • 实时任务与批量任务混合部署 Galaxy master BFS master Nexus lock service 分布式软件栈中的BFS The Baidu Stack 分布式文件系统 BFS 集群调度系统 Galaxy 分布式协调服务 Nexus 分布式数据库 Tera 分布式计算框架 Shuttle Apps(Spider/Index/Search) 数据中心操作系统(DCOS) • 进程调度&内存管理 - Galaxy - 应用部署和任务调度 • 锁和信号量 - Nexus - 分布式锁 - 分布式通知 • 文件系统 - The0 码力 | 24 页 | 937.45 KB | 1 年前3
Curve文件系统元数据管理© XXX Page 1 of 24 Curve文件系统元数据管理(已实现)© XXX Page 2 of 24 1. 2. 3. 4. Inode 1、设计一个分布式文件系统需要考虑的点: 2、其他文件系统的调研总结 3、各内存结构体 4、curve文件系统的元数据内存组织 4.1 inode定义: 4.2 dentry的定义: 4.3 内存组织 5 元数据分片 hardlink:生成一个hardlink /B/E,指向文件/A/C 6、curve文件系统的多文件系统的设计 1、设计一个分布式文件系统需要考虑的点: 文件系统的元数据是否全缓存? 元数据持久化在单独的元数据服务器上?在磁盘上?在volume上? inode+dentry方式?当前curve块存储的kv方式? 是否有单独的元数据管理服务器? 2、其他文件系统的调研总结 fs 中心化元数据 内存namespace元数据 stl unordered_map moose,使用c实现 4、curve文件系统的元数据内存组织 curve文件系统元数据主要有3个类型,inode, dentry, 。 extent 4.1 inode定义: inode定义见:curve文件系统元数据proto(代码接口定义,已实现)© XXX Page 5 of 24 typedef uint64_t0 码力 | 24 页 | 204.67 KB | 6 月前3
Curve文件系统空间分配方案Curve文件系统空间分配方案(基于块的方案,已实现)© XXX Page 2 of 11 背景 本地文件系统空间分配相关特性 局部性 延迟分配/Allocate-on-flush Inline file/data 空间分配 整体设计 空间分配流程 特殊情况 空间回收 小文件处理 并发问题 文件系统扩容 接口设计 RPC接口 空间分配器接口 背景 根据 ,文件系统基于当前的块 ,文件系统基于当前的块进行实现,所以需要设计基于块的空间分配器,用于分配并存储文件数据。 CurveFS方案设计(总体设计,只实现了部分) 本地文件系统空间分配相关特性 局部性 尽量分配连续的磁盘空间,存储文件的数据。这一特性主要是针对HDD进行的优化,降低磁盘寻道时间。 延迟分配/Allocate-on-flush 在sync/flush之前,尽可能多的积累更多的文件数据块才进行空间分配,一方面可以提高局部性,另一方面可以降低磁盘碎片。 几百字节的小文件不单独分配磁盘空间,直接把数据存放到文件的元数据中。 针对上述的本地文件系统特性,Curve文件系统分配需要着重考虑 。 局部性 虽然Curve是一个分布式文件系统,但是单个文件系统的容量可能会比较大,如果在空间分配时,不考虑局部性,inode中记录的extent数量很多,导致文件系统元数据量很大。© XXX Page 3 of 11 假如文件系统大小为1PiB,空间分配粒度为1MiB,inode中存储的0 码力 | 11 页 | 159.17 KB | 6 月前3
Curve文件系统元数据Proto(接口定义)XXX Page 1 of 15 curve文件系统元数据proto(代码接口定义,已实现)© XXX Page 2 of 15 1、代码结构和代码目录 curve文件系统是相对于curve块设备比较独立的一块,在当前curve项目的目录下,增加一个一级目录curvefs,curvefs下有自己独立的proto\src\test。 2、文件系统proto定义 2.1 mds.proto0 码力 | 15 页 | 80.33 KB | 6 月前3
深度学习在百度搜索中的工程实践-百度-曹皓0 码力 | 40 页 | 29.46 MB | 1 年前3
Curve文件系统元数据持久化方案设计0 码力 | 12 页 | 384.47 KB | 6 月前3
百度智能云 Apache Doris 文档位操作函数 字符串函数 条件函数 数学函数 JSON解析函数 类型转换函数 格式转换函数 通用函数 时间和日期函数 BITMAP函数 HLL函数 窗口函数 哈希函数 Baidu 百度智能云文档 目录 2 SQL手册 数据类型 TINYINT数据类型 TINYINT数据类型 长度: 长度为1个字节的有符号整型。 范围: [-128, 127] 转换: Doris可以 +------------------------+ +------------------------+ 1 row in set (0.00 sec) 1 row in set (0.00 sec) Baidu 百度智能云文档 SQL手册 3 BIGINT数据类型 BIGINT数据类型 长度: 长度为8个字节的有符号整型。 范围: [-9223372036854775808, 9223372036854775807] +------------------------------------------+ 1 row in set (0.05 sec) 1 row in set (0.05 sec) Baidu 百度智能云文档 SQL手册 4 转换: Doris不会自动将DOUBLE类型转换成其他类型。用户可以使用CAST()将其转换成TINYINT, SMALLINT, INT, BIGINT, STRING0 码力 | 203 页 | 1.75 MB | 1 年前3
百度超级链 XuperChain latest 中文文档交易处理速度:达到9万TPS 1. 默认采用DPOS作为共识算法; 2. 交易处理充分利用计算机多核,支持并发执行; 3. 智能合约通过读写集技术能够支持并发执行; 8. 可信账本 超级链可信账本基于超级链和百度Mesatee技术,实现了合约数据加密存储及 链上密文运算等功能。具备性能高、编程复杂度低等特点。 1. 密文存储:可信账本提供数据加解密功能,用户可将数据加密存储在合约 中。 2. 权限管理 统一称为 隐私 计算 算子。同时可以使用mesatee-core-standalone快速扩展算子,这些基本 运算几乎可以满足用户对任何复杂计算功能的需求。 9. 总结 XuperChain是百度自研的一套区块链解决方案,采用经典的UTXO记账模式, 并且支持丰富的智能合约开发语言,交易处理支持并发执行,拥有完善的账号 与权限体系,采用DPOS作为共识算法,交易处理速度可达到9万TPS。 据流通可以产生巨大的价值,而阻碍数据流通的主要因素就是数据隐私问题。 保护数据安全既是对像百度这样的科技公司的要求,也是行业的底线。 为实现数据流通过程中的隐私保护,超级链可信账本采用了Intel SGX和同态加 密等多种技术,实现了数据隐私计算、数据权限管理和数据存证溯源功能。 19.2. 名词解释 可信账本:基于百度超级链和Mesatee技术,支持合约数据加密存储及链上密 文运算等功能。 TEE0 码力 | 316 页 | 24.51 MB | 1 年前3
百度超级链 XuperChain 3.7 中文文档交易处理速度:达到9万TPS 1. 默认采用DPOS作为共识算法; 2. 交易处理充分利用计算机多核,支持并发执行; 3. 智能合约通过读写集技术能够支持并发执行; 8. 总结 XuperChain是百度自研的一套区块链解决方案,采用经典的UTXO记账模式, 并且支持丰富的智能合约开发语言,交易处理支持并发执行,拥有完善的账号 与权限体系,采用DPOS作为共识算法,交易处理速度可达到9万TPS。 []byte Value() []byte Next() bool Error() error // Iterator 必须在使用完毕后关闭 Close() 2. 智能合约开发详解 2.1. 简介 百度超级链是一个支持多语言合约的区块链框架,有多种语言来供大家选择使 用开发智能合约。目前超级链的智能合约可以使用c++ 或者 go 语言来编写, 理论上任何可以编译成Wasm字节码的语言都可以用来编写超级链的智能合 compileCommands": "${workspaceFolder}/compile_commands.json" } 之后就能用vscode的自动补全功能了. 2.7. 开放网络集成环境 超级链开放网络是基于百度自研底层技术搭建的区块链基础服务网络,符合中 国标准,超级节点遍布全国,区块链网络完全开放,为用户提供区块链快速部 署和运行的环境,最低2元钱就用上的区块链服务,让信任链接更加便利。 超级链开放网0 码力 | 270 页 | 24.86 MB | 1 年前3
百度超级链 XuperChain master 中文文档交易处理速度:达到9万TPS 1. 默认采用DPOS作为共识算法; 2. 交易处理充分利用计算机多核,支持并发执行; 3. 智能合约通过读写集技术能够支持并发执行; 8. 可信账本 超级链可信账本基于超级链和百度Mesatee技术,实现了合约数据加密存储及 链上密文运算等功能。具备性能高、编程复杂度低等特点。 1. 密文存储:可信账本提供数据加解密功能,用户可将数据加密存储在合约 中。 2. 权限管理 统一称为 隐私 计算 算子。同时可以使用mesatee-core-standalone快速扩展算子,这些基本 运算几乎可以满足用户对任何复杂计算功能的需求。 9. 总结 XuperChain是百度自研的一套区块链解决方案,采用经典的UTXO记账模式, 并且支持丰富的智能合约开发语言,交易处理支持并发执行,拥有完善的账号 与权限体系,采用DPOS作为共识算法,交易处理速度可达到9万TPS。 据流通可以产生巨大的价值,而阻碍数据流通的主要因素就是数据隐私问题。 保护数据安全既是对像百度这样的科技公司的要求,也是行业的底线。 为实现数据流通过程中的隐私保护,超级链可信账本采用了Intel SGX和同态加 密等多种技术,实现了数据隐私计算、数据权限管理和数据存证溯源功能。 19.2. 名词解释 可信账本:基于百度超级链和Mesatee技术,支持合约数据加密存储及链上密 文运算等功能。 TEE0 码力 | 316 页 | 24.51 MB | 1 年前3
共 687 条
- 1
- 2
- 3
- 4
- 5
- 6
- 69













