Google が 1PB のデータを MapReduce でソート

おもしろい指摘。

Google が 1PB のデータを MapReduce でソート

 

Google Blog に Sorting 1PB with MapReduce という記事がありました。

内容は要するに MapReduce を使うことで、

1TBのデータを1000台のマシンで68秒
1PBのデータを4000台のマシンで6時間2分

でソートできた(データは10億個と1兆個の、100バイトのファイル)、ということを言ってるんですが、ふと思いついて1ノードあたりのソート時間を計算してみました。

1) 1TB=1024GB=1024*1024 MBだとすると、
1台あたり1GB, 1GB/68=15.05MB/秒

2) 1PB=1024PB=1024*1024 GBだとすると、
1台あたり262.1GB, 262.1GB/362分 = 12.35MB/秒

手元の機器で1GBのファイルを作って単にソートしたところ210秒(=4.76MB/秒)、10000個の1000バイトのファイルで20秒(=1/100000個)なので、そもそも、1台あたりのパフォーマンス速くね?

いちおう Athlon64 2GB(DualCore)なマシンなので、そんなに遅いマシンでも無いと思うんだけど、何か他に隠してるポイントがあるような気がするなぁ…。ソートは普通の GNU sort だけど、100byteファイルだとそこがネックにはならないと思うし。