■「高速機関」の高速化の原理の解説とベンチマークデータ
前回に引き続き「高速機関」について解説していきます。
「高速機関」に関しては、いくつかのベンチマークテストの実績データがあり
ます。
いろんな前提条件があるものの、いくつかの事例を紹介します。
☆事例1
金融機関のソフト子会社の事例では、590万件のオラクルRDBで1時間
48分を要する月次バッチ処理を49秒で処理したという実績があります。
☆事例2
あるベンダーのバッチ処理では、12時間を要していたオラクルDBベース
の買掛金消し込み作業を40分で処理可能となっています。ただし、この内訳
としては、36分はオラクルからのデータ取り込みと戻しのための時間であり、
正味の処理時間は4分ということになります。12時間かかる処理を4分で処
理可能であったと言うことです。
☆事例3
ある製造メーカーの事例では3時間かかっていたバッチ処理を一分程度で処
理を完了しています。
このように、安価なパソコン程度のマシンを使って、従来では考えられない
高速処理を実現しているのです。
この「高速機関」の技術を活用することにより、低コストで高速処理を実現
できるシステムの構築が可能であるということをご理解していただけるものと
思います。
■高速化の原理
それでは、何故こんなに高速処理が可能なのでしょうか。
まず、一般論として、高速処理のための手法としては、どんなことを考えれ
ばよいかを考えてみたいと思います。
コンピュータ処理のネックとなるのはファイルの入出力のための時間です。
ファイル装置の代表としてディスク装置を考えてみます。このディスク装置
は、磁気ディスクを回転させて、アクセスのための磁気ヘッドの機械的な動き
によりデータを読み書きする装置です。従って、この回転とアームの動きがあ
る以上は物理的なスピードを超えることは不可能です。CPUの処理能力のア
ンバランスを解消することはできないのです。ディスク装置を従来の方法でア
クセスしていたのでは、電子のスピードには到底到達できないのです。
そこで、このディスクをICメモリーで置き換えて高速化を図る方法があり
ます。「半導体ディスク」と言われるものです。この装置を導入することによ
り、ディスクの入出力は速くなります。しかしこれでも、コンピュータのメモ
リーと半導体メモリーのデータのやり取りが必要であり、チャネルスピードに
は限界があります。また、大容量の半導体ディスク装置のコストは高価なもの
になっていしまいます。簡単には普及しない方法です。
次に考えられるのが、データを圧縮して、小さくなったデータベースをメモ
リー上に常駐させる方法が考えられます。
これにより、処理スピードは速くなります。
実際に従来のRDBのデータベースをそのまますべてメインメモリーに常駐
させてスピードアップさせた事例もあります。
しかし、単純なこの方法では、思うようなスピードアップは図れなかったと
言うことでした。そこで、データベース構造に手を加えることと64ビットマ
シンを利用することにより、高速化を実現させたという報告があります。この
報告による実績では、12時間かかっていたバッチ処理が64ビットマシンと
新たな技術を活用して12分に処理を短縮できたということになっています。
このように、新たな処理方式により高速化している事例はいくつか見つける
ことができます。
「高速機関」の事例や関連技術としては、下記をご参照ください。
https://sec.qqq.or.jp/db/kousoku_ext.html
http://www.karuwaza.com/products/index.html
https://sec.qqq.or.jp/db/karuwaza/index.html
上記の「軽技WebSuper」のエンジンとして利用されているのが「高速機関」
です。
「高速機関」と同様な高速処理を売り物にした類似の商業システムはいくつか
あります。
ただし、これらは更新処理を前提としておらず、Excelのお化けと言うシス
テムだと推測されます。
具体的には、ターボデータとZettaという会社のアダムスファミリーという
ソフトがありますのでご紹介しておきます。
メインフレームとPCの性能比較事例は下記をご参照ください。
http://www.turbo-data.co.jp/j/product/hikaku2.html
以前公表されていたデータでは、ホストマシンで300分(5時間)かかっ
ている処理を2分間で処理したという報告データもありました。
https://www.zetta.co.jp/adam/report.htm
これらの類似システムをご紹介したのは、機能を限定すれば、工夫次第では、
従来のホストシステムでの常識を打ち破る技術は随所に存在すると言うことを
説明したかったからです。
その点では、「高速機関」もこれらのシステムと類似にみえるかも知れませ
んが、「高速機関」は応用範囲の広い技術です。
上記で紹介したシステムの機能は当然のことながら実現可能であり、更に応
用範囲の広いアプリケーションに適応可能な「高速化技術」を採用しています。
http://www.kousokuya.co.jp/index.html
「高速機関」は、単に、RDBの高速化技術に限定されることなく、データ
の変換処理、データの高速ソート処理、大量のテキストデータベースからの全
文検索機能等と応用範囲の広い基本技術を使っています。
「高速機関」は、RDBやDWHの応用分野に限らず、幅広く利用できる技
術基盤であるということをご理解いただきたいと思います。
■「高速機関」の高速化の原理
それでは、いよいよ核心の「高速機関」はなぜ速いのかという疑問への解答
です。
まず、基本的には、コンピュータのベーシックな原理である「バイナリー演
算技術」がベースのシステムとなっています。
例えば、都道府県データを処理する場合を考えてみてください。
都道府県は47種類です。東京都、神奈川県、北海道等と、このままでコン
ピュータ一データとして処理することも可能です。
このままですと漢字コードは一文字2バイト必要ですので、最長の4文字の
神奈川県にデータエリアを設定すれば、8バイト、即ち、64ビットのエリア
が必要となります。
しかし、一般的には数値でコード化します。この場合は10進数で二桁のコ
ードを割り当てます。10進の二桁のコードでは、「00から99」の100
種類ですが、実際に使っているのは半分の47種類です。残りの部分は使われ
ていません。
この10進数の二桁は、文字データでは2バイト即ち16ビットで処理され
ます。
これが、一般的なコンピュータでの処理方法です。
電話番号でもxxxx-xx-xxxx、郵便番号もxxx-xxxxとい
うコード体系となっていますが、実際にはすべてのコードが埋まっているわけ
ではなく、スケスケの状態と言うことになります。
このことに着目したのが「高速機関」の技術です。これらのコードをすべて、
バイナリーテーブルに変換する技術がベースになっています。
バイナリーに変換することにより、データの表現すべきビット数が少なくな
ります。
もう少し詳しく説明しますと、計算機の基本単位はビットという単位で処理
されています。1ビットは、「0か1」で表現されます。従って、上記の都道
府県の事例では、1ビットで2種類、2ビットで4種類、3ビットでの8種類、
4ビットで16種類、5ビットで32種類、6ビットで64種類の表現が可能
です。都道府県数は47種類ですので、6ビットあれば十分識別可能と言うこ
とになります。
10進数の文字コード二桁の16ビットは6ビットに圧縮が可能と言うこと
になります。この原理を使うことによりデータの圧縮が可能となるのです。
大規模なデータベースでは、そのデータベースのデータの中味によりますが、
このバイナリーコード化の技術によりデータベースのボリュームが数分の1か
ら数十分の1に圧縮が可能となります。
更に都合のよいことに、計算機の内部処理はすべてこのバイナリーコードで
処理した方が高速処理可能というメリットもでてきます。
人間の目に触れる場合には、このバイナリーデータを元に戻せばよいのです。
内部処理は、バイナリーでもなんら問題はないのです。
話が細かくなりすぎたかも知れませんが、「高速機関」の内部処理はこのバ
イナリーデータを基本にしています。
勿論、高速処理を実現する技術は、「バイナリー化技術」だけではありませ
ん。
数々の高速化のための技術と知恵が組み込まれています。
具体的な技術に関していくつかをご紹介します。
ここからは、計算機の基本原理にかかわる事項に触れますので、分かりにく
い方はスキップしていただいても結構ですが、極力分かりやすく説明してみま
す。
☆1.キャッシュメモリーをワークエリアとしている。
コンピュータのメモリーは、CPUの処理速度を発揮できる順番として、キ
ャッシュメモリー、メインメモリー、ハードディスクのキャッシュ、ハードデ
ィスクの磁気エリアという階層構造になっています。
「高速機関」はこの「キャッシュメモリー」をワークエリアとして有効に活
用できる技術を採用しています。これによりCPUの能力を十分に活用できる
ようになっています。
☆2.使用頻度の高いデータをキャッシュメモリーに置くことにより、メイン
メモリーとキャッシュメモリー間のロール・イン/アウトの時間を最少化する
方法も採用しています。
☆3.テーブルのアクセス方法に関しては、サーチ方式によるインデックス方
式ではなく、演算方式によるポインター技術を採用することにより、インデッ
クス処理の負荷を大幅に軽減させています。
☆4.データベースは、完全正規化されたデータ構造を採用しており、データ
項目の一つ一つをポインターで表現する技術を採用しています。
☆5.ディスクのデータ・アクセスに関しては、ランダムアクセス方式ではな
く、全てシークェンシャル処理をベースにしており、ハードディスクの性能を
最大限に発揮させるための工夫が組み込まれています。
この技術を組み込むことにより、データベースのロードとアンロードの時間
を短縮することが可能となっているのです。
☆6.更に、ハードデスクとのロードとアンロードを高速化するため、複数
台ハードディスクにデータを分割収納することによる並行処理可能なアクセス
方法を利用しています。
それ以外にもいくつかの技術を採用することにより、「高速機関」の高速化
処理を支えているのです。
これだけの説明で、ご理解いただける方は少ないかと思います。
コンピュータの動作のメカニズム原理を理解した上で、ハードの性能を十分
に引き出すための技術を随所に盛り込んだ技術基盤が「高速機関」に含まれて
いると言うことをご理解いただければと思います。
「ウインテル」というパソコンに使われている既存の標準製品を使いながら、
処理のネックとなる部分を徹底的に排除していくことにより高速処理を実現し
ているのです。
既存の大手ベンダーの技術者には発想できないノウハウが随所に盛り込まれ
ています。
大手ベンダーがこれらの技術を採用すれば、既存のハードやソフトの売上げ
を大幅に減少させることになりかねません。
従来の延長線上に構築された技術基盤を崩壊させてしまうことになり、収益
的に大打撃を受けることになりかねません。組織として許容される技術として
は認知されないと言うのは当然のことかも知れません。「高速機関」の技術が
大手ベンダーに簡単には受け入れられない理由がここにあります。
しかし、時代は大きく変化しようとしています、ICタグ等のアプリケーシ
ョンが普及されるようになれば、従来のコンピュータ処理能力を大幅に超える
処理能力を安価な価格で提供することを要求されることになります。
このような新規アプリケーション分野での利用では、「高速機関」の技術が
見直されることになるものと思います。
大いに期待したいものです。