米ネットフリックス(Netflix)は、「Amazon S3」でデータの一貫性をチェックするためのライブラリ「s3mper」をオープンソースとして公開した。
米ネットフリックス(Netflix)は2013年1月9日、Amazon Web Services(AWS)のクラウドストレージサービス「Amazon S3」でデータの一貫性をチェックするためのライブラリ「s3mper」を、オープンソースとして公開した。Apache License v2.0を利用している。
NetflixではHadoopプラットフォームにS3を使っており、99.999999999%の耐久性や99.99%の可用性、実質的に無限のストレージ容量などを高く評価しているという。ただ、一貫性に限っては譲歩している部分があると説明。S3の一貫性保証では一般的に、リストやリードオペレーションの一貫性が、それに先立つオペレーション次第で保てないことがあるという。
ベーシックなデータアーカイブであれば整合性は問題にならないが、複雑なワークフローを情報が流れるデータ中心のコンピューティング環境では、整合性が保てなければ、データが失われたり、壊滅的な障害に見舞われることもある。
実際、同社でも過去数年の間に散発的な問題が発生し、詳しく調べた結果、一貫性の問題が原因となっていることが分かった。そこで一貫性に起因する問題を診断し、影響を回避するためのライブラリとして社内で開発し、プロダクション環境で使っているのがs3mperだという。
S3mperはアスペクト指向プログラミングを使ってApsectJで実装され、Hadoop FileSystemのインプリメンテーションに、セカンダリインデックスをクロスチェックするロジックを追加。セカンダリインデックスにはデフォルトでDynamoDBを利用している。
S3で一貫していないリストが見つかると、オプションでリスト化処理を遅らせて、一貫性が達成されるまで再試行する。達成できない場合は通知が出され、そのジョブを中止するか、データが一貫しない状態で続けるかを判断できる。
リカバリの回数や失われたファイル、影響を受けるジョブなどを報告する機能も備え、オプションでジョブの待機時間やリスティングの再チェックの頻度などを設定することも可能。メタストアを調べてDynamoDBのセカンダリインデックスとS3インデックスの間の衝突を解決するユーティリティも提供する。
Copyright © ITmedia, Inc. All Rights Reserved.