摘要: 本文翻译整理自swift官方文档《OpenStack Object Storage Administration Manual》中的“Managing Large Objects (Greater than 5 GB)”一节,并实测,验证文档中的内容。点这里可以看到在线文档。默认情况中,Swfit上传的最大单个对象的大小为5GB。然而,对于下载对象的大小却是没有限制的,这种“下载无限制”的概念是通过将分段对象组织起来模拟实现的。大对象的每个分段被分别上传,然后再创建一个清单文件(manifest file)指明这个对象所包含的分段,下载时,清单所指示所有分段会被组织成一个单独的对象进行下载。这 阅读全文
posted @ 2013-03-21 19:58 YUKI小糖 阅读(3208) 评论(0) 推荐(0) 编辑
摘要: 网易学习计划啊,都不带添加文字的么!限制我字数,还不告诉我是哪段超过了!!进入正题...每个流行的云存储系统都有自己的侧重点可选的架构很多,关键是要针对特定的应用场景系统规模大小业务类型与压力实时 / 非实时大文件 / 中等文件 / 小文件连续读写 / 随机读写吞吐率 / 低延迟强一致性 / 弱一致性性能 & 可靠性扩展性 & 单节点问题是否要求目录结构可配置 & 快速部署大数据离线/在线分析电子商务社交网络网络硬盘邮件服务图片服务语音视频服务虚拟机调度与镜像存储开放云存储平台离线型数据分析系统数据总量大,单个文件大,更注重系统吞吐率,而非低延迟。为适应流行的MapRe 阅读全文
posted @ 2013-03-13 14:31 YUKI小糖 阅读(2715) 评论(5) 推荐(1) 编辑
摘要: OK啦,这是最后一篇,其实从原官方文档的组织上,该小节是3.3——container之后,object之前,为了API整体思路的连贯性,我自己擅作主张放到了最后一部分。这章是我觉得swift中比较有趣的一章,可以直接将swift配置成静态站点,作为数据下载站,直接解决了静态站点数据备份的问题。于是,让我们愉快的继续吧 =D3.3. 创建静态站点(Create Static Website)你可以使用swift账户在互联网上创建一个静态站点。这种模式通常是匿名请求的,如果你希望在这种模式下使用认证请求,则需要在请求头中将 X-Web-Mode 设置为 TRUE。过滤器 staticweb 也应该 阅读全文
posted @ 2013-03-12 20:39 YUKI小糖 阅读(1038) 评论(7) 推荐(0) 编辑
摘要: 这篇本来是想好好写的,今天看了一天了的,可是,组会好像有种要悲剧的感觉啊。。暴风雨前的宁静,尽量记录一些吧。上周把爬虫代码优化后,就哈皮哈皮的和未优化的版本一起跑了。起初,由于未优化的版本已经run了几天了,内存占用在200M多,而发现优化后的内存占用只有40M,所以很开心。但是不久就发现,优化后的版本,内存占用也会慢慢增加,大有一种“老娘给你分多少,你就要用多少”的赶脚。用jprofiler监控,自己开发的类的对象数量都比较正常,所以决定学习一下JVM内存管理相关的东西。JVM主要管理两种类型的内存:堆(Heap)和非堆。按照官方的说法:“Java虚拟机具有一个堆,堆是运行时数据区域,所有类 阅读全文
posted @ 2013-03-12 14:48 YUKI小糖 阅读(813) 评论(0) 推荐(0) 编辑
摘要: 3.4. 对象存储服务(Storage Object Services)一个对象(Object)是存储在系统中的一个文件数据和这个文件的元数据。通过ReST接口,我们可以使用HTTP的自定义headers来包含对象的元数据、HTTP的消息体(body)来包含数据实际的有效荷载。对象的大小不能超过5GB,且对象的名字在经过URL编码后不能超过1024个字节。然而,对于大于5GB的对象,我们可以将其分段,然后再将对象片段串联起来,这样就可以实现分段上传5GB以内的对象,并在下载时下载一个大于5GB的串联对象了。你可以直接使用HTTP请求来处理分段并管理好分段之间的组合关系。3.4.1. 获取对象在 阅读全文
posted @ 2013-03-08 20:29 YUKI小糖 阅读(1869) 评论(0) 推荐(0) 编辑
摘要: 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列表。此外,这里有一些可选的查询参数用于进一步细化查询结果。一个不包含任何查询参数的的请求将会返回存储在这个容器中的所有对 阅读全文
posted @ 2013-03-07 22:22 YUKI小糖 阅读(1309) 评论(7) 推荐(0) 编辑
摘要: 在上一篇中,翻译介绍了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... 阅读全文
posted @ 2013-03-06 22:10 YUKI小糖 阅读(1276) 评论(0) 推荐(0) 编辑
摘要: 关于开源代码的学习,主要就只接触过XMPP服务端实现Openfire和现在的Swift了。想想这段时间对swift学习的停滞感,越来越觉得“如果想要学习一个东西的原理,首先要会使用它”,这会在一定程度上增加对功能处理流程的理解,并在源码阅读时产生共鸣。对于swift API的学习,由于之前一直没有找到比较系统的资料,官方文档主页上也没有相关的链接,所以都是对照着swift-python-client的curl命令自己进行整理,这几天突然发现swift官方文档主页上增加了Swift’s API docs链接!内容非常的全,以前真没见到过哎,可能藏的太深,哈哈哈,PDF请点击这里下载。在文档的1. 阅读全文
posted @ 2013-03-05 17:46 YUKI小糖 阅读(2427) 评论(2) 推荐(0) 编辑
摘要: 师兄部署了新的虚拟机,新学期大搞起来!之前由于爬虫代码不稳定,所以一直都是直接用Eclipse运行,然后遇到问题就修改的。但是这个比较麻烦,而且Eclipse本身就很占内存啊,摔!所以今天下午就把之前的代码清减了一下,对很多挫挫的System.out.println替换了log4j,路径啊数据库连接呀用配置文件处理了,最后打成可执行的Jar,这样在新的虚机上就可以大展拳脚咯^_^YBiu~废话说完,进入正题,将Java工程打包成可执行的Jar有各种方法,网上很多也不举例了,什么配置MANIFET文件啊之类的。其实有一个最简单可行的方法,就是直接用Eclipse导出Runnable JAR fi 阅读全文
posted @ 2013-02-27 21:00 YUKI小糖 阅读(20404) 评论(4) 推荐(1) 编辑
摘要: 上个学期做了很久的新浪爬虫,修修改改一直没时间做个整理,趁着开学前,重新整理了下思路和代码结构,做一个总结吧。本来是雄心壮志的想实现一个Java版本的、比较通用的爬虫框架的,但是整理后又发现此法真的是非常的简单粗暴,跟scrapy等没得比,其实没得比都是正常的啦,我自己本来就水,而且没有深入的去进行实现设计,所以,姑且总结一下当前的能力吧。实现语言:Java模拟HTTP请求:HttpClient 4.0目标页面结构分析、HTTP请求头信息分析:Firefox + firebug / Chrome(F12 开发者模式)HTML解析:Jsoup基本思路网络爬虫的基本思路是:爬虫线程从待抓取URL队 阅读全文
posted @ 2013-02-27 10:23 YUKI小糖 阅读(16478) 评论(27) 推荐(4) 编辑