缓存对象(cache object)的一种变体,最初创建该术语是为了处理HTTP协议中的VARY机制(RFC2616#sec14.44),现在多用于其它的目的。一个对象的所有副本必须以某种方式等价,也就是说,它们是同一个流的等价形式,最常用的一个例子就是,一个流既有普通版本也有压缩版本。
缓存的内容存储单元,缓存的读操作每次只能读取一个完整分片,但是写操作可以按组一次写入多个完整分片。每个分片都对应一个缓存目录项,它描述了该分片在磁盘缓存中的存放位置,比如offset和长度。
磁盘缓存中一个对象固定长度(8字节)的标识符,由缓存key使用MD5哈希算法得到。
磁盘缓存中一个对象的全局唯一标识符,是字节序列,默认是缓存对象的URL。
磁盘缓存中最小自含性(self contained)数据单元。缓存对象是源站返回的数据流的等价存储版本(因为可能会有些微修改)。单个对象可以有多个所谓的副本(alternate)。
ATS中根据相关协议,源站或是其它规则对缓存对象做区分和分开存储的一种磁盘划分机制。缓存分区的定义和管理的讨论详见《缓存划分》。
storage.config
配置文件中每行描述的使用到的磁盘物理存储容量。
缓存容量
的过时叫法。
单个缓存容量
(cache span)内的一类位于同一磁盘上的持久化缓存单元。一个缓存容量会包括多个缓存带,缓存带总是完全位于单块物理磁盘上,是最小独立的(即使发生磁盘故障)存放数据不受影响的存储单元。在相同缓存容量
内不同缓存带上存放的数据没有差别,仅是缓存带不同。
缓存ID的尾部几个比特(当前12bit),用于进行磁盘操作前对缓存目录项(cache directory)做的初步身份检查(identity check)。
用户在配置文件volume.config
中定义的缓存持久化存储单元。为了增强健壮性,缓存分卷默认会分布到整个缓存容量
内部,缓存容量和缓存分卷的交集就是缓存带
。
内存中用来描述一个缓存分片
的结构体,即源码中的Dir
。
相邻目录项
的固定大小(当前为4)的分组,用于哈希桶的维护和优化。
目录桶
的连续分组,每个缓存带
中都有一个目录段的集合,每个目录段中有相同数目的目录桶
。不同缓存带
中每个目录段所含目录桶
的个数略有不同。管理目录段的目的是让free list存放目录桶
的指针,并将free list存放目录桶
的指针。
新数据写到磁盘上的缓存带
的位置。
缓存对象
的数据库。
缓存对象
的一种状态,该状态下的缓存对象能直接从缓存中读出并响应客户端的请求。新鲜的缓存对象并不满足或是超过源站定义的过期时间,它们也还没有达到算法确定的过期时间(stale age)。
验证当前缓存的对象是否合法(valid)。常常通过在请求头中添加If-Modified-Since
头来让源站验证内容的合法性,源站并不会再次发送回响应内容。
包含状态的一种可调用对象,ATS就是使用该机制去实现回调和连续计算。连续计算对网络流量(traffic)的高效处理非常重要,因为它能避免在等待外部事件发生时产生的任何阻塞操作(blocking operation),在任何情况下,使用continuation机制可以使得其它操作仍能继续进行,直至外部事件发生,然后立即调用该continuation去继续处理先前挂空的操作。也可以视作类似协程(co-routines)的处理。
包含客户端的请求和响应,响应可以来自源站,也可以来自缓存。一次事务开始于ATS接收到客户端请求,终止于ATS发送出响应。
客户端和ATS的一个网络连接,包括该连接上所有的请求和响应,随客户端打开连接而开始,随连接关闭而终止。
可以操作所有事务的插件,相对于remap插件
。
一种特殊插件,它只对匹配上remap.config
配置文件中定义的特定重映射规则的那些事务
做操作,相对于全局插件
。
能够提供原始内容让ATS缓存的一种HTTP服务器,常见的有Apache,nginx等。
(给DotNet加星标,提升.Net技能)转自:HueiFengcnblogs.com/yyfh/p/12361255.html前言本章将介绍客户端缓存将介绍浏览器缓存和服务端缓存,使用浏览器缓存将减少对web服务器的请求次数,同时可以提升性能,避免重复的运算浪费。ASP.NET Core对于HTTP缓存分为两种:客户端(浏览器缓...
事先说明 标题说是“坑”,并没有说是“bug”,也就是多半是玩的姿势不对。 线上问题 我司(lecloud)目前线上大小文件都是使用的ATS 6.2.1版本,昨天运维反馈有文件超过缓存时间并不回源刷新,截图如下: 现象就是:age超过max-age了,过期了不更新! 另外需要说的一点就是,源站是可以正常回源的。 复...
将追加的主题 内存常驻副本(resident alternates)缓存对象刷新(object refresh) 缓存一致性(Cache Consistency) ATS缓存是完全一致性的,除非你不小心踢掉电源,让ATS突然关机。如果要禁用硬盘驱动器自身的缓存,你需要使用下面的命令 hdparm -W0 缓存系统会校验可用...
该博文翻译自参考文献[1] parent.config parent.config文件识别用在缓存分级中的父代理,用这个文件去执行下面的配置: 搭建父分级缓存,兼容多父级缓存和父级缓存故障转移配置指定的URL请求避开父代理缓存 仅当父缓存选项开启后,ATS才能使用parent.config文件。 当你修改parent.conf...
这里用散装版本的AutoScssStruct4Vue为例 先去https://github.com/accforgit/AutoScssStruct4Vue下载 然后把解压后的包放入C:UsersAdministrator.vscodeextensions(地址根据你自己的安装目录而定) 点开目录在资源管理器...
网上搜到的结果大都不令人满意,这里综合了网上的结构,做了小许改动.希望对大家有帮助.
在Linux下的目录结构操作基本上使用opendir,readdir,closedir就够了.
#include
文章目录git 最小配置作用域git 创建本地仓库git log 查看版本演进.git 目录refs目录objectsgit 三种对象类型详解 (commit ,tree,blob)...
一 . 进入目录权限 如果我在普通用户下创建了一个目录f1,然后使用chomd u-rwx,g-rwx,o-rwx之后,我在普通用户下想进入f1目录,权限不允许。 然后我切换到超级用户下,再次尝试进入到f1目录,这个时候允许进入。 然后回到普通用户下,只给f1的所有者读的权限,然后在普通用户下尝试进入,此时权限还是...
windows下rpc框架thrift的环境配置 引用链接: https://www.cnblogs.com/49er/p/7193829.html 最近在弄windows下 的Facebook的rpc 框架 thrift , 网上东西看了很多, 但是大都不能一篇到位, 这里总结了一下, 也记一下自己遇到的问题和解决的方法 这里...
点云PCL免费知识星球,点云论文速读。文章:DSP-SLAM: Object Oriented SLAM with Deep Shape Priors作者:Jingwen Wang Martin Runz Lourdes Agapito编译:点云PCL代码:https://github.com/JingwenWang95/DSP-S...
RAM缓存 新RAM缓存算法(CLFUS) 新的RAM缓存使用的创意来自许多缓存替换策略和算法,包括LRU,LFU,CLOCK,GDFS及2Q,它被命名为时钟周期内最小频繁使用大小算法CLFUS(Clocked Least Frequently Used by Size)。它避开了任何专利算法,具有如下特性: 均衡最近性(Rec...
MP4 |视频:AVC,1280×720 30 fps |音频:AAC,48 KHz,2 Ch |时长:2h 12m 语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小解压后:560M C4D是一个有抱负的运动图形艺术家和设计师的重要工具。借助C4D,您可以使用3D对象、动态效果和动画来增强运动图形、模型和可视化效果。本课...
文章目录先说问题:再说解决尝试1:尝试2(该尝试建议先在自己环境搭配对应业务测试通过后再现场尝试): 感谢 学无止境996同学的陪伴和vigourtyy美丽女友的支持,直到这个解决问题的深夜 先说问题: ceph 12.2.1生产环境:3副本 tier + 3副本data 机房在拥有业务的情况下重启集群交换机,产生如下场景...
这周主要学习了java中的类和对象的知识点,发现和C++中的类和对象极为相似,对于类和对象的概念理解起来也简单。同时在自学的过程中也把类的知识重新复习巩固了一下(如类的三大特征:继承,封装和多态,构造,成员对象的访问权限,构造,无参有参函数的调用等),同时也了解到一些新的概念,比如类对象创建和引用占据堆内存和栈内存,输出对象时默认调...