14

我试图用我自己的话来定义 HDFS 中的高吞吐量与低延迟意味着什么,并提出了以下定义:

HDFS 经过优化,可以更快地访问批量数据集(高吞吐量),而不是该数据集中的特定记录(低延迟)

是否有意义?:)

谢谢!

4

2 回答 2

28

我认为您所描述的更像是针对不同访问模式(顺序、批处理与随机访问)进行优化之间的区别,而不是纯粹意义上的吞吐量和延迟之间的区别。

当我想到一个高延迟系统时,我不是在考虑我正在访问哪条记录,而是在考虑访问任何记录都会产生高昂的开销成本。即使从 HDFS 访问文件的第一个字节也可能需要大约一秒钟或更长时间。

如果您更倾向于量化,您可以考虑访问多个记录 N 所需的总时间为T(N)=aN+b. 在这里,a表示吞吐量,并b表示延迟。对于像 HDFS 这样的系统,N 通常太大以至于b变得无关紧要,并且有利于低的权衡a是有益的。相比之下,低延迟数据存储通常每次读取只访问一条记录,然后针对低进行优化b会更好。

话虽如此,您的陈述并没有错。确实如此,批量存取存储通常具有高延迟和高吞吐量,而随机存取存储具有低延迟和低吞吐量,但严格来说并非总是如此。

于 2013-05-23T21:26:10.277 回答
4

我会试试这个。

低延迟数据访问:我按下回车键(或提交按钮),我希望最多在几秒钟内得到结果。我的数据库查询时间应该是亚秒级。数据的高吞吐量:我想扫描数百万行数据并对一些子集进行计数或求和。我预计这将需要几分钟(或更长,具体取决于复杂性)才能完成。想想更多的批处理风格的工作。

警告:这实际上也是一个 map/reduce 问题。M/R 作业的设置和处理需要一些开销。现在有几个项目致力于降低延迟数据访问。

此外,HDFS 将数据存储在块中,并将它们分布在许多节点上。这意味着(几乎)总是需要一些网络数据传输才能获得最终答案,并且这会“减慢”速度,具体取决于吞吐量和各种其他因素。

希望有帮助。:)

于 2014-01-05T22:03:01.880 回答