Chinaunix首页 | 论坛 | 博客
  • 博客访问: 433957
  • 博文数量: 43
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 518
  • 用 户 组: 普通用户
  • 注册时间: 2015-12-14 12:10
个人简介

邮箱:oxwangfeng@qq.com

文章分类

全部博文(43)

文章存档

2021年(1)

2018年(7)

2017年(9)

2016年(26)

我的朋友

分类: 服务器与存储

2017-12-31 21:47:40

合并回源能够提高用户体验
有相同的http请求A和B,A没有完成时,B访问到达。当A请求写完一个fragment之后,B才能访问到这个fragment;当A写一个fragment时,B是无法访问这个fragment的;

具体实现:

定义一个全局变量:map[string]value;
url作为key;value记录正在回源并缓存的上下文,包括响应头,body,长度等信息;
对于小文件,body直接放到value的body中;
对于大文件,就不能将body存放在value中,要不然很耗费内存的;大文件是需要分片存储在磁盘上的,每个fragment都有一个key,所有的fragment key组成一个key list;对于大文件来讲,value可以是包括读写大文件行为的结构体,包括key list以及大文件的读写操作;
读:首先遍历map结构体,查找key是url对应的value;
对于小文件,直接读取value中的body内容即可;
对于大文件,由于value->openObject->fgKeys保存着所有的fragment key,只需要遍历key即可,在value->openObject里面必须添加一个文件写完的标记,要不然无法知道fragmet key list是不是完整了;这样当写完一个fragment之后,另外一个请求才能访问到这个fragment;当A写一个fragment时,B是无法访问这个fragment的;

待完善。。。

阅读(3444) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~