我们考虑具有n个节点的大规模网络,其中拥有k个信息包(例如,已经以某种其他方式感知或收集了k个信息包)。 在网络节点非常的脆弱,因为有限的供能和环境差,它希望在整个网络中分布所获取的信息。因此,n个节点中的每一个存储一个(可能是编码的)数据包,原始的k个源数据包随后可以通过计算简单的方式从任何(1 +E)k节点中恢复,并且对于某些小small> 0。
提出两个分布式算法为了解决这个问题。
1、随机的walks
提出了一种使用带有陷阱的随机游走的解决方案。 为了获得所需的代码度分布,他们采用了Metropolis算法来指定随机游走的过渡概率。
2、喷泉码
我们开发了两种基于简单随机游动和Fountain代码的分布式算法来解决此问题。 与以前开发的所有方案不同,我们的解决方案是真正分布式的,也就是说,节点不知道网络中的n,k或连接性,除了在自己的邻居中,它们不维护任何路由表。 在第一种算法中,所有传感器都具有n和k的知识。 在第二种算法中,每个传感器通过随机游走传播估算这些参数。
我们对这两种算法的通信/传输和编码/解码复杂度进行了分析,并提供了广泛的仿真结果。
贡献:
1、两个新的算法,简单的随即游走和LT code,
跟谁比:
传统的提前知道n 和 k的情况。

这些算法更简单,更健壮,并且约束更少。
2、分析了传输、编码、解码。
3、实验结果
度分布的概率(从图片中可以看到根据不同的函数得到的的degree不同)

数据更新
考虑了数据更新的问题。
数据更新一般情况下是整个ec过程中比较难控制的变化量,一般会增加写放大、IO传输等。
如果我们假设存储节点保留接受数据包的ID,那么问题就变得简单了。 我们只是随机漫步,并检查即将到来的数据包的ID。 假设节点u跟踪其接受的数据包的所有ID。 如果即将收到的数据包的ID已包含在u的ID列表中,则u接受更新的消息。 否则,u将转发生存时间计数器递增的数据包。 如果此计数器达到阈值,则该数据包将被丢弃。 以下步骤描述了更新方案:
如果每个node都记录了一个数据包的id表
如果更新的数据包在这个id表里面,则这个node接受更新。
否则这个node转发数据包并增加time-to-live的计数。
如果计数达到了阈值,直接丢弃。
过程:
1、si节点准备一个分组
:新老的数据包、id和counter。
同样,si为第一个更新的数据包添加一个初始化为1的更新计数器令牌。
因此,我们假设将token设置为1时会发生以下步骤。(在ID表中没有找到的时候)
si随机的选择一个邻居节点u,并传递这个数据包k。
2、编码过程:
节点 u检查,如果这个数据包k是更新的还是第一次过来的包。 如果它是第一次数据包,则将按照LTCDS-I算法1所示接受,转发或丢弃它。如果packetsi是更新的数据包,则节点u将检查IDsi是否已包含在其接受列表中。如果是,则它将如下更新其值yu。
若果不是,他将添加这个更新的包,并给counter加1.
这个包在counter达到阈值的时候将会被丢弃。counter要足够大,为了能够查找到所有的老数据都更新。
(其不是直接等于节点数刚好???)
3、存储过程
如果所有节点都完成了其值yi的更新。 可以运行解码阶段来检索原始数据并更新信息。
现在,由于我们每次更新仅运行一次简单的随机游走,因此如果h是更新其值的节点数,则得到以下结果。

性能评估

测了两个值:
成功解码的概率
解码速率:解码率η是查询的节点数h和源数k之间的比率
图3:

图几 X y 那几条线
3 解码率变化(1-2.5) 成功解码概率 节点 n和原始数据k的不同组合(n=100、200 , k=10,20,40)
4 解码率变化(1-2.5) 成功解码概率 节点 n和原始数据k的不同组合(n=200、500、1000)
5 参与的n(500-5000) 成功解码概率 解码率的变化(1.4、1.7)
6 系统参数c的变化(0-5,步长0.5) 成功解码的概率 节点 n和原始数据k的不同组合(n=500,k=50;n=1000,k=100)
7 解码速率(1-2.5) 成功解码的概率 不同的方法不同的n和k
8 解码速率(1-2.5) 成功解码的概率 不同的方法不同的n和k中号
11 系统参数c(0-60,步长10) 成功解码的概率 不同n不同k,届码率不同

