基于缓存支持网络的医疗数据转发和缓存系统及方法与流程

文档序号:24081283发布日期:2021-02-26 18:08阅读:101来源:国知局
基于缓存支持网络的医疗数据转发和缓存系统及方法与流程

[0001]
本发明属于缓存支持网络技术领域,具体涉及基于缓存支持网络的医疗数据转发和缓存系统及方法。


背景技术:

[0002]
近年来,医疗设备的应用产生了大规模的医疗影像,为医疗影视科提供了大量的基础诊疗数据。这些医疗影像数据包含了人体的结构和病理等信息,成为了医生进行诊疗决策的重要参考依据。医生对这些医疗影像资源的分析和处理,对于相似病例的诊疗具有极大的借鉴意义。然而在对医疗影像资源分析和处理之前需要尽快获取资源,这就需要大量医疗影像数据得到快速的响应,因此医疗影像数据的分布问题得到广泛关注。
[0003]
缓存支持网络架构在提高内容分布效率方面有很大的潜力。启用缓存的网络允许基站(bss)和移动设备缓存流行的内容,从而用户想要获取的内容可以从附近的节点访问,这减少了能耗和传输时延。这与我们的问题非常契合,因此我们将缓存支持网络架构应用到医疗系统中。医生在诊疗时,可以从附近已经缓存过该医疗影像数据的路由节点获取资源,因此一个好的缓存策略能更好的提升医疗系统的性能,从而实现本地在线阅片。
[0004]
医疗影像数据的缓存旨在提升用户体验和实现本地在线阅片。因此,根据医疗影像数据单位时间内的获取次数来决定缓存哪些文件是受欢迎的是很重要的。一般来说,只有很常见的医疗影像(ct,核磁共振等)数据是大部分医生频繁请求的。另一方面,如何有效地将请求多次的医疗影像数据放置在网络的边缘也是一个重要的问题,它影响着协同多样性和内容分布的收益。另外,缓存策略,即决定缓存哪些医疗影像数据以及何时缓存或怎样更新缓存的数据,对于启用了缓存的医疗系统的整体性能至关重要。
[0005]
在缓存支持网络医疗系统中,要想实现对医疗影像数据的路由,医疗影像数据请求的转发对医疗影像数据内容的快速查找也有着非常重要的意义。当医生请求一个医疗影像数据时,请求如何转发到已经缓存过该医疗影像数据的网络节点或医疗系统服务器,对请求的命中率至关重要。而请求命中率与获取医疗影像数据的等待时延有关,命中率越高,等待时延就越低。因此,如何进行医疗影像数据请求的转发和医疗影像数据的缓存是我们需要解决的问题。


技术实现要素:

