米Netflix、Amazon S3上でデータの整合性を実現するライブラリ「S3mper」を公開

 動画配信サービスなどを手がける米Netflixは1月9日、Amazon Web Services(AWS)の1つである「Amazon S3」向けにデータの整合性を実現するライブラリ「S3mper」を公開した。HadoopとAmazon S3の組み合わせでデータに一貫性を持たせるために開発したもので、実際に社内で利用しているという。

 NetflixはAmazon Web Services(AWS)が提供する各種クラウドサービスの大規模なユーザーとして知られており、AWSをインフラとして利用するにあたって社内開発した「Chaos Monkey」や「Hysterix」、「Janitor Monkey」といったツールをオープンソースで公開している。今回のS3mperもその1つとなる。

 NetflixではHadoopでのファイル管理にAmazon S3を利用している。ペタバイト級のデータをS3に保存し、一日数百万単位のオペレーションを実行しているというが、HDFS(Hadoop Distributed File System)ではなくS3を利用する理由として99.99%の可用性とそれ以上のレベルを実現するという耐久性、バージョニングとデータ復旧、無制限のストレージなどを挙げ、「すべてのデータウェアハウスの唯一の情報源」と利用しているという。一方で、重要となるデータの整合性や一貫性については、S3では「結果整合性」のみが補償され、更新タイミングによっては一時的にデータの整合性がとれない可能性がある。そこで整合性を実現すべく、S3の上に整合性をチェックするレイヤを設けるためのソフトウェアが今回公開されたS3mperとなる。

 S3mperはアスペクト指向言語であるAspectJで実装したもので、セカンダリンデックスとしてDynamoDBでファイルメタデータを追跡する。「単一の情報源」としてS3を使いつつ、確認レイヤーを設ける「ハイブリッドアプローチ」とし、「一貫性のある読み込みと書き出しを提供するセカンダリインデックスの利用により、ファイルメタデータを追跡する」と説明している。

 一貫性がない場合にリスト化を遅らせて整合を試みるリカバリや通知、レポートなどの機能を持ち、モジュラー構造なども特徴。テーブルスキーマは軽量で、ファイルシステムの性能に大きな影響を与えないという。

 S3mperはプロジェクトのWebサイトより入手できる。ライセンスはApache License 2.0。

S3mper
https://github.com/Netflix/s3mper

米Netflix
http://www.netflix.com/