Swing State: Consistent Updates for Stateful and Programmable Data Planes
Swing State: Consistent Updates for Stateful and Programmable Data Planes
年份:2017
来源:ACM
本篇论文解决的问题
Before
原来的状态迁移是三角形路由的方式:
NF1->Controller->NF2
浪费时间、还需要控制器开辟额外的存储空间
Now
现在把要更新的流量attach到数据平面的数据流上,借助数据流之手(信使)传递状态信息。
ABSTRACT
背景:由于可编程带状态数据平面的飞速发展,得益于数据平面的高速处理速度,于是把网络功能从控制器(或主机上)迁移到数据平面实现。
这就意味着数据平面不单单要考虑flows,还要考虑states,比如流量迁移时,要考虑状态迁移的问题。
存在的问题:数据平面的的状态信息以线速率更新,不可能通过控制平面实现状态迁移。
Swing State的解决方案:在数据平面上实现状态迁移,把需要迁移的状态附加在live traffic上,目标NF收到流量后提取出状态信息信息,达到状态迁移的目的。注意:Swing State只迁移那些不能再生成的状态信息。
Swing State only migrates the states that cannot be safely reconstructed at the destination switch.
本篇论文设计的实验:给定一个P4程序,分析出哪个状态需要被迁移并自动增加对应的程序实现运行时的状态迁移。
INTRODUCTION
基于控制平面实现状态迁移存在的问题(为什么状态迁移不能通过控制器):
- 目前的状况,状态是以以线速率更新(可以达到Tbps),如果以这个速率给控制器发送,基于软件实现的控制器肯定是应付不过来的。这样就会增加巨大的处理时延,造成状态迁移的不一致性,这对于很多的网络应用是不允许发生的。
- 控制器可能不会完整的知道那些待迁移的状态的位置(它只知道一部分,造成那些不被知道的状态不能在第一时间被迁移)。因为有些状态位置信息是根据运行时因素决定的,但是运行时因素是不能被控制器访问的,这就造成了控制器不能精准的定位所有待转移状态的位置。
- 数据平面状态信息可以在多条流量之间共享,借用多条flow一起实现状态迁移,可以减少状态迁移的时延,避免不一致性。可惜的是,这些可被利用的flow是根据运行时因素决定的,控制器不能访问交换机的运行时因素。
Swing State:
- 解决了以上所有的问题,实现的数据平面的一致性状态迁移。不依靠控制器,只在数据平面进行状态迁移。
- 解决问题的关键点:借用数据流当作状态传输的信使,让数据流从源NF那里记录并携带状态的值,把它们送到目标NF那里。状态在源交换机 是存在寄存器的cell里面;一个数据报把这个数据读到它自己身上,然后带到目的交换机。
The key idea is to have each packet record the state values it reads at the source data plane, carry them to the destination device (through piggybacking), and override the memory locations it reads there.
Swing State: Consistent Updates for Stateful and Programmable Data Planes的更多相关文章
- A Survey on the Security of Stateful SDN Data Planes
论文摘要: 本文为读者提供新兴的SDN带状态数据平面,集中关注SDN数据平面编程性带来的隐患. I部分 介绍 A.带状态SDN数据平面的兴起 B.带状态数据平面带来的安全隐患 引出带状态数据平面的安全 ...
- Packet Transactions: High-level Programming for Line-Rate Switches
Name of article:Packet Transactions: High-level Programming for Line-Rate Switches Origin of the art ...
- Flink - Working with State
All transformations in Flink may look like functions (in the functional processing terminology), but ...
- Important Programming Concepts (Even on Embedded Systems) Part V: State Machines
Earlier articles in this series: Part I: Idempotence Part II: Immutability Part III: Volatility Part ...
- Low-overhead enhancement of reliability of journaled file system using solid state storage and de-duplication
A mechanism is provided in a data processing system for reliable asynchronous solid-state device bas ...
- "Principles of Reactive Programming" 之 <Persistent Actor State>学习笔记
这是<Pinciples of Reactive Programming>week6的最后一课. 为什么需要把actor的状态持久化? 如果actor没有状态,那么在任何实时,这个acto ...
- Q: Is Consul eventually or strongly consistent?
强一致 最终一致 Frequently Asked Questions - Consul by HashiCorp https://www.consul.io/docs/faq.html Q: Is ...
- PatentTips – GPU Saving and Restoring Thread Group Operating State
BACKGROUND OF THE INVENTION The present invention relates generally to single-instruction, multiple- ...
- Flink之Stateful Operators
Implementing Stateful Functions source function的stateful看官网,要加lock Declaring Keyed State at the Runt ...
随机推荐
- JQuery模拟网页中自定义鼠标右键菜单
题外话.......最近在开发一个网站项目的时候,需要用到网页自定义右键菜单,在网上看了各路前辈大神的操作,头晕目眩,为了达到目的,突然灵机一动,于是便有了这篇文章. 先放个效果图(沾沾自喜,大神勿喷 ...
- 利用RTTI实现Delphi的多播事件代理研究
我们知道Delphi的每个对象可以包含多个Property,Property中可以是方法,例如TButton.OnClick属性.Delphi提供的仅仅是 一对一的设置,无法直接让TButton.On ...
- C服务程序模板
在DoWork中添加自己的代码. 服务安装: sc create srvdemo binpath= "F:\srvdemo.exe" 服务启动:sc start srvdemo ...
- 微信小程序 request请求封装
在utils文件夹新建文件utils.js,封装代码如下: 小程序升级后内部不自带Promise方法,需外部引入Promise方法 var sendRequest = function (url, ...
- 浅谈style.height、clientHeight、offsetHeight、scrollHeight
先分别介绍以下,以下资料来自MDN HTMLElement.offsetHeight 是一个只读属性,它返回该元素的像素高度,高度包含该元素的垂直内边距和边框,且是一个整数. Element.clie ...
- 20155222 2016-2017-2 《Java程序设计》第3周学习总结
20155222 2016-2017-2 <Java程序设计>第3周学习总结 教材学习内容总结 要产生对象必须先定义类,类是对象的设计图,对象是类的实例. 数组一旦建立,长度就固定了. 字 ...
- 20155302 2016-2017-2 《Java程序设计》 第1周学习总结
20155302 2016-2017-2 <Java程序设计> 第1周学习总结 教材学习内容总结 浏览全书提出问题 chapter1:怎么保证现在系统在用最高版本的JRE呢?在哪里查看及升 ...
- 20155307 2016-2017 《Java程序设计》第三次实验报告
(一)敏捷开发与XP 敏捷开发是一种以人为核心.迭代.循序渐进的开发方法."敏捷流程"是一系列价值观和方法论的集合.从2001年开始,一些软件界的专家开始倡导"敏捷&qu ...
- 「PKUWC2018」Minimax
题面 题解 强势安利一波巨佬的$blog$ 线段树合并吼题啊 合并的时候要记一下$A$点权值小于$l$的概率和$A$点权值大于$r$的概率,对$B$点同样做 时空复杂度$\text O(nlogw)$ ...
- STM32运行FreeRTOS出现prvTaskExitError错误死机
文件port.c prvTaskExitError();任务退出错误,一个可能在任务里面写了return,另一个可能任务切换退出问题,入栈和出栈的时候出了问题. static void prvTask ...