[0006]
本发明所要解决的技术问题是提供基于缓存支持网络的医疗数据转发和缓存系统及方法,解决缓存支持网络中医疗影像数据的分布效率问题。
[0007]
本发明为解决上述技术问题所采用的技术方案是:基于缓存支持网络的医疗数据转发和缓存系统,其特征在于:由请求控制子系统和数据队列子系统共同完成请求的转发、数据内容的返回和缓存,所有数据对象的查找过程构成请求控制子系统,相反链路上的数据的返回过程组成了数据队列子系统,其中,请求控制子系统由请求队列和请求丢弃队列组成,请求队列中记录本地用户的请求和
邻居节点转发的请求,请求丢弃队列中记录请求队列长度因超过阈值而丢弃多余部分请求;数据队列子系统由数据队列和虚拟数据队列组成,数据队列中记录本地产生且待转发的数据和邻居节点转来的数据,虚拟数据队列中记录本地产生且待转发的虚拟数据和邻居节点转来的虚拟数据。
[0008]
基于缓存支持网络的医疗数据转发和缓存方法,包括:(1)对于一个需要查找的数据对象k,通过请求控制子系统找到源节点或者已经缓存过该数据对象k的网络内节点,具体的操作过程为:1.1节点a收到本地查找数据对象k的请求或者虚拟数据队列中数据对象k的请求;1.2查找节点a的存储器中是否存储了对应于数据对象k的内容,若有,则节点a销毁请求包,并将数据对象k的内容沿相反路径返回给数据请求者;否则,所有节点执行请求转发策略和请求丢弃策略,直到到达源节点或者已经缓存数据对象k的内容的节点;(2)当请求包到达源节点或者已经缓存了数据对象k的内容的节点b时,通过数据队列子系统完成相反链路上数据对象k的返回,具体的操作过程为:2.1节点b删除关于数据对象k的请求包;2.2节点b生成与请求包同等数量的数据包;2.3所有节点根据数据传输速率和请求转发速率的对应关系,分配数据和虚拟数据的传输速率;2.4节点a将虚拟数据队列当中的请求重新添加到请求队列中。
[0009]
所述步骤1.2中的请求转发策略为:(1)根据计算数据对象k在链路(i,j)上的权重(2)根据计算自适应链路权重(3)计算数据对象k的请求在链路(i,j)上的转发速率具体为:如果则否则其中(
·
x)
+
表示max(
·
x,0);表示在时间槽t内节点i和节点j关于数据对象k的请求队列积压之差,即数据对象k在链路(i,j)上的权重;表示节点i在时间槽t内关于数据对象k的缓存变量,如果则表示节点i缓存了数据对象k,如果则表示节点i没有缓存数据对象k;表示在时间槽t内节点i的请求队列中等待转发的数据对象k的长度;c
ij
(t)表示在时间槽t内链路(i,j)的传输容量大小;表示在时间槽t内节点i到节点j关于数据对象k的请求转发速率。
[0010]
所述步骤1.2中的请求丢弃策略具体为:(1)根据请求队列和请求丢弃队列的长度计算节点n关于数据对象k的请
求丢弃率具体为:如果则否则(2)计算节点n关于数据对象k的最终丢弃率如果则否则其中,表示在时间槽t内节点n的请求队列中等待转发的数据对象k的长度;表示在时间槽t内节点n的请求丢弃队列中等待被最终丢弃的数据对象k的长度;d
max
表示请求丢弃的最大值,与链路容量最大值c
max
和请求到达率最大值a
max
有关;va
k
表示请求队列长度的阈值。
[0011]
所述步骤2.3中数据传输速率和请求转发速率的对应关系为:(1)如果节点j的所有邻居节点转发数据对象k的速率之和不大于数据队列的积压,那么对所有的i∈γ
+
(j),都有链路(j,i)上的数据传输速率等于链路(i,j)上的请求转发速率链路(j,i)上的虚拟数据速率为0;其中,表示在时间槽t内节点j收到邻居节点转发过来的数据对象k之和;表示在时间槽t内节点j的数据队列中等待转发的数据对象k的长度;γ
+
(j)表示节点的进口节点集合;表示在时间槽t内节点j到节点i关于数据对象k的数据传输速率;表示在时间槽t内节点j到节点i关于数据对象k的虚拟数据传输速率;(2)如果节点j的所有邻居节点转发数据对象k的速率之和大于数据队列的积压,则设置辅助变量σ,且其中为转发给节点j的请求速率不为0的邻居节点的集合;则对所有的i∈γ
+
(j),都有其中(
·
x)
+
表示max(
·
x,0),链路(j,i)上的虚拟数据速率
[0012]
所述缓存方法为:令为节点n在时间槽t内的可用缓存集,在时间槽t内对每一个k∈k
n
(t),计算其优先级函数(1)如果节点n的可用缓存集的基数不大于它的缓存大小b
n
,也即是|k
n
(t)|≤b
n
,则节点n将缓存集合k
n
(t)包含的数据对象,即对将缓存变量更新为对将缓存变量更新为(2)如果节点n的可用缓存集的基数大于它的缓存大小b
n
,即|k
n
(t)|>b
n
,将作为节点n的优先级函数集合,并从大到小重排f
n
(t),节点n缓存
集合f
n
(t)中的前b
n
个元素所对应的数据对象。
[0009]
本发明的有益效果是:为了解决缓存支持网络中医疗影像数据的分布效率问题,设计了基于多路径转发的流量调度策略,通过相邻队列长度的积压差来控制请求的转发速率,并联合基于阈值的请求丢包机制减轻或避免医疗系统崩溃,提高网络的服务质量;根据队列积压的形式设计了一个缓存优先级函数,优先缓存优先级较大的医疗影像数据,实现数据内容的高效查找,并减轻网络拥塞,提高整体网络的吞吐量。
附图说明
[0010]
图1为本发明队列系统的结构示意图;图2为本发明方法整体流程示意图。
具体实施方式
[0011]
医疗影像数据请求的转发和内容的缓存是影响医疗网络性能至关重要的因素,本发明提供了基于缓存支持网络的医疗数据转发和缓存系统及方法,下面详细说明具体系统和方法。(一)组成结构
[0012]
本发明中的队列系统结构由2个子系统组成(如图1所示),分别是请求控制子系统和数据队列子系统,两个子系统共同完成请求的转发,数据内容的返回和缓存过程。系统中数据传输速率和请求转发速率的动态对应关系为:为了保持系统的稳定,链路(i,j)上的数据传输速率和虚拟数据传输速率之和要与反向链路(j,i)上的请求转发速率相等。1.请求控制子系统
[0013]
请求控制子系统是由请求队列和请求丢弃队列组成,请求队列中记录本地用户的请求和邻居节点转发的请求,请求丢弃队列中记录请求队列长度因超过阈值va
k
而丢弃多余部分请求。对于一个需要查找的数据对象k,通过请求控制子系统可以找到源节点或者已经缓存过该数据对象k的网络内节点,具体的操作过程如下:(1)节点a收到本地查找数据对象k的请求或者虚拟数据队列中数据对象k的请求;(2)查找节点a的存储器中是否存储了对应于数据对象k的内容,若有,则执行(4),否则,执行(3);(3)所有节点执行请求转发策略和请求丢弃策略,直到到达源节点或者已经缓存数据对象k的内容的节点b;(4)节点b销毁请求包,并将数据对象k的内容沿相反路径返回给数据请求者。
[0014]
所有数据对象的查找过程构成了请求控制子系统,相反链路上的数据的返回过程组成了数据队列子系统。2.数据队列子系统
[0015]
数据队列子系统是由数据队列和虚拟数据队列组成,数据队列中记录本地产生且待转发的数据和邻居节点转来的数据,虚拟数据队列中记录本地产生且待转发的虚拟数据和邻居节点转来的虚拟数据。为了使速率的对应关系有效,创建了虚拟数据队列。当请求包到达源节点或者已经缓存了数据对象k的内容节点b时,具体的操作过程如下:(1)节点b删除关于数据对象k的请求包;
(2)节点b生成与请求包同等数量的数据包;(3)所有节点根据数据传输速率和请求转发速率的对应关系,分配数据和虚拟数据的传输速率;(4)节点a将虚拟数据队列当中的请求重新添加到请求队列中。(二)转发和缓存算法1.网络模型
[0016]
将支持缓存的医疗网络建模为一个具有n个节点,l个链路的有向图如果一个请求通过链路(i,j)传输,那么相应的数据将在相反的链路(j,i)上传输,γ
+
(n)和γ-(n)分别为节点n的进口和出口集合;时间是分槽的,是在时间槽t内链路的容量信息。每个节点n都有一个存储空间,用来缓存重要的医疗影像数据,每个节点n的缓存大小记为b
n
,且假设缓存大小是有限的。将医疗影像数据的内容标识为k个数据对象,记为据对象,记为定义为时间槽t内整个网络的缓存状态信息,其中表示节点n在时间槽t内缓存了数据对象k,表示节点n在时间槽t内没有缓存数据对象k;表示时间槽t内节点n关于数据对象k的请求到达率,其中a
max
为一个常数。2.请求转发策略
[0017]
(1)根据计算数据对象k在链路(i,j)上的权重(2)根据计算自适应链路权重(3)计算每一个数据对象的请求k在链路(i,j)上的转发速率如果则否则计算其中,(
·
x)
+
表示max(
·
x,0);表示在时间槽t内节点i和节点j关于数据对象k的请求队列积压之差,也是数据对象k在链路(i,j)上的权重;表示节点i在时间槽t内关于数据对象k的缓存变量,如果则表示节点i缓存了数据对象k,如果则表示节点i没有缓存数据对象k;表示在时间槽t内节点i的请求队列中等待转发的数据对象k的长度;c
ij
(t)表示在时间槽t内链路(i,j)上的传输容量大小;表示在时间槽t内节点i到节点j关于数据对象k的请求转发速率。3.请求丢弃策略
[0018]
根据请求队列和请求丢弃队列的长度大小计算节点n关于数据对象k的请求丢弃率如果则否则计算节点n关于数据对象k的最终丢弃率如果则否则
其中,表示在时间槽t内节点n的请求队列中等待转发的数据对象k的长度;表示在时间槽t内节点n的请求丢弃队列中等待被最终丢弃的数据对象k的长度;d
max
表示请求丢弃的最大值,与链路容量最大值c
max
和请求到达率最大值a
max
有关。4.数据传输速率和请求转发速率的对应关系:
[0019]
(1)如果节点j的所有邻居节点转发数据对象k的速率之和不大于数据队列的积压,那么对所有的i∈γ
+
(j),都有链路(j,i)上的数据传输速率等于链路(i,j)上的请求转发速率链路(j,i)上的虚拟数据速率为0;其中,表示在时间槽t内节点j收到邻居节点转发过来的数据对象k之和;表示在时间槽t内节点j的数据队列中等待转发的数据对象k的长度;表示在时间槽t内节点j到节点i关于数据对象k的数据传输速率;表示在时间槽t内节点j到节点i关于数据对象k的虚拟数据传输速率。(2)如果节点j的所有邻居节点转发数据对象k的速率之和大于数据队列的积压,那么设置一个辅助变量σ,且其中为转发给节点j的请求速率不为0的邻居节点的集合;那么对所有的i∈γ
+
(j),都有其中(
·
x)
+
表示max(
·
x,0),链路(j,i)上的虚拟数据速率5.缓存替代策略
[0020]
节点进行缓存的前提是在当前时间槽内能够获得要缓存的数据内容。因此令为节点n在时间槽t内的可用缓存集。在时间槽t内对每一个k∈k
n
(t),计算优先级函数(1)如果节点n的可用缓存集的基数不大于它的缓存大小,即|k
n
(t)|≤b
n
,那么节点n将缓存集合k
n
(t)包含的数据对象,即将缓存变量更新为对将缓存变量更新为(2)如果节点n的可用缓存集的基数大于它的缓存大小,即|k
n
(t)|>b
n
,将作为节点n的优先级函数集合,并且从大到小重排f
n
(t)。那么节点n将缓存集合f
n
(t)中的前b
n
个元素所对应的数据对象。6.队列更新规则
[0021]
更新请求队列:
其中,表示在时间槽t+1内节点n的请求队列中等待转发的数据对象k的请求长度;表示在时间槽t内节点n关于数据对象k的缓存变量;表示在时间槽t内节点n的请求队列中等待转发的数据对象k的请求长度;表示在时间槽t内节点n要转发给邻居节点的关于数据对象k的请求总数量;表示在时间槽t内节点n的关于数据对象k的请求丢弃速率;表示在时间槽t内数据对象k的请求到达节点n的速率;表示在时间槽t内节点n从虚拟数据队列中要添加的关于数据对象k的请求的个数;表示在时间槽t内节点n的邻居节点转发过来的关于数据对象k的请求总数量。
[0022]
更新请求丢弃队列:其中,表示在时间槽t+1内节点n的请求丢弃队列中等待最终丢弃的数据对象k的请求长度;表示在时间槽t内节点n的请求丢弃队列中等待最终丢弃的数据对象k的请求长度;表示在时间槽t内节点n关于数据对象k的请求最终丢弃速率;表示在时间槽t内请求队列丢弃到请求丢弃队列的关于数据对象k的实际请求个数。
[0023]
更新数据队列:其中,表示在时间槽t+1内节点n的数据队列中等待传输的数据对象k的数据长度;表示在时间槽t内节点n的数据队列中等待传输的数据对象k的数据长度;
表示在时间槽t内节点n要转发给邻居节点的关于数据对象k的数据总数量;表示节点n在时间槽t内被本地请求消耗掉的数据;表示在时间槽t内节点n的邻居节点传输过来的关于数据对象k的数据总数量。
[0024]
更新虚拟数据队列:其中,表示在时间槽t+1内节点n的虚拟数据队列中等待传输的数据对象k的虚拟数据长度;表示在时间槽t内节点n的虚拟数据队列中等待传输的数据对象k的虚拟数据长度;表示在时间槽t内节点n要转发给邻居节点的关于数据对象k的虚拟数据总数量;表示在时间槽t内节点n的邻居节点传输过来的关于数据对象k的虚拟数据总数量。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1