摘要:
TFS客户端是用户访问TFS的入口,目前TFS已支持C/C++、java、php、python等语言的客户端,本文主要分析C++客户端的实现逻辑。
TfsClient类是提供给tfs客户的原生C++接口类,其依赖TfsClientImpl代理负责具体实现,另外,在TfsClient上又封装了一套C客户端接口。
TfsSession类负责处理与nameserver相关的工作,包括获取block信息,... 阅读全文
posted @ 2013-04-19 14:13
ydzhang
阅读(821)
评论(0)
推荐(0)
摘要:
TFS主要用于小文件存储,其将多个小文件存储在大的block中,并为这些小文件建立in-block索引,优化了文件的存储空间和寻址过程。TFS为了保证用户数据的安全性,为每个block在不同的数据服务器(dataserver,ds)上创建多个副本,另外,TFS还支持多集群数据同步。 TFS提供给用户使用的基本接口类似于vfs提供的文件系统,主要包括open、read/write、close、ls... 阅读全文
posted @ 2013-04-19 14:13
ydzhang
阅读(474)
评论(0)
推荐(0)
摘要:
TFS数据服务器(DS)通过在物理块的头部存放一个BlockPrefix结构来记录逻辑块与物理块的对应关系,在DS时,会读取每一个已经使用的block,并读取block头部的信息,汇报给NS,NS通过这些信息建立逻辑块到DS的映射关系。最初,TFS使用300G的小盘,按照每个主块64M,每个扩展块2M计算,物理块的总数接近1500个,即使这些块全部使用全部使用了(正常状态下扩展块的利用率不会太高)... 阅读全文
posted @ 2013-04-19 14:13
ydzhang
阅读(252)
评论(0)
推荐(0)
摘要:
当你的系统发布时,你需要告诉用户如何去使用,通常你会写一份示例代码放在文档中,让用户能通过这个例子快速知道该如何使用,这个实例代码对用户会有多大影响呢? TFS是淘宝的分布式文件系统,主要用于小对象的存储(如图片、交易快照等),在TFS的开源wiki上,也有一个简单的实例。具体的说,TFS客户端提供了基本的open、read、write、close接口,用户在读写前,需要先根据对应的模式open... 阅读全文
posted @ 2013-04-19 14:13
ydzhang
阅读(259)
评论(0)
推荐(0)
摘要:
昨日线上一台机器上的nginx rt飙高,@明俨 调查发现这台机器上的metaserver内存占用很高,同时还有个奇怪的现象,df发现/home的空间占用在增长飞快,但metaserver和nginx的日志文件增长都很慢,通过du -sh /home统计home下文件的总大小,发现跟df命令/home占用的空间小10+g,到底谁占用了我的磁盘空间? 后来把nginx进程都停掉后(当时应该先通过ls... 阅读全文
posted @ 2013-04-19 14:13
ydzhang
阅读(3954)
评论(0)
推荐(0)
摘要:
配置参数 在工程实践中,我们通常把一些需要测量才能确定最佳取值的参数以可配置的形式处理,但实际上大部分的参数可能只是一个可行值,而不是一个最佳值。 1. DS与NS之间的心跳间隔设置:NS通过心跳来确定DS的状态,心跳间隔太短,NS容易出现误判,有时短暂的网络断开也会被NS认定为DS宕机;而心跳间隔过长,NS就不能及时发现宕机的DS,导致的问题是,NS复制丢失block的时间点会被延迟,影响系... 阅读全文
posted @ 2013-04-19 14:13
ydzhang
阅读(553)
评论(1)
推荐(0)
摘要:
系统架构师大会分享 View more presentations or Upload your own. 管理员在2009年8月13日编辑了该文章文章。 --> --> 阅读全文
posted @ 2013-04-19 14:13
ydzhang
阅读(121)
评论(0)
推荐(0)
摘要:
英文原文:http://www.theserverside.com/tip/A-return-to-Good-Code 中文译文:http://www.aqee.net/a-return-to-good-code/ 文章作者认为,函数应该是单出口的,即只在结束时return;读书期间,我写代码的风格是多return的,使代码尽量简短。在百度和淘宝工作期间,我们的代码规范都是要求函数单出口,刚开始写... 阅读全文
posted @ 2013-04-19 14:13
ydzhang
阅读(1143)
评论(0)
推荐(0)
摘要:
Jerasure库提供Reed-Solomon和Cauchy Reed-Solomon两种编码算法的实现. Reed-Solomon编解码接口 1. 编码矩阵生成 // generate matrix, last m rows matrix = talloc(int, m*k); for (i = 0; i < m; i++) { for (j = 0; j < k... 阅读全文
posted @ 2013-04-19 14:13
ydzhang
阅读(715)
评论(0)
推荐(0)
摘要:
上周末ADC,@明俨 主持TFS开源主题的讨论,居然有TFS外部用户到现场咨询使用过程中的问题,感觉这些小公司维护大系统挺不容易的,尤其是在对内部实现不清楚的情况下。期间有人分享自己公司的做法,存文件的时候,存到多个server上,然后把文件跟server的对应关系记录到文档(不能丢,方便查找),当出现异常时,人工介入拷贝文件以增加文件副本数,然后更新文件跟server的对应关系;做法看起来很土,... 阅读全文
posted @ 2013-04-19 14:13
ydzhang
阅读(267)
评论(0)
推荐(0)
浙公网安备 33010602011771号