説明

テーブル構成方法、データアクセス方法、コンピュータプログラム、テーブル構成装置及びデータ処理装置

【課題】複数のプログラムが同時にアクセスできる共通エリアテーブルへのアクセスする際に、高速処理を可能とする。
【解決手段】共通エリア11−1〜11−8に個別テーブル群15−1〜15−8を展開する。RFU領域12に共通エリア11−1〜11−8に展開された個別テーブル群15−1〜15−8の情報が記録されるRFUテーブルを展開し、HST領域13に個別テーブルのテーブルIDのハッシュ値に対応してアドレステーブルへのエントリとなるアドレスが記録されるHSTテーブルを展開し、TAT領域14に個別テーブルの展開テーブルID、各個別テーブル群へのエントリとなる展開開始アドレス、及びシノニムオフセットとが記録されるTATテーブルを展開する。個別テーブル群15−1〜15−8をアクセスする際に、HST領域13のHSTテーブルと、TAT領域14のTATテーブルとを用いる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数プログラムが同時にアクセス可能である汎用共通エリアに対して、高速アクセスが可能なテーブル構成方法、データアクセス方法、コンピュータプログラム、テーブル構成装置及びデータ処理装置に関する。
【背景技術】
【0002】
コンピュータのハードウェアの性能向上が目覚ましく発展したことから、従来に比べテーブル配置やアクセス方式を意識しない設計であっても、少数のテーブル展開であれば、問題なく動作するようになってきている。しかしながら、一方で、コンピュータがあらゆる分野で活用され、大規模で多くのデータ量を所定の時間で処理するために、参照系のテーブルを複数枚の大きな共通エリアに展開することが行われている(例えば特許文献1)。この場合、その共通エリアテーブルへのアクセスが処理速度の低下のボトルネックとなる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平09−146816号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、これまで提案されているデータ処理方法では、展開するテーブル数に比例してアクセスが遅くなる、あるいは2枚目以降の汎用共通エリアに展開された場合にアクセスが遅くなる、テーブル配置が後のテーブルのアクセスがより遅くなる等の課題がある。
【0005】
上述の課題を鑑み、本発明は、複数のプログラムが同時にアクセスできる共通エリアテーブルへのアクセスする際に、高速処理が可能なテーブル構成方法、データアクセス方法、コンピュータプログラム、テーブル構成装置及びデータ処理装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一態様は、テーブル構成方法であって、共通エリアに個別テーブル群を展開するステップと、前記共通エリアに展開された個別テーブルの情報が記録されるリソーステーブルを展開するステップと、前記個別テーブルのテーブルIDのハッシュ値に対応してアドレステーブルへのエントリとなるアドレスが記録されるハッシングテーブルを展開するステップと、前記個別テーブルの展開テーブルID、前記個別テーブル群へのエントリとなる展開開始アドレス、及びシノニム情報が記録されるアドレステーブルを展開するステップとを含むことを特徴とする。
【0007】
本発明の一態様は、共通エリアに展開された個別テーブル群と、前記共通エリアに展開された個別テーブルの情報が記録されたリソーステーブルと、前記個別テーブルのテーブルIDのハッシュ値に対応してアドレステーブルへのエントリとなるアドレスが記録されたハッシングテーブルと、前記個別テーブルの展開テーブルID、前記各個別テーブル群へのエントリとなる展開開始アドレス、及びシノニム情報とが記録されたアドレステーブルとを含むデータ処理装置のデータアクセス方法であって、前記ハッシングテーブルと前記アドレステーブルとを用いて前記個別テーブル群をアクセスするステップを含むことを特徴とする。
【0008】
本発明の一態様は、共通エリアに個別テーブル群を展開するステップと、前記共通エリアに展開された個別テーブルの情報が記録されるリソーステーブルを展開するステップと、前記個別テーブルのテーブルIDのハッシュ値に対応してアドレステーブルへのエントリとなるアドレスが記録されるハッシングテーブルを展開するステップと、前記個別テーブルの展開テーブルID、前記個別テーブル群へのエントリとなる展開開始アドレス、及びシノニム情報が記録されるアドレステーブルを展開するステップと、をコンピュータに実行させるためのコンピュータプログラムである。
【0009】
本発明の一態様は、共通エリアに展開された個別テーブル群と、前記共通エリアに展開された個別テーブルの情報が記録されたリソーステーブルと、前記個別テーブルのテーブルIDのハッシュ値に対応してアドレステーブルへのエントリとなるアドレスが記録されたハッシングテーブルと、前記個別テーブルの展開テーブルID、前記各個別テーブル群へのエントリとなる展開開始アドレス、及びシノニム情報とが記録されたアドレステーブルとを含むデータ処理装置に対し、前記ハッシングテーブルと前記アドレステーブルとを用いて前記個別テーブル群をアクセスするステップを実行させるためのコンピュータプログラムである。
【0010】
本発明の一態様は、テーブル構成装置であって、共通エリアに個別テーブル群を展開する第一展開部と、前記共通エリアに展開された個別テーブルの情報が記録されるリソーステーブルを展開する第二展開部と、前記個別テーブルのテーブルIDのハッシュ値に対応してアドレステーブルへのエントリとなるアドレスが記録されるハッシングテーブルを展開する第三展開部と、前記個別テーブルの展開テーブルID、前記個別テーブル群へのエントリとなる展開開始アドレス、及びシノニム情報が記録されるアドレステーブルを展開する第四展開部とを備えることを特徴とする。
【0011】
本発明の一態様は、データ処理装置であって、複数のプログラムが同時にアクセス可能な共通エリアに展開された個別テーブル群と、前記共通エリアに展開された個別テーブルの情報が記録されたリソーステーブルと、前記個別テーブルのテーブルIDのハッシュ値に対応してアドレステーブルへのエントリとなるアドレスが記録されたハッシングテーブルと、前記個別テーブルの展開テーブルID、前記各個別テーブル群へのエントリとなる展開開始アドレス、及びシノニム情報とが記録されたアドレステーブルと、前記ハッシングテーブルと前記アドレステーブルとを用いて、前記個別テーブル群をアクセスするデータ処理部と、を備えることを特徴とする。
【発明の効果】
【0012】
本発明によれば、各共通エリアに設けられた個別テーブル群をアクセスするのに、ハッシュ値が用いられ、同一のハッシュ値にマッピングされるテーブルIDをシノニム関係として処理している。このため、個別テーブル群へのアクセス処理時間を短縮することができる。
【図面の簡単な説明】
【0013】
【図1】データ処理装置の構成を示すブロック図である。
【図2】RFU領域12に設けられるテーブルの具体例を示すものである。
【図3】HST領域13に設けられるテーブルの具体例を示すものである。
【図4】TAT領域14に設けられるテーブルの具体例を示すものである。
【図5】展開テーブルにアクセスする際の処理をフローチャートで示したものである。
【発明を実施するための形態】
【0014】
図1は、データ処理装置(テーブル構成装置)の構成を示すブロック図である。データ処理装置は、バスを介して互いに接続されたデータ処理部1と、記憶部2と、入力部3と、表示部4と、通信部5とを用いて構成される。データ処理部1は、CPU(Central Processing Unit)やキャッシュ等の半導体記憶装置を用いて構成される。データ処理部1は、CPUが所定のプログラムを実行することによってデータ処理部1としての機能を実現する。記憶部2は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。入力部3には、キーボードやマウス等の入力装置が接続される。表示部4には、LCD(Liquid Crystal Display)等の画像表示装置が接続される。なお、データ処理部1の機能の全て又は一部は、ASIC(Application Specific Integrated Circuit)やPLD(Programmable Logic Device)等のハードウェアを用いて実現されても良い。データ処理装置は、後述する各テーブルを生成する際には、テーブル構成装置として動作し、生成された各テーブルを用いてアクセスを行う際にはデータ処理装置として動作する。
【0015】
記憶部2の記憶領域には、共通エリア群10が設けられる。共通エリア群10は、複数の共通エリアからなる。各共通エリアは、複数のプログラムが同時にアクセスできる記憶領域である。共通エリア群10には、例えば8つの共通エリア11−1〜11−8が設けられる。共通エリア11−1〜11−8には、個別テーブル群15−1〜15−8が設けられる。
【0016】
共通エリア11−1の先頭には、RFU(Resource Future Used)領域12、HST(HaShing Table)領域13、TAT(Table Address Table)領域14が設けられる。RFU領域12、HST領域13、TAT領域14は、いずれもデータ処理部1の処理によって記憶部2に設けられる。
【0017】
RFU領域12にはRFUテーブルが記憶される。RFUテーブルには、データレコードとして、各共通エリア11−1〜11−8に展開された個別テーブル群15−1〜15−8のアドレス値、各共通エリア11−1〜11−8の空き領域のバイト数とが記録される。
【0018】
HST領域13にはHSTテーブルが記憶される。HSTテーブルには、データレコードとして、個別テーブルのテーブルIDのハッシュ値と、各ハッシュ値に対応するTATテーブルへのエントリとなるアドレスとが記録される。ここで、ハッシュ値は、テーブルIDを文字列から数値に変換し、例えば母数128で除算し、その剰余から求められる。このように、文字列を数値に変換し、母数128で除算した剰余からハッシュ値を求めているため、その数は、「0」〜「127」となる。HSTテーブルには、「1」〜「128」の128個のレコードが設けられる。HSTテーブルの「1」〜「128」の各レコードには、ハッシュ値の「0」〜「127」に対応している。
【0019】
TAT領域14にはTATテーブルが記憶される。TATテーブルには、データレコードとして、個別テーブルの展開テーブルIDと、各個別テーブル群へのエントリとなる展開開始アドレスと、シノニムオフセットとが記録される。ここで、シノニムオフセットは、シノニム関係のテーブルIDがある場合に利用される。すなわち、前述したように、本実施形態では、テーブルIDの文字列を数値に変換し、母数128で除算した剰余からハッシュ値を求めている。この場合、ハッシュ値は「1」〜「128」となる。このため、異なるテーブルIDの文字列に対して同一のハッシュ値がマッピングされる可能性がある。ここでは、このように、同一のハッシュ値がマッピングされる場合を、シノニム関係としている。シノニムオフセットには、シノニム関係になるテーブルIDのデータレコードの位置を示すオフセットが記録される。
【0020】
図2〜図4は、RFU領域12、HST領域13、TAT領域14に設けられる各テーブルの具体例を示すものである。RFU領域12に記憶されるRFUテーブル、HST領域13に記憶されるHSTテーブル、TAT領域14に記憶されるTATテーブルは、それぞれデータ処理部1の処理によって記録される。
【0021】
RFU領域12は、共通エリア11−1の先頭から例えば96バイト分の領域として、データ処理部1によって確保される。RFU領域12のRFUテーブルには、図2に示すように、テーブルID(16バイト)と、テーブルサイズ(4バイト)と、テーブルレコード数(4バイト)と、データレコードサイズ(4バイト)と、データレコード「1」〜データレコード「8」(各8バイト)が設けられる。テーブルIDは、このRFUテーブルを識別するためのものである。テーブルサイズは、このRFUテーブルのテーブルサイズで、例えば96バイトである。テーブルレコード数は、共通エリアの数を表しており、共通エリア11−1〜11−8が8個の場合には「8」である。データレコードサイズは、RFUテーブルの各データレコードのサイズである。データレコード「1」〜データレコード「8」には、各共通エリア11−1〜11−8に展開された個別テーブル群15−1〜15−8のアドレス値と、各共通エリア11−1〜11−8の空き領域のバイト数とが記録される。
【0022】
HST領域13は、共通エリア11−1の先頭からRFUテーブルに続いて例えば540バイト分の領域として、データ処理部1によって確保される。HST領域13のHSTテーブルには、図3に示すように、テーブルID(16バイト)と、テーブルサイズ(4バイト)と、テーブルレコード数(4バイト)と、データレコードサイズ(4バイト)と、データレコード「1」〜データレコード「128」(各4バイト)とが設けられる。テーブルIDは、このHSTテーブルを識別するためのものである。テーブルサイズは、このHSTテーブルのテーブルサイズで、例えば540バイトである。テーブルレコード数は、このHSTテーブルのレコード数である。このレコード数は、ハッシュ値の数に対応する。ここでは、データ処理部1は、テーブルIDの文字列を数値に変換し、母数128で除算した剰余からハッシュ値を求めている。そのため、テーブルレコード数は「128」となる。データレコードサイズは、HSTテーブルの各データレコードのサイズである。データレコード「1」〜データレコード「128」には、各ハッシュ値「0」〜「127」に対応して、TATテーブルへのエントリとなるアドレスが記録される。なお、ハッシュ値「0」がデータレコード「1」に対応し、ハッシュ値「127」がデータレコード「128」に対応する。
【0023】
TAT領域14は、共通エリア11−1の先頭からHSTテーブルに続いて例えば3104バイト分の領域として、データ処理部1によって確保される。TAT領域14のTATテーブルには、図4に示すように、テーブルID(16バイト)と、テーブルサイズ(4バイト)と、テーブルレコード数(4バイト)と、有効レコード数(4バイト)と、データレコードサイズ(4バイト)と、データレコード「1」〜データレコード「128」(各24バイト)とが設けられる。テーブルIDは、このTATテーブルを識別するためのものである。テーブルサイズは、このTATテーブルのテーブルサイズで、例えば3104バイトである。テーブルレコード数は、このTATテーブルのレコード数である。有効レコード数は、TATテーブルに記録した有効レコード数である。データレコード「1」〜データレコード「128」には、各共通エリア11−1〜11−8に展開した個別テーブルの展開テーブルIDと、展開開始アドレスと、シノニムオフセットとが記録される。
【0024】
以上のように、データ処理部1の処理によって、記憶部2にRFU領域12、HST領域13、TAT領域14が設けられ、それぞれの領域にテーブルが生成される。具体的には、RFU領域12への展開処理、HST領域13への展開処理、TAT領域14への展開処理、テーブルAへの展開処理、テーブルBへの展開処理をデータ処理部1が順次実行することによって、テーブルが生成される。次に、上記の各テーブルを用いてデータにアクセスするための処理について説明する。本実施形態において、共通エリア11−1〜11−8の個別テーブル群をアクセスする際には、以下のような処理が行われる。
【0025】
図1において、例えば入力部3から検索キーがテーブルIDとして入力されると、データ処理部1は、テーブルIDを文字列から数値に変換する。そして、データ処理部1は、母数128の剰余からハッシュ値を計算し、図3に示したHST領域13のHSTテーブルにアクセスする。前述したように、各ハッシュ値「0」〜「127」は、HSTテーブルのデータレコード「1」〜データレコード「128」に対応している。そして、このHSTテーブルのデータレコード「1」〜「128」には、図3に示すように、TATテーブルへのエントリとなるアドレスが記録される。よって、データ処理部1は、検索キーとして入力されたテーブルIDのハッシュ値を計算し、このハッシュ値を基にHSTテーブルにアクセスすることによって、TATテーブルへのエントリとなるアドレス値を取得する。
【0026】
データ処理部1は、TATテーブルのアドレス値を取得すると、このアドレス値に基づいて、TATテーブルにアクセスする。図4に示したように、TATテーブルのデータレコード「1」〜「128」には、個別テーブルの展開テーブルIDと、展開開始アドレスと、シノニムオフセットとが記録されている。データ処理部1は、TATテーブルにアクセスしたら、検索キーとして入力されたテーブルIDと、展開テーブルIDとが一致するかどうかを判定する。つまり、HSTテーブルからTATテーブルにアクセスする際に、シノニム関係にあるテーブルIDは、同一のデータレコードにアクセスされる。検索キーとして入力されたテーブルIDがそのTATテーブルのデータレコードそのものであれば、入力されたテーブルIDと展開テーブルIDとは一致する。一方で、シノニム関係のテーブルIDの場合には、入力されたテーブルIDと展開テーブルIDとは一致しない。
【0027】
入力されたテーブルIDと展開テーブルIDとが一致する場合には、データ処理部1は、このTATテーブルのデータレコードから展開開始アドレスを取得する。そして、データ処理部1は、この展開開始アドレスをエントリとして、個別テーブル群15−1〜15−8にアクセスする。
【0028】
入力されたテーブルIDと展開テーブルIDとが一致しない場合には、データ処理部1は、シノニムオフセットで示されるデータレコードに移動する。そして、データ処理部1は、移動したデータレコードで、再び、入力されたテーブルIDと、展開テーブルIDとが一致するかどうかを判定する。入力されたテーブルIDと展開テーブルIDとが一致する場合には、データ処理部1は、この移動したデータレコードから展開開始アドレスを取得する。そして、データ処理部1は、この展開開始アドレスをエントリとして、個別テーブル群15−1〜15−8にアクセスする。
【0029】
このように、本実施形態では、各共通エリア11−1〜11−8の個別テーブル群15−1〜15−8にアクセスする際に、ハッシュ値が用いられる。そして、同一のハッシュ値にマッピングされるテーブルIDが、シノニム関係として処理される。これにより、個別テーブルのレコード数が多くなっても、高速アクセスが実現できる。
【0030】
次に、共通エリア11−1に個別テーブル群A、共通エリア11−2に個別テーブル群Bの2つのテーブルデータを展開する処理について具体的に説明する。図1において、先ず、データ処理部1は、8枚の共通エリア(ここでは各64KBと仮定し、管理テーブルが十分格納できるサイズの共通エリアとする)を確保し、先頭アドレスを取得する。次に、データ処理部1は、RFU領域12を共通エリア11−1の先頭アドレスより96バイト確保し、初期値を設定する。データ処理部1は、データレコード「1」には、共通エリア11−1の先頭アドレスより96バイト分加えたアドレスを設定する。また、データ処理部1は、データレコード「2」〜「8」には、それぞれ共通エリア11−2〜11−8の先頭アドレスを設定する。
【0031】
次に、データ処理部1は、HST領域13を共通エリア11−1のRFUテーブルに続き540バイト確保し、全てのレコードにNULL値を設定する。なお、データレコード「1」はハッシュ計算結果の剰余が「0」の場合、データレコード「128」はハッシュ計算結果の剰余が「127」の場合に使用される。
【0032】
次に、データ処理部1は、TAT領域14を共通エリア11−1のHSTテーブルに続き3104バイト確保し、全てのレコードのテーブルID、アドレス、シノニムオフセットにNULL値を設定する。
【0033】
次に、データ処理部1は、個別テーブル群Aのテーブルサイズを事前の算出し、RFUテーブルの(1レコード目)から順番に空き領域サイズと比較し、格納できる共通エリアを決定する。今回は共通エリア11−1に格納可能であったこととする。
【0034】
次に、データ処理部1は、個別テーブル群Aを共通エリア11−1の空き領域の先頭(1レコード目のアドレス値)から展開する。そして、データ処理部1は、 RFUテーブルの1レコード目のアドレス値から個別テーブル群Aのテーブルサイズを加え、かつ1レコード目の空き領域サイズから個別テーブル群Aのテーブルサイズを減じて値を更新する。
【0035】
次に、データ処理部1は、個別テーブル群AのテーブルIDを文字列から数値に変換し、母数128でハッシュ計算を行い、剰余を求める。ここで、剰余の値が126であったとする。剰余が126の場合には、データ処理部1は、HSTテーブルの127レコード目にTATテーブルの有効レコード数(現在0)の1加算したレコードのアドレスを設定する。なお、1件目で記していないが、HSTテーブルの127レコード目設定時にシノニムレコード有無チェックとして、127レコード目のアドレスがNULL値であることを確認する。なお、今回は1件目でNULL値であったとする。
【0036】
次に、データ処理部1は、TATテーブルの1レコード目の個別テーブル群IDにテーブルIDを、展開開始アドレス値に個別テーブル群Aの展開された先頭アドレスを設定する。
次に、データ処理部1は、個別テーブル群Bのテーブルサイズを事前の算出し、RFUテーブルの1レコード目から順番に空き領域サイズと比較し、格納できる共通エリアを決定する。今回は共通エリア11−1に格納できず、共通エリア11−2に格納可能であったこととする。この場合、個別テーブル群Bを共通エリア11−2の空き領域の先頭から展開する。そして、データ処理部1は、RFUの2レコード目のアドレス値から個別テーブル群Bのテーブルサイズを加え、かつ2レコード目の空き領域サイズから個別テーブル群Bのテーブルサイズを減じて値を更新する。
【0037】
次に、データ処理部1は、個別テーブル群BのテーブルIDを文字列から数値に変換し、母数128でハッシュ計算を行い、剰余を求める。この剰余の値が前回と同じ126であったとする。すなわち、前回のテーブルIDとシノニム関係であったとする。この場合、HSTテーブルの127レコード目のアドレスが非NULL値(TATテーブルの1レコード目のアドレスが格納)であることから、既にハッシュ結果の値において既存テーブルとの間でシノニムの関係があるとが検知される。なお、このとき、HSTテーブルは変更しない。
【0038】
次に、データ処理部1は、HSTテーブルの127レコード目のアドレスが示すTATテーブルの1レコード目のシノニムオフセットにTATテーブルの有効レコード数(現在1)の1加算したレコードのアドレスを設定する。
以上のように展開された個別テーブル群A、個別テーブル群Bの2つのテーブルへアクセスする場合には、以下のような処理が行われる。
【0039】
個別テーブル群Aにアクセスする際には、データ処理部1は、個別テーブル群AのテーブルIDを文字列から数値に変換し、母数128でハッシュ計算を行い、剰余を求める。ここで、余剰の結果は126であるとする。余剰の結果が126である場合には、データ処理部1は、HSTテーブルのデータレコード127にアクセスし、アドレス値を確認する。そして、HSTテーブルに設定されたアドレス値をエントリとして、TATテーブルのデータレコードをアクセスする。ここでは、TATテーブルのデータレコード「1」にアクセスしたとする。
【0040】
次に、データ処理部1は、個別テーブル群AのテーブルIDとTATテーブルのデータレコード「1」の個別テーブル群IDを比較する。ここで、個別テーブル群AのテーブルIDとTATテーブルのデータレコード「1」の個別テーブル群IDとの比較結果が一致した場合には、TATテーブルから展開開始アドレス値を取得し、個別テーブル群Aにアクセスする。
【0041】
個別テーブル群Bにアクセスする際には、データ処理部1は、個別テーブル群BのテーブルIDを文字列から数値に変換し、母数128でハッシュ計算を行い、剰余を求める。ここで、余剰の結果は126であるとする。余剰の結果が126であることから、HSTテーブルのデータレコード127にアクセスし、アドレス値を確認し、HSTテーブルに設定されたアドレス値をエントリとして、TATテーブルのデータレコード「1」にアクセスする。そして、データ処理部1は、個別テーブル群BのテーブルIDとTATテーブルのデータレコード「1」の個別テーブル群IDを比較する。前述したように、このテーブルIDはシノニムの関係にあるので、個別テーブル群BのテーブルIDとTATテーブルのデータレコード「1」の個別テーブル群IDとは一致しない。
【0042】
ここで、比較結果が不一致である場合には、データ処理部1は、TATテーブルのシノニムオフセットを確認する。シノニムオフセットの内容からデータレコード「2」へ移動し、個別テーブル群BのテーブルIDとTATテーブルのデータレコード「2」の個別テーブル群IDを比較する。ここで、比較結果が一致した場合には、データ処理部1は、データレコード「2」の展開開始アドレス値を取得し、個別テーブル群Bにアクセスする。
【0043】
図5は、展開テーブルにアクセスする際の処理をフローチャートで示したものである。図5において、テーブルIDが入力されると(ステップS1)、データ処理部1は、テーブルIDを文字列から数値に変換し(ステップS2)、母数128の剰余からハッシュ値を計算する(ステップS3)。そして、データ処理部1は、このハッシュ値に対応するHST領域13のHSTテーブルにアクセスし、図3に示したHSTテーブルのデータレコードに基づいて、TATテーブルのアドレス値を取得する(ステップS4)。そして、データ処理部1は、このアドレス値をエントリとして、TATテーブルのデータレコードをアクセスし、図4に示したTATテーブルのデータレコードから、展開テーブルIDを取得する(ステップS5)。そして、データ処理部1は、入力されたテーブルIDと、展開テーブルIDとが一致するかどうかを判定する(ステップS6)。
【0044】
ステップS6で、入力されたテーブルIDと展開テーブルIDとが一致する場合には、このTATテーブルのデータレコードから展開開始アドレスを取得し(ステップS7)、個別テーブル群にアクセスする(ステップS8)。
【0045】
ステップS6で、入力されたテーブルIDと展開テーブルIDとが一致していない場合には、データ処理部1は、TATテーブルからシノニムオフセットを取得し(ステップS9)、シノニムオフセットに従って、データレコードを移動し(ステップS10)、ステップS6にリターンする。そして、データ処理部1は、再びステップS6で、移動したデータレコードで、入力されたテーブルIDと展開テーブルIDとが一致するかどうかを判定し、入力されたテーブルIDと展開テーブルIDとが一致する場合には、TATテーブルから展開開始アドレスを取得し(ステップS7)、個別テーブル群にアクセスする(ステップS8)。
【0046】
以上説明したように、本実施形態では、RFU領域12に共通エリア11−1〜11−8に展開された個別テーブル群15−1〜15−8の情報が記録されたRFUテーブルが展開され、HST領域13に個別テーブルのテーブルIDのハッシュ値に対応してアドレステーブルへのエントリとなるアドレスが記録されたHSTテーブルが展開され、TAT領域14に個別テーブルの展開テーブルID、各個別テーブル群へのエントリとなる展開開始アドレス、及びシノニムオフセットとが記録されるTATテーブルが展開される。そして、各共通エリア11−1〜11−8の個別テーブル群をアクセスするのに、HSTテーブルとTATテーブルとが用いられる。本実施形態では、TATテーブルに、個別テーブルの展開テーブルID、各個別テーブル群へのエントリとなる展開開始アドレス、及びシノニムオフセットとが記録されるので、同一のハッシュ値にマッピングされるテーブルIDをシノニム関係として処理することができ、個別テーブルのレコード数が増加しても、高速処理が可能となる。
【0047】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0048】
1…データ処理部, 2…記憶部, 10…共通エリア群, 11−1〜11−8…共通エリア, 12…RFU領域, 13…HST領域, 14…TAT領域, 15…個別テーブル群

