説明

アライメントトラップ軽減のために列を自動で並べ替える方法

並列処理データベースシステムにおける高速スキャンのために列値を適切なバイト境界に自動でアライメントする方法である。フィールドの論理的順序を有するテーブル定義を受信する(201)。フィールドを並べ替えてフィールドの物理的順序を作成する(206−220)。フィールドの物理的順序は、相互に隣接して最大サイズから最小サイズまで降順で配置するという同一のバイトアライメント要求を有する固定長フィールドを有し、物理的順序における第1の固定長フィールドを適切なバイト境界上にアライメントする。更に、その他の実施形態、様態および特徴を開示する。

【発明の詳細な説明】
【技術分野】
【0001】
本出願は、一般的にはコンピュータシステムおよびソフトウェアシステムに関する。より詳細には、本出願はデータベースシステムに関する。
【背景技術】
【0002】
ビジネスインテリジェンス(BI)データベースは、多数のディスク上の大容量データを超並列処理(MPP)システム内で処理する。BIデータベース用に記憶されるデータ量はかなりの割合で増加しており、BIデータベースは、ますます多くのデータをスキャンする必要がある。テーブルデータは、テーブルデータの並列スキャンおよびフィルタリングを可能にするため、多数のディスクにわたって分割される。更に、データの増加に伴って更に多くのディスクが追加され、より高速なスキャンが必要となる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
ビジネスインテリジェンス(BI)データベース内で処理する必要のあるデータ量はかなりの割合で増加している。したがって、効率的な方法で大容量データのスキャンおよびデータ列のフィルタリングを行う必要があるということは、BIデータベースが直面する大きな課題である。データのスキャン方法を改善すれば、システムにおける全クエリの全体的なスループットを実質的に向上させることが可能である。
【0004】
データベースは通常、最終的には破棄されるシステム周辺の大容量データのコピーを軽減するため、可能な場合、スキャン述語を最下層で適用する。データアクセスマネージャ層内のデータにおけるスキャン述語を効率的に評価するため、列値は一般的に適切なバイト境界上にある必要がある。
【0005】
適切なバイト境界上にない数値列の値は、いわゆるアライメントトラップ(アライメント修正)の原因となる。アライメントトラップにおいては、データを評価する前に、アライメントされたバッファにコピーする必要がある。したがって、アライメントトラップは性能ペナルティの原因となる。各列は独立して処理されるため、フィルタ述語を作成する列が多いほど、コストが高くなる。
【0006】
BIシナリオにおいては多数の列を有する多数のテーブルが存在するため、ユーザが適切にアライメントしようとすると非常に時間を要することになる。BIの顧客は、理論上は列が可能な限り適切にアライメントされるようテーブルを定義することができるが、これは、顧客がある程度までの下層レイアウトおよび列の型毎に必要な適切なアライメントを理解していることが前提となる。更に、テーブル定義はデータベース毎に異なる可能性が非常に高いため、顧客が、作成されるテーブル毎に上述のようにアライメントするよう努力することが前提となる。更に、テーブルが可変長フィールドを含む場合、記憶されるのは値の最大長ではなく実際のバイト数のみであるため、ユーザは必ずしもデータ列の全てをアライメントされた境界から開始させることはできない。
【0007】
本出願は、列を適切なバイト境界にアライメントする技術に関する。列を適切なバイト境界にアライメントする単純な技術によれば、データレコードの全フィールドがテーブル作成命令により指定される順序でアライメントされる。しかしながら、この場合、異なるデータ型を有する列値間にパディングを挿入することが暗黙的に求められ、そのため、付加されるパディングを収容するためにテーブルデータを展開および拡張するためのディスクスペースが更に必要となる。
【0008】
また、全フィールドをオフセット配列する技術がある。この技術は、全フィールドをテーブル定義内で指定される論理的順序と同一の順序で保持する。この技術においては、ハードウェア又はファームウェアがミスアライメントされたデータを検出し、検出したデータを適切にアライメントするよう構成するか、又はデータアクセスマネージャ層がミスアライメントを検出および訂正するよう構成する必要がある。
【0009】
列を適切なバイト境界にアライメントするための他の技術として、レコードの固定長フィールドの全てを強固にパックする、というものがある。その後、スキャン述語の評価中に、ポインタがフィールドに対して適切なバイト境界にあるかどうかチェックしてもよい。ポインタがフィールドに対して適切なバイト境界にない場合、データをサイドバッファにコピーして評価に利用する。この技術のフローチャートを図1に示す。図1に示すとおり、列値が適切なバイト境界にアライメントされているか決定する(102)。適切にアライメントされている場合、列値を評価してもよい(106)。適切にアライメントされていない場合、列値をアライメントされたバッファ(サイドバッファ)にコピーする(104)工程が更に必要となる。その後、(アライメントされたバッファ内の)列値を評価(106)してもよい。その決定(102)は、各行における評価対象の列毎に実行しなければならない。
【課題を解決するための手段】
【0010】
本出願は列を適切なバイト境界にアライメントするための新規な技術を開示しており、この技術によれば、テーブル定義により指定される列をアライメントトラップの発生を軽減するために有益な方法で並べ替える。すなわち、スキャン述語の評価を向上させるため、テーブル作成命令により指定される列の論理的順序を各フィールドの適切なバイトアライメントに基づいて並べ替え、その後、この物理的順序でディスク上のデータレコード内に記憶する。このフィールドの並べ替えはテーブルの作成時およびレコードの挿入、更新、削除、およびスキャン時に自動的に実行される。したがってこの技術によれば、顧客が手動でそのようなタスクを実行することなく、また列値間に暗黙的なパディングを付加することなく、列の適切なバイト境界へのアライメントを向上させることができる。
【図面の簡単な説明】
【0011】
【図1】図1は、アライメントされたバッファを用いてアライメントトラップに対処する従来の方法を示すフローチャートである。
【図2】図2は、本発明の実施形態による、アライメントトラップ軽減のために自動で並べ替えを実行する方法を示すフローチャートである。
【図3】図3は、データベースのデータ列におけるフィールド(列)の論理的順序を指定するテーブル作成命令の一例を示す。
【図4】図4は、本発明の実施形態による、ディスク上の物理記憶のためのフィールドの並べ替えを示す。
【図5A】図5Aは、本発明の実施形態による、テーブル作成命令の受信と、ディスク上にデータを記憶するための物理的順序を生成する決定論的方法の使用とを示すフローチャートである。
【図5B】図5Bは、本発明の実施形態による、データベースクエリの受信およびディスクからのデータにアクセスするための物理的順序の再計算を示すフローチャートである。
【図5C】図5Cは、本発明の実施形態による、様々なスキーマを試験した際の経路の向上を示す実験結果である。
【図6】図6は、本発明の実施形態による方法を実行可能に構成されたコンピュータ装置の一例を示す概略図である。
【発明を実施するための形態】
【0012】
図2は、本発明の実施形態による、アライメントトラップ軽減のために自動で並べ替えを実行する方法を示すフローチャートである。本方法は、コンピュータ読取り可能な媒体上(すなわちディスク上)に記憶する物理的順序を決定する。本方法は、データベーステーブルに対してフィールドの論理的順序を指定又は定義するテーブル作成命令を受信した後に実行される(ブロック201参照)。
【0013】
従来、列の物理的順序は通常、テーブル作成命令により指定される論理的順序と同一である。本出願は対称的に、ディスク上に記憶される列の物理的順序がテーブル作成命令により指定される論理的順序と大幅に異なってもよいように列を自動で並べ替える方法を開示する。図2に示す工程を用いて列(フィールド)を並べ替え、ディスク上に記憶する物理的順序およびデータ列の各フィールドの固定オフセットを決定する。
【0014】
バイトアライメントを必要とする固定長フィールドは、評価される前に適切なバイト境界へのアライメントを必要とするフィールドである(上述の図1に関連した説明を参照)。説明した典型的なデータベースシステムにおいては、例えば数値フィールドおよび整数値フィールドがバイトアライメントを必要とする固定長フィールドである。バイトアライメントを必要とする固定長フィールドは2N(2のN乗)バイト境界へアライメントする必要があり、この場合Nは整数である。
【0015】
第1の工程206において、最大の(又は最大と同等の)バイトアライメント要求を有する(すなわちNの最大値を有する)固定長フィールドを選択する。次の工程208において、選択したフィールドを物理的順序において次に配置する(パックされる)。
【0016】
その後、2Nバイト境界へのバイトアライメントを必要とするフィールドが残存するか(未選択であるか)否か決定する(210)。そのようなフィールドが少なくとも1個の残存する(未選択である)場合、残存するフィールドのうち1個を工程212において選択し、本方法は工程208に戻って、選択したフィールドを物理的順序において次に配置する(パックされる)。
【0017】
一方、2Nバイト境界へのバイトアライメントを必要とするフィールドが残存しない(未選択である)と決定(210)された場合、更に、Nがゼロであるか否か決定(214)してもよい。Nがゼロではない場合、工程216においてNを1だけ減少させ、本方法は工程210に戻って、減少したN値に基づいて、2Nバイト境界へのバイトアライメントを必要とするフィールドが残存するか否か決定する。
【0018】
一方、Nがゼロであると決定(214)された場合、バイトアライメントを必要とするフィールドは残存しないため本方法は進行し、工程220において、(テーブル作成命令により指定されるとおりの)論理的順序における可変長フィールドを選択し、選択した可変長フィールドを物理的順序において次に配置する。
【0019】
次の工程230において、必要な調整スペースを決定する。各データレコードの先頭におけるこの調整スペースをゼロパディングし、その後、データレコードの作成時に適切なヘッダ情報を付加する。この調整スペースを(ゼロパディングにより)拡張し、最初のフィールドを確実に適切にアライメントする。
【0020】
その後、本方法は工程240において、並べ替えた固定フィールドを処理し、それらの各々に対してオフセットを割り当てる。並べ替えはアライメントされたフィールドのうち最長のものから開始されるため、並べ替えた固定長フィールドの全てがパックされる。
【0021】
その後、本方法は工程250において、可変長フィールドを処理し、固定長フィールドに対する全オフセットの後に、可変長フィールドの各々に対してオフセットを割り当てる。最後に、工程260において、可変長列の最大サイズを推定して全フィールドからなる全長を適切なサイズに拡張する。
【0022】
なお、レコードの挿入又は更新時に、1番目の固定長フィールドの前およびデータレコードの終端にパディングを付加する。
【0023】
図3において、テーブル作成命令の一例を示す。図3の命令文の例において、テーブル名CUSTOMERを有するテーブルを定義する。テーブルのフィールド又は列を、論理的順序において、custKey、name、address、nationKey、phone、acctBal、mktSeg、およびcommentと定義する。
【0024】
テーブル作成命令はまた、各列に対するフィールド型を定義する。図3の例に示すように、custKeyフィールドは整数値フィールドであり、name列は25バイト長までの可変文字フィールドであり、address列は40バイト長までの可変文字フィールドであり、nationKeyフィールドは整数値フィールドであり、phone列は15バイト長までの固定文字フィールドであり、acctBal列は8バイトで記憶される幅12および少数位2を有する数値フィールドであり、mktSeg列は10バイト長の固定文字フィールドであり、comment列は117バイト長までの可変文字フィールドである。テーブル作成命令はまた、テーブルの主キー、デフォルト値、フィールドがドロップ可能か否か等、その他の特性を定義する。当然ながら図3は、テーブル作成命令の説明を目的とした一例を示しているにすぎない。
【0025】
図4は、図3に示すテーブル作成命令の例に対して図2に関連して上述した並べ替え方法を用いた、ディスク上の物理記憶のフィールド順序を示す。図4の上の部分は物理記憶のために並べ替えた列を示し、下の部分はレコード内の対応するバイト数を示す。
【0026】
図4に示すとおり、並べ替えたレコードにおける1番目の列は、図2の工程230で決定されたスペースに配置される、レコード先頭の調整バイト又は固定サイズのオーバヘッドである。本実施例においては、FFは、データレコードの1番目の固定長フィールドに対するオフセットを示す値又はゼロ(存在しない場合)を含む2バイトのフィールドであり、BOは、ヌルビットマップ(以下で説明する)が存在する場合はそのヌルビットマップに対するオフセットを示す値又はゼロ(存在しない場合)を含む2バイトのフィールドである。
【0027】
可変長フィールドはバイトの最大数ではなく、使用されるバイト数のみ記憶する。したがって、各可変長フィールドの実際の長さを記憶する必要がある。この場合、長さは各可変長フィールドの値に先行して隣接して記憶される。VOkフィールドは可変長フィールドに対するオフセットを示す。この場合、VO1は1番目の可変長フィールドに対するオフセットを示す2バイトのフィールドであり、VO2は2番目の可変長フィールドに対するオフセットを示す2バイトのフィールドであり、VO3は3番目の可変長フィールドに対するオフセットを示す2バイトのフィールドである。
【0028】
bitmapフィールドは上述のヌルビットマップを記憶する4バイトのフィールドである。ヌルビットマップは、空値可能フィールド1個に対して1ビットで、各フィールドのヌル条件を含む。その他のシステムにおいては、任意の列値に対するヌルインジケータは一般的にその列値の前に置かれる。これにより、(ヌルインジケータが1バイト、2バイトのどちらであっても)列値に対する適切なバイト順序が乱されることになる。したがって本発明の実施形態によれば、任意の列に対するヌルインジケータを、列値自体からは分離して記憶されるヌルビットマップフィールドに記憶する。
【0029】
なお、bitmapフィールドの後に続く///は、調整バイトの後ろにパックされるパディング(ゼロパディングされる)を示す。本実施例においては、次のフィールドがバイト16(8バイト境界)から開始するよう、2バイトのパディングが存在する。ここで必要となるパディング量は、テーブルの固定長フィールドが必要とする境界アライメントによって異なる。
【0030】
1番目のバイトアライメントを必要とする固定長フィールドをパディングの直後に配置する。この場合、1番目のバイトアライメントを必要とする固定長フィールドは8バイト(N=3)のactBal数値フィールドであり、図2の工程206において、最長の固定長フィールドであるため最初に選択される。8バイト境界アライメントを必要とする固定長フィールドは他には存在しないため、図2の工程216において、Nを3から2に減少させる。
【0031】
続くバイトアライメントを必要とする固定長フィールドを、1番目のバイトアライメントを必要とする固定長フィールドの直後に配置する。この場合、2番目のバイトアライメントを必要とする固定長フィールドは4バイト(N=2)のcustKey整数値フィールドであり、3番目の固定長フィールドは4バイト(同様にN=2)のnationKey整数値フィールドである。4バイト境界アライメントを必要とする固定長フィールドは他には存在しない。更に、2バイト(N=1)の境界アライメントを必要とする固定長フィールドは存在しない。
【0032】
次に、1バイト(N=0)の境界アライメントを必要とする固定長フィールドを順に選択および配置する。例えば、文字列フィールドは1バイト境界アライメントを必要とする固定長フィールドである。この場合、次の列は15バイト長の文字列フィールドであるphoneフィールドであり、バイト番号32から開始し、続く列は10バイト長の文字列フィールドであるmktSegフィールドであり、バイト番号47から開始する。
【0033】
その後、図2の工程220において、可変長フィールドを論理的順序において選択し、順に配置する。本実施形態において、各可変長フィールドの最初の部分(図4において||で示す)は、そのフィールドに記憶される値の実際の長さを表す2バイトである。その後、可変長値の実際のバイトを配置する。
【0034】
この場合、1番目の可変長フィールドはnameフィールドであり、バイト番号57から開始する。この、1番目の可変長フィールドのバイト番号57に対するオフセットは上述したVO1フィールドの値で示されている。上述したように、フィールドの最初の2バイトは実際の長さを示し、残りのバイトはフィールドに記憶される実際のデータである。同様に、2番目の可変長フィールドはaddressフィールドであり、バイトv2(先行する1番目の可変長フィールドの長さにより異なる)から開始し、3番目の可変長フィールドはcommentフィールドであり、バイトv3(先行する1番目および2番目の可変長フィールドの長さにより異なる)から開始する。
【0035】
なお、レコードを記憶する際、次のデータレコードが適切なアライメントで開始されるよう、必要に応じてレコードの終端にパッドバイト(///で示す)を付加する。本実施例においては、次のレコードが4バイト境界から開始するよう、1〜3のパッドバイトを終端に配置してもよい。レコード毎のパッドバイトの数は、最初の固定オフセットFFの一部として上位2ビットで記憶する。
【0036】
図5Aは、本発明の実施形態による、テーブル作成命令の受信およびディスク上にデータを記憶するための物理的順序を生成する決定論的方法の使用を示すフローチャートである。図示のように、ユーザからテーブル作成命令を受信する(ブロック502)。テーブル作成命令はデータベーステーブルの列(フィールド)に対する論理的順序を定義する。その後、上述のような決定論的アルゴリズムを用いて、テーブル作成命令により指定される論理的順序とは異なる物理的順序を作成する(ブロック504)。この物理的順序を用いて、データレコードをディスク上に記憶する(ブロック506)。
【0037】
望ましいことに、論理的順序から物理的順序への並べ替えは決定論的に行われる。したがって、実際の物理的順序に関する情報は必ずしも保存される必要はなく、クエリプラン生成の際に再計算してもよい。図5Bは、本発明の実施形態による、データベースクエリの受信およびディスクのデータにアクセスするための物理的順序の再計算を示すフローチャートである。図示のように、データベースクエリを受信する(ブロック512)。それに応じて、クエリプランを生成する(ブロック514)。本発明の実施形態によれば、クエリプラン生成手順の一部として、物理的順序を再計算する(ブロック516)。その後、各列値に対するオフセットを保存(ブロック518)してもよい。その後、クエリ実行(ブロック520)の際に列値に対するオフセットを用いてもよい。
【0038】
図5Cは、本発明の実施形態による、様々なスキーマを試験した際の経路の向上を示す実験結果である。各行(acxio032_b6_m、dwp2x1_b6_s等)は特定のスキーマ(すなわち特定のデータベーステーブル定義)を示す。
【0039】
このテーブルは、アライメントされていないクエリ(未アライメント)および本出願により自動でアライメントされたクエリ(アライメント済)の時間当たりクエリ数(QPH)を示す。QPHは高いほど好ましい。また、QPHの割合が増加(変化率(%))していることが分かる。図示のとおり、本出願による自動アライメントにより、QPHの増加率は8%を超える。
【0040】
テーブルはまた、アライメントされていないクエリ(未アライメント)および本出願により自動でアライメントされたクエリ(アライメント済)毎にかかるCPU秒(クエリ当たりCPU秒)を示す。クエリ当たりCPU秒は低いほど好ましい。また、クエリ当たりCPU秒の割合が減少(変化率(%))していることが分かる。図示のとおり、本出願による自動アライメントにより、減少した割合は7%を超える。
【0041】
図6は、本発明の実施形態による方法を実行可能に構成されたコンピュータ装置の一例を示す概略図である。本実施例においては、コンピュータ装置は超並列処理システムを備える。一実施形態において、コンピュータ装置は、対称型マルチプロセッシング(SMP)ノード606に強固に組込まれる複数のプロセッサ602を備えていてもよい。各SMPノード606のプロセッサはメモリ604の共用部分に接続されていてもよい。相互接続ネットワーク608はSMPノード606を接続する。その他の実施形態において、コンピュータ装置にその他のアーキテクチャを用いてもよい。
【0042】
本発明の実施形態によれば、上述の工程は、コンピュータ読取り可能な媒体又はコンピュータ読取り可能なメモリに記憶される、プロセッサ実行可能な命令として実装される。このプロセッサ実行可能な命令は例えば、図6に示すようなコンピュータ装置上で実行してもよい。
【0043】
上述の説明において、本発明の実施形態を十分に理解してもらうために様々な具体的詳細を提示した。しかしながら、本発明における図示の実施形態についての上述の説明は、網羅的でなく本発明を開示した形態そのものに限定することを意図するものではない。当業者は、一つ又は複数の本発明は具体的な詳細なしに、また、他の方法、構成要素等を用いて実施可能であると理解するものとする。また、本発明の様態を不明瞭にすることのないよう、公知の構造又は工程は詳細に図示又は説明しない。本発明の特定の実施形態および実施例を説明を目的として記述したが、当業者が理解するとおり、本発明の範囲内において様々な均等な変更が可能である。
【0044】
本発明に対するこれらの変更は、上述の詳細な説明を考慮して行ってもよい。以下の特許請求の範囲において用いられる用語は、本発明を本明細書および特許請求の範囲に開示される特定の実施形態に制限すると解釈されるべきではない。本発明の範囲はむしろ、請求項解釈の確立された教義に基づいて解釈されるべき以下の特許請求の範囲により決定されるものとする。

【特許請求の範囲】
【請求項1】
並列処理データベースシステムにおける高速スキャンのために列値を適切なバイト境界に自動でアライメントする方法であって、
フィールドの論理的順序を含むテーブル定義を受信し、
前記フィールドを並べ替えてフィールドの物理的順序を作成することを含み、
前記フィールドの物理的順序は、相互に隣接して最大サイズから最小サイズまで降順で配置するという同一のバイトアライメント要求を有する固定長フィールドを有し、前記物理的順序における第1の固定長は適切なバイト境界上にアライメントされることを特徴とする方法。
【請求項2】
バイトアライメント要求は、フィールド先頭を2Nバイト境界にアライメントすることを要求し、
Nは整数であることを特徴とする請求項1に記載の方法。
【請求項3】
レコードの先頭に調整フィールドを配置し、
レコードを記憶する際、前記調整フィールドにゼロパディングが追加されて前記第1の固定長フィールドをアライメントすることを特徴とすることを特徴とする請求項1に記載の方法。
【請求項4】
バイトアライメント要求を有する最後の固定長フィールドの後ろに可変長フィールドが配置されることを特徴とする請求項1に記載の方法。
【請求項5】
レコードを記憶する際、次のレコードが適切なバイト境界にアライメントされるよう、必要に応じて最後の可変長フィールドの後ろにゼロパディングが追加されることを特徴とする請求項5に記載の方法。
【請求項6】
並列処理データベースシステムにおける高速スキャンのために列値を適切なバイト境界にアライメントするコンピュータ読取り可能な命令を記憶するコンピュータ読取り可能な媒体であって、
フィールドの論理的順序を含むテーブル定義を受信するよう構成されたコンピュータ読取り可能な命令と、
前記フィールドを並べ替てフィールドの物理的順序を作成するよう構成されたコンピュータ読取り可能な命令とを備え、
前記フィールドの物理的順序は、相互に隣接して最大サイズから最小サイズまで降順で配置するという同一のバイトアライメント要求を有する固定長フィールドを有し、
前記物理的順序における第1の固定長フィールドを適切なバイト境界上にアライメントすることを特徴とする媒体。
【請求項7】
バイトアライメント要求はフィールド先頭を2Nバイト境界にアライメントすることを要求し、
Nは整数であることを特徴とする請求項6に記載の媒体。
【請求項8】
レコードの先頭に調整フィールドが配置され、
レコードを記憶する際、前記調整フィールドにゼロパディングが追加されて前記第1の固定長フィールドをアライメントすることを特徴とする請求項6に記載の媒体。
【請求項9】
バイトアライメント要求を有する最後の固定長フィールドの後ろに可変長フィールドが配置されることを特徴とする請求項6に記載の媒体。
【請求項10】
レコードを記憶する際、次のレコードが適切なバイト境界にアライメントされるよう、必要に応じて最後の可変長フィールドの後ろにゼロパディングが追加されることを特徴とする請求項6に記載の媒体。
【請求項11】
並列処理データベースシステムにおける高速スキャンのために列値を適切なバイト境界にアライメントするコンピュータ装置であって、
コンピュータ読取り可能な命令を実行する複数のプロセッサと、
前記コンピュータ読取り可能な命令およびデータを記憶するメモリとを備え、
前記コンピュータ読取り可能な命令はフィールドの論理的順序を含むテーブル定義を受信し、前記フィールドを並べ替えてフィールドの物理的順序を作成し、
更に、前記フィールドの物理的順序は、相互に隣接して最大サイズから最小サイズまで降順で配置するという同一のバイトアライメント要求を有する固定長フィールドを有し、
前記物理的順序における第1の固定長フィールドを適切なバイト境界上にアライメントすることを特徴とする装置。
【請求項12】
バイトアライメント要求はフィールド先頭を2Nバイト境界にアライメントすることを要求し、
Nは整数であることを特徴とする請求項11に記載のコンピュータ装置。
【請求項13】
レコードの先頭に調整フィールドを配置し、
レコードを記憶する際、前記調整フィールドにゼロパディングが追加されて前記第1の固定長フィールドをアライメントすることを特徴とする請求項11に記載のコンピュータ装置。
【請求項14】
バイトアライメント要求を有する最後の固定長フィールドの後ろに可変長フィールドを配置することを特徴とする請求項11に記載のコンピュータ装置。
【請求項15】
レコードを記憶する際、次のレコードが適切なバイト境界にアライメントされるよう、必要に応じて最後の可変長フィールドの後ろにゼロパディングが追加されることを特徴とする請求項14に記載のコンピュータ装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5A】
image rotate

【図5B】
image rotate

【図5C】
image rotate

【図6】
image rotate


【公表番号】特表2011−504273(P2011−504273A)
【公表日】平成23年2月3日(2011.2.3)
【国際特許分類】
【出願番号】特願2010−535007(P2010−535007)
【出願日】平成20年11月13日(2008.11.13)
【国際出願番号】PCT/US2008/083408
【国際公開番号】WO2009/067380
【国際公開日】平成21年5月28日(2009.5.28)
【出願人】(503003854)ヒューレット−パッカード デベロップメント カンパニー エル.ピー. (1,145)
【Fターム(参考)】