百度文件系统BFS v0.5.0 发布

标签: geek | 发表时间:2016-12-30 08:00 | 作者:
出处:http://itindex.net/admin/pagedetail

The Baidu File System

Build Status Build Status

The Baidu File System (BFS) is a distributed file system designed to support real-time applications. Like many other distributed file systems, BFS is highly fault-tolerant. But different from others, BFS provides low read/write latency while maintaining high throughput rates. Together with Galaxyand Tera, BFS supports many real-time products in Baidu, including Baidu webpage database, Baidu incremental indexing system, Baidu user behavior analysis system, etc.

Features

  1. Continuous availability
    • Nameserver is implemented as a raft group, no single point failure.
  2. High throughput
    • High performance data engine to maximize IO utils.
  3. Low latency
    • Global load balance and slow node detection.
  4. Linear scalability
    • Support multi data center deployment and up to 10,000 data nodes.

Architecture

架构图

Quick Start

Build

  ./build.sh

Standalone BFS

  cd sandbox
./deploy.sh
./start_bfs.sh

How to Contribute

  1. Please read the RoadMapor source code.
  2. Find something you are interested in and start working on it.
  3. Test your code by simply running make testand make check.
  4. Make a pull request.
  5. Once your code has passed the code-review and merged, it will be run on thousands of servers :)

Contact us

[email protected]

百度文件系统

百度的核心业务和数据库系统都依赖分布式文件系统作为底层存储,文件系统的可用性和性能对上层搜索业务的稳定性与效果有着至关重要的影响。现有的分布式文件系统(如HDFS等)是为离线批处理设计的,无法在保证高吞吐的情况下做到低延迟和持续可用,所以我们从搜索的业务特点出发,设计了百度文件系统。

核心特点

  1. 持续可用
    • 数据多机房、多地域冗余,元数据通过Raft维护一致性,单个机房宕机,不影响整体可用性。
  2. 高吞吐
    • 通过高性能的单机引擎,最大化存储介质IO吞吐;
  3. 低延时
    • 全局负载均衡、慢节点自动规避
  4. 水平扩展
    • 设计支持两地三机房,1万+台机器管理。

架构

架构图

快速试用

构建

  ./build.sh

单机版BFS

  cd sandbox
./deploy.sh
./start_bfs.sh

如何参与开发

  1. 阅读 RoadMap文件或者源代码,了解我们当前的开发方向
  2. 找到自己感兴趣开发的的功能或模块
  3. 进行开发,开发完成后自测功能是否正确,并运行make test及make check检查是否可以通过已有的测试case
  4. 发起pull request
  5. 在code-review通过后,你的代码便有机会运行在百度的数万台服务器上~

联系我们

邮件: [email protected]
QQ群:188471131

相关 [百度 文件系统 bfs] 推荐:

百度文件系统BFS v0.5.0 发布

- - IT瘾-geek
Together with Galaxyand Tera, BFS supports many real-time products in Baidu, including Baidu webpage database, Baidu incremental indexing system, Baidu user behavior analysis system, etc..

Ext文件系统

- Haides - 博客园-首页原创精华区
  虽然从Ext2到Ext4,找数据的方式发生了变化,但是,磁盘的布局还是非常相似的. 其实这个东西也不需要变化,因为现在也没什么特别巧妙的方式,而且磁盘的吞吐量、效率的瓶颈也不在这里. 当然,这里排除那些根据自身文件特点设计的数据库,毕竟还是为了支持通用文件.   Boot在第一个块,放的应该是引导程序,超级块就放在了第二个块上,如果不是可以在mount的时候通过参数sb来设置.

北京森林工作室汉语句义结构标注语料库(BFS-CTC)共享资源

- - 我爱自然语言处理
句义结构分析是汉语语义分析中不可逾越的重要环节,为了满足汉语句义结构分析的需要,北京森林工作室(BFS)基于现代汉语语义学理论构建了一种层次化的汉语句义结构模型,定义了标注规范和标记形式,建设了一个汉语句义结构标注语料库BFS-CTC(Beijing Forest Studio – Chinese Tagged Corpus).

你的下一个文件系统——Btrfs

- frocket - K.I.S.S. - 简单哲学
提起 Btrfs ,相信广大折腾帝们都不会陌生,被誉为“下一代 Linux 文件系统”的它,具有扩展性好、支持数据校验、支持多设备管理等等强大特性,使得 Ext4 也只能成为悲剧的过渡产品,还不赶快找一个 Ubuntu 10.10、Fedora 15、Meego 什么的试一下. 支持什么多设备、什么数据校验跟你有一毛钱关系啊.

NFS 文件系统源代码剖析

- wuyan - IBM developerWorks 中国 : 文档库
NFS 文件系统是目前最为成功的网络文件系统,在文件共享领域有着出色的表现,特别是 pNFS 的出现,使得 NFS 文件系统在性能和规模上有了大幅提升,为其带了更为广阔的应用空间. 同时,NFS 之所以备受关注,还在于它在 NAS 存储领域的关键作用. 本文剖析了 NFSv3 文件系统源代码,使开发工程师,技术支持人员,特别是存储领域从业人员对 NFS 有更为深刻的认识.

文件系统文献推荐

- Lianhui Wang - 刘爱贵的专栏
非常好的文件系统阅读文献,研究存储和文件系统的不能不读的,其中的每一个文件系统都非常经典的,代表存储或者文件系统发展过程的里程碑.

Fedora 16默认文件系统为Btrfs

- rIPPER - Solidot
51开源社区 写道 "在6月8日举行的Fedora工程指导委员会会议上,委员会决定Fedora 16 将以Btrfs作为默认文件系统. Btrfs,是Oracle于2007年宣布并进行中的copy-on-write文件系统. 目标是取代Linux目前各大发行版的ext4文件系统,改善ext4的限制,特别是单个文件的大小,总文件系统大小或文件检查.

linux下的文件系统选型

- Michael - shell's home
    贝壳原来一直认为文件系统可以随便选,结果最近吃了两次苦头. 一个是btrfs对虚拟机支持不良,另一个是特定情况下xfs性能比ext3高20倍. 痛定思痛,打算列一下文件系统选型的方法和依据,欢迎拍砖.     下面我列一下纳入参考的文件系统,当然,ntfs就不要出来搞基了,玩嵌入式/光盘live之类的朋友也不要来凑热闹了阿.

Linux 下的文件系统选型

- 桔子 - python.cn(jobs, news)
贝壳原来一直认为文件系统可以随便选,结果最近吃了两次苦头. 一个是btrfs对虚拟机支持不良,另一个是特定情况下xfs性能比ext3高20倍. 痛定思痛,打算列一下文件系统选型的方法和依据,欢迎拍砖. 下面我列一下纳入参考的文件系统,当然,ntfs就不要出来搞基了,玩嵌入式/光盘live之类的朋友也不要来凑热闹了阿.

Linux的proc文件系统详解

- - 博客园_iTech's Blog
Linux系统上的/proc目录是一种文件系统,即proc文件系统. 与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态.