データの永続化についての技術革新が進んでいる。ITアーキテクトには既存の常識にこだわらない技術選択が求められている。

 従来の常識では、ICTシステムに関わるソフトウエアやデータはストレージ上に保持され、コンピュータのメモリー上に展開して処理されるというものだった。この動作は「低速だが不揮発性のストレージ」「高速でありリフレッシュで一時的に記憶を保持できるメモリー」という両者の特性を引き出した使い分けと言える。

 現在、リフレッシュに使う電力や熱の問題を解決しようと、メモリー系の新たな動きも出てきており、ストレージとメモリーという記憶技術の境は曖昧になってきている。ストレージ技術をいかに上手く使うか、整理していこう。

クラウドにも広がる「記録」ディスク

 まずアプリケーションから見た「記録」の格納場所を整理する。

 記録の格納場所は大きく、ファイルシステム系やSQL系、NoSQL系、オブジェクト系がある。それらを支えているのは、「データをどこに読み書きするか」という物理的な位置に基づく「ブロックデバイス」と、その上で「どこに何というファイルがどんな大きさで書かれているか」を管理する「ファイルシステム」である。

 ファイルシステムはWindows系では「NTFS」であり、Linux系ではext3と呼ばれている。機能を高めたファイルシステムには、突然の電源断(ダーティーシャットダウン)時に管理簿(ファイルの大きさや書き込み位置)と実体(書き込み済みデータ)との間の不整合を最小限にするジャーナリング機能や、ソフトウエアによってデータ冗長性を高めたRAID(Redundant Arrays of Inexpensive Disks)である「ミラーリング」、「レプリケーション」などの機能がある。

 SQL系での「記録」は、以前はRDBMS(Relational DataBase Management Sysrem)ソフトごとに独自のファイルシステムをブロックデバイス上に構築していた。最近はファイルキャッシュを経由しない同期I/OなどをOSがサポートし始めた技術進展に伴って、通常のOSコマンドでハンドリングしやすい一般的なファイルシステム上に、データベースのテーブルやログを配置するケースが主流となった。