
366 12 章 ビッグデータ:スケールを追求
る。締切後、今度はハッシュ化されていない入札額を送る。入札額が正しい値になっているかどうか
を疑
う人は、公開された入札額をハッシュし、最初に提出されたハッシュコードと比較すればよい。
ここで大切なのは、そのハッシュ関数で衝突を簡単に作れないことである。つまり、同じコードに
ハッシュされる別のメッセージをすぐに作れるようでは困る。そうでなければ、締切後に最初のメッ
セージとは異なる第 2 のメッセージを送って、締切後に入札額の変更ができてしまう。
12.3.3 記憶階層構造の活用
ビッグデータアルゴリズムは、CPU バウンドではなく、I/O バウンドまたは帯域幅バウンドになること
が多い。これは、データが必要なときにデータが届くのを待つためにかかるコストの方が、アルゴリズムに
従ってデータを操作して結果を得るためにかかるコストよりも高いという意味である。最近のディスクで
も、1 テラバイトのデータを読み出すためには 30 分かかる。優れた性能を引き出すためには、高度なアル
ゴリズムよりも賢いデータ操作の方が重要なのだ。
データを分析で使えるようにするためには、計算システムにデータを格納しておく必要がある。データ格
納用装置には、速度、容量、レイテンシ(反応時間)が大きく異なる数種類のものがある。記憶階層構造の
階層が異なると、性能差が大きく変わるので、RAM の抽象化では記憶階層構造を無視することはできない。
実際、ディスクとキャッシュメモリのアクセススピードの ...