Cosmos と Scope と MapReduce と Hadoop と ・・・
Ray Ozzie から Cosmos というアナウンスがあったので、あっ そうそう、と思い出したのが Scope です。長いホワイトペーパーなので放っておいたのですが、あらためて眺めてみると、ここに Cosmos が居ましたよ。 以下の図に示されるように、Scope が言語処理系で、Cosmos がファイル・システムという組み合わせのようです。(Axum は、パラレルといっても計算機能のためのもののようです ・・・)
ーーーーーーーーーーー
SCOPE: Easy and Efficient Parallel Processing of Massive Data Sets
・・・より抜粋
ーーーーーーーーーーー
1. INTRODUCTION
Microsoft は、膨大なデータ・セットのストアと分析のために、Cosmos という分散コンピューティング・プラットフォームを開発している。 Cosmos は、無数の普及品サーバーにより構成される、大規模なクラスタ上で動作するようにデザインされている。 つまり、それらのサーバーにアタッチされたディスクにより、このストレージは分散されることになる。 Cosmos プラットフォームのためにデザインされた高次元での目的としては、以下の項目が含まれる:
1. Availability: Cosmos は、多数のハードウェア障害に対する弾力性を持つことで、システム全体の停止を回避する。ファイル・データは、このシステム全体に何度もリプリケートされる。また、2f+1 台のサーバーによる選択されたグループにより、ファイル・メタデータを管理することで、f 回の障害に対する弾性を持つ。
2. Reliability: Cosmos のアーキテクチャは、システムの機能低下を回避するために、一時的なハードウェア・コーディネーションを見分ける。 システム・コンポーネントは、End-to-End でチェックされ、障害を持つコンポーネントを停止するためのメカニズムを適用する。
3. Scalability: Cosmos のデザインは、ペタ・バイト・オーダーのデータをストアし処理する能力を持つ、スケーラブルなシステムを実現するために、ゼロからデザインされている。 そのクラスタにサーバーを追加していくことで、ストレージとコンピューティングのためのキャパシティを、容易に拡張できる。
4. Performance: Cosmos を実行するクラスタは、無数の独立したサーバーで構成される。 データは、3台のサーバー上に分散される。ひとつの Job は、小さなコンピューティングの単位に分解され、大量の CPU とストレージ・デバイスに分散される。 それにより、Job を完了する時間が、大幅に短縮される。
5. Cost: Cosmos は、同様の問題に対する従来からのアプローチと比較して、安価な構築と、運用と、拡張を実現する。 そこでは、費用対効果を高めるために、低価格サーバーを大量に利用するが、この考え方は、少数の高額サーバーによるアプローチの対極にある。

Figure 1 が示すのは、Cosmos platform の主要な構成要素である。
1. Cosmos storage: きわめて膨大なシーケンシャル・ファイルを、信頼性と効率に基づいてストアするためにデザインされた、分散ストレージ・サブ・システムである。
2. Cosmos execution environment: 分散アプリケーションを、ディプロイし、実行し、デバッグするための環境である。
3. SCOPE: データ分析ジョブを記述するための、ハイレベルなスクリプティング言語。 この、SCOPE のコンパイラとオプティマイザにより、スクリプトを効果的なパラレル実行プランへと展開。
このドキュメントでは、SCOPE とコンポーネントにフォーカスしており、Cosmos については簡潔に説明するだけである。 Cosmos platform の詳細は、このドキュメントの対象外となる。
ーーーーーーーーーーー
ここまで読んでみて、Hadoop に かなり近いぞ、、、というか、同一のベクトルとコンセプトに思えます。 そして、6章ですが ・・・
ーーーーーーーーーーー
6. RELATED WORK
SCOPE is heavily influenced by SQL but its target applications and execution environment differ from traditional database systems. SCOPE is designed for easy and efficient processing of massive amounts of data stored in distributed, sequential files. It provides efficient query processing functionality. The execution strategies used owe much to earlier work on query processing in parallel and distributed database systems [9].
All companies operating internet-scale services have the need to store and process massive data sets and have developed their own system for this purpose. Google popularized the mapreduce programming model. Based on what has been published in the open literature, their software stack consists of Google File System [8] and Bigtable [3] for storage, the MapReduce execution environment [5] with users writing MapReduce applications in C++ or Sawzall [11].
A MapReduce application written in C++ takes many more lines of code than the corresponding application expressed in SCOPE. For example, the word count application used as an example in [5] requires about 70 lines of C++ code but only five or six lines of SCOPE code.
Yahoo! also has a software stack designed for distributed processing of massive data sets. Users write applications in a language called Pig Latin [10] [1]. A Pig Latin program is compiled by the Pig system into a sequence of MapReduce operators that are executed using Hadoop [1], an open-source implementation of MapReduce. Pig Latin is a dataflow language using a nested data model. Each step in a program specifies a single, high-level data transformation. A complex computation is expressed as a series of such transformations. Yahoo! also has a more powerful Map-Reduce-Merge execution environment but it is apparently not the execution environment used by the Pig system. Both Google and Yahoo! use a MapReduce execution environment. MapReduce is very rigid, forcing every computation to be structured as a sequence of mapreduce pairs. The Cosmos execution environment is significantly more flexible, handling execution of any computation that can be expressed as an acyclic dataflow graph.
ーーーーーーーーーーー
おおっ! これは Map-Reduce と Hadoop への挑戦状ではないですか! Azure の説明に欠けていた、とてつもなく大きな領域が、これで埋まることになるのだと思います。
ーーーーーーーーーーー