摘要: 众所周知,HDFS中以数据块(block)为单位进行存储管理。本文简单介绍一下HDFS中数据块(block)的概念,以及众多分布式存储系统(不止是HDFS)使用block作为存储管理基本单位的意义。数据块数据块的概念并不陌生,在磁盘中,每个磁盘都有默认的数据块大小,这是磁盘进行数据读/写的最小单位,磁盘块一般为512字节。在分布式文件系统中,数据块一般远大于磁盘块的大小,并且为磁盘块大小的整数倍,例如,HDFS block size默认为64MB。分布式存储系统中选择大block size的主要原因是为了最小化寻址开销,使得磁盘传输数据的时间可以明显大于定位这个块所需的时间。然而,在HDFS中 阅读全文
posted @ 2013-12-03 22:34 YUKI小糖 阅读(6341) 评论(4) 推荐(1) 编辑
摘要: 刚刚写这篇文章之前看了下上一篇博客的时间:2013年7月19日。居然已经过了3个月了!好快!感叹时间的同时不由的又感叹了下自己的懒惰,其实仔细想想,这段时间自己也做了很多事情:完成了一篇副本同步相关的专利撰写参与朋友创业项目的初期开发实现了一个比较粗糙的Swift监控平台Erasure Code相关内容的学习、论文阅读,主要是用在分布式存储领域只不过事情多了就有些嘈杂,没有静下心来深入的思考、整理。好啦,反思到此,接下来有时间好好整理。进入正题,也就是最近的工作内容:Erasure Code在存储系统中数据备份的应用。===================================进入E 阅读全文
posted @ 2013-10-12 20:39 YUKI小糖 阅读(10004) 评论(6) 推荐(0) 编辑
摘要: 如果你目的很明确就是冲着标题来的,不爱看我唠叨,请直接进入第二个分割线之后的内容。其实之前就是有做Swift监控平台的打算的,但是因为没什么硬性需求么,也不要紧的,就一直搁置了。最近实验室来了个大二升大三的小MM体验生活,老大就让我们带着她一起做这个东西,主要好处就是可以多学些实用的技术,了解云存储的基本架构,同时也不需要深入细节,难以理解。好吧,我就是个爱说废话和铺陈的妞,这样才体现“原创”不是?O(∩_∩)O哈哈~ 进入正题。。。================================被38°杭州烤化掉的分割线=============================== 阅读全文
posted @ 2013-07-19 18:13 YUKI小糖 阅读(17623) 评论(1) 推荐(2) 编辑
摘要: 说起较大型系统的源码阅读,算上目前正在进行的Swift,也就只有两次经验(去年的上半年有阅读过学习过Openfire的源码)。虽说还是菜鸟级别啦,但两次也可以总结经验嘛:P,哈哈~我的这个经验呢,就是对于这种服务器端的源码,最好首先对系统的“启动过程”和请求到来时的“data flow”进行一遍跟踪阅读,了解程序的运作流程以及各个关键类、方法之间的关系,然后再从这条主线进行各个分叉流程的细致学习。这种方式一来目的性比较强,代码比较容易看得下去,二来不会有越看越茫然的感觉,总体上是逐渐清晰了解细节的过程。好啦,废话说完咯,进入正题。这两周开始了swift源码(swift 1.8.0)的学习,首先 阅读全文
posted @ 2013-06-05 21:47 YUKI小糖 阅读(2116) 评论(8) 推荐(0) 编辑
摘要: 作为一个没有系统学习过python,却要与之日日相对看源码的人,真尼玛痛苦啊。。。经常看到**kws之类的,心中狂虐:这啥?指针的指针?!T^T昨天看《Python核心编程》的时候,刚好看到了函数部分,于是顺势将目前接触到的集中参数类型都总结一下吧^^总的来说,除去普通的normal args,python中比较特别的函数参数有:关键字参数、默认参数、非关键字可变长参数(元组)、关键字可变长参数(字典),下面将结合例子进行介绍。关键字参数:调用时指定参数的名称,且与函数声明时的参数名称一致。使用关键字参数允许函数调用时参数的顺序与声明时不一致,仅根据参数的指定进行赋值。例:# 函数定义def 阅读全文
posted @ 2013-05-28 11:48 YUKI小糖 阅读(20548) 评论(3) 推荐(4) 编辑
摘要: 在Swift 1.8.0(Grizzly)的新特性中有这么一条:Added support for a region tier above zones,即swift可以允许开发者将zones组织成一个组进行管理了,这个组就是region。这两天在看Swift G版Ring部分的源码的时候,也发现device字典中增加了region属性,因此决定仔细的理解一下这个层次概念。首先推荐两篇文章,我对region的理解从这两篇文章中获益颇多:第一篇是Swift的重要贡献者、region特性的贡献者SwiftStack的文章:A Globally Distributed OpenStack Swift 阅读全文
posted @ 2013-05-20 16:09 YUKI小糖 阅读(1067) 评论(0) 推荐(0) 编辑
摘要: 对siwft有些了解的人都知道,Ring是swift中非常核心的组件,它决定着数据如何在集群中分布。Swift根据设置的partition_power决定集群中的分区数量(2的partition_power次方),并根据一致性哈希算法将分区分配到不同的node上,并将数据分布到对应的分区上。因此,构建Ring就成为swift初始化必须经历的过程。简单说来:新的Ring创建的过程:ring-builder根据device weight计算出每个设备上应该被分配的分区的数量。(2的partition_power次方得到分区总数,再根据weight和设备数进行分配)ring-builder将每个分区 阅读全文
posted @ 2013-05-10 18:55 YUKI小糖 阅读(5490) 评论(10) 推荐(0) 编辑
摘要: JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现,最新的版本是2.9,大家可以到官网下载源代码和查看相关文档。之前本科的时候,SQA课程作业中我们组使用过2.4版本,这次更新了2.9感觉最直观的就是界面上有了小的更改,增加了清除、启动等按钮。关于使用JMeter进行JDBC数据库测试、HTTP请求接口测试、结合Badboy录制功能进行网站性能测试等内容,网上的资料比较丰富,这里就暂时不做介绍了。更实用和灵活的场景,是实用我们自己编写的jar包进行测试,这也就是“Java请求”方式的测试。这里主要记录一下我在学习这种测试方式时遇到的一些问题,和总 阅读全文
posted @ 2013-04-20 19:49 YUKI小糖 阅读(19473) 评论(4) 推荐(6) 编辑
摘要: Haystack是Facebook的海量图片存储系统,论文《Finding a needle in Haystack: Facebook’s photo storage》发表于OSDI 2010上的一篇文章。这个学期准备认认真真的看一些经典的存储系统的文章,这周就是Haystack。整体来说,Haystack给我最深的印象就是:简单、有效。不适用拗口的术语、复杂的理论,整个系统基于一个明确的目标:降低每个图片所需的元数据,进而使元数据可以完全访问内存,从而减少甚至避免获取图片元数据时的磁盘访问,提高对long tail(长尾)图片访问的速度。存储场景作为一个专用的存储系统,我们首先必须清晰的定 阅读全文
posted @ 2013-03-29 11:50 YUKI小糖 阅读(4665) 评论(7) 推荐(3) 编辑
摘要: 在看Dev Guide的时候,有一些关于请求参数的约束内容,但分布的比较零散。今天早上整理了一下,并做了验证,现在PO出来。1)account、object、container的自定义元数据约束每次请求:自定义的X-Account/Object/Container-Meta-*的条目数量 <= 90 个;每次请求:自定义的X-Account/Object/Container-Meta-*的每个value,经过UTF-8的URL-Encoded之后的字节 <= 256(一个汉字算3个字节);每次请求:自定义的X-Account/Object/Container-Meta-*的所有&l 阅读全文
posted @ 2013-03-28 15:45 YUKI小糖 阅读(821) 评论(0) 推荐(0) 编辑