从百度文件系统看大型分布式系统设计中的定式与创新# 从百度文件系统 看大型分布式系统设计 颜世光 百度 搜索基础架构 ## 促进软件开发领域知识与创新的传播  关注InfoQ官方信息 及时获取QCon软件开发者 大会演讲视频信息 、集群调度系统(Galaxy)、分布式协调服务(Nexus)是核心服务 • 实时任务与批量任务混合部署  Machine 1  - 背景 - 本地文件系统空间分配相关特性 - 局部性 - 延迟分配/Allocate-on-flush - Inline file/data - 空间分配 - 整体设计 - 空间分配流程 - 特殊情况 - 空间回收 - 小文件处理 - 并发问题 - 文件系统扩容 - 接口设计 接口设计 - RPC接口 - 空间分配器接口 ## 背景 根据CurveFS方案设计(总体设计,只实现了部分),文件系统基于当前的块进行实现,所以需要设计基于块的空间分配器,用于分配并存储文件数据。 ## 本地文件系统空间分配相关特性 局部性 尽量分配连续的磁盘空间,存储文件的数据。这一特性主要是针对HDD进行的优化,降低磁盘寻道时间。 延迟分配/Allocate-on-flush 几百字节的小文件不单独分配磁盘空间,直接把数据存放到文件的元数据中。 针对上述的本地文件系统特性,Curve文件系统分配需要着重考虑局部性。 虽然Curve是一个分布式文件系统,但是单个文件系统的容量可能会比较大,如果在空间分配时,不考虑局部性,inode中记录的extent数量很多,导致文件系统元数据量很大。 假如文件系统大小为1PiB,空间分配粒度为1MiB,inode中存储的extent为三元组0 码力 | 11 页 | 159.17 KB | 1 年前3
Curve文件系统元数据管理Curve文件系统元数据管理(已实现) Inode 1、设计一个分布式文件系统需要考虑的点: • 2、其他文件系统的调研总结 • 3、各内存结构体 • 4、curve文件系统的元数据内存组织 • 4.1 inode定义: • 4.2 dentry的定义: • 4.3 内存组织 5元数据分片 • 5.1 分片方式一:inode和dentry都按照parentid分片 5.1 /B/E,指向文件/A/C • 6、curve文件系统的多文件系统的设计 ## 1、 设计一个分布式文件系统需要考虑的点: 1. 文件系统的元数据是否全缓存? 2. 元数据持久化在单独的元数据服务器上?在磁盘上?在volume上? 3. inode+dentry方式?当前curve块存储的kv方式? 4. 是否有单独的元数据管理服务器? ## 2、 其他文件系统的调研总结 |fs|中心化元数据|内存 ++ stl unordered\_mapmoose, 使用c实现| |||||| ## 4、 curve文件系统的元数据内存组织 curve文件系统元数据主要有3个类型,inode,dentry,extent。 ### 4.1 inode定义: inode定义见:curve文件系统元数据proto(代码接口定义,已实现) typedef uint64_t InodeId; enum FileType0 码力 | 24 页 | 204.67 KB | 1 年前3
Curve文件系统元数据Proto(接口定义)curve文件系统元数据proto(代码接口定义,已实现) ## 1、 代码结构和代码目录 curve文件系统是相对于curve块设备比较独立的一块,在当前curve项目的目录下,增加一个一级目录curvefs,curvefs下有自己独立的proto\src\test。  ## 2、 文件系统proto定义 #### 2.1 mds.proto mds.proto /* * Copyright (c) 2020 NetEase Inc. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use0 码力 | 15 页 | 80.33 KB | 1 年前3
深度学习在百度搜索中的工程实践-百度-曹皓## 深度学习在百度搜索中的工程实践 曹皓 百度资深研发工程师 # TGO鲲鹏会 # 汇聚全球科技领导者的高端社群 全球12大城市 850+高端科技领导者 使命 Mission 为社会输送更多优秀的 科技领导者 ## 愿景 Vision 构建全球领先的有技术背景 优秀人才的学习成长平台  ## 自我介绍 • 百度-核心搜索部-资深研发工程师 • 2012年硕士毕业于北京大学,同年加入百度 - 目前负责百度搜索调研架构相关研发工作  ## 目录 ➢ 搜索中的深度学习 ➢ 深度学习应用中的工程难点 ➢ 总结 ## 目录 搜索系统简介 搜索中的深度学习 深度学习应用中的工程难点 总结 ## 智能进化中的百度一下 24°海淀35优  搜索或输入网址0 码力 | 40 页 | 29.46 MB | 2 年前3
Curve文件系统元数据持久化方案设计0 码力 | 12 页 | 384.47 KB | 1 年前3
百度智能云 Apache Doris 文档不会被执行成功。 ### 5. 性能问题 不见使用 VALUES 方式进行单行的插入。如果必须这样使用,请将多行数据合并到一个 INSERT 语句中进行批量提交。 ROUTINE-LOAD ## Baidu 百度智能云文档 例行导入(Routine Load)功能,支持用户提交一个常驻的导入任务,通过不断的从指定的数据源读取数据,将数据导入到Doris中。 目前仅支持通过无认证或者 SSL 认证方式,从 1.10| |---|---|---|---| 1 row in set (0.05 sec) - FileNumber:最终生成的文件个数。 • TotalRows:结果集行数。 Baidu 百度智能云文档 • FileSize:导出文件总大小。单位字节。 - URL:如果是导出到本地磁盘,则这里显示具体导出到哪个 Compute Node。 如果执行错误,则会返回错误信息,如: mysql> 临时目录,以及已经生成的文件不会被删除,需要用户手动删除。 - 如果 Export 作业运行成功,在远端存储中产生的 _doris_export_tmp_xxx 目录,根据远端存储的文件系统语义,可能会保留,也可能会被清除。比如在百度对象存储(BOS)中,通过 rename 操作将一个目录中的最后一个文件移走后,该目录也会被删除。如果该目录没有被清除,用户可以手动清除。 - Export 作业只会导出 Base0 码力 | 203 页 | 1.75 MB | 2 年前3
百度超级链 XuperChain latest 中文文档交易处理速度:达到9万TPS 1. 默认采用DPOS作为共识算法; 2. 交易处理充分利用计算机多核,支持并发执行; 3. 智能合约通过读写集技术能够支持并发执行; ### 8. 可信账本 超级链可信账本基于超级链和百度Mesatee技术,实现了合约数据加密存储及链上密文运算等功能。具备性能高、编程复杂度低等特点。 1. 密文存储:可信账本提供数据加解密功能,用户可将数据加密存储在合约中。 3. 基本运算:支持 andalone快速扩展算子,这些基本运算几乎可以满足用户对任何复杂计算功能的需求。 2. 权限管理:支持数据拥有者对数据所属权和使用权的细粒度管理。 ### 9. 总结 XuperChain是百度自研的一套区块链解决方案,采用经典的UTXO记账模式,并且支持丰富的智能合约开发语言,交易处理支持并发执行,拥有完善的账号与权限体系,采用DPOS作为共识算法,交易处理速度可达到9万TPS。 本章节 生巨大的价值,而阻碍数据流通的主要因素就是数据隐私问题。保护数据安全既是对像百度这样的科技公司的要求,也是行业的底线。 为实现数据流通过程中的隐私保护,超级链可信账本采用了Intel SGX和同态加密等多种技术,实现了数据隐私计算、数据权限管理和数据存证溯源功能。 #### 19.2. 名词解释 可信账本:基于百度超级链和Mesatee技术,支持合约数据加密存储及链上密文运算等功能。 TE0 码力 | 316 页 | 24.51 MB | 2 年前3
百度超级链 XuperChain 3.7 中文文档交易处理速度:达到9万TPS 1. 默认采用DPOS作为共识算法; 2. 交易处理充分利用计算机多核,支持并发执行; 3. 智能合约通过读写集技术能够支持并发执行; ### 8. 总结 XuperChain是百度自研的一套区块链解决方案,采用经典的UTXO记账模式,并且支持丰富的智能合约开发语言,交易处理支持并发执行,拥有完善的账号与权限体系,采用DPOS作为共识算法,交易处理速度可达到9万TPS。 本章节 3 Next() bool 4 Error() error 5 // Iterator 必须在使用完毕后关闭 6 Close() ### 2. 智能合约开发详解 #### 2.1. 简介 百度超级链是一个支持多语言合约的区块链框架,有多种语言来供大家选择使用开发智能合约。目前超级链的智能合约可以使用C++或者Go语言来编写,理论上任何可以编译成Wasm字节码的语言都可以用来编写超级链的智 "${workspaceFolder}/compile_commands.json" } 之后就能用vscode的自动补全功能了. #### 2.7. 开放网络集成环境 超级链开放网络是基于百度自研底层技术搭建的区块链基础服务网络,符合中国标准,超级节点遍布全国,区块链网络完全开放,为用户提供区块链快速部署和运行的环境,最低2元钱就用上的区块链服务,让信任链接更加便利。 超级链开放网络为0 码力 | 270 页 | 24.86 MB | 2 年前3
百度超级链 XuperChain master 中文文档交易处理速度:达到9万TPS 1. 默认采用DPOS作为共识算法; 2. 交易处理充分利用计算机多核,支持并发执行; 3. 智能合约通过读写集技术能够支持并发执行; ### 8. 可信账本 超级链可信账本基于超级链和百度Mesatee技术,实现了合约数据加密存储及链上密文运算等功能。具备性能高、编程复杂度低等特点。 1. 密文存储:可信账本提供数据加解密功能,用户可将数据加密存储在合约中。 3. 基本运算:支持 andalone快速扩展算子,这些基本运算几乎可以满足用户对任何复杂计算功能的需求。 2. 权限管理:支持数据拥有者对数据所属权和使用权的细粒度管理。 ### 9. 总结 XuperChain是百度自研的一套区块链解决方案,采用经典的UTXO记账模式,并且支持丰富的智能合约开发语言,交易处理支持并发执行,拥有完善的账号与权限体系,采用DPOS作为共识算法,交易处理速度可达到9万TPS。 本章节 生巨大的价值,而阻碍数据流通的主要因素就是数据隐私问题。保护数据安全既是对像百度这样的科技公司的要求,也是行业的底线。 为实现数据流通过程中的隐私保护,超级链可信账本采用了Intel SGX和同态加密等多种技术,实现了数据隐私计算、数据权限管理和数据存证溯源功能。 #### 19.2. 名词解释 可信账本:基于百度超级链和Mesatee技术,支持合约数据加密存储及链上密文运算等功能。 TE0 码力 | 316 页 | 24.51 MB | 2 年前3
共 675 条
- 1
- 2
- 3
- 4
- 5
- 6
- 68













