"複数のプロセッサセットにグループ化された複数のプロセッサ上でデータベース内の記録を処理する方法であって、前記複数のプロセッサのうちの少なくとも1つのプロセッサ上で、複数の記録セットのうちの1つの記録セットに各記録を関連付けるステップと、前記複数のプロセッサのうちの少なくとも1つのプロセッサ上で、各記録セットを1つのプロセッサセットに関連付けるステップと、前記関連付けけられた記録セットに基づいて、プロセッサセットに前記記録をルーティングするステップと、前記記録を前記プロセッサセットで処理するステップと、を備える方法。前記方法は、前記複数のプロセッサセットの各プロセッサセットのためのロギングキャッシュ又は前記複数のプロセッサのための単一のロギングキャッシュを作成するステップと、各ロギングキャッシュと関連プロセッサセットとの間のアフィニティを作成するステップと、データベーストランザクションをログするように、各プロセッサセット内の単一のプロセッサを割り当てるステップと、をさらに備え、各プロセッサセットが複数のプロセッサを備える、請求項1に記載の方法。前記方法は、複数のサーバプロセスを作成するステップであって、各サーバプロセスが前記複数のプロセッサセットのうちの1つのプロセッサセットに関連付けられる、当該ステップと、各サーバプロセスと前記関連付けられたプロセッサセットとの間のアフィニティを作成するステップと、各サーバプロセスを1つの記録セットに関連付けるステップと、をさらに備え、各サーバプロセスが、前記関連付けられた記録セット内の記録を処理する、請求項1に記載の方法。前記方法は、前記データベースを複数のサブデータベースに分割するステップと、各サブデータベースを1つのプロセッサセットに関連付けるステップと、1つのプロセッサセットに関連付けられた各サブデータベースのためのデータベースキャッシュを作成するステップと、各データベースキャッシュと前記関連付けられたプロセッサセットとの間のアフィニティを作成するステップと、をさらに備える請求項1に記載の方法。前記記録をルーティングするステップは、記録をスタティックルーティングテーブルに基づいて処理セットにルーティングするサブステップ、を含む、請求項1に記載の方法。前記記録を関連付けるステップは、記録を処理する場合に記録セット間にデータ依存関係がないように、記録を記録セットに関連付けるサブステップ、を含む、請求項1に記載の方法。データベース内の記録を処理するように構成された複数のプロセッサセットにグループ化された複数のプロセッサを備える装置であって、各記録を複数の記録セットのうちの1つの記録セットに関連付け、各記録セットを1つのプロセッサセットに関連付け、前記関連付けけられた記録セットに基づいて前記記録をプロセッサセットにルーティングし、前記記録を処理する、ように構成される装置。前記装置は、前記複数のプロセッサセットの各プロセッサセットのためのロギングキャッシュ又は前記複数のプロセッサのための単一のロギングキャッシュを作成し、各ロギングキャッシュと関連付けられたプロセッサセットとの間のアフィニティを作成し、データベーストランザクションをログするように、各プロセッサセット内の単一のプロセッサを割り当てる、ように、さらに構成され、各プロセッサセットが複数のプロセッサを備える、請求項7に記載の装置。前記装置は、各サーバプロセスが前記複数のプロセッサセットのうちの1つのプロセッサセットに関連付けられる複数のサーバプロセスを作成し、各サーバプロセスと前記関連付けられたプロセッサセットとの間のアフィニティを作成し、各サーバプロセスを記録セットに関連付ける、ように、さらに構成され、各サーバプロセスが前記関連付けられた記録セット内の記録を処理する、請求項7に記載の装置。前記装置は、前記データベースを複数のサブデータベースに分割し、各サブデータベースを1つのプロセッサセットに関連付け、1つのプロセッサセットに関連付けられた各サブデータベースのためのデータキャッシュを作成し、各データベースキャッシュと前記関連付けられたプロセッサセットとの間のアフィニティを作成する、ように、さらに構成される請求項7に記載の装置。前記装置は、スタティックルーティングテーブルに基づいて記録を処理セットにルーティングする、ように、さらに構成される請求項7に記載の装置。前記装置は、記録を処理する場合に記録セット間にデータ依存関係がないように記録を記録セットに関連付ける、ように、さらに構成される請求項7に記載の装置。コンピュータに、データベース内の各記録を複数の記録セットのうちの1つの記録セットに関連付けさせる手順、各記録セットを1つのプロセッサセットに関連付けさせる手順、前記関連付けられた記録セットに基づいて前記記録をプロセッサセットにルーティングさせる手順、および、前記記録を処理させる手順、を実行させることができるコード、を備えるコンピュータ可読非一時的記憶媒体。前記コンピュータ可読非一時的記憶媒体は、コンピュータに、前記複数のプロセッサセットの各プロセッサセットのためのロギングキャッシュ又は前記複数のプロセッサのための単一のロギングキャッシュを作成させる手順、各ロギングキャッシュと関連付けられたプロセッサセットとの間のアフィニティを作成させる手順、および、データベーストランザクションをログするように各プロセッサセット内の単一のプロセッサを割り当てる手順、を実行させることができるコード、をさらに備え、各プロセッサセットが複数のプロセッサを備える、請求項13に記載のコンピュータ可読非一時的記憶媒体。前記コンピュータ可読非一時的記憶媒体は、コンピュータに、各サーバプロセスが前記複数のプロセッサセットのうちの1つのプロセッサセットに関連付けられる複数のサーバプロセスを作成させる手順、各サーバプロセスと前記関連付けられたプロセッサセットとの間のアフィニティを作成させる手順、および、各サーバプロセスを1つの記録セットに関連付けさせる手順、を実行させることができるコード、をさらに備え、各サーバプロセスが、前記関連付けられた記録セット内の記録を処理する、請求項14に記載のコンピュータ可読非一時的記憶媒体。前記コンピュータ可読非一時的記憶媒体は、コンピュータに、前記データベースを複数のサブデータベースに分割させる手順、各サブデータベースを1つのプロセッサセットに関連付けさせる手順、1つのプロセッサセットに関連付けられた各サブデータベースのためのデータベースキャッシュを作成させる手順、および、各データベースキャッシュと前記関連付けられたプロセッサセットとの間のアフィニティを作成させる手順、を実行させることができるコード、をさらに備える請求項14に記載のコンピュータ可読非一時的記憶媒体。前記コンピュータ可読非一時的記憶媒体は、コンピュータに、スタティックルーティングテーブルに基づいて記録を処理セットにルーティングさせる手順、を実行させることができるコード、をさらに備える請求項14に記載のコンピュータ可読非一時的記憶媒体。前記コンピュータ可読非一時的記憶媒体は、コンピュータに、記録を処理する場合に記録セット間にデータ依存関係がないように記録を記録セットに関連付けさせる手順、を実行させることができるコード、をさらに備える請求項14に記載のコンピュータ可読非一時的記憶媒体。マルチプロセッサ環境において記録をデータベースに挿入する方法であって、ルーティングノードにおいて、記録を受信するステップと、前記ルーティングノードにおいて、前記記録を複数の記録セットのうちの1つの記録セットに関連付けるステップと、前記関連付けられた記録セットに基づいて前記記録を複数のプロセッサセットのうちの1つのプロセッサセットにルーティングするステップと、前記プロセッサセットにおいて、一致する記録がないか前記データベースの一部分を探索するステップであって、前記データベースの前記一部分が前記プロセッサセットに関連付けられている、当該ステップと、前記記録が前記データベースの前記一部分で見つけられない場合、前記記録を前記データベースの前記一部分に挿入するステップと、を備える方法。ルーティングノード、及びデータベース内の記録を処理するように構成されたた複数のプロセッサセットにグループ化された複数のプロセッサを備える装置であって、ルーティングノードにおいて、記録を受信し、前記ルーティングノードにおいて、前記記録を複数の記録セットのうちの1つの記録セットに関連付け、前記関連付けられた記録セットに基づいて前記記録を前記複数のプロセッサセットのうちの1つのプロセッサセットにルーティングし、前記プロセッサセットにおいて、一致する記録がないか前記プロセッサセットに関連付けられた前記データベースの一部分を探索し、前記プロセッサセットにおいて、前記記録が前記データベースの前記一部分で見つけられない場合、前記記録を前記データベースの前記一部分に挿入する、ように構成される装置。コンピュータに、ルーティングノードにおいて、記録を受信させる手順、前記ルーティングノードにおいて、前記記録を複数の記録セットのうちの1つの記録セットに関連付けさせる手順、前記関連付けられた記録セットに基づいて前記記録を複数のプロセッサセットのうちの1つのプロセッサセットにルーティングさせる手順、前記プロセッサセットにおいて、一致する記録がないか前記プロセッサセットに関連付けられたデータベースの一部分を探索させる手順、および、前記プロセッサセットにおいて、前記記録が前記データベースの前記一部分で見つけられない場合は前記記録を前記データベースの前記一部分に挿入させる手順、を実行させることができるコード、を備えるコンピュータ可読非一時的記憶媒体。複数のプロセッサセットにグループ化された複数のプロセッサ上でデータベース内の記録を処理するためのシステムであって、前記複数のプロセッサのうちの少なくとも1つのプロセッサにおいて、複数の記録セットのうちの1つの記録セットに各記録を関連付けるための手段と、前記複数のプロセッサのうちの少なくとも1つのプロセッサにおいて、1つのプロセッサセットに各記録セットを関連付けるための手段と、前記関連付けられた記録セットに基づいて、プロセッサセットに前記記録をルーティングするための手段と、前記記録を前記プロセッサセットで処理するための手段と、を備えるシステム。前記システムは、前記複数のプロセッサセットの各プロセッサセットのためのロギングキャッシュ又は前記複数のプロセッサのための単一のロギングキャッシュを作成するための手段と、各ロギングキャッシュと関連付けられたプロセッサセットとの間のアフィニティを作成するための手段と、データベーストランザクションをログするように各プロセッサセット内の単一のプロセッサを割り当てるための手段と、をさらに備え、各プロセッサセットが複数のプロセッサを備える、請求項22に記載のシステム。前記システムは、複数のサーバプロセスを作成するための手段であって、各サーバプロセスが前記複数のプロセッサセットのうちの1つのプロセッサセットに関連付けられる、当該手段と、各サーバプロセスと前記関連付けられたプロセッサセットとの間のアフィニティを作成するための手段と、各サーバプロセスを1つの記録セットに関連付ける手段と、をさらに備え、各サーバプロセスが、前記関連付けられた記録セット内の記録を処理する、請求項22に記載のシステム。前記システムは、前記データベースを複数のサブデータベースに分割するための手段と、各サブデータベースを1つのプロセッサセットに関連付けるための手段と、1つのプロセッサセットに関連付けられた各サブデータベースのためのデータベースキャッシュを作成するための手段と、各データベースキャッシュと前記関連付けられたプロセッサセットとの間のアフィニティを作成するための手段と、をさらに備える請求項22に記載のシステム。前記記録をルーティングするための手段が、スタティックルーティングテーブルに基づいて記録を処理セットにルーティングするための手段、を含む、請求項22に記載のシステム。前記記録を関連付けるための手段が、記録を処理する場合に記録セット間にデータ依存関係がないように、記録を記録セットに関連付けるための手段、を含む、請求項22に記載のシステム。0024図1を参照すると、一実施形態では、本開示の特徴が実装されるマルチプロセッサコンピュータシステム110は、Oracle登録商標TimesTen500OracleParkway,RedwoodShores,CA94065インメモリデータベースを実行するSGI登録商標Altix登録商標4700SiliconGraphics,Inc.,46600LandingParkway,Fremont,CA94538モジュラブレードプラットフォームを含む。他の実施形態では、本開示の特徴が実装されるマルチプロセッサコンピュータシステム110は、SGI登録商標UltraViolet登録商標SiliconGraphics,Inc.,46600LandingParkway,Fremont,CA94538を含む。プラットフォームは、ノード120をいくつ含んでもよい。各ノード120は、プロセッサ150をいくつ含んでもよい。一実施形態によれば、ノード120ごとに約1個から約32個までの間のプロセッサ150がある。他の実施形態では、ノード120ごとに約4個から約8個までの間のプロセッサ150があり、より特定的にはノード120ごとに約4個のプロセッサ150がある。本明細書では特定のデータベース、アプリケーション、及びハードウェアに関連して様々な実施形態が説明されるが、本開示は様々な構成に適用可能であることを当業者は理解するであろう。0025マルチプロセッサコンピュータシステム110は、記録を読み出し、それらの記録を行及び列を有するテーブルに構成されたデータベースに挿入するように構成されてもよい。一実施形態では、マルチプロセッサコンピュータシステム110は、着信記録を読み出し、データベースにおいて記録を探索し、記録がデータベースで見つけられない場合は記録をデータベースに挿入することにより行挿入を実行するように構成される。他の実施形態では、マルチプロセッサコンピュータシステム110は、エイジング期間より古い記録がないかデータベースを探索し、それらの記録を除去するようにさらに構成される。様々な実施形態では、エイジング期間は、約5日から約14日までの間、より特定的には約5日から7日までの間、さらにより特定的には約5日である。代替実施形態では、マルチプロセッサコンピュータシステム110は、データベース内の記録数に対する制限を維持するために古い記録を除去するように構成される。他の実施形態では、マルチプロセッサコンピュータシステム110は、データベースのサイズに対する制限を維持するために古い記録を除去するように構成される。例えば、インメモリデータベースIMDBは、180日から6年までの間の分の記録を表す7.5TBの記録を含んでもよい。0026図2を参照すると、記録処理システム200が示されている。記録処理システム200は、例えば図1に関して上記で説明された行挿入プロセスなどのプログラムを実行する場合に必要とされる待ち時間の長いネットワーク動作の数を低減するように構成されてもよい。記録処理システム200は、例えば図1に示されているマルチプロセッサコンピューティングシステム110などのマルチプロセッサコンピューティングシステムと共に実装されてもよい。0027記録処理システム200では、着信データ210は、そのプロセッサアフィニティを判定するためにアフィニティプロセス220によって解析される。アフィニティプロセス220は、着信データ210をCPUアフィニティ層230に割り当てるのに役立つ。CPUアフィニティ層230は、図1に関して上記で説明されたようなノード120又はプロセッサ150に対応してもよい。アフィニティプロセス220は、例えば記録数などのデータのプロパティに基づいて、着信データ210をCPUアフィニティ層230に割り当てることができる。一実施形態では、着信データ210は記録数を含み、アフィニティプロセス220は、Nを法として記録数、システム内のCPUアフィニティ層230の数を引くことにより、着信データ210をCPUアフィニティ層230に割り当てる。他の実施形態では、アフィニティプロセス220は、例えば安全なハッシュアルゴリズムSHAを使用することによりデータのハッシュに基づいて着信データ210を割り当てる。データベースキャッシュ240は、各CPUアフィニティ層230に関連付けられる。0028アフィニティプロセス220が着信データ210をCPUアフィニティ層230に割り当てる基準は、CPUアフィニティ層230に割り当てられた着信データ210の処理が同じCPUアフィニティ層230に割り当てられた他のデータにしか依存しないように選ばれてもよい。言い換えれば、所与のCPUアフィニティ層230に割り当てられた着信データ210は、ローカルに依存していると言われてもよい。したがって、着信データ210を処理するCPUアフィニティ層230は、ローカルキャッシュにおいて必要とされる他のデータを見つける可能性がより大きい。例えば、一実施形態では、アプリケーションは、前述の行挿入プロセスでもよい。その実施形態では、データベースは、N個の部分に分割されてもよく、ここで、NはCPUアフィニティ層230の数である。各データベース部分は、CPUアフィニティ層230に関連付けられる。したがって、データベースキャッシュ240は、対応するCPUアフィニティ層230に関連付けられたデータベース部分からの記録しか含む必要がない。一実施形態では、データベースキャッシュ240は、関連付けられたデータベース部分を完全にキャッシュするのに十分大きい。したがって、データベースキャッシュ240が少なくとも関連付けられたデータベース部分と同じほど大きい実施形態では、CPUアフィニティ層230は、全ての必要なデータへの比較的短い待ち時間アクセスを有することができる。0029さらに、待ち時間は、アフィニティ化プロセス中にアフィニティ層230におけるCPUとデータベースキャッシュ240との間の電子距離を考慮することにより低減されることが可能である。例えば、CPUから同じノード上のローカルメモリDIMMへのホップは、SGIAltix4700では、通常、10nsかかる。同じラックユニットにおけるブレード間のホップは、通常、22nsかかり、異なるラックにおけるブレード間のホップは、通常、33nsから256nsまでの間かかる。NUMAから追加のラックまでのホップは、通常、256nsを超え、メモリが増えるにつれて幾何級数的に増える可能性がある。アフィニティプロセス220は、着信データ210がそれを処理するCPUまでの短い電子距離を有するメモリロケーションにある可能性を増大させるためにこの電子距離を考慮に入れることができる。0030着信データ210記録は、前述のように決定論的なやり方でデータベースに割り当てられてもよい。CPUアフィニティ層230は、ローカルデータベースキャッシュ240に記憶されているデータベース部分を探索する必要があるだけなので、ネットワークを介してリモートメモリにアクセスする必要がない。したがって、この実施例では、着信データ210記録は、データベース探索のためにアクセスされる任意の2つの記録が同じCPUアフィニティ層230に割り当てられる点で、ローカルに従属的であるだけである。たとえCPUアフィニティ層230がメモリロッキングを実行する必要があるとしても、ローカルメモリのロッキングは、ネットワーク伝送の必要がないので、リモートメモリのロッキングよりずっと速い可能性がある。記録処理システム200を構成することができるやり方が図3に示されている。0031図3は、一実施形態による、例えば図2に関して上記で説明された着信データ210などの着信データを処理する方法300を示す。方法300は、例えば、図1に関して上記で論じられたように、マルチプロセッサコンピュータシステム110上で実施されてもよい。最初に、ブロック310に関して、システム内のプロセッサがN個のプロセッサセットにグループ化される。したがって、各プロセッサセットは1つ又は複数のプロセッサを含む。各プロセッサセットは、例えば、図1に関して上記で説明されたノード120などのノードに対応してもよい。一実施形態では、各プロセッサセットは、図2に関して上記で説明されたCPUアフィニティ層230に対応する。0032続いてブロック320に進むと、データベースがN個の部分に分割される。各部分はサブデータベースでもよい。一実施形態によれば、各部分は単一のデータベース内のテーブルである。他の実施形態では、各サブデータベースは、せいぜい処理中にローカルに従属的であるデータを保持するように構成されてもよい。例えば、処理機能が列挿入である一実施形態では、偶数の記録数を有する全てのデータが単一のデータベースに割り当てられてもよい。一実施形態では、Nは約2から約16までの間である。他の実施形態では、Nは約4から8までの間であり、より特定的には約6である。0033ブロック330に移ると、N個のデータベースキャッシュが作成される。各データベースキャッシュは、1つのプロセッサセットに関連付けられる。一実施形態では、データベースキャッシュは、図2に関して上記で説明されたデータベースキャッシュ240に対応する。有利には、一実施形態では、データベースキャッシュは、全サブデータベースを記憶するのに十分に大きい。したがって、関連付けられたプロセッサセットは、キャッシュミスを経験するとしてもごくまれにしか経験しない。データベースキャッシュは、関連付けられているプロセッサセットにローカルなメモリにしか常駐しないように構成されてもよい。前述のように、ローカリティは、メモリとプロセッサとの間の電子距離に関して判定されることが可能である。したがって、データベースキャッシュは、アフィニティ化されたプロセッサへの短い電子距離を有する物理的メモリロケーションに割り当てられることが可能である。0034同様に、ブロック340に関して、N個のロギングキャッシュが作成される。前述のデータベースキャッシュのように、各ロギングキャッシュは1つのプロセッサセットに関連付けられる。一実施形態では、プロセッサセット内の単一のプロセッサは、ロギングキャッシュへのデータベースロギングを実行するように割り当てられてもよい。その実施形態では、ロギングはローカルに行われるので、ロギングキャッシュミスを待っている間にローカルプロセスが止まる機会はより少ない。ロギングキャッシュは、関連付けられているプロセッサセットにローカルなメモリにしか常駐しないように構成されてもよい。前述のように、ローカリティは、メモリとプロセッサとの間の電子距離に関して判定されることが可能である。したがって、データベースキャッシュは、アフィニティ化されたプロセッサへの短い電子距離を有する物理的メモリロケーションに割り当てられることが可能である。0035続いて、ブロック350に関して、プロセッサアフィニティがM個のサーバプロセスをN個のプロセッサセットに関連付けることにより作成される。様々な実施形態では、Mは、N、Nの倍数、又は何らかの他の関係に等しくてもよい。前述のように、そのようなアフィニティを与えられたプロセスは、いくつかのプロセッサ上で動作するように優先的にスケジュールされてもよい。一実施形態では、サーバプロセスは、着信データでのデータベース行挿入を実行するように構成される。サーバプロセスは、関連付けられたプロセッサセット上で動作するように優先的にスケジュールされるので、そのプロセスに関するデータプロセスコンテキストなどが、プロセスが動作する時間の間に保存されるより大きな機会がある。一実施形態では、各サーバプロセスは、常に同じプロセッサセット上で動作する。したがって、プロセスは常に同じプロセッサセット上で動作するので、常に同じデータベースキャッシュ及び/又はロギングキャッシュを使用する。この構成はキャッシュミスの可能性をさらに低減することができる。0036ブロック360に進むと、データがN個のデータセットに分割される。一実施形態では、データは、図2に関して上記で説明された着信データ210である。同様に、図2におけるアフィニティプロセス220に関して上記で論じられたように、データは、例えばデータに含まれている記録数のモジュロに基づいてセットに分割されてもよい。例えば、2つのプロセッサセットを有するマルチプロセッサコンピューティングシステムでは、偶数の記録数を含むデータは、第1のデータセットに割り当てられてもよく、奇数の記録数を含むデータは、第2のデータセットに割り当てられてもよい。各データセットは、1つのプロセッサセットに関連付けられる。前述のように、データは、ターゲットアプリケーションに関してデータセット間にほとんど又は全然従属関係がないデータセットに分割されてもよい。0037次いで、ブロック370に関して、データは、関連付けられたプロセッサセットにルーティングされる。例えば、2つのプロセッサセットを有するマルチプロセッサコンピューティングシステムを含む一実施形態では、偶数の記録数を含むデータは、第1のプロセッサセットにルーティングされてもよく、奇数の記録数を含むデータは、第2のプロセッサセットにルーティングされてもよい。このようにして、データアフィニティが作成される。さらに、前述のサーバプロセス及びキャッシュアフィニティによって、各プロセッサセットはまた、少なくとも1つのサーバプロセス及びキャッシュに関連付けられる。したがって、サーバプロセスがデータベース行挿入を実行するように構成された諸実施形態では、サーバプロセスは、ローカルキャッシュからコンテキストを回復し、ローカルデータベースキャッシュだけを使用して関連サブデータベース上で行挿入を実行することができる可能性がある。したがって、キャッシュミスの可能性が低減され、データ処理スループットが向上する。0038図4は、他の実施形態による記録をデータベースに挿入するための方法400の流れ図である。例示されている流れ図は、図3に関して上記で論じられたように、N=2で確立された処理環境を想定している。言い換えれば、利用可能なプロセッサは、2つのプロセッサセット、即ちプロセッサセット0及びプロセッサセット1に分割されている。同様に、記録データベースは、2つの部分、即ちデータベース部分0及びデータベース部分1に分割されている。さらに、2つのデータベースキャッシュ及び2つのロギングキャッシュがある。他の実施形態では、Nは、例えば、3、4、6、8、16など、いかなる数でもよい。0039ブロック410から開始すると、ルーティングユニットが記録を受信する。いくつかの実施形態では、記録は、郵便料金を認証するために使用される許可指示又は情報ベースの指示IBIでもよい。ルーティングユニットは、ルーティング、要求に基づいて任意の利用可能なプロセッサ上で動作するようにスケジュールされたルーティングプロセス、又は任意の他の構成を処理するように割り当てられた単一のプロセッサでもよい。記録は、記録を2つ以上のセットに分離することができるようにする区別可能な特徴を有する。例示された実施形態では、記録は偶数又は奇数どちらかの数を含む。0040続いてブロック420に進むと、記録は2つのデータセット、即ち偶数又は奇数のうちの1つに関連付けられる。記録数が偶数である場合は、偶数のデータセットに割り当てられ、記録数が奇数である場合は、奇数のデータセットに割り当てられる。上記で論じられたように、記録を記録セットに割り当てるには多くのやり方があることを当業者は理解するであろう。本明細書に記載され図3に例示されている偶数のデータセット及び奇数のデータセットは、簡単にするために選ばれた例である。各データセットは1つのプロセッサセットに関連付けられる。具体的には、偶数のデータセットはプロセッサセット0に関連付けられ、奇数のデータセットはプロセッサセット1に関連付けられる。0041ブロック430及び435に移ると、記録はそのデータセットに関連付けられたプロセッサセットにルーティングユニットによってルーティングされる。具体的には、記録が偶数である場合は、記録はブロック430においてプロセッサセット0にルーティングされる。代替として、記録が奇数である場合は、記録はブロック435においてプロセッサセット1にルーティングされる。記録は、そのプロセッサセットの1つ又は複数のプロセッサにアフィニティ化されたプロセススレッドに記録を送信することにより、プロセッサセットにルーティングされてもよい。したがって、プロセスはプロセッサセット内の任意のプロセッサ上でスケジュールされてもよいが、記録は特定の関連付けられたプロセッサセットによって処理されるように保証されることが可能である。0042続いて、ブロック440及び445において、記録を処理するように割り当てられた、関連付けられたプロセッサセットは、一致する記録がないか関連付けられたデータベース部分を探索する。具体的には、記録が偶数である場合は、プロセッサセット0上で動作しているプロセスは、ブロック440において、一致する記録がないかデータベース部分0を探索する。代替として、記録が奇数である場合は、プロセッサセット1上で動作しているプロセスは、ブロック445において、一致する記録がないかデータベース部分1を探索する。一実施形態では、一致する記録がないかデータベース部分を探索するステップは、データベース部分内の各行を読み出すサブステップと、その行内の記録数を着信記録と比較するサブステップとを含んでもよい。他の実施形態では、一致する記録がないかデータベース部分を探索することは、例えば二分探索などの他の知られている探索方式を含んでもよい。各記録は関連データベース部分への挿入のために関連プロセッサセットにルーティングされる記録セットに関連付けられるので、探索アルゴリズムは、データベース部分0には偶数の記録しか存在せず、データベース部分1には奇数の記録しか存在しないと仮定することができる。したがって、プロセッサセット0上で動作している探索アルゴリズムは、データベース部分0を探索するだけでよく、データベース部分1にアクセスする必要がない逆も同様。したがって、本明細書に記載の方法は、プロセッサセットがローカルメモリだけにアクセスすることにより、全てのプロセッサセットにわたって配置されている全てのデータベース部分を効率よく探索することができるようにする。0043次に、ブロック450及び455において、記録が関連データベース部分にすでに存在するかどうかに応じて適切な動作が取られる。記録が存在する場合は、記録はブロック460において廃棄される。いくつかの実施形態では、記録はさらなる検討のためにフラグを立てられてもよい。例えば、記録が、一意であると予期される郵便料金認可を表す実施形態では、プロセスは、送信元コンピュータに未納郵便料金を示すネットワークメッセージを送信することができる。しかし、記録が関連データベース部分で見つけられない場合は、記録はブロック470及び475において関連データベースに挿入される。具体的には、記録が偶数である場合は、記録は、ブロック470においてデータベース部分0に挿入される。代替として、記録が奇数である場合は、記録は、ブロック475においてデータベース部分1に挿入される。多くのデータベースは行及び列に構成されているので、関連データベース部分への記録の挿入は、行挿入と呼ばれてもよい。行挿入は、全てローカルデータベースキャッシュ上で実行されることが可能なので、本明細書に記載の方法によって比較的迅速に実行されることが可能である。ローカルデータベースキャッシュがプロセッサセットに関連付けられた全データベース部分を保持するのに十分に大きい場合は、行挿入は、リモートロッキング、ネットワークトラフィックなどの必要なしに、実行されることが可能である。0044図5は、前述のシステム及び方法の一実施形態を使用して達成されるデータベース行挿入スループットを示すグラフである。行挿入は、6個のデータベースキャッシュを有する6個のプロセッサセットを使用して実行された。プロセッサセットは、TRP1~6と表示される。各プロセッサセットは、4個のプロセッサを含んだ。各プロセッサセットはまた、3個のデータベース挿入スレッドに関連付けられ、各データベース挿入スレッドは、図4に関して上記で説明されたものと同様のプロセスを実行した。言い換えれば、各プロセッサセット内の4個のプロセッサのうちの3個は、本明細書に記載の行挿入方法の一実施形態を実行するソフトウェアを実行した。各プロセッサセット内の1つのプロセッサがデータベースロギングスレッドを実行した。0045図5に示されているように、6個の線は、各プロセッサセットTRP1~6によって1秒毎に実行された行挿入の数を表す。合計と表示された追加の線は、6個のプロセッサセットTRP1~6全てにわたる1秒毎の累積行挿入を表す。グラフに示されているように、プロセッサセットは、1秒毎の行挿入の数の低下を引き起こした比較的少数のキャッシュミスに遭遇した。例えば、15:02:27、16:52:38、及び17:02:39頃に、毎秒の合計行挿入に瞬間的降下がある。これらの瞬間的降下は、必要とされるデータがローカルノード上に存在しなかったので、プロセッサセットがネットワークトラフィックを待たなければならなかった時間、又は複数のローカル待ち時間を生じさせるノードにわたるホップを表す可能性がある。しかし、ほとんどの部分では、本明細書に記載の方法は、行挿入動作中にリモートデータにアクセスする必要を事実上なくしたので、各プロセッサセットのスループットはなだらかである。0046上記のプロセス及び方法は、上記ではいくつかのステップを含むと記載され、特定の順序で記載されているが、これらのプロセス及び方法は、追加のステップを含んでもよく、又は記載されたステップのいくつかを省略してもよいことが理解されるべきである。さらに、プロセスのステップのそれぞれは、必ずしも記載されている順序で実行される必要はない。0047上記の説明は、様々な実施形態に適用される本発明の新規特徴を示し、記述し、指摘してきたが、例示されたシステム又はプロセスの形態及び詳細における様々な省略、代替、並びに変更が本発明の趣旨から逸脱することなく当業者によって行われてもよいことが理解されるであろう。理解されるように、いくつかの特徴は他の特徴とは別に使用又は実行されてもよいので、本発明は、本明細書で説明された特徴及び利益の全てを提供するわけではない形態の範囲内で実施されてもよい。0048本明細書で開示された諸実施形態に関連して説明された方法又はアルゴリズムのステップは、ハードウェア、プロセッサによって実行されるソフトウェアモジュール、又はこれら2つの組合せで直接実施されてもよい。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、取外し可能なディスク、CD-ROM、又は当技術分野で知られている任意の他の形態の記憶媒体に常駐してもよい。例示的記憶媒体は、プロセッサが記憶媒体から情報を読み出し、記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替実施形態では、記憶媒体は、プロセッサに組み込まれていてもよい。プロセッサ及び記憶媒体は、ASICに常駐してもよい。ASICは、ユーザ端末に常駐してもよい。代替実施形態では、プロセッサ及び記憶媒体は、ユーザ端末に個別部品として常駐してもよい。"