Hadoopはどのように動くのか ─並列・分散システム技術から読み解くHadoop処理系の設計と実装

第2回並列データ処理系の歴史と重要性

はじめに

前回は、本連載の目的や、本連載で扱う並列データ処理の定義について説明しました。今回は、並列データ処理系の歴史や重要性について見ていきます。技術を学ぶうえで、その技術の歴史や重要性について理解しておくことはとても良いことですので、かんたんな読み物を読むつもりでお付き合いください。

並列データ処理系の進展

並列データ処理系における基本的なアルゴリズムや処理方式は、並列データベースと称される並列化された[1]データベースシステムにおける技術に基づいています。

並列データベースに関する研究・開発は、1970年代からの並列データベースマシン(Parallel Database Machine)1、2、3と称されるデータベース処理専用の並列計算機に遡ることができます。並列データベースマシンは、データ処理用途にカスタマイズされたプロセッサや記憶装置を用いていたため、必ずしも価格に見合った性能が得られなくなったことから、その後、汎用ハードウェアとその上で動作する並列データベースソフトウェアへと形を変えたものの、その過程において、1990年代の中盤頃までに、結合アルゴリズムの並列化方式や問い合わせ最適化方式などに関する数多くの研究・開発が行われてきました。

2000年代に入り、Netezza(現 IBM PureData)をはじめとするデータウェアハウス(DWH)アプライアンスの登場により、並列データ処理系は一般企業においても広く利用されるようになりました。さらにこの流れは、Google MapReduceのオープンソースクローンであるHadoopの登場により加速の一途を辿っているとみることができます。DWHアプライアンスやHadoopは、基本的には1990年代までの並列データベースの技術に基づいた並列データ処理系であると考えられるものの、ハードウェアの高性能化や新たな需要を踏まえ、その中核をなす技術は少しずつ進展を遂げつつあると考えられています。

並列データ処理系のアーキテクチャ

並列データ処理系におけるシステムアーキテクチャとしては、これまでさまざまなものが考案されてきましたが、おもに次の3つに大別することができます4⁠。

  • 共有メモリ型(シェアードメモリ)アーキテクチャ
  • 共有ディスク型(シェアードディスク)アーキテクチャ
  • 無共有型(シェアードナッシング)アーキテクチャ
図1 並列データ処理系のアーキテクチャ(P、M、Dはそれぞれ、P:プロセッサ、M:メモリ(主記憶装置⁠⁠、D:ディスクドライブ(二次記憶装置)を意味します)
図1 並列データ処理系のアーキテクチャ(P、M、Dはそれぞれ、P:プロセッサ、M:メモリ(主記憶装置)、D:ディスクドライブ(二次記憶装置)を意味します)

共有メモリ型のシステム図1:中においては、複数の計算機は1つのメモリシステムを共有し、また、共有ディスク型のシステム図1:右においては、複数の計算機は複数のディスクドライブなどの二次記憶装置から構成される1つのストレージシステムを共有します。一方、無共有型のシステム図1:左においては、複数の計算機はメモリシステムならびにストレージシステムを一切共有しません。

当然、それぞれのアーキテクチャにはほかと比べて優れている点があると考えられています。たとえば、共有メモリ型のシステムにおいては、メモリ空間が共有されているため、プログラミングが比較的容易であり、また、共有ディスク型のシステムにおいては、複数ディスク間の負荷分散が比較的容易であると考えられています。一方、無共有型のシステムは、共有資源への競合が少ないことから、高いスケーラビリティを有すると考えられています5⁠。

今日においては、DWHアプライアンスやHadoopなどをはじめとする多くの並列データ処理系が、無共有型のアーキテクチャを採用しています[2]⁠。本連載における並列データ処理系に関する説明は、おもに、この無共有型のアーキテクチャを対象とします。

並列データ処理系の重要性

並列データ処理系が広く利用されるに至るには、それなりの理由があるからでしょう。計算機システムを構成するハードウェア技術の潮流を見ると、その一端を知ることができます。

たとえば、プロセッサコアにおいては、その動作周波数の向上は2008年からほぼ停滞し6⁠、また、磁気ディスクドライブのレイテンシの低減は年率5%以下に留まっています7⁠。同様に、単一ハードウェアコンポーネントにおけるレイテンシ低減の停滞は、メモリモジュールならびにネットワーク装置を構成するハードウェアにおいても見られます8⁠。すなわち、これらの単一のハードウェアコンポーネントから構成される計算機システムにおいては、今後著しい性能向上は期待できないと考えられ、計算機システムの高性能化の実現には、複数のハードウェアコンポーネントを効率的に活用することが重要となると考えられます。

企業においては、たとえば共有メモリ型や共有ディスク型のアーキテクチャのような、ハードウェアを高密度に集積した大型システムが広く利用されている一方で、複数のコモディティサーバを高速なネットワークで接続した無共有型のクラスタシステムが利用されるケースも少なからず見られ、昨今のビッグデータ解析においては、価格性能比の点から、後者が広く利用されつつあることが伺えます。

おわりに

今回は、並列データ処理系の歴史や並列データ処理系が広く普及しつつある背景について解説をしました。次回は、これまで明確に説明してこなかった「並列」という用語を定義し、本連載の対象である並列データ処理系がどのようなものであるかをより明確にしていきます。

参考文献
[1]D. DeWitt, R. Gerber, G. Graefe, M. Heytens, K. Kumar, M. Muralikrishna. ⁠GAMMA - A High Performance Dataflow Database Machine⁠⁠ Proc. VLDB, pp.228~237, 1986.
[2]G. Copeland, W. Alexander, E. Boughter, T. Keller. ⁠Data Placement in Bubba,⁠⁠ Proc. SIGMOD, pp.99~108, 1988.
[3]S. Fushimi, M. Kitsuregawa, H. Tanaka, ⁠An Overview of The System Software of A Parallel Relational Database Machine GRACE⁠, Proc. VLDB, pp.209~219, 1986.
[4]M. Stonebraker. ⁠The Case for Shared Nothing⁠, Database Engineering, Volume 9, pp.4~9, 1986.
[5]D. DeWitt, J. Gray, ⁠Parallel database systems: the future of high performance database systems⁠, Commun. ACM 35, 6, pp.85~98, 1992.
[6]C. Kozyrakis, A. Kansal, S. Sankar, K. Vaid. ⁠Server Engineering Insights for Large-Scale Online Services⁠, IEEE Micro, Volume 30, pp.8~19, 2010.
[7]E. Eleftheriou, R. Haas, J. Jelitto, M. Lantz and H. Pozidis. ⁠Trends in Storage Technologies⁠, IEEE TCDE, 2010.
[8]D. A. Patterson. ⁠Latency lags bandwith⁠, Commun. ACM 47, Issue 10, pp.71~75, 2004.

おすすめ記事

記事・ニュース一覧