问题
Named Data Networking (NDN)通过名称构建网络,在边缘计算连续体内提供了一种灵活且去中心化的资源管理方式。本文旨在解决一个问题:“在NDN中,如何以分布式的方式选择执行者,并获取带有参数和元数据的函数的结果?”
挑战
边缘资源,特别是边缘计算连续体,通常用于以分布式方式执行任务,提供有时间限制的服务。与纯云处理相比,边缘处理具有一些优势:低能耗和低延迟。然而,后者的优势假定节点/网络状态和数据源细节是已知的。了解和管理这些状态和细节的最流行方式是利用涉及关键属性(如位置、大小和格式)的中央元数据服务器。
在边缘计算场景中,元数据管理并不简单。因为大量的小数据片、块和文件分散在地理分布上,以集中的方式收集和管理它们变得不可行,因为边缘计算连续体中的节点通常是不稳定的、高度可变的,甚至是不可靠的 [8],[9]。在这样一个动态环境中选举一个高可用性的共识节点会带来高昂的调度和维护成本 [10]。此外,成本估算、监视远程节点的状态、身份验证和服务优化都是具有挑战性的。因此,需要以去中心化和原生的方式而不是共识节点来利用边缘资源。
现有方法局限性
CDN和DNS,可以加速网络的数据访问速度。但CDN缓存在通用计算能力方面提供的很少[11],DNS则引入了不可避免的额外名称解析延迟[12]。以数据名称而非IP为基础构建的信息中心网络(ICN)和命名数据网络(NDN)实例[13]提供了一个切实可行的解决方案。基于NDN的工作使用函数/服务名称作为其路由规则,以分布式的方式找到适当的执行者,这种策略能够快速有效地提供可扩展和稳健的服务。然而,ICN/NDN技术仍处于早期阶段,需要进行更多的研究[17]。
本文方法
设计的需求:(1)数据和元数据是分布式存储的,首选位置是数据生产者。(2) 用户发布一个包含数据名称和带参数的函数,并且只期望函数结果。(3) 该功能可以沿着从用户到数据生成器的连续体来执行。(4) 使用元数据来选择最佳的功能执行节点,以最大限度地减少端到端的延迟。
我们设计了R2,包括以下几个阶段。首先,我们设计了一个包括数据、函数名称和其他函数参数的命名结构。其次,我们开发了一个两阶段的机制,第一阶段,来自客户端的函数请求首先到达数据源并检索元数据。在元数据响应客户端的同时选择最佳节点,根据数据摘要、节点状态和网络条件选择转发路径中的最佳执行器,以最小化总的端到端延迟。第二阶段,选择的节点直接检索数据,执行函数,并将结果提供给客户端。我们提出了一个停止条件,智能减少第一阶段的处理时间,并提供了一个简单的证明和范围分析。
开源代码:https://github.com/qijianpeng/ndnSIM
模拟结果证实,R2在资源分配方面优于当前的解决方案,特别是当数据量和函数复杂性较高时。在实验中,当数据大小为100 KiB,函数复杂度为O(n^2)时,加速比为4.61。为了进一步评估R2,我们还在ndnSIM中实现了一个名为“Bolt”的通用中间数据处理逻辑,该逻辑在应用层实现。我们相信R2将帮助研究人员和开发人员顺利验证他们的想法。
实验
数据集。采用了真实世界的网络拓扑结构,即rocketfuel[32],包括282个节点,177个客户端、89个网关和16个骨干网。
实验对比:端到端延迟,逐跳累计延迟
总结
针对边缘计算场景,如何以分布式的方式选择最优执行者,以获得执行任务的最小端到端延迟。作者利用命名数据网络(NDN),设计了包括数据、函数名、函数参数的命名结构;根据客户端函数请求到数据源检索数据,同时根据检索过程中的数据摘要、节点状态、网络条件选择执行器;提出了停止条件,减少执行器的选择范围和选择时间。