MapR FS
MapR FSは、より高性能で安定した基盤を提供することでApache Hadoopの能力をさらに引き出すことを目指し、2009年にMapR Technologiesにより開発が開始された。MapR FSの設計はAndrew File System (AFS) のような様々な他のシステムの影響を受けている。特にAFSにおけるボリュームの概念は、MapR FSにおける実装は全く異なるものの、ユーザーからの見え方の観点では非常に似ている部分がある。AFSとMapR FSの間の大きな違いの一つは、MapR FSは強い整合性モデルを採用する一方で、AFSは弱い整合性のみを提供している点である。
Hadoopプログラムをサポートするという当初の目標を達成するため、MapR FSはHDFSの関数呼び出しを専用の遠隔手続き呼出し (RPC) メカニズムに基づく内部APIに変換することでHDFS APIに対応している。通常のHDFSのWrite-Onceモデルは、MapR FSでは(たとえHDFS API利用時でも)書き換え可能なファイルシステムで置き換えられている。ファイルの変更に対応する能力を備えたことにより、NFS操作を内部MapR RPC呼び出しに変換するNFSサーバの実装が可能になった。Filesystem in Userspace (FUSE) インタフェースやApache HBase APIの近似エミュレーションでも同様の仕組みが使われている。
この機能は、幅広いタイプの負荷を処理しており、激しい競合が発生しているマルチテナントシステムにおいて性能を制御するために使われる。
MapR FSではコンテナのトランザクションを実装したり、整合性のある障害回復を達成するために特許技術が利用されている。
ファイルシステムに含まれるその他の技術には次のようなものがある:
すべてのコンテナ配置と複製チェーンの配列を格納している分散クラスタメタデータ。
ディレクトリツリーを格納する分散メタデータ。すべてのディレクトリは完全に複製され、単一ノードがクラスタのすべてのメタデータを持つことはない。
大量のディレクトリを作成した場合でも高い性能を達成可能な効率的なB木の利用。
分断耐性。可用性を妥協する場合はあるが、整合性を失うことなくクラスタの分断に耐性を持つ。ボリュームのミラー機能、テーブル・ストリームの準リアルタイムレプリケーション機能を利用した、複数クラスタ間の制限付きデータ整合レプリケーションもサポートしている。
整合性のあるマルチスレッド更新。グローバルなロック構造を必要とすることなく、非常に多数のスレッドから同時にファイルの更新や参照を行うことが可能。
ローリングアップグレードとオンラインメンテナンス。ほぼ完全な性能でクラスタの運用を維持したまま、メジャーバージョンアップグレードを含むほとんどの運用管理を実施することが可能。