【特許請求の範囲】
【請求項1】
共通エリアに個別テーブル群を展開するステップと、
前記共通エリアに展開された個別テーブルの情報が記録されるリソーステーブルを展開するステップと、
前記個別テーブルのテーブルIDのハッシュ値に対応してアドレステーブルへのエントリとなるアドレスが記録されるハッシングテーブルを展開するステップと、
前記個別テーブルの展開テーブルID、前記個別テーブル群へのエントリとなる展開開始アドレス、及びシノニム情報が記録されるアドレステーブルを展開するステップと
を含むことを特徴とするテーブル構成方法。
【請求項2】
前記ハッシュ値は、前記テーブルIDの文字列を数値に変換し、所定数の母数で除算した剰余から求めることを特徴とする請求項1に記載のテーブル構成方法。
【請求項3】
前記シノニム情報は、ハッシュ値が同一となるテーブルIDのレコードの位置を示すオフセットであることを特徴とする請求項1又は2に記載のテーブル構成方法。
【請求項4】
共通エリアに展開された個別テーブル群と、
前記共通エリアに展開された個別テーブルの情報が記録されたリソーステーブルと、
前記個別テーブルのテーブルIDのハッシュ値に対応してアドレステーブルへのエントリとなるアドレスが記録されたハッシングテーブルと、
前記個別テーブルの展開テーブルID、前記各個別テーブル群へのエントリとなる展開開始アドレス、及びシノニム情報とが記録されたアドレステーブルと
を含むデータ処理装置のデータアクセス方法であって、
前記ハッシングテーブルと前記アドレステーブルとを用いて前記個別テーブル群をアクセスするステップを含む
ことを特徴とするデータアクセス方法。
【請求項5】
前記ハッシングテーブルと前記アドレステーブルとを用いて前記個別テーブル群をアクセスするステップは、
入力されたテーブルIDのハッシュ値を求め、前記ハッシュ値をエントリとして前記ハッシングテーブルのレコードをアクセスするステップと、
当該ハッシングテーブルのレコードから前記アドレステーブルへのエントリとなるレコードのアドレスを取得し、前記取得されたアドレスで前記アドレステーブルのレコードをアクセスするステップと、
前記入力されたテーブルIDと前記アドレステーブルのレコードから得られた展開テーブルIDが一致しているかどうかを判定するステップと、
前記入力されたテーブルIDと前記アドレステーブルのレコードから得られた展開テーブルIDが一致していたら、当該レコードの展開開始アドレスを取得して前記個別テーブル群をアクセスするステップと、
前記入力されたテーブルIDと前記アドレステーブルのレコードから得られた展開テーブルIDが一致していなければ、前記シノニム情報に従ってレコードに移動し、当該移動したレコードの展開開始アドレスを取得して前記個別テーブル群をアクセスするステップと
を含むことを特徴とする請求項4に記載のデータアクセス方法。
【請求項6】
共通エリアに個別テーブル群を展開するステップと、
前記共通エリアに展開された個別テーブルの情報が記録されるリソーステーブルを展開するステップと、
前記個別テーブルのテーブルIDのハッシュ値に対応してアドレステーブルへのエントリとなるアドレスが記録されるハッシングテーブルを展開するステップと、
前記個別テーブルの展開テーブルID、前記個別テーブル群へのエントリとなる展開開始アドレス、及びシノニム情報が記録されるアドレステーブルを展開するステップと、
をコンピュータに実行させるためのコンピュータプログラム。
【請求項7】
共通エリアに展開された個別テーブル群と、
前記共通エリアに展開された個別テーブルの情報が記録されたリソーステーブルと、
前記個別テーブルのテーブルIDのハッシュ値に対応してアドレステーブルへのエントリとなるアドレスが記録されたハッシングテーブルと、
前記個別テーブルの展開テーブルID、前記各個別テーブル群へのエントリとなる展開開始アドレス、及びシノニム情報とが記録されたアドレステーブルと
を含むデータ処理装置に対し、
前記ハッシングテーブルと前記アドレステーブルとを用いて前記個別テーブル群をアクセスするステップを実行させるためのコンピュータプログラム。
【請求項8】
共通エリアに個別テーブル群を展開する第一展開部と、
前記共通エリアに展開された個別テーブルの情報が記録されるリソーステーブルを展開する第二展開部と、
前記個別テーブルのテーブルIDのハッシュ値に対応してアドレステーブルへのエントリとなるアドレスが記録されるハッシングテーブルを展開する第三展開部と、
前記個別テーブルの展開テーブルID、前記個別テーブル群へのエントリとなる展開開始アドレス、及びシノニム情報が記録されるアドレステーブルを展開する第四展開部と
を備えることを特徴とするテーブル構成装置。
【請求項9】
複数のプログラムが同時にアクセス可能な共通エリアに展開された個別テーブル群と、
前記共通エリアに展開された個別テーブルの情報が記録されたリソーステーブルと、
前記個別テーブルのテーブルIDのハッシュ値に対応してアドレステーブルへのエントリとなるアドレスが記録されたハッシングテーブルと、
前記個別テーブルの展開テーブルID、前記各個別テーブル群へのエントリとなる展開開始アドレス、及びシノニム情報とが記録されたアドレステーブルと、
前記ハッシングテーブルと前記アドレステーブルとを用いて、前記個別テーブル群をアクセスするデータ処理部と、
を備えることを特徴とするデータ処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2011−215765(P2011−215765A)
【公開日】平成23年10月27日(2011.10.27)
【国際特許分類】
【出願番号】特願2010−81878(P2010−81878)
【出願日】平成22年3月31日(2010.3.31)
【出願人】(000004237)日本電気株式会社 (19,353)
【出願人】(000232221)日本電気航空宇宙システム株式会社 (14)
【Fターム(参考)】