Infocom‘18’ university of Virginia
Incast congestion problem:大量的请求同时到达前端服务器,或是数据中心服务器同时向外发送大量的数据,造成交换机或路由器缓冲区占满,从而引发大量丢包。TCP重传机制又需要等待超时重传,增加了整个系统的时延,同时大大削减了吞吐量。
创新点:
1)聚合热点数据对象。动态的将热点话题的数据对象聚集在少数几个服务器上,这样前端服务器和后端服务器的连接数量就减少了,同时也降低了数据查询时延。2)相关数据对象聚合。周期性将相关数据对象汇聚为一组,并将同一组分配到相同的服务器上存储。这样,查询时,就会将查询请求引入到少数几个服务器上。3)减少排队时延。提出排队时延减少算法。算法将高优先级分配给具有更小尺寸,更长等待时间的数据对象,优先传输这些数据,从而减少的平均响应时间。
相关工作:
链路层解决方案:1)QCN:数据中心网络。拥塞部分关键为当拥塞发生时,采样数据包评估拥塞状态;应对部分关键为根据采样的包采取措施,恢复网络状态。缺点是需要改交换机,难以在实际中应用2)改进方案:采样所有数据包3)改进方案:根据发送速率进行流识别,进而调整每条流4)改进方案:将TCP数据包切分成更小尺寸,降低拥塞概率。
传输层解决方案:主要集中在改进TCP协议上。1)去除延时ACK机制(TCP中收到连续三个ACK包表示拥塞),执行重传计时器机制。2)ICTCP:通过实际吞吐量和期望吞吐量的比值调整接收窗口大小。当比率降低时,窗口大小增加,使用更多的可用带宽。3)DCTCP和MPTCP:根据目前网络状态计算出灵活的比率来调整窗口大小。4)多路径TCP:搭建多条TCP子流,利用多路径中的链路带宽。不同子流拥有不同的窗口大小。
应用层解决方案:核心思想为在两个连续请求之间引入时延。人为调度第二个请求的传输路径,降低同时连接到数据服务器的连接数量,避免拥塞。1)在连续的请求中插入一个单位时延,目标服务器在传输请求数据前等待一个固定的时间。2)传输路径重调度。将所有的数据请求汇聚在同一机架的有限数据服务器上。缺点:增加时延,不能满足用户需求。
PICC方案采用数据放置的思想,限制数据服务器和前端服务器的同时连接数量,也降低了相应时延。
设计和PICC系统:
拥塞发生原因在于在同一时间内前端服务器和数据服务器连接数量超出前端服务器的处理能力,造成大量的响应数据包丢失。PICC采取数据放置的思想,由于数据早已存储在数据库中,所以PICC只是在服务器之间传输数据。
A.热点数据对象汇聚(哪些是热点数据,存在哪些服务器中,怎么存):
(1)周期性汇聚数据。用历史访问频次估计下一时刻访问频次。前端服务器会记录每个访问周期内的访问数据的请求频次和存储这些数据的服务器编号。排序后,前θ个数据即为热点数据,前端服务器通知保存这些热点数据的服务器将数据转移到同一机架内指定的热点服务器上,前端服务器更新log信息。
(2)选择热点服务器。o表示数据对象,B表示数据对象的大小,F表示数据对象的访问频次。前端服务器计算每个机架内的最大权重的服务器即为热点服务器。若最大权重服务器的存储、计算、I/O、带宽等资源不能满足θ各热点数据的需求,则寻找次最大权重,直至寻找到满足条件的几个服务器作为热点服务器(注意,热点服务器可能不是单一的)。具体做法是,先确定一个热点服务器,当该服务器资源满了,再寻找下一个热点服务器。对于最大权重服务器没有被选为热点服务器,但热点数据原来就存储在该服务器的情况,采用挑选前几个最大权重服务器作为热点服务器作为解决方案。
(3)热点数据迁移。首先检查热点数据的存储位置是否为热点服务器中的一个,若是,跳到下一个;若不是,则将该数据迁移到同一机架中最近的热点服务器上。若发现所有热点服务器的存储条件均不能满足该热点数据的存储条件,则选择最大权重服务器作为存储位置。由于迁移过后,热点服务器的权重也会增加,所以几乎不可能出现热点服务器频繁更换的情况发生。
B.相关数据对象汇聚:将相关度较大的数据划分为同一组,将同一组数据分配到同一热点服务器上。
(1)怎样找相关数据对象。P表示周期内两个对象在时间片段t内同时被访问的频次,Q表示周期内两个对象在时间片段t内顺序被访问的频次。最后一项表示历史相关度的影响。计算完每两个数据对象的相关度后,建立G(V,E,C)图,顶点表示数据对象,边表示两者有相关性,C表示相关性的量化数值。利用最小割树算法将图分成最小割簇,每一簇数据就是相关数据对象,同一簇的数据对象存储在同一个服务器中。
(2)相关数据迁移。当簇中包含热点数据时,前端服务器在通知迁移热点数据到热点服务器时,也会通知簇中的其他数据对象的服务器将相关数据对象迁移到同一热点服务器中。当簇中不含热点数据时,前端控制器查找存储了最多该簇数据的服务器Si作为该组数据的存储位置,并通知其他服务器将该簇数据转移到该服务器。周期性更新。
C.排队时延减小(目标为最小化单个数据对象的平均排队时延和传输时延):根据数据对象大小和排队时间,为其设置不同的优先级,数据越小,排队时间越长的具有更高的优先级。
T表示数据对象的等待时间,B表示数据对象大小,M表示优先级值。为了增大等待时间对优先级的影响,用了等待时间的立方。论文中用了简单的数学计算证明调整优先级方案可以降低单个数据对象的排队时延和传输时延。考虑到对整个发送队列重排序会引入时延,则采用分段排序的思想,对前n个数据对象重排序。从整体上看,减小了单个数据对象的平均时延。
仿真性能评估
实验设置:仿真,拓扑为典型数据中心fat-tree结构。共4000台数据服务器,每个机架内放50台,共80个机架。每台边缘交换机的上下行链路带宽均为10Gbps,缓存大小为1000kb。每个数据对象,都有三份拷贝,随机分散到不同机架的不同服务器上。每个数据对象大小在【20b,1024b】范围内随机生成。数据中心内共100000个数据对象。
Yahoo!云服务基准(YCSB)来生成数据请求,这是一个测试存储系统性能的开源基准软件。请求到达服从YCSB设定的Zipfian分布。人为设置热点数据对象和相关数据对象的比例,重复多次试验。TCP超时重传设为1ms,丢包重传设为5个。
周期性汇聚的周期为5分钟,热点数据数量为1000.
对比试验:Baseline(无任何拥塞避免方案),TCP滑动窗口协议(TSM),ICTCP。ICTCP通过监测带宽利用率调整滑动窗口大小。ICTCP将总带宽分为两部分,一部分用来接收流量,预测带宽利用率。第二部分基于预测带宽利用率调整滑动窗口大小,从而更好的利用带宽并且不过度使用带宽,避免造成拥塞。在数据中心传输层解决方案中,ICTCP的性能表现要优于DCTCP。
性能参数:
1.查询时延(从前端服务器发送请求到前端服务器收到该请求的最后一个回复的时间)。两张图:数据查询时延的CDF(累计概率密度)图和数据查询速率(每小时内查询次数)和数据查询时延的关系图。
2.数据传输效率。导致机架间数据包传输的原因有两种:一是从数据服务器到前端服务器的数据对象的传输和重传,二是PICC额外引入的机架间数据重分配带来的数据传输。所以,机架间有越少的数据包传输就会有越多的带宽剩下,用于前端服务器和数据服务器的传输。两张图:前端服务器的下行带宽和机架间数据包数量的关系图,下行带宽和数据传输效率图。数据传输效率计算公式为:单个请求的所有数据大小/查询时延/前端服务器的下行带宽。结果是,其他三种对比方案的数据传输效率不随下行带宽的变化而变化,而PICC的数据传输效率随着下行带宽的增加而增加。
3.PICC方案的敏感性分析和开销分析。a)热点服务器数量与数据查询速率的关系图(逐渐增加)b)热点服务器的资源利用率(CPU和内存)和数据查询速率的关系图。3)不同热点数据数量门限θ值下,数据查询时延和查询速率的关系,下行带宽和机架内数据包数量的关系。
4)有无相关数据汇聚方案的PICC性能差异。分析了数据查询时延和数据查询速率的关系,机架内数据包数量和下行带宽的关系。
实验床性能评估:
在Palmetto(Palmetto Cluster. http://citi.clemson.edu/palmetto/index.html)平台实现。
未来工作:研究合适的参数值,例如θ,如何降低数据重分配的开销。
总结:论文写得逻辑非常清楚,创新点有三个,描述性也很强。但论文中有很多重复性的语句,整体不够饱满,语言描述值得借鉴。