• HOME >
  • テクノロジー

テクノロジー

メモリ型DB

高速屋は、コストパフォーマンスに優れたメモリ型DB「高速機関R5」を独自で開発し保有しています。
「高速機関R5」のメモリ型DBは、他のインメモリDBのようにあらかじめデータを主メモリに配置しているというものではありません。データは主メモリ/ディスクのどちらにも配置することができます。勿論、電源断時にもデータはディスク上で保証されます。
メモリ型DBと称しているのは、ディスクを主体に設計された従来型DBに対して主メモリを主体に設計したDBであるからです。主メモリ容量が小さかった時代には、データはディスクにあることを前提に設計せざるをえませんでしたが、主メモリが大きくなった現在、データは主メモリ上における(主メモリに入りきらないものは必要なときにディスクから読み込む)ことを前提に設計することで、レコード単位の複雑なブロック管理を必要としない、フラットなアドレス空間によるシンプルで効率のよいデータ処理エンジンが可能となりました。
インメモリだけで処理しようとしても、大量データの場合すぐに限界に突き当たってしまいます。「高速機関R5」はディスクとの転送をシーケンシャルに行うことによってテラバイトを超える大量データも高速に処理することが可能です。

基本アーキテクチャ(新しい常識)

この30年の間、コンピュータハードウェアの進歩は著しく、CPU、主メモリの性能および容量はおよそ1000倍も向上しています。しかし、データを探し、集計するなどの基本ソフトウェアは、70年代の古くて遅い時代のハードウェアにあわせたままなんら変わっていません。 果たしてこのままでよいのでしょうか。
ご存知のように、コンピュータハードウェアは一律に1000倍速くなったのではありません。CPUが主メモリからデータを取り込むアクセス性能はせいぜい10倍くらいしか向上していません。一方、nsでアクセスできるCPUのキャッシュメモリは既に数MBと、30年前の主メモリのサイズほどもあります。また、ディスクのヘッドが動くシークタイムは数倍しか速くはなっていませんが、ディスク密度の向上やディスク回転数の向上によりシーケンシャル転送性能は格段に向上しています。
つまり、30年前とは全く特性が違うコンピュータとなっているのです。
従って、この最新のコンピュータアーキテクチャにあわせてデータ処理の基本ソフトウェアを抜本的に変えないかぎり、データ処理の大幅な処理能力向上はできませんし、このままではハードウェアとソフトウェアのギャップは広がっていくばかりということになります。
「高速機関R5」の基本データ処理方式は、従来の技術(BTREE,QSORT,HASH、ランダムアクセス方式)を全て捨て去り、最新のコンピュータアーキテクチャに適合するため、根本から創りなおしました。

  1. データ圧縮: データ転送量の削減とCPU内のキャッシュヒット率向上
  2. ポインタ結合: 演算でデータ間の参照関係を紐付ける(CPUは速い)
  3. シーケンシャル転送: シークタイムを削減、データをまとめて転送

この新しい方式は、各デバイスの演算性能と容量アップにより可能となったものですから、それをもたらした半導体技術が今後とも継続して進歩していくことを考えれば、これからの「新しい常識」になっていくでしょう。

基本アーキテクチャ

データ圧縮

データ処理で一番時間がかかっているところは、勿論加減算などの演算処理ではありません。
たくさんあるデータの中から欲しいデータを探し出すのに最も時間がかかっています。従って、データ処理を速くするにはこのデータを探す時間を如何に短くするかにかかってきます。
このために、「高速機関R5」では、まず、データを元のままデータベースに格納するのではなく、探すのに最も適したデータ形式に変換して格納しています。例えば、電話帳に記載されている氏名をそのまま登録しようとすると、全国に数10万人以上もいる鈴木さんという氏名の方のために多くの容量を必要としますが、「鈴木」という文字をあるユニークなIDに変換して格納すればずっと小さくなり、圧縮されたデータを固定長の配列で保有すれば最も効率よく探すことができます。探した後、元の「鈴木」に戻すには時間はかかりません。

データ圧縮:
実データ中で同内容のデータに対しユニークなIDを割り当てることによりデータを圧縮、実データ容量の大幅削減を達成

プレJOIN

「高速機関R5」の最大の特長は、このプレJOINにあります。
プレJOINとは、データの検索や更新時に関連する複数のテーブル間の参照関係をたどる
(これをJOIN(結合)といいます)のではなく、データの登録(ローディング,INSERT,UPDATE)時にあらかじめテーブル間の参照関係をポインタ結合することです。従来型RDBでは、登録時には単にデータを格納するのみでテーブル間の参照関係については、なんら関係付けられていません。
プレJOINによって、「高速機関R5」はテーブル間の参照関係(リレーション)をデータ構造として保有しています。
従来型RDBではそれができませんでした。データの登録時にデータ構造を作っていてはデータの取り込み処理が間に合わなくなってしまうからです。「高速機関R5」は前述のデータ処理の根本を革新することによってデータの登録更新処理も従来型RDBより高速に処理することが可能となりました。
検索や更新時に関連するデータを探すのではなく、既に関係するデータが紐付けられているのですから、実行時には時間がかからないのは当然といえます。
「高速機関R5」は、従来型RDBが最も苦手としていたテーブル間の結合問題を、このプレJOINによって解消しています。

従来型DB:
・データ構造無し
・INSERT時には、ただデータを格納するだけ
・処理実行時に、関連するテーブルを探索して参照するレコードを見つけ出す
「高速機関R5」:
・高度なデータ構造を保有
・INSERT時に、関連するテーブル間のリレーションをポインタ結合
・処理実行時には、直接参照するレコードを抽出