结论:
与以前的解决方案相比,这些算法更简单,更健壮,并且约束更少,而以前的解决方案需要了解网络拓扑,节点的最大程度或知道n和k的值[4、6、9、10、11]。 我们计算了这些算法的计算编码和解码复杂度,并以数量较少的k个和n个节点模拟了它们的性能。 我们表明,如果一个节点仅计算访问时间和数据包间的时间,则可以成功地估计源的数量和节点的总数。
我们未来的工作将包括基于Raptor代码的传感器网络分布式网络存储算法。 我们还计划为本文中显示的结果提供理论结果和证明,其中有限的空间不是问题。 我们的n和k值估算算法很有希望,我们计划研究其他网络模型,其中该算法是有益的并且可以利用。

Fountain Codes Based Distributed Storage Algorithms for Large-scale Wireless Sensor Networks(B会2008)相关推荐

  1. Reading Ingestion —— Bigtable: A Distributed Storage System for Structured Data

    Bigtable: A Distributed Storage System for Structured Data \space Acquirement 收获 Bigtable's Data Mod ...

  2. Bigtable: A Distributed Storage System for Structured Data_中文翻译

    Bigtable: A Distributed Storage System for Structured Data (作为分布式数据库的经典文献,个人在学习的过程中参考其它译文进行翻译: 参考译文: ...

  3. 《Bigtable:a distributed storage system for struct data》笔记

    Bigtable 可以说是log-structed以及page-oriented 两种存储引擎的整合体,我们性能优越的单机存储引擎leveldb和rocksdb就是基于google的bigtable存 ...

  4. PacificA: Replication in Log-Based Distributed Storage Systems 论文理解

    PacificA: Replication in Log-Based Distributed Storage Systems 论文理解 思考:论文有个结论说,相比 GFS 具有中心化的实体,Pacif ...

  5. Bigtable: a distributed storage system for structured data论文阅读

    Bigtable: a distributed storage system for structured data 1.Data Model 一个Bigtable集群是运行Bigtable软件的一组 ...

  6. Twelfth3: Keepalived highly available Ceph deployed distributed storage | Cloud computing

    云计算专题目录 Catalogue | Cloud computing Twelfth3: Keepalived highly available & Ceph deployed distri ...

  7. [Paper Reading] Bigtable: A Distributed Storage System for Structured Data

    目录 ===== 1. Introduction ===== 2. Data Model ===== 2.1 Row ===== 2.2 Column Family ===== 2.3 Timesta ...

  8. Bigtable: A Distributed Storage System for Structured Data

    Bigtable: A Distributed Storage System for Structured Data    Bigtable是一种分布式存储系统,用于管理结构化数据,旨在扩展到非常大的 ...

  9. Introducing DataFrames in Apache Spark for Large Scale Data Science(中英双语)

    文章标题 Introducing DataFrames in Apache Spark for Large Scale Data Science 一个用于大规模数据科学的API--DataFrame ...

最新文章

  1. python语言有几种编程方式_零基础自学python语言,有哪几种方法?龟叔说:这套教程带你入门...
  2. 海量数据处理专题(六)——双层桶划分
  3. Boost:bimap双图的突变的测试程序
  4. java调用wcf_详解JAVA调用WCF服务的示例代码
  5. warning no newline at the end of file
  6. S1:动态方法调用:call apply
  7. jQuery实现笔记1-构造器
  8. 流式套接字:基于TCP协议的Socket网络编程(案例1)
  9. 友勤发布2019年Oracle P6软件培训公开课计划
  10. 下载视频 用IDM下载的视频花屏
  11. android 接收视频流,Android 获取高清(4K)视频流图片
  12. Linux中编译mdio命令,linux网络设备—mdio总线
  13. python爬取相册_如何用python实现爬取微博相册所有图片 - 收获啦
  14. 图像一阶导数和二阶导
  15. php 应用截图,PHP应用:php使用CutyCapt实现网页截图保存的方法
  16. 性能测试指标及常用监控工具
  17. 阿里云服务器学生有什么优惠?阿里云学生机申请流程
  18. Python免费字幕翻译(google)
  19. uniapp拍卖商城源码功能解说
  20. 【无机纳米材料科研制图——OriginLab 0201】Origin光谱图、曲线图绘制

热门文章

  1. 2014-2015 ACM-ICPC, Asia Tokyo Regional Contest
  2. (二)Granfana----监控报警(mysql,rabbmitMQ,redis,TiDB),开放API,其他配置
  3. 【cocos2d-x 手游研发小技巧(2)循环无限滚动的登陆背景】
  4. 【行人惯性导航】关于行人导航中IMU位姿推导的知识点及相关代码
  5. C++设计模式21:策略模式
  6. Iowait的成因、对系统影响及对策
  7. 绝地求生画质模糊画面不清楚一键优化工具
  8. 资源分享 | 平面设计 | 平面设计视频教程
  9. 基于stm32的非接触式物体尺寸形态测量仪(改进版)
  10. React Native 开发iOS真机调试