Google Cloudは、階層的名前空間(HNS)を導入することで、Cloud Storageサービスに重要なアップデートをすると発表した。現在プレビューで利用可能なこの新機能により、ユーザーはストレージバケットを階層的なファイルシステム構造で整理でき、パフォーマンス、一貫性、管理性が向上する。
階層的名前空間は、ストレージバケット内にディレクトリとネストされたサブディレクトリを作成することで、より効果的にデータの整理を可能にする。この論理的な構造化は、従来のファイルシステムを反映し、ユーザーがデータを管理しアクセスを容易にする。階層化された組織は、データ管理を簡素化し、特に大規模なディレクトリやファイル操作を必要とするワークロードのパフォーマンスを向上させる。
GoogleのCloud Storage部門でグループ・プロダクト・マネージャーを務めるVivek Saraswat氏とスタッフ・ソフトウェア・エンジニアのZhihong Yao氏が書いている。
階層的名前空間を持つバケットには、APIによってバックアップされたストレージフォルダリソースがあり、新しい「フォルダ名の変更」操作は、メタデータのみの操作として、フォルダとそのコンテンツの名前を再帰的に変更します。これにより、処理が高速かつアトミックになり、既存のバケットと比較して、フォルダ関連の操作のパフォーマンスと一貫性が向上します。
さらに、Google Cloudのチーフ・エバンジェリストであるRichard Seroter氏は、次のようにツイートしている。
オブジェクトのより機能的な「ツリー」を作成します。これにより、「フォルダ」とのインタラクション方法が改善され、パフォーマンスが向上します。
左:フラットな階層とシミュレートされたフォルダを持つCloud Storageバケット。右:階層的な名前空間がツリーの構造に整理されたバケット(出典:Google Cloudのブログ記事)
HNSの導入は、ビッグデータ分析、コンテンツ管理システム、大規模アプリケーションのデプロイメントなど、高いパフォーマンスと管理性を必要とするシナリオにとって特に有益だ。例えば、膨大な動画ファイルのライブラリを管理するメディア企業は、HNSを使用してコンテンツをプロジェクト、日付、タイプ別に整理し、アクセシビリティと処理効率を向上させられる。
ユーザーは、HNSを有効にして新しいバケットを作成したり、既存のバケットを移行したりして階層的名前空間を利用できる。Google Cloudは、この移行を促進するための包括的なドキュメントとツールを提供している。ユーザーは、Google Cloud Console、コマンドラインインターフェイス、またはAPIを通じてHNSを許可でき、ストレージリソースの管理に柔軟性を提供する。
ROI Training社におけるGoogle Cloud学習のディレクターであるPatrick Haggerty氏は、LinkedInの投稿でGoogle Cloud StorageのHNS機能の長所と短所を挙げている。
長所:
- フォルダ名を変更しても、ファイルを移動したり書き換えたりする必要がなくなる。
- 新しいAPI操作でフォルダを操作できる。
- 読み書きの初期QPSが8倍速くなった。
- フォルダーのパーミッションがマネージド・フォルダーと連動する。
短所:
- バケツ作成時に有効にする必要がある。
- バージョン管理、ロック、リテンション、ファイルレベルのACLをサポートしていない。
- 追加料金がかかる(価格は未発表)。
マイクロソフトやAWSのような他のハイパースケーラーも、ストレージサービスでHNS機能を提供している。例えば、Azure Data Lake Storage Gen2では、HNSはアカウント内のオブジェクト/ファイルをディレクトリとネストされたサブディレクトリの階層に整理する。一方、Amazon S3では、ディレクトリバケットは、汎用バケットのフラットなストレージ構造ではなく、ディレクトリに階層的にデータを整理する。