データストアとは
RDBMS や KVS などのデータを格納する仕組みを指してデータストアと呼びます。データストアは HDD や SSD から効率的にデータを取得・保存する仕組みを提供します。
HDD
HDD について
今では SSD もお手頃な価格になってきましたが、依然データの格納場所は主に HDD です。20年前は数十MBだった容量も近年では数TBのものが数万円で手に入ります。データ転送帯域は広くなってきていますが、シークタイムだけはそれほど早くなっていません。
シークタイム
HDDがディスクを読み出すためにヘッドを動かす処理を シーク
と呼びます。シーク
に係る時間をシークタイムと呼びます。HDDでは物理的にシークを行ってデータを読み出すためシーケンシャルな(ディスク上に連続して配置された)データを読み出すのは得意ですが、ランダムな(ディスク上に飛び飛びに配置された)データを読み出すのには時間がかかる。
ストレージ装置の高速化
- RAID
- 複数台のディスクを組み合わせて一台のハードディスクとして運用する技術
- 複数のディスクに同時に書き込むことで高速化を行う
- SSD
- フラッシュメモリを使用したストレージデバイス
- HDD に代わるディスクドライブとして利用が広がっている
- PCIe SSD
- SSD よりも SATA(接続規格)の性能が頭打ちになってしまったため、PCI-Express で接続するタイプの SSD
- ioDrive の登場を皮切りに、M.2 や NVMe などが登場してきた
SSD
SSD のメリット
- シークタイムがないためランダムアクセス性能が高い
- 書き込み性能も高い
- 省電力、静音性耐衝撃性能などが高い
SSD のデメリット
- 容量単位の価格が高い(近年では HDD との差は縮まってきている)
- 寿命が短いとされている
- 故障時の復旧が困難
RDBMS
RDBMS はデータストアとして一般的に用いられてきた。ACID特性に守られた RDBMS は、特に金融などの分野では必要不可欠で、現在でも多く使われている。しあkし、データ量が爆発的に増えてきた現在では、RDBMS を使っていては思ったようにデータ利用ができない現状があります。
分散 KVS
超大規模データの中から意味ある集計データを算出したりオンラインでそれらを参照したりするには、従来の RDBMS では難しくなっている。これらを解決するために登場したのが分散 KVS です。分散 KVS には ACID 特性はありません。そのため、使用する際にはそれを踏まえた設計をする必要があります。