1 / 35

Peer-to-Peer Streaming Using A Novel Hierarchical Clustering Approach

Peer-to-Peer Streaming Using A Novel Hierarchical Clustering Approach. 陈昴. 提纲. 解决的问题 特点 树的表示 规则 控制协议 Peer 的加入,离开 Cluster 的分裂,合并 优化. 解决的问题. 1.peer 接收到 stream 的延迟 2.peer 的加入和离开对 system 的影响 3.peer 之间的通信 (control overhead) 应用层组播的衡量标准: Stress(defined per-link)

Télécharger la présentation

Peer-to-Peer Streaming Using A Novel Hierarchical Clustering Approach

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Peer-to-Peer Streaming Using A Novel HierarchicalClustering Approach 陈昴

  2. 提纲 • 解决的问题 • 特点 • 树的表示 • 规则 • 控制协议 • Peer的加入,离开 • Cluster的分裂,合并 • 优化

  3. 解决的问题 • 1.peer接收到stream的延迟 • 2.peer的加入和离开对system的影响 • 3.peer之间的通信(control overhead) 应用层组播的衡量标准: • Stress(defined per-link) 每条底层链路上重复发送的相同packet的数量 • Stretch(defined per-member) peer在组播树中的路径长度:直接从server连接到peer的长度

  4. 解决的问题 • 特点 • 树的表示 • 规则 • 控制协议 • Peer的加入,离开 • Cluster的分裂,合并 • 优化

  5. 特点 • 1.每个peer的degree是O(k) • 2.树高度是logkN • 3.failure recovery不会扩散, 只需要与O(k)个peer通信,不用增大server的压力 • 4.一个peer的control info最多需要与O(k*logkN)个peer交互, 但是平均下来只有O(k)个。 • 5.新peer加入之后,组播树的规则和cluster size要保证

  6. 解决的问题 • 特点 • 树的表示 • 规则 • 控制协议 • Peer的加入,离开 • Cluster的分裂,合并 • 优化

  7. 树的结构: cluster size在[k,3k-1]之间,由相互比较接近的peers组成。 *上限是3k-1而不是2k-1的原因: 由于cluster的split和merge代价较大,所以给它们留出了些 ”buffer” 。如果是2k-1很可能频繁的发生split和merge。 cluster head和vice-head是cluster的中心(为了join的peer很容易找到自己在hierarchy中的位置),Li层的head加入Li+1。 Head收集cluster的控制信息,负责组播树的调整。比如join,split,merge都要通过head来操作。 Vice-head是真正给其他peers发送data stream的节点。它负责自己cluster内non-head节点的输入。它自己的输入来自上层的non-head节点或者vice-head节点。

  8. 树的表示:

  9. Stream的传输:

  10. 传统view:

  11. 解决的问题 • 特点 • 树的表示 • 规则 • 控制协议 • Peer的加入,离开 • Cluster的分裂,合并 • 优化

  12. C-Rule • 1.peer不在最高层不能传入传出stream • 2.non-head peer只能从他的vice-head接收 *用head直接传输stream会导致head degree的阶上升到O(klogkN)。而且head主要负责处理control信息。 • 3.vice-head从他的一个sibling head得到资源 *从sibling head得到资源的结果是有些高层的peer在传统view里看是没有子节点的。因为有些高层节点由于自身网络状况限制不适合为别的peer提供stream

  13. 定理1: 组播树peer的最大度数是6k-3(vice-head可能达到)。 • 定理2: 组播树的高度至多是2*logkN+1(最长的path中所有的vice-head的outlink都是同层的non-head clustermate)

  14. 解决的问题 • 特点 • 树的表示 • 规则 • 控制协议 • Peer的加入,离开 • Cluster的分裂,合并 • 优化

  15. 控制协议 • Peer需要与clustermate,children,parent交互。 • to non-head clustermate: [degree] • to cluster-head: [该peer负责给哪些clustermate传输数据该peer负责给哪些sibling cluster的vice-head传数据] • to children,parent: [degree,Reachable(X),Addable(X)]

  16. 定理3: control overhead至多是O(klogkN): 最多有(j+1)(3k-1)个clustermates和6k-3个children 平均是O(k): peer的highest layer是j的可能性最多有1/k^j。 平均的代价=∑j∈ [0,H-1] (1/k^j)(j(3k-1)+9k-3)) --> O(k)

  17. 解决的问题 • 特点 • 树的表示 • 规则 • 控制协议 • Peer的加入,离开 • Cluster的分裂,合并 • 优化

  18. Peer join算法: join(P,X) if(X is layer-0 vice-head) add P to the cluster of X Make P a new child of X else if(Addable(X) ) select a child Y[where Addble(Y) and D(Y)+d(Y,P) is min] join(P,Y) else select a child Y[where Reachable(Y) and D(Y)+d(Y,P) is min] join(P,Y)

  19. D(Y)是从server到Y的delay d(Y,P)是从Y到P的delay *不用判断X是否是Reachable的: 只有Reachable的peer能够从parent那里得到join的消息 • 定理4: join的overhead是O(klogkN) *因为2个select child操作的代价最多是6k-3,树的高度最多是2logkN+1

  20. Peer depart过程: 1.parent removes link to X 2.children find a new parent 3.所有X的layer-i cluster(0<=i<=j-1)找到一个新head 4.如果X是layer-j那个cluster的vice-head,那么为这个cluster找个新的vice-head (该cluster的head负责寻找) • 定理5: 一次fail导致重新连接的peer个数最多是6k-2

  21. 原图:

  22. 解决的问题 • 特点 • 树的表示 • 规则 • 控制协议 • Peer的加入,离开 • Cluster的分裂,合并 • 优化

  23. Cluster split过程: 从旧的cluster中分出一个新的cluster,新cluster的head与旧的head一样从j+1层的vice-head节点得到stream。 新cluster的vice-head从旧vice-head的parent得到stream。 挑选新cluster的peer: • j=0: 将{X0,...Xn}按照其delay从大到小排序,前一半组成新的cluster中,X1和X2分别是新的head和vice-head (理由是后一半的delay短,也就是说到原来的vice-head距离比较小;而选择X1,X2是可以将原来很高的delay改变很多)

  24. 0<j<H-1: *定义bool变量xil,=1表示Xi是Xl在layer(j-1)的vice-head的parent。 (根据C-rulexii是0) 1.将{X1,...Xn}分成2组,满足:|U|,|V|都在[k,3k]之间,且∑Xi∈U,Xl∈V ( Xil+Xli ) 值最小。 *这样保证了reconnect的数量最少 2.如果xil=1,且Xi,Xl分别在U,V中,则重新为Xl在layer(j-1)的vice-head在V中找个新的parent。 U中同样操作。 3.选择新的head and vice-head of V *选择degree最少的peer作为head和vice-head,因为head会将他的children转移给其他clustermate,而vice-head会给它的clustermates提供stream,都需要自己原来的degree比较少

  25. j=H-1: 前3步同上; 4.由于在最高层server既是head又是vice-head,所以在split之前server会向lay(j-1)的peer提供stream。在split之后,server会被提高到layer(H),所以不能继续向lay(j-1)的peer直接提供stream,它们会转而从新的vice-head来获取stream • 定理6: split的overhead最大值是O(k)

  26. Split的另一种考虑方式: 从划分后组内peers之间的距离来决定。 给定一组peers,以及两两间的”距离”,需要将它们分成k组,保证组内的最大”距离”最小化。这个问题就是带有size限制的k-center问题(NP-hard) • 近似解: head将其分成2组相同大小的cluster,并保证组内”最大距离”最小化。如果达不到size要求,继续split。

  27. Cluster merge过程: 合并从上到下 合并的两个cluster的head和vice-head分别为:Xu,Xv和Yu,Yv • 若Xu是layer(j+1)的head: 1.Xu和Yv分别是新cluster的head和vice-head,其他的U+V中的peer都reconnect到Yv 2.Xv不能在layer(j+1)中再次出现,于是它原来的children需要寻找新的parent 3.如果Xv是原来layer(j+1)的vice-head,Xu负责寻找新的来代替(这里Xu优先于Xv的原因是作为j+1层的head,Xu很有可能可以在j+2,j+3层都存在,替换掉Xu影响会很大)

  28. 若Xu是layer(j+1)的vice-head,同上。 • 若Xu和Xv都不是layer(j+1)的head: 1.在Xu和Xv中,选取高degree的节点作为U+V的head,Xu接管原来Xv的children 2.从Yu和Yv中,选取高degree的节点作为U+V的vice-head 3.如果原来Yv是Xu的children,则为其选取新的parent(假设选取的是Xu和Yv) • 定理7:merge的最大代价为7k (最多需要reconnect |U|+|V|+|Xu或者Xv在layer(j-1)的children <= k+3k+3k)

  29. 解决的问题 • 特点 • 树的表示 • 规则 • 控制协议 • Peer的加入,离开 • Cluster的分裂,合并 • 优化

  30. Load balancing算法: 除了degree还要考虑peer的bandwidth因素 For(i=1;i<=m;i++) select a non-head clustermate Y: Y is not the head of Xi; (dx/Bx-dy/By)^2 – ((dx-1)/Bx-(dy+1)/By)^2 > 0 取上式的最大值 if such Y exists Redirect Xi to Y Update dx and dy accordingly

  31. 该算法为了减小X和Y的load之间的difference *每调用一次算法的代价是3k-1,经常调用会导致peer频繁reconnect • 于是采取当一个peer的load大于一个临界值△的时候调用 • △的选取: 如果一个cluster除了head之外有X1...Xn这n个节点的话,那么该cluster总共的degree应该是2n。如果load合理分布,load(Xi)=2n*Bi/B 其中B是Xi带宽之和。 △可以根据这个数进行估计,比如double

  32. delay shortening: 主要通过周期性的选取新的vice-head来做到。 扩展control protocal,实现每个peer定时测量其到其他所有non-head clustermates的delay,然后将这些delay的平均值传送给head,由head选取新的vice-head

More Related