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


基于控制平面实现状态迁移存在的问题(为什么状态迁移不能通过控制器):

  1. 目前的状况,状态是以以线速率更新(可以达到Tbps),如果以这个速率给控制器发送,基于软件实现的控制器肯定是应付不过来的。这样就会增加巨大的处理时延,造成状态迁移的不一致性,这对于很多的网络应用是不允许发生的。
  2. 控制器可能不会完整的知道那些待迁移的状态的位置(它只知道一部分,造成那些不被知道的状态不能在第一时间被迁移)。因为有些状态位置信息是根据运行时因素决定的,但是运行时因素是不能被控制器访问的,这就造成了控制器不能精准的定位所有待转移状态的位置。
  3. 数据平面状态信息可以在多条流量之间共享,借用多条flow一起实现状态迁移,可以减少状态迁移的时延,避免不一致性。可惜的是,这些可被利用的flow是根据运行时因素决定的,控制器不能访问交换机的运行时因素。

Swing State:

  1. 解决了以上所有的问题,实现的数据平面的一致性状态迁移。不依靠控制器,只在数据平面进行状态迁移。
  2. 解决问题的关键点:借用数据流当作状态传输的信使,让数据流从源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的更多相关文章

  1. A Survey on the Security of Stateful SDN Data Planes

    论文摘要: 本文为读者提供新兴的SDN带状态数据平面,集中关注SDN数据平面编程性带来的隐患. I部分 介绍 A.带状态SDN数据平面的兴起 B.带状态数据平面带来的安全隐患 引出带状态数据平面的安全 ...

  2. 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 ...

  3. Flink - Working with State

    All transformations in Flink may look like functions (in the functional processing terminology), but ...

  4. 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 ...

  5. 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 ...

  6. "Principles of Reactive Programming" 之 <Persistent Actor State>学习笔记

    这是<Pinciples of Reactive Programming>week6的最后一课. 为什么需要把actor的状态持久化? 如果actor没有状态,那么在任何实时,这个acto ...

  7. Q: Is Consul eventually or strongly consistent?

    强一致  最终一致 Frequently Asked Questions - Consul by HashiCorp https://www.consul.io/docs/faq.html Q: Is ...

  8. PatentTips – GPU Saving and Restoring Thread Group Operating State

    BACKGROUND OF THE INVENTION The present invention relates generally to single-instruction, multiple- ...

  9. Flink之Stateful Operators

    Implementing Stateful Functions source function的stateful看官网,要加lock Declaring Keyed State at the Runt ...

随机推荐

  1. ionic ios 打包发布流程

    1.ionic cordova resources ios    在windows下 生成ios资源包 2.拷贝ionic 项目到mac电脑 不用拷贝platforms 并解压 3.正常情况下wido ...

  2. TP框架图片压缩/上传

    <-- 在前端的代码 --><form action="{:url('index/user/personal')}" method="post" ...

  3. Delphi在Android下通过WiFI进行调试

    如果我们需要调试USB程序且Android设备只有一个USB口,那么可以通过WiFi来调试程序,这样USB口就可以用了. 大致步骤如下: 1.在有root权限的Android设备里安装“Wifi AD ...

  4. Hadoop生态新增列式存储系统Kudu

        Hadoop生态系统发展到现在,存储层主要由HDFS和HBase两个系统把持着,一直没有太大突破.在追求高吞吐的批处理场景下,我们选用HDFS,在追求低延迟,有随机读写需求的场景下,我们选用H ...

  5. pow函数(数学次方)在c语言的用法,两种编写方法实例( 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值)

    关于c语言里面pow函数,下面借鉴了某位博主的一篇文章: 头文件:#include <math.h> pow() 函数用来求 x 的 y 次幂(次方),x.y及函数值都是double型 , ...

  6. Python3 urllib 爬取 花瓣网图片

    点我去我的github上看源码 **花瓣网是动态的,所以要抓包分析,,但我真的累的不行,不想写教程了,我源码里有注释

  7. 20155214 2016-2017-2 《Java程序设计》第3周学习总结

    20155214 2016-2017-2 <Java程序设计>第3周学习总结 教材学习内容总结 Chapter4 一个原始码中可以有多个类定义,但只能有一个公开类,且文档中的主文档名必须与 ...

  8. 20155217 实验四 Android程序设计

    20155217 实验四 Android程序设计 任务一: 完成Hello World, 要求修改res目录中的内容,Hello World后要显示自己的学号. R.java文件是定义该项目所有资源的 ...

  9. 20155337 《Java程序设计》实验一(Java开发环境的熟悉)实验报告

    20155337 <Java程序设计>实验一(Java开发环境的熟悉)实验报告 一.实验内容及步骤 (一)使用JDK编译.运行简单的java程序 ·命令行下的程序开发 我在windows下 ...

  10. 【BZOJ4543】Hotel加强版

    [BZOJ4543]Hotel加强版 题面 bzoj 洛谷 $ps:$在洛谷看题在bzoj交... 题解 我们分析一下这个问题,要怎么样的点才满足三点距离两两相等呢? 1.存在三个点有共同的$LCA$ ...