「あぁ、知ってるよ。アレね」と言っておきたいNoSQLプロダクトの特徴をざっと紹介。今回はオンメモリもオンディスクもひっくるめて「イネーブラ型」のメジャーどころを紹介していく。
本連載は書籍『NOSQLの基礎知識』(リックテレコム刊、ISBN:978-4897978871)で解説されている内容から一部を抜粋し、本連載向けに一部再編集して掲載したものです。
書籍では、一般にNoSQLと呼ばれている各種データベース技術について、基本概念から主要なプロダクトの特性、ベンチマーク結果までを紹介しています。データモデルやアーキテクチャの違いといった基本概念から、各プロダクトの特徴を理解できる内容になっています。
本連載では、この書籍の内容から、主要プロダクトを紹介している第5章を抜粋し、そのエッセンスを紹介していきます。
なお、記事ではNoSQLプロダクトを図のように分類しています。各分類の特徴などは第1回で言及しています。今回はこの中からイネーブラ型に分類されているプロダクトを見ていきましょう。
イネーブラ型オンメモリタイプのNoSQLデータベースは高速性に優れ、拡張性も備えているため単独でも利用できますが、永続性については、他のデータベースと組み合わせるなどして補うケースが多いといえます。
Memcached(*1)はメモリにデータを格納することで、大規模なWebサイトの応答性能を高め、DBMSの負荷を軽減するために広く使われています。従来も高速化のために、DBMSから読み込んだデータをサーバのメモリ上に一時的にキャッシュすることは行われていました。
しかし、この方法では、図1の左側の例のように、それぞれのサーバで64MBずつしかキャッシュを持つことができません。
一方、Memcachedを使用すると、キャッシュしたデータに複数のサーバからアクセスできるので、図の右側の例のように2台分を1つにした128MBのキャッシュとして利用されています(*2)。
このMemcachedはMySQLなどと組み合わせ、読み出しの性能を向上させるためによく利用されています。
Memcached自身はノード間の複製は行わず、またデータの永続性も保証していないので、ハードウェア障害などでノードが停止してしまうと、そのノードに格納されていたデータは全て消えてしまいます。データの永続性が必要な場合は、他のNoSQLデータベースやRDBを組み合わせて使う必要があります。例えば、Memcachedプロトコル(*3)を実装し、ディスクにデータを格納するBerkeleyDBというNoSQLデータベースを組み合わせることにより、MemcacheDBに永続性を加えている実例があります(*4)。
*1 memcached http://memcached.org/
*2 http://Memcached.org/aboutを参照。
*3 Memcachedプロトコル KVSにネットワーク経由でアクセスするためのプロトコルです。サーバとクライアントの間の通信をシンプルな行ベースで行います。
*4 memcachedに永続性を加えている実例 http://Memcachedb.org/Memcachedb-guide-1.0.pdfを参照。
Copyright © ITmedia, Inc. All Rights Reserved.