MPC&MAGIC
MPC: Popularity-based Caching Strategy for Content Centric Networks
MPC: most popular content
MPC主要思想是在缓存机制中,仅仅缓存popular的content,虽然只缓存部分内容,但是仍然提升了缓存性能,同时节约了缓存资源(缓存空间,带宽,缓存操作次数)
在MPC中引入了几个新的概念:
Popular Table :记录popular content的name和popularcount
Popular Threshold : popular阈值,一旦content的请求次数,达到阈值,这个content标记为popular content
Suggestion : 含有popular content发送给邻居节点,建议邻居节点缓存popular content
Reset Value : 邻居节点缓存popular content后,这时防止邻居节点同一内容持续的洪泛请求
下图是MPC缓存机制的基本过程:

如图节点A先请求数据e1,节点B,A,C请求数据d1,内容e1的popular值为1,内容d1的popular值为3,假设popular阈值为2。
那么d1就为popular content。这时缓存d1的节点D向邻居节点发出Suggestion(缓存内容d1),节点C,E缓存内容d1。
如果此时A节点旁有个邻居节点M,节点M请求内容d1,那么A将返回数据d1而不是D,同时D将会将d1的popular值重置。
MAGIC: a Distributed MAx-Gain In-networkCaching Strategy in Information-Centric Networks
MAGIC:MAX-Gain In-network Caching
数据传送路径上的分布式缓存策略。通过考虑内容的popularity和减少跳数的结合减少带宽的浪费,同时考虑了缓存替换来减少缓存的操作。
cache palcement gain:节点在缓存中缓存新内容的gain的值
cache replacement penalty:节点将内容从缓存中驱逐的loss值
这两个值是减少缓存操作的次数
1.

:节点v缓存请求内容m的缓存替换增益(gain)
:节点v请求内容m的请求速率(每秒发送INTERTEST messages的个数)
:从节点v到可以返回内容的节点之间的条数

:定义为所有缓存内容对象的最小带宽消耗节省
如果缓存一个新的内容的增益值(gain)小于替换任何缓存内容的代价,那么这个内容将被缓存,同时其他内容不会被替换。
2.分布式缓存策略
分布式缓存策略需要在数据传送路径的沿途寻找最好的palace来缓存内容



上图的伪代码和图说明了MAGIC缓存的操作过程:
寻找数据传输路径上缓存内容的节点:我们用content m的最大的LocalGain来确定节点。当请求内容m时INTEREST message发送同时
INTEREST message头部的MaxGain的值置0,每个路由收到INTEREST message,计算自己的
,将自己的值和INTEREST message
头部的MaxGain进行比较,如果
大于MaxGain则,MaxGain更新为
。
当INTEREST message到达服务器或者到达缓存内容m的节点后,MaxGain为最大值。DATA message中记录MaxGain的,DATA message
在返回的途中将
与MaxGain向比较,如果相等,则此节点缓存内容m。
MPC&MAGIC的更多相关文章
- Codeforces CF#628 Education 8 D. Magic Numbers
D. Magic Numbers time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...
- [8.3] Magic Index
A magic index in an array A[0...n-1] is defined to be an index such that A[i] = i. Given a sorted ar ...
- Python魔术方法-Magic Method
介绍 在Python中,所有以"__"双下划线包起来的方法,都统称为"Magic Method",例如类的初始化方法 __init__ ,Python中所有的魔 ...
- 【Codeforces717F】Heroes of Making Magic III 线段树 + 找规律
F. Heroes of Making Magic III time limit per test:3 seconds memory limit per test:256 megabytes inpu ...
- 2016中国大学生程序设计竞赛 - 网络选拔赛 C. Magic boy Bi Luo with his excited tree
Magic boy Bi Luo with his excited tree Problem Description Bi Luo is a magic boy, he also has a migi ...
- 一个快速double转int的方法(利用magic number)
代码: int i = *reinterpret_cast<int*>(&(d += 6755399441055744.0)); 知识点: 1.reinterpret_cast&l ...
- MAGIC XPA最新版本Magic xpa 2.4c Release Notes
New Features, Feature Enhancements and Behavior ChangesSubforms – Behavior Change for Unsupported Ta ...
- Magic xpa 2.5发布 Magic xpa 2.5 Release Notes
Magic xpa 2.5發佈 Magic xpa 2.5 Release Notes Magic xpa 2.5 Release NotesNew Features, Feature Enhance ...
- GCC 源码编译 mpc mprf gmp 不用make(否则会有lib/libgmp.so: could not read symbols: File in wrong format等错误)
错误信息: lib/libgmp.so: could not read symbols: File in wrong formatcollect2: error: ld returned 1 exit ...
随机推荐
- C++ 实验 使用重载运算符实现一个复数类
实验目的: 1.掌握用成员函数重载运算符的方法 2.掌握用友元函数重载运算符的方法 实验要求: 1.定义一个复数类,描述一些必须的成员函数,如:构造函数,析构函数,赋值函数,返回数据成员值的函数等. ...
- SCRUM 12.03
第二轮迭代从今天起正式开始了.12月3日,我们举行了一次组会. 第一轮迭代结束时,我们意识到第二轮迭代需要实现的功能主要如下: 在下次迭代的时候实现对多个网站的信息进行比较取最优惠的选择,目前我们劲针 ...
- 毕业设计---jQuery动态生成的a标签的事件绑定
这几天在毕业设计的前端设计阶段,准备放弃使用jsp,完全通过html+ajax+SSH进行网站的编写,在前端的页面显示我准备使用jQuery来实现数据的动态绑定.但是遇到动态添加的a标签无法直接通过$ ...
- Android的环境搭建
尽管以前并没有接触过软件开发.但是,现在网络资源实在是太丰富了.所以网搜了一下,认为Android的环境搭建可分为以下五个步骤来完成.第一步:安装JDK:第二步:配置Windows上JDK的变量环境: ...
- (Alpha)Let's-NABC
效果图 NABC Need 在日常生活中我们也许经常有这样的疑问:在空闲时间内经常感到无处可去:抑或是有个心血来潮的想法却无人响应:或者困扰于自己狭小的交际圈,希望能有更多的朋友.(打个羽毛球没人一起 ...
- Android : Error inflating class android.support.design.widget.NavigationView
之前一直没搞定的,今天终于解决了. Android报错: android.view.InflateException: Error inflating class android.support. ...
- 使用maven的插件进行maven项目的打包
1 maven项目打包的插件有3种 maven-jar-plugin maven-assembly-plugin maven-shade-plugin 2 maven-jar-plugin 现在要新增 ...
- 为elasticSearch开发c++接口
一. ElasticSearch是什么 ElasticSearch是目前开源全文搜索引擎的首选,可以快速存储,搜索和分析海量数据.Stack Overflow,Github等都在使用. Elas ...
- HDU 1611 敌兵布阵 / HRBUST 1794 敌兵布阵(线段树)
HDU 1611 敌兵布阵 / HRBUST 1794 敌兵布阵(线段树) Description C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A ...
- laravel 单元测试设置模拟时间
有时候我们需要对一些超时的逻辑进行测试,需要等待一定的时间来验证超时逻辑是否生效. Carbon 库提供了 setTestNow 方法来设置一个虚拟的当前时间 使用这个特性的前提是:我们的待测试代码利 ...