varnish重要数据结构

varnish重要数据结构

ID:43092094

大小:864.23 KB

页数:44页

时间:2019-09-27

varnish重要数据结构_第1页
varnish重要数据结构_第2页
varnish重要数据结构_第3页
varnish重要数据结构_第4页
varnish重要数据结构_第5页
资源描述:

《varnish重要数据结构》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Varnish重要数据结构重要的全局变量:1:structvsb*vident:用于varnishd向vamishadm传送相关命令执行后的结果:2:structheritageheritage:设置cache和mgl进程之间通信的管道,设置vamishd监听request的ip和port(可以指定多个ip和port?用了一个队列来存储多个ip和port),设置hash方式3:staticstructparspecconst**parspec:用于设置varnishd的默认参数,分为input_parspec和WRK_par

2、spec4:structparamsmaster:与上述的parspec全局变量结合起来设置vamishd的默认参数,用该变量看起来更直观(指针和地址的应用很巧妙)5:volatilestructparams^params:指向上述master全局变量的地址(注意volatile关键字的使用,估计是因为在多线程中耍用到params变量而加了该关键字),相当于所有的varnishd的默认参数值都保存在params能访问到的地址上6:staticstructvcc*vcc:varnishdmgt进程将.vcl编译为sharedo

3、bject时用7:staticVTAILQ_HEAD(,vclprog)vclhead=VTAILQ_HEAD」NITIALIZER(vclhead):用于上述sharedobject形成的队列,有active字段用于判断其是否有效:8:staticconststructchoiceSTV_choicelJ={{"file",&smf_stevedore},{"malloc",&sma_stevedore},{"persistent",&smp_stevedore},#ifdefHAVE_LIBUMEM{”umem”,&sm

4、u_stevedore},#endif{NULL,NULL}};该静态全局变量用于指定varishd的cache方式,特别注意smf_stevedore,sma_stevedore等,非常重要9:staticVTAILQ_HEAD(,stevedore)stevedores=VTAILQ_HEAD_INITIALIZER(stevedores):该队列用于保存vamishd的cache方式,不能有重复的cache方式(重复的意思是-s.•…后接的参数值不能相同),里面对一些函数的定向非常巧妙10:staticstructst

5、evedore*stv_transient:临时性存储方式,釆用malloc的方式分配cache(至于用于何用,暂时还不清楚)11:staticconststructchoicehsh_choicef]={{"classic",{"simple",{"simple{Hcritbitu,{NULL,&hcl_slinger},&hsl_slinger},&hsl_slinger},/*backwardscompat*/&hcb_slinger},NULL}};该静态全局变量用于指定heritage中的conststructha

6、sh_slinger*hash字段,其实现方式与上面的STV_choice[[—样,同样非常的巧妙11:全局变量staticintvsl_fd=-1是一个文件描述符,代表sharememory对应的_.vsm文件打开时的文件描述符12:/hcl_head;全局变量,classic哈希方式时使用,默认值是一个Thesetwocomefrombeyond(mgt_shmem.cactually)*/structVSM_head*VSM_head;conststructVSM_chunk*vsm_end;这两个变量是用于操作sha

7、rememory内存的,sharememory在内存中是连续的,unsignedlen字段代表一个内存块的长度13:structvev_base*mgt_evb:全局变量,用于mgi进程和cache进程乙'可信号通信使用staticstructvevsig*vev_sigs:改全局变量是依据系统所具有的信号量来生成数组的,即以信号量的值为数组下标,字段structvev_base*vevb;指向mgt_evb全局变量,字段structvev*vev;指向vamishd中我们需要的信号所对应的一个变量,字段structsiga

8、ctionsigact;用于重新定义信号发生时所对应的处理函数14:staticstructVCLS*cls:mgt进程和cache进程各有一个这样的变量,用于实现commandlineinterfaceo其内部有队列,英中VTAILQ_HEAD(,VCLS_func)funcs用于指定相

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。