10 2015 档案
摘要:1 前言 在tfs集群服务里,nameserver采用HA架构:由heart agent维护着的nameserver的vip,对于客户端和数据节点来说,会直接和nameserver的vip沟通,所以至于后台有多少个nameserver和具体由那个nameserver提供服务是透明的。 另外names
阅读全文
摘要:通常在下面两种情况下,会发生数据复制操作:1 由于节点故障导致该节点上的block数据均丢失 ;2有新增加的节点时,由于新旧节点上的磁盘利用率不平衡时。1 节点故障 在tfs里面,nameserver会启动心跳线程,定期扫描所有logicblock的状态信息(数据副本版本一致性、副本个数、磁盘...
阅读全文
摘要:1. 前言 分布式文件存储系统其作用主要有两个:其一存储海量的文档、图片、视频等blob类数据,其二作为分布式表格系统的持久化层,如 HDFS于HBase。流行的分布式文件存储系统有很多,如google的GFS、及其开源的实现版本HDFS和Facebook的Haystack等等。既然是分布式,肯定有
阅读全文
摘要:1. 前言 网络通讯框架是业务服务平台高效、稳定运行的基础。而在今天盛行的分布式存储与计算集群里,高效、可靠的网络通讯框架更是保证各个集群节点间进行数据同步与消息沟通的重要基石。不同的语言均有许多开源网络框架,而流行的开源网络框架有libevent、netty等,下文通过简单分析taobao-tfs
阅读全文
摘要:1 前言 一个后台实时处理的业务平台,通常我们会根据数据的输入与输出,依据时间轴进行分解成不同阶段或不同粒度的逻辑任务,而每一个待处理的数据我们称为任务或者消息。任务之间的关系可以分为两类:a 上下游父子关系,b 可以并行运行的兄弟关系。具有上下游关系的任务集合具有逻辑或数据依赖关系,即上游任务...
阅读全文
摘要:0 前言 阻塞队列在生产业务的很多场景里,都有使用的需要。例如:在数据流式处理服务中,我们需要异步的执行上游逻辑a与下游逻辑b;在rpc网络通讯框架场景中,我们需要解耦网络读写线程与消息处理线程。总之, 阻塞队列是在不同职责的线程之间进行数据沟通的桥梁。在jdk里面有现成的BlockingQue...
阅读全文
摘要:0 前言 在rpc或分布式节点间的通讯框架里面,我们经常会有“业务数据与二进制流数据之间进行编码或解码转换”的场景要求,在jdk的nio框架里面有既有的ByteBuffer类满足此需求,那么在c++里面,同样我们简单看看,一个具有类似功能的类DataBuffer。1 实现机制 其实现机制:通过指...
阅读全文
浙公网安备 33010602011771号