こんにちは、株式会社D2C 技術開発部の二瓶(にへい)です。
d-tech の中から今回お届けするのは、NoSQLについてです。
NoSQLの中でも特に最近話題の「Aerospike」についてお送りしていきます。
Aerospikeの紹介
まずは入門編として下記について説明します。
- NoSQLとは?
- Aerospikeとは?
1.NoSQLとは?
ズバリ!RDBMS以外のデータベースのことです!
データベースといえばOracleやMySQLなどのRDBMS(リレーショナルデータベース管理システム)がありますが、これ以外のデータベースが Not only SQL (NoSQL) と呼ばれています。
違いはリレーショナルモデル(関係モデル)を採用しているかどうかです。
RDBMSではデータを表(テーブル)で保持してデータ同士の関係性を定義することで厳格なデータモデルを表現できます。
カラムという単位で項目が分かれていて、SQL文を使用して複雑で高度な問い合わせを行うことができます。
NoSQLは関係モデルの複雑で高度な問い合わせを捨てている代わりに、高速です。
MySQLなどに対してTPS(速さの指標単位)の公称値が桁が2つ3つ違うものもあったりします。
2.Aerospikeとは?
今回の主題であるAerospikeについてですが、まずは概要と特徴についてお伝えします。
◯概要
アメリカのAerospike社が開発したNoSQLの一種で、C言語で書かれていて以前は商用のみでしたが、2014年6月にオープンソース化されました。
aerospikeはロケットの先端部分のことを意味しているそうです。
特にアドテク界隈では最近よく採用されています。
◯特徴
・スピード
速いです。
1MTPSを公称していますが、今後のロードマップでは3MTPSを目指すとされています。
・SSDモード
Aerospikeには3つ動作モードがあります。
①インメモリモード
②メモリ+SSDモード
③インメモリ+HDDモード
なかでも特徴的なのがSSDモードです。
SSDをファイルシステムを介さずにRAWデバイスとして使うことで、OSによるIOバッファ管理のオーバーヘッドが低減されるらしいです。
他にも自動デフラグとかSSDの寿命を延ばす工夫がされているそうです。
インメモリのNoSQLはいろいろありますが、性能を担保するためにはデータが全てメモリに乗っている必要があるため、どうしてもデータが大きくなってくると、相当ハイスペックなサーバを用意しなければいけませんが、SSDならスケールアウトも比較的安価にできますね。
・クラスタ化
Aerospikeにはクラスタ化の機能があります。
設定が自動化されていて、クラスタへのサーバ追加が自動で簡単に行えたりします。
詳細はまた別の機会で説明できればと思います。
次回は、システム構成やデータ型についてお伝えする予定です。