03 2013 档案
摘要:Haystack是Facebook的海量图片存储系统,论文《Finding a needle in Haystack: Facebook’s photo storage》发表于OSDI 2010上的一篇文章。这个学期准备认认真真的看一些经典的存储系统的文章,这周就是Haystack。整体来说,Haystack给我最深的印象就是:简单、有效。不适用拗口的术语、复杂的理论,整个系统基于一个明确的目标:降低每个图片所需的元数据,进而使元数据可以完全访问内存,从而减少甚至避免获取图片元数据时的磁盘访问,提高对long tail(长尾)图片访问的速度。存储场景作为一个专用的存储系统,我们首先必须清晰的定
阅读全文
摘要:在看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
阅读全文
摘要:本文翻译整理自swift官方文档《OpenStack Object Storage Administration Manual》中的“Managing Large Objects (Greater than 5 GB)”一节,并实测,验证文档中的内容。点这里可以看到在线文档。默认情况中,Swfit上传的最大单个对象的大小为5GB。然而,对于下载对象的大小却是没有限制的,这种“下载无限制”的概念是通过将分段对象组织起来模拟实现的。大对象的每个分段被分别上传,然后再创建一个清单文件(manifest file)指明这个对象所包含的分段,下载时,清单所指示所有分段会被组织成一个单独的对象进行下载。这
阅读全文
摘要:网易学习计划啊,都不带添加文字的么!限制我字数,还不告诉我是哪段超过了!!进入正题...每个流行的云存储系统都有自己的侧重点可选的架构很多,关键是要针对特定的应用场景系统规模大小业务类型与压力实时 / 非实时大文件 / 中等文件 / 小文件连续读写 / 随机读写吞吐率 / 低延迟强一致性 / 弱一致性性能 & 可靠性扩展性 & 单节点问题是否要求目录结构可配置 & 快速部署大数据离线/在线分析电子商务社交网络网络硬盘邮件服务图片服务语音视频服务虚拟机调度与镜像存储开放云存储平台离线型数据分析系统数据总量大,单个文件大,更注重系统吞吐率,而非低延迟。为适应流行的MapRe
阅读全文
摘要:OK啦,这是最后一篇,其实从原官方文档的组织上,该小节是3.3——container之后,object之前,为了API整体思路的连贯性,我自己擅作主张放到了最后一部分。这章是我觉得swift中比较有趣的一章,可以直接将swift配置成静态站点,作为数据下载站,直接解决了静态站点数据备份的问题。于是,让我们愉快的继续吧 =D3.3. 创建静态站点(Create Static Website)你可以使用swift账户在互联网上创建一个静态站点。这种模式通常是匿名请求的,如果你希望在这种模式下使用认证请求,则需要在请求头中将 X-Web-Mode 设置为 TRUE。过滤器 staticweb 也应该
阅读全文
摘要:这篇本来是想好好写的,今天看了一天了的,可是,组会好像有种要悲剧的感觉啊。。暴风雨前的宁静,尽量记录一些吧。上周把爬虫代码优化后,就哈皮哈皮的和未优化的版本一起跑了。起初,由于未优化的版本已经run了几天了,内存占用在200M多,而发现优化后的内存占用只有40M,所以很开心。但是不久就发现,优化后的版本,内存占用也会慢慢增加,大有一种“老娘给你分多少,你就要用多少”的赶脚。用jprofiler监控,自己开发的类的对象数量都比较正常,所以决定学习一下JVM内存管理相关的东西。JVM主要管理两种类型的内存:堆(Heap)和非堆。按照官方的说法:“Java虚拟机具有一个堆,堆是运行时数据区域,所有类
阅读全文
摘要:3.4. 对象存储服务(Storage Object Services)一个对象(Object)是存储在系统中的一个文件数据和这个文件的元数据。通过ReST接口,我们可以使用HTTP的自定义headers来包含对象的元数据、HTTP的消息体(body)来包含数据实际的有效荷载。对象的大小不能超过5GB,且对象的名字在经过URL编码后不能超过1024个字节。然而,对于大于5GB的对象,我们可以将其分段,然后再将对象片段串联起来,这样就可以实现分段上传5GB以内的对象,并在下载时下载一个大于5GB的串联对象了。你可以直接使用HTTP请求来处理分段并管理好分段之间的组合关系。3.4.1. 获取对象在
阅读全文
摘要:3.2. Container存储服务(Storage Container Services)本节阐述了container上可以执行的ReST操作。所有的操作都是有效的HTTP请求,并被组织成以下格式: 例3.16. Container存储的HTTP请求:基本结构METHOD /v1/<account>/<container> HTTP/1.13.2.1. 获取对象列表对一个container的名称执行GET操作将会获取存储在这个容器中的objects列表。此外,这里有一些可选的查询参数用于进一步细化查询结果。一个不包含任何查询参数的的请求将会返回存储在这个容器中的所有对
阅读全文
摘要:在上一篇中,翻译介绍了Swift官方文档的第2部分API基本信息,本篇来完成最主要的存储服务的API操作部分。那么,现在就让我们开始吧=D3. 存储服务的API操作(API Operations for Storage Services)3.1. Account存储服务(Storage Account Services) 3.1.1. 获取容器列表(List Containers) 3.1.2. 获取账号元数据(Retrieve Account Metadata) 3.1.3. 创建/更新账号元数据(Create/Update Account Metadata) 3...
阅读全文
摘要:关于开源代码的学习,主要就只接触过XMPP服务端实现Openfire和现在的Swift了。想想这段时间对swift学习的停滞感,越来越觉得“如果想要学习一个东西的原理,首先要会使用它”,这会在一定程度上增加对功能处理流程的理解,并在源码阅读时产生共鸣。对于swift API的学习,由于之前一直没有找到比较系统的资料,官方文档主页上也没有相关的链接,所以都是对照着swift-python-client的curl命令自己进行整理,这几天突然发现swift官方文档主页上增加了Swift’s API docs链接!内容非常的全,以前真没见到过哎,可能藏的太深,哈哈哈,PDF请点击这里下载。在文档的1.
阅读全文

浙公网安备 33010602011771号