具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
在本发明的描述中,术语“内”、“外”、“纵向”、“横向”、“上”、“下”、“顶”、“底”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明而不是要求本发明必须以特定的方位构造和操作,因此不能理解为对本发明的限制。
请参阅图1,图1所示为本发明一实施方式中数据缓存放置系统10的模块图。
在本实施方式中,数据缓存放置系统10包括:计算模块102、判断模块104、选择模块106、继续模块108、存储器110以及处理器112,其中,计算模块102、判断模块104、选择模块106以及继续模块108存储在存储器110中,处理器112用于执行存储在存储器110中的功能模块。
在本实施方式中,数据缓存放置系统10用于无线网络中,其中,无线网络中包括多个结点。
在本实施方式中,存储器110中设有缓存结点集合C、候选结点集合H、所有结点的最近缓存结点集合NC以及竞争系数集合CC。在本实施方式中,初始情况下,数据源结点属于缓存结点集合C和最近缓存结点集合NC。
在本实施方式中,计算模块102用于计算所述无线网络中每个结点的对冲数据流。
判断模块104用于判断一结点到某一结点的距离是否小于某一结点到最近缓存结点的距离。
在本实施方式中,计算模块102还用于在一结点到某一结点的距离小于某一结点到最近缓存结点的距离时增加该结点的对冲数据流。
在本实施方式中,所述对冲数据流为结点作为缓存结点时增加与减少的数据流之和。
在本实施方式中,对冲数据流(Hedging Data Flow)的概念和金融行业中的对冲基金有着异曲同工的地方。缓存系统中存在的数据流的类型包括以下三种:第一种类型的数据流是访问数据流(Accessing DataFlow),简称为ADF,这种数据流描述了网络中的一个结点访问数据的请求情况;第二种是应答数据流(Reply Data Flow),简称为RDF,这种数据流描述了数据源结点或者缓存结点应答其他结点的数据请求的情况;第三种是更新数据流(Update Data Flow),简称为UDF,这种数据流描述的是数据源更新缓存结点上的数据拷贝所产生的数据流。
因此综合上述四种数据流,若需要增加一个缓存结点,就需要尽最大可能的减少访问数据流和应答数据流,也需要尽最大可能的减少因为增加缓存结点而引入的更新数据流。
在本实施方式中,对冲数据流和其他三种数据流之间的关系:
HDF(i)=ΔADF(i)+ΔRDF(i)-UDF(i)
请结合图2,图2所示为计算模块102计算对冲数据流的一实施例。在实施方式中,假设数据访问的路径和数据返回的路径是一样的,因此,可以把访问数据流和应答数据流合并在一起,也就意味着只要有访问数据流就有应答数据流。
在图2中的左上角的图中,结点N1是数据源。
若在图2的右上角的图中,计划选择N3为缓存结点,那么减少的访问数据流应该是:
ΔADF(3)=(fa(4)+fa(5)+fa(6)+fa(7)+fa(8))×(sr+sd)×w(3,1) (1)
在上面的公式(1)中,fa(4)表示结点N4访问数据的频率,sr和sd分别表示数据本身的大小和数据请求的大小,w(3,1)表示路径刚从结点N3到数据源N1的权重。
上面的公式(1)表示,其他结点本来要经过结点N3去数据源N1去访问到数据,现在只要在结点N3上就可以访问到数据了。这样的话,对于其他结点N4到N8就可以减少两跳(2hops)。根据同样的道理,原来结点N3不需要从更新数据流,现在因为它充当了缓存结点,因此就增加了更新数据流,增加的数据流可以用下面的公式表示:
UDF(3)=fU×sd×w(1,3) (2)
在公式(2)中,fu表示数据源更新数据的频率,sd表示数据本身的大小,w(1,3)表示路径刚从数据源N1到结点N3的权重。
在本实施方式中,判断模块104还用于判断该结点的对冲数据流是否大于第一阈值。
选择模块106用于在该结点的对冲数据流大于第一阈值时将该结点选为候选结点,并将该结点加入到候选结点集合。
在本实施方式中,计算模块102还用于根据该候选结点的对冲数据流以及该候选结点与缓存结点之间的距离计算该候选结点在无线网络中的竞争系数。
在本实施方式中,结点Ni的竞争系数的定义如下:
在本实施方式中,公式(3)中的结点Ni竞争系数主要取决于结点Ni到最近的缓存结点的距离,以及结点Ni和经过结点Ni访问数据的数据流的量。
判断模块104还用判断所述竞争系数是否大于第二阈值。
所述选择模块106还用于在所述竞争系数大于第二阈值时将该候选结点作为缓存结点,并将该候选结点加入到缓存结点集合。
在本实施方式中,所述判断模块104还用于在一结点到某一结点的距离大于等于某一结点到最近缓存结点的距离时判断所述候选结点集合是否为空,且在所述候选结点集合不为空判断该结点是否为最后一个结点。
在本实施方式中,所述判断模块104还用于在该结点的对冲数据流小于等于第一阈值时判断所述候选结点集合是否为空,且在所述候选结点集合不为空判断该结点是否为最后一个结点。
在本实施方式中,所述判断模块104还用于在所述竞争系数小于等于第二阈值时判断所述候选结点集合是否为空,且在所述候选结点集合不为空判断该结点是否为最后一个结点。
在本实施方式中,继续模块108用于在所述结点不是最后一个结点时继续对下一个结点进行处理。
请参阅图3,图3所示为本发明一实施方式中利用图1所示的数据缓存放置系统10进行数据缓存的方法的流程图。
在本实施方式中,数据缓存的方法用于无线网络中,其中无线网络中包括多个结点。
在本实施方式中,存储器110中设有缓存结点集合C、候选结点集合H、所有结点的最近缓存结点集合NC以及竞争系数集合CC。在本实施方式中,初始情况下,数据源结点属于缓存结点集合C和最近缓存结点集合NC。
在步骤S200,计算模块102计算所述无线网络中每个结点的对冲数据流。
在本实施方式中,所述对冲数据流为结点作为缓存结点时增加与减少的数据流之和。
在本实施方式中,计算模块102根据以下公式计算结点的对冲数据流。
HDF(i)=ΔADF(i)+ΔRDF(i)-UDF(i)
在步骤S202,判断模块104判断一结点到某一结点的距离是否小于某一结点到最近缓存结点的距离。
若一结点到某一结点的距离小于某一结点到最近缓存结点的距离,则在步骤S204,计算模块102增加该结点的对冲数据流。
在本实施方式中,计算模块102根据以下公式增加该结点的对冲数据流。
HDF(x)+=(w(y,NC[y])-w(y,x))*(sd+sr)*fa(y)
在步骤S206,判断模块104判断该结点的对冲数据流是否大于第一阈值。
若该结点的对冲数据流大于第一阈值,则在步骤S208,选择模块106将该结点选为候选结点,并将该结点加入到候选结点集合。
在步骤S210,计算模块102根据该候选结点的对冲数据流以及该候选结点与缓存结点之间的距离计算该候选结点在无线网络中的竞争系数。
在本实施方式中,结点Ni的竞争系数定义为:
在本实施方式中,结点Ni竞争系数主要取决于结点Ni到最近的缓存结点的距离,以及结点Ni和经过结点Ni访问数据的数据流的量。
在步骤S212,判断模块104判断所述竞争系数是否大于第二阈值。
若所述竞争系数大于第二阈值,则在步骤S214,选择模块106将该候选结点作为缓存结点,并将该候选结点加入到缓存结点集合。
若步骤S202中的判断结果为一结点到某一结点的距离大于等于某一结点到最近缓存结点的距离,则在步骤S216,判断模块104判断该结点是否为最后一个结点。
若步骤S206中的判断结果为该结点的对冲数据流小于等于第一阈值,则在步骤S216,判断模块104判断所述选结点集是否为空。
若所述候选结点集不为空,则在步骤S218,判断模块104判断该结点是否为最后一个结点。
若步骤S210中的判断结果为所述竞争系数小于等于第二阈值,则在步骤S216,判断模块104判断所述选结点集是否为空。
若所述候选结点集不为空,则在步骤S216,判断模块104判断该结点是否为最后一个结点。
若步骤S216中的判断结果为所述结点不是最后一个结点,则在步骤S218,继续模块108继续对下一个结点进行处理。
本发明实施方式中的数据缓存放置系统10及数据缓存的方法通过判断结点的对冲数据流是否大于第一阈值来决定结点是否为候选结点,然后计算候选接结点的竞争系数并判断竞争系数是否大于第二阈值来决定结点是否缓存结点,形成缓存结点集合,减少了对数据流的分析,以及缓存数据的访问延迟,同时也减少了网络中数据访问的开销。
虽然本发明参照当前的较佳实施方式进行了描述,但本领域的技术人员应能理解,上述较佳实施方式仅用来说明本发明,并非用来限定本发明的保护范围,任何在本发明的精神和原则范围之内,所做的任何修饰、等效替换、改进等,均应包含在本发明的权利保护范围之内。