我认为您所描述的更像是针对不同访问模式(顺序、批处理与随机访问)进行优化之间的区别,而不是纯粹意义上的吞吐量和延迟之间的区别。 当我想到一个高延迟系统时,我并不是在考虑访问哪个记录,而是考虑访问任何记录都会有很高的开销。从hdfs中访问文件的第一个字节也可能需要大约一秒钟或更长的时间。 如果你更倾向于定量,你可以考虑访问一系列记录所需的总时间 T(N)=aN+b . 在这里, a 表示吞吐量,以及 b 表示延迟。对于hdfs这样的系统,n通常非常大 b 变得无关紧要,取舍低 a 是有益的。与此形成对比的是低延迟数据存储,在这种存储中,每次读取通常只访问一条记录,然后针对低延迟进行优化 b 这样更好。 话虽如此,你的说法并不错误;确实如此,通常情况下,批访问存储具有高延迟和高吞吐量,而随机访问存储具有低延迟和低吞吐量,但严格来说并非总是这样。
2条答案
按热度按时间olqngx591#
我认为您所描述的更像是针对不同访问模式(顺序、批处理与随机访问)进行优化之间的区别,而不是纯粹意义上的吞吐量和延迟之间的区别。
当我想到一个高延迟系统时,我并不是在考虑访问哪个记录,而是考虑访问任何记录都会有很高的开销。从hdfs中访问文件的第一个字节也可能需要大约一秒钟或更长的时间。
如果你更倾向于定量,你可以考虑访问一系列记录所需的总时间
T(N)=aN+b
. 在这里,a
表示吞吐量,以及b
表示延迟。对于hdfs这样的系统,n通常非常大b
变得无关紧要,取舍低a
是有益的。与此形成对比的是低延迟数据存储,在这种存储中,每次读取通常只访问一条记录,然后针对低延迟进行优化b
这样更好。话虽如此,你的说法并不错误;确实如此,通常情况下,批访问存储具有高延迟和高吞吐量,而随机访问存储具有低延迟和低吞吐量,但严格来说并非总是这样。
jdg4fx2g2#
我要试试这个。
低延迟数据访问:我按enter键(或submit按钮),最多在几秒钟内得到结果。我的数据库查询时间应该是次秒。高吞吐量的数据:我想扫描数百万行的数据和计数或总和一些子集。我预计这将需要几分钟(或更长的时间取决于复杂性)才能完成。想想更多的批式工作。
注意:这实际上也是一个map/reduce问题。m/r作业的设置和处理需要一些开销。现在有几个项目正在朝着降低延迟的数据访问方向发展。
此外,hdfs将数据存储在块中,并将它们分布在多个节点上。这意味着(几乎)总是需要一些网络数据传输来获得最终答案,这会“减慢”速度,这取决于吞吐量和其他各种因素。
希望有帮助。:)