米Netflix、インメモリデータ分散フレームワーク「Zeno」を公開
米Netflixは12月5日、インメモリ型の分散データベースフレームワーク「Netflix Zeno」をオープンソースで公開した。同社内で実際に利用しているソフトウェアで、大量のメタデータを低遅延で管理するシステムに適しているという。
Netflixは動画ストリーミング事業などを運営する企業。先進技術の利用に積極的で、専用のチームを設けてオープンソース技術の開発や関連プロジェクトへの貢献も行っている。同社はAmazon Web Services(AWS)を大規模に使用していることでも知られており、これまでAWS向けの耐障害性テスト「Chaos Monkey」、分散サービス制御「Nysterix」など多数の技術を公開している。
今回公開したZenoは、同社が提供する映画やTV番組のメタデータ管理に利用するために開発した技術。Netflixではこれらメタデータ用に「Video Metadata Service(VMS)」プラットフォームを構築しており、データを地域的に分散された数千台のサーバー上のRAMに直接保存しているという。Zenoは変更が多く、かつ大容量のメタデータを管理するためのフレームワークとなる。
ZenoはJavaで実装されており、シリアル化されたJavaオブジェクトの作成、データセット内の重複の自動検出と削除、データ更新に必要な変更の自動生成などの機能を持つ。データ変更をシリアル化するためリソースの利用を抑えられ、シリアル化解除時のメモリへの影響も抑えられるという。データモデルとデータオペレーションを分離するパターン定義により開発作業を効率化できるほか、デバッグ用のツールも備える。
同社は、Zenoによってインメモリデータセットのメモリフットプリントを約50%削減できたほか、サーバー起動時間の改善、データモデルの拡張に必要な開発メンテナンス作業の削減などのメリットを得られたと報告している。
Netflixはデータの関係を表現するツールとして、すでに「Netflix Graph」を公開している。これらを4000万人のNetflix登録者向けのインフラで利用しており、拡張性に役立てているという。
Zenoは現在バージョン1.4、Githubのプロジェクトページよりソースコードをダウンロードできる。
米Netflix
http://www.netflix.com/
Netflix Zeno
https://github.com/Netflix/zeno