図面 (/)

技術 クラスタリング記憶方法および装置

出願人 華為技術有限公司
発明者 張金玉周慶慶張仲良
出願日 2014年11月24日 (4年10ヶ月経過) 出願番号 2016-569821
公開日 2017年9月7日 (2年1ヶ月経過) 公開番号 2017-526027
状態 特許登録済
技術分野 検索装置 計算機におけるファイル管理
主要キーワード クラスタ表 操作要 非シーケンシャル 平均性 クラスタリング方式 ソート操作 マージソート ハードウェアエンティティ
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2017年9月7日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (10)

課題・解決手段

本発明の実施形態は、コンピュータ技術の分野に関し、且つ、データローディング性能およびデータ更新性能がわずかに影響を受けるという前提で、データクエリ性能およびデータ圧縮効率を改善することができるクラスタリング記憶方法および装置を提供する。方法は、記憶されるべき第1のデータをデータベースシステム内のローカルメモリに1行ずつ記憶するステップと、第1のソート列を決定するステップであって、ここで、第1のソート列は、ローカルメモリ内にキャッシュされているデータをソートするために使用される、ステップと、ローカルメモリ内にキャッシュされている第2のデータが事前に設定された条件を満たす場合、第2のデータを第1のソート列に従ってソートするステップであって、ここで、第2のデータは、第1のデータ内の、ローカルメモリ内にキャッシュされているデータである、ステップと、ソートされた第2のデータをデータベースシステム内の記憶媒体クラスタリング方式で記憶するステップとを含む。

概要

背景

データベースでは、データは一般に、表を使用することによって記憶され、且つ、ヒープ表(Heap Table)、索引構成表(Index Organization Table, IOT)およびクラスタ表(Cluster Table)である、3つのタイプの共通の表記憶構造がある。

従来技術では、記憶媒体にデータを記憶するためにヒープ表が使用されるとき、データの各行はデータが挿入される自然順序に従って、非シーケンシャルに記憶されるため、データローディング性能およびデータ更新性能はわずかに影響を受ける。さらに、記憶媒体にデータを記憶するためにヒープ表が使用された後、1個のデータについてヒープ表のデータを問い合わせることが要求された場合、その1個のデータが見つかるまで、ヒープ表の第1の行から1行ずつ比較が行われる必要がある。

しかしながら、記憶媒体にデータを記憶するためにヒープ表が使用されるとき、データは非シーケンシャルに記憶され、且つ、データがヒープ表内で問い合わせられるとき、ヒープ表の第1の行から1行ずつ比較が行われる必要があり、従って、データローディング性能およびデータ更新性能はわずかに影響を受けるが、データ圧縮比およびデータクエリ性能は比較的低い。

概要

本発明の実施形態は、コンピュータ技術の分野に関し、且つ、データローディング性能およびデータ更新性能がわずかに影響を受けるという前提で、データクエリ性能およびデータ圧縮効率を改善することができるクラスタリング記憶方法および装置を提供する。方法は、記憶されるべき第1のデータをデータベースシステム内のローカルメモリに1行ずつ記憶するステップと、第1のソート列を決定するステップであって、ここで、第1のソート列は、ローカルメモリ内にキャッシュされているデータをソートするために使用される、ステップと、ローカルメモリ内にキャッシュされている第2のデータが事前に設定された条件を満たす場合、第2のデータを第1のソート列に従ってソートするステップであって、ここで、第2のデータは、第1のデータ内の、ローカルメモリ内にキャッシュされているデータである、ステップと、ソートされた第2のデータをデータベースシステム内の記憶媒体にクラスタリング方式で記憶するステップとを含む。

目的

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

(分野番号表示ON)※整理標準化データをもとに当社作成

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

クラスタリング記憶方法であって、前記方法はデータベースシステムにおいて適用され、且つ、記憶されるべき第1のデータを前記データベースシステム内のローカルメモリに1行ずつキャッシュするステップと、第1のソート列を決定するステップであって、前記第1のソート列は、前記ローカルメモリ内にキャッシュされているデータをソートするために使用される、ステップと、前記ローカルメモリ内にキャッシュされている第2のデータが事前に設定された条件を満たす場合、前記第2のデータを前記第1のソート列に従ってソートするステップであって、前記第2のデータは、前記第1のデータ内の、前記ローカルメモリ内にキャッシュされているデータである、ステップと、ソートされた前記第2のデータを前記データベースシステム内の記憶媒体クラスタリング方式で記憶するステップとを含む、クラスタリング記憶方法。

請求項2

記事前に設定された条件は、前記ローカルメモリ内にキャッシュされている前記第2のデータのデータ量と前記ローカルメモリ内の記憶用許可されているデータ量との間の関係を表すために使用される、請求項1に記載のクラスタリング記憶方法。

請求項3

前記事前に設定された条件は、前記第2のデータの行数が第1の事前に設定された閾値以上であることであり、且つ、前記ローカルメモリ内にキャッシュされている第2のデータが事前に設定された条件を満たす場合、前記第2のデータを前記第1のソート列に従ってソートする前記ステップは、具体的には、前記第2のデータの前記行数が前記第1の事前に設定された閾値以上である場合、前記第1のソート列に従って、前記第2のデータをソートするステップを含む、請求項1または2に記載のクラスタリング記憶方法。

請求項4

前記事前に設定された条件は、前記ローカルメモリの、前記第2のデータによって占有されるサイズが、第2の事前に設定された閾値以上であることであり、且つ、前記ローカルメモリ内にキャッシュされている第2のデータが事前に設定された条件を満たす場合、前記第2のデータを前記第1のソート列に従ってソートする前記ステップは、具体的には、前記ローカルメモリの、前記第2のデータによって占有される前記サイズが、前記第2の事前に設定された閾値以上である場合、前記第1のソート列に従って、前記第2のデータをソートするステップを含む、請求項1または2に記載のクラスタリング記憶方法。

請求項5

前記第1のソート列に従って、前記第2のデータをソートする前記ステップは、具体的には、前記第1のソート列の数値または前記第1のソート列の数値のハッシュ値に従って、前記第2のデータをソートするステップを含む、請求項1乃至4のいずれか1項に記載のクラスタリング記憶方法。

請求項6

ソートされた前記第2のデータを前記データベースシステム内の記憶媒体にクラスタリング方式で記憶する前記ステップは、具体的には、ソートされた前記第2のデータを前記記憶媒体内アイドル状態物理ブロックにクラスタリング方式で記憶するステップであって、前記アイドル状態の物理ブロックは、第3のデータによって占有される物理ブロックを除く物理ブロックであり、且つ、前記第3のデータは、前記第1のデータ内の、前記第2のデータよりも先に前記記憶媒体にクラスタリング方式で記憶されているデータである、ステップを含む、請求項1乃至5のいずれか1項に記載のクラスタリング記憶方法。

請求項7

前記第1のソート列は、物理的な列および表現のうちの少なくとも1つを含む、請求項1乃至6のいずれか1項に記載のクラスタリング記憶方法。

請求項8

前記第1のデータが前記記憶媒体に全て記憶された後、前記方法は、クエリ列を決定するステップと、前記クエリ列が前記第1のソート列内の1番目のソート列である場合、前記第1のソート列内の前記1番目のソート列に従って、前記第1のデータに対してクエリ操作を実行するステップとをさらに含む、請求項1乃至7のいずれか1項に記載のクラスタリング記憶方法。

請求項9

クエリ列を決定する前記ステップの後で、且つ、前記第1のソート列内の前記1番目のソート列に従って、前記第1のデータに対してクエリ操作を実行する前記ステップの前に、前記方法は、前記記憶媒体に記憶された前記第1のデータを前記ローカルメモリに読み出すステップをさらに含み、前記第1のソート列内の前記1番目のソート列に従って、前記第1のデータに対してクエリ操作を実行する前記ステップは、具体的には、前記ローカルメモリ内で、二分探索方式で、前記第1のソート列内の前記1番目のソート列に従って、前記第1のデータの1つ以上のデータページの各データページに対してクエリ操作を実行するステップを含む、請求項8に記載のクラスタリング記憶方法。

請求項10

前記第1のデータが前記記憶媒体に全て記憶された後、前記方法は、第2のソート列を決定するステップと、前記第2のソート列が前記第1のソート列内の1番目のソート列である場合、前記第1のソート列内の前記1番目のソート列に従って、前記第1のデータに対してソート操作を実行するステップとをさらに含む、請求項1乃至7のいずれか1項に記載のクラスタリング記憶方法。

請求項11

第2のソート列を決定する前記ステップの後で、且つ、前記第1のソート列内の前記1番目のソート列に従って、前記第1のデータに対してソート操作を実行する前記ステップの前に、前記方法は、前記記憶媒体に記憶された前記第1のデータを前記ローカルメモリに読み出すステップをさらに含み、前記第1のソート列内の前記1番目のソート列に従って、前記第1のデータに対してソート操作を実行する前記ステップは、具体的には、前記ローカルメモリ内で、前記第1のソート列内の前記1番目のソート列に従って、前記第1のデータに対してマージソートを実行するステップを含む、請求項10に記載のクラスタリング記憶方法。

請求項12

前記第1のデータが前記記憶媒体に全て記憶された後、前記方法は、集約列を決定するステップと、前記集約列が前記第1のソート列内の1番目のソート列である場合、前記第1のソート列内の前記1番目のソート列に従って、前記第1のデータに対して集約操作を実行するステップであって、前記集約操作は、最大値または最小値について前記第1のデータを探索する操作である、ステップとをさらに含む、請求項1乃至7のいずれか1項に記載のクラスタリング記憶方法。

請求項13

集約列を決定する前記ステップの後で、且つ、前記第1のソート列内の前記1番目のソート列に従って、前記第1のデータに対して集約操作を実行する前記ステップの前に、前記方法は、前記記憶媒体に記憶された前記第1のデータを前記ローカルメモリに読み出すステップをさらに含み、前記第1のソート列内の前記1番目のソート列に従って、前記第1のデータに対して集約操作を実行する前記ステップは、具体的には、前記ローカルメモリ内で、前記第1のソート列内の前記1番目のソート列に従って、前記第1のデータの1つ以上のデータページの各データページにおける最大値または最小値を決定するステップと、前記第1のデータにおける最大値または最小値を決定するために、各データページにおける前記最大値または前記最小値を連続的に比較するステップとを含む、請求項12に記載のクラスタリング記憶方法。

請求項14

記憶されるべき第1のデータを前記データベースシステム内のローカルメモリに1行ずつキャッシュする前記ステップの前に、前記方法は、前記記憶媒体内に表を作成するステップであって、前記表は、前記第1のデータをロードするために使用される、ステップをさらに含み、ソートされた前記第2のデータを前記データベースシステム内の記憶媒体にクラスタリング方式で記憶する前記ステップは、具体的には、ソートされた前記第2のデータを前記記憶媒体にクラスタリング方式で記憶するために、ソートされた前記第2のデータを前記表に1行ずつ挿入するステップを含む、請求項1に記載のクラスタリング記憶方法。

請求項15

クラスタリング記憶装置であって、前記装置はデータベースシステムにおいて適用され、且つ、記憶されるべき第1のデータを前記データベースシステム内のローカルメモリに1行ずつキャッシュするように構成されるキャッシングユニットと、第1のソート列を決定するように構成される決定ユニットであって、前記第1のソート列は、前記ローカルメモリ内にキャッシュされているデータをソートするために使用される、決定ユニットと、前記キャッシングユニットによって前記ローカルメモリ内にキャッシュされている第2のデータが事前に設定された条件を満たす場合、前記第2のデータを前記決定ユニットによって決定された前記第1のソート列に従ってソートするように構成される操作ユニットであって、前記第2のデータは、前記第1のデータ内の、前記ローカルメモリ内にキャッシュされているデータである、操作ユニットと、前記操作ユニットによってソートされた前記第2のデータを前記データベースシステム内の記憶媒体にクラスタリング方式で記憶するように構成される記憶ユニットとを含む、クラスタリング記憶装置。

請求項16

前記事前に設定された条件は、前記ローカルメモリ内にキャッシュされている前記第2のデータのデータ量と前記ローカルメモリ内の記憶用に許可されているデータ量との間の関係を表すために使用される、請求項15に記載のクラスタリング記憶装置。

請求項17

前記事前に設定された条件は、前記第2のデータの行数が第1の事前に設定された閾値以上であることであり、且つ、前記操作ユニットは、具体的には、前記第2のデータの前記行数が前記第1の事前に設定された閾値以上である場合、前記第1のソート列に従って、前記第2のデータをソートするように構成される、請求項15または16に記載のクラスタリング記憶装置。

請求項18

前記事前に設定された条件は、前記ローカルメモリの、前記第2のデータによって占有されるサイズが、第2の事前に設定された閾値以上であることであり、且つ、前記操作ユニットは、具体的には、前記ローカルメモリの、前記第2のデータによって占有される前記サイズが、前記第2の事前に設定された閾値以上である場合、前記第1のソート列に従って、前記第2のデータをソートするように構成される、請求項15または16に記載のクラスタリング記憶装置。

請求項19

前記操作ユニットは、具体的には、前記決定ユニットによって決定された、前記第1のソート列の数値または前記第1のソート列の数値のハッシュ値に従って、前記第2のデータをソートするように構成される、請求項15乃至18のいずれか1項に記載のクラスタリング記憶装置。

請求項20

前記記憶ユニットは、具体的には、前記操作ユニットによってソートされた前記第2のデータを前記記憶媒体内のアイドル状態の物理ブロックにクラスタリング方式で記憶するように構成され、前記アイドル状態の物理ブロックは、第3のデータによって占有される物理ブロックを除く物理ブロックであり、且つ、前記第3のデータは、前記第1のデータ内の、前記第2のデータよりも先に前記記憶媒体にクラスタリング方式で記憶されているデータである、請求項15乃至19のいずれか1項に記載のクラスタリング記憶装置。

請求項21

前記決定ユニットによって決定された前記第1のソート列は、物理的な列および表現のうちの少なくとも1つを含む、請求項15乃至20のいずれか1項に記載のクラスタリング記憶装置。

請求項22

前記決定ユニットは、前記記憶ユニットが前記第1のデータ全てを前記記憶媒体に記憶した後、クエリ列を決定するようにさらに構成され、且つ、前記操作ユニットは、前記決定ユニットによって決定された前記クエリ列が前記第1のソート列内の1番目のソート列である場合、前記第1のソート列内の前記1番目のソート列に従って、前記第1のデータに対してクエリ操作を実行するようにさらに構成される、請求項15乃至21のいずれか1項に記載のクラスタリング記憶装置。

請求項23

前記キャッシングユニットは、前記決定ユニットが前記クエリ列を決定した後で、且つ、前記操作ユニットが前記第1のソート列内の前記1番目のソート列に従って、前記第1のデータに対して前記クエリ操作を実行する前に、前記記憶媒体に記憶された前記第1のデータを前記ローカルメモリに読み出すようにさらに構成され、且つ、前記操作ユニットは、具体的には、前記ローカルメモリ内で、二分探索方式で、前記第1のソート列内の前記1番目のソート列に従って、前記キャッシングユニットによってキャッシュされた前記第1のデータの1つ以上のデータページの各データページに対してクエリ操作を実行するように構成される、請求項22に記載のクラスタリング記憶装置。

請求項24

前記決定ユニットは、前記記憶ユニットが前記第1のデータ全てを前記記憶媒体に記憶した後、第2のソート列を決定するようにさらに構成され、且つ、前記操作ユニットは、前記決定ユニットによって決定された前記第2のソート列が前記第1のソート列内の1番目のソート列である場合、前記第1のソート列内の前記1番目のソート列に従って、前記第1のデータに対してソート操作を実行するようにさらに構成される、請求項15乃至21のいずれか1項に記載のクラスタリング記憶装置。

請求項25

前記キャッシングユニットは、前記決定ユニットが前記第2のソート列を決定した後で、且つ、前記操作ユニットが前記第1のソート列内の前記1番目のソート列に従って、前記第1のデータに対して前記ソート操作を実行する前に、前記記憶媒体に記憶された前記第1のデータを前記ローカルメモリに読み出すようにさらに構成され、且つ、前記操作ユニットは、具体的には、前記ローカルメモリ内で、前記第1のソート列内の前記1番目のソート列に従って、前記キャッシングユニットによってキャッシュされた前記第1のデータに対してマージソートを実行するように構成される、請求項24に記載のクラスタリング記憶装置。

請求項26

前記決定ユニットは、前記記憶ユニットが前記第1のデータ全てを前記記憶媒体に記憶した後、集約列を決定するようにさらに構成され、且つ、前記操作ユニットは、前記決定ユニットによって決定された前記集約列が前記第1のソート列内の1番目のソート列である場合、前記第1のソート列内の前記1番目のソート列に従って、前記第1のデータに対して集約操作を実行するようにさらに構成され、前記集約操作は、最大値または最小値について前記第1のデータを探索する操作である、請求項15乃至21のいずれか1項に記載のクラスタリング記憶装置。

請求項27

前記キャッシングユニットは、前記決定ユニットが前記集約列を決定した後で、且つ、前記操作ユニットが前記第1のソート列内の前記1番目のソート列に従って、前記第1のデータに対して前記集約操作を実行する前に、前記記憶媒体に記憶された前記第1のデータを前記ローカルメモリに読み出すようにさらに構成され、且つ、前記操作ユニットは、具体的には、前記ローカルメモリ内で、前記第1のソート列内の前記1番目のソート列に従って、前記キャッシングユニットによってキャッシュされた前記第1のデータの1つ以上のデータページの各データページにおける最大値または最小値を決定し、前記第1のデータにおける最大値または最小値を決定するために、各データページにおける前記最大値または前記最小値を連続的に比較するように構成される、請求項26に記載のクラスタリング記憶装置。

請求項28

前記クラスタリング記憶装置は、作成ユニットをさらに含み、前記作成ユニットは、前記キャッシングユニットが前記記憶されるべき第1のデータを前記データベースシステム内の前記ローカルメモリに1行ずつキャッシュする前に、前記記憶媒体内に表を作成するように構成され、前記表は、前記第1のデータをロードするために使用され、且つ、前記操作ユニットは、具体的には、ソートされた前記第2のデータを前記記憶媒体にクラスタリング方式で記憶するために、ソートされた前記第2のデータを前記作成ユニットによって作成された前記表に1行ずつ挿入するように構成される、請求項15に記載のクラスタリング記憶装置。

請求項29

底層記憶媒体と、前記底層記憶媒体に結合され、且つ、前記底層記憶媒体のキャッシュとして役割を果たすように構成されるメモリと、前記メモリに結合されたプロセッサとを含むデータベースシステムであって、前記プロセッサは前記メモリ内命令を実行し、前記プロセッサは、記憶されるべき第1のデータを前記メモリに1行ずつキャッシュし、第1のソート列を決定し、前記メモリ内にキャッシュされている第2のデータが事前に設定された条件を満たす場合、前記第2のデータを前記第1のソート列に従ってソートし、ソートされた前記第2のデータを前記底層記憶媒体にクラスタリング方式で記憶するように構成され、前記第1のソート列は、前記メモリ内にキャッシュされているデータをソートするために使用され、前記第2のデータは、前記第1のデータ内の、前記メモリ内にキャッシュされているデータである、データベースシステム。

請求項30

前記事前に設定された条件は、前記メモリ内にキャッシュされている前記第2のデータのデータ量と前記メモリ内の記憶用に許可されているデータ量との間の関係を表すために使用される、請求項29に記載のデータベースシステム。

請求項31

前記事前に設定された条件は、前記第2のデータの行数が第1の事前に設定された閾値以上であることであり、且つ、前記メモリ内にキャッシュされている第2のデータが事前に設定された条件を満たす場合、前記第2のデータを前記第1のソート列に従ってソートする態様では、前記プロセッサは、具体的には、前記第2のデータの前記行数が前記第1の事前に設定された閾値以上である場合、前記第1のソート列に従って、前記第2のデータをソートするように構成される、請求項29または30に記載のデータベースシステム。

請求項32

前記事前に設定された条件は、前記メモリの、前記第2のデータによって占有されるサイズが、第2の事前に設定された閾値以上であることであり、且つ、前記メモリ内にキャッシュされている第2のデータが事前に設定された条件を満たす場合、前記第2のデータを前記第1のソート列に従ってソートする態様では、前記プロセッサは、具体的には、前記メモリの、前記第2のデータによって占有される前記サイズが、前記第2の事前に設定された閾値以上である場合、前記第1のソート列に従って、前記第2のデータをソートするように構成される、請求項29または30に記載のデータベースシステム。

請求項33

前記第1のソート列に従って、前記第2のデータをソートする態様では、前記プロセッサは、具体的には、前記第1のソート列の数値または前記第1のソート列の数値のハッシュ値に従って、前記第2のデータをソートするように構成される、請求項29乃至32のいずれか1項に記載のデータベースシステム。

請求項34

ソートされた前記第2のデータを前記底層記憶媒体にクラスタリング方式で記憶する態様では、前記プロセッサは、具体的には、前記第2のデータを前記底層記憶媒体内のアイドル状態の物理ブロックにクラスタリング方式で記憶するように構成され、前記アイドル状態の物理ブロックは、第3のデータによって占有される物理ブロックを除く物理ブロックであり、且つ、前記第3のデータは、前記第1のデータ内の、前記第2のデータよりも先に前記底層記憶媒体にクラスタリング方式で記憶されているデータである、請求項29乃至33のいずれか1項に記載のデータベースシステム。

請求項35

前記プロセッサによって決定された前記第1のソート列は、物理的な列および表現のうちの少なくとも1つを含む、請求項29乃至34のいずれか1項に記載のデータベースシステム。

請求項36

前記プロセッサは、前記第1のデータが前記底層記憶媒体に全て記憶された後、クエリ列を決定し、前記クエリ列が前記第1のソート列内の1番目のソート列である場合、前記第1のソート列内の前記1番目のソート列に従って、前記第1のデータに対してクエリ操作を実行するようにさらに構成される、請求項29乃至35のいずれか1項に記載のデータベースシステム。

請求項37

前記プロセッサは、前記クエリ列を決定した後で、且つ、前記第1のソート列内の前記1番目のソート列に従って、前記第1のデータに対して前記クエリ操作を実行する前に、前記底層記憶媒体に記憶された前記第1のデータを前記メモリに読み出し、前記メモリ内で、二分探索方式で、前記第1のソート列内の前記1番目のソート列に従って、前記第1のデータの1つ以上のデータページの各データページに対してクエリ操作を実行するようにさらに構成される、請求項36に記載のデータベースシステム。

請求項38

前記プロセッサは、前記第1のデータが前記底層記憶媒体に全て記憶された後、第2のソート列を決定し、前記第2のソート列が前記第1のソート列内の1番目のソート列である場合、前記第1のソート列内の前記1番目のソート列に従って、前記第1のデータに対してソート操作を実行するようにさらに構成される、請求項29乃至35のいずれか1項に記載のデータベースシステム。

請求項39

前記プロセッサは、前記第2のソート列を決定した後で、且つ、前記第1のソート列内の前記1番目のソート列に従って、前記第1のデータに対して前記ソート操作を実行する前に、前記底層記憶媒体に記憶された前記第1のデータを前記メモリに読み出し、前記メモリ内で、前記第1のソート列内の前記1番目のソート列に従って、前記第1のデータに対してマージソートを実行するようにさらに構成される、請求項38に記載のデータベースシステム。

請求項40

前記プロセッサは、前記第1のデータが前記底層記憶媒体に全て記憶された後、集約列を決定し、前記集約列が前記第1のソート列内の1番目のソート列である場合、前記第1のソート列内の前記1番目のソート列に従って、前記第1のデータに対して集約操作を実行するようにさらに構成され、前記集約操作は、最大値または最小値について前記第1のデータを探索する操作である、請求項29乃至35のいずれか1項に記載のデータベースシステム。

請求項41

前記プロセッサは、前記集約列を決定した後で、且つ、前記第1のソート列内の前記1番目のソート列に従って、前記第1のデータに対して前記集約操作を実行する前に、前記底層記憶媒体に記憶された前記第1のデータを前記メモリに読み出し、前記メモリ内で、前記第1のソート列内の前記1番目のソート列に従って、前記第1のデータの1つ以上のデータページの各データページにおける最大値または最小値を決定し、前記第1のデータにおける最大値または最小値を決定するために、各データページにおける前記最大値または前記最小値を連続的に比較するようにさらに構成される、請求項40に記載のデータベースシステム。

請求項42

前記プロセッサは、前記記憶されるべき第1のデータが前記メモリに1行ずつキャッシュされる前に、前記底層記憶媒体内に表を作成し、ソートされた前記第2のデータを前記底層記憶媒体にクラスタリング方式で記憶するために、ソートされた前記第2のデータを前記表に1行ずつ挿入するようにさらに構成され、前記表は、前記第1のデータをロードするために使用される、請求項29に記載のデータベースシステム。

技術分野

0001

本願は、2014年5月27日に中国特許に出願された、“CLUSTERING STORAGE METHODANDAPPARATUS”と題する、中国特許出願番号201410228979.8に対して優先権を主張し、その全体が参照によって本明細書に組み込まれる。

0002

本発明はコンピュータ技術の分野に関し、詳細には、クラスタリング記憶方法および装置に関する。

背景技術

0003

データベースでは、データは一般に、表を使用することによって記憶され、且つ、ヒープ表(Heap Table)、索引構成表(Index Organization Table, IOT)およびクラスタ表(Cluster Table)である、3つのタイプの共通の表記憶構造がある。

0004

従来技術では、記憶媒体にデータを記憶するためにヒープ表が使用されるとき、データの各行はデータが挿入される自然順序に従って、非シーケンシャルに記憶されるため、データローディング性能およびデータ更新性能はわずかに影響を受ける。さらに、記憶媒体にデータを記憶するためにヒープ表が使用された後、1個のデータについてヒープ表のデータを問い合わせることが要求された場合、その1個のデータが見つかるまで、ヒープ表の第1の行から1行ずつ比較が行われる必要がある。

0005

しかしながら、記憶媒体にデータを記憶するためにヒープ表が使用されるとき、データは非シーケンシャルに記憶され、且つ、データがヒープ表内で問い合わせられるとき、ヒープ表の第1の行から1行ずつ比較が行われる必要があり、従って、データローディング性能およびデータ更新性能はわずかに影響を受けるが、データ圧縮比およびデータクエリ性能は比較的低い。

課題を解決するための手段

0006

本発明の実施形態はクラスタリング記憶方法および装置を提供し、その結果、データローディング性能およびデータ更新性能がわずかに影響を受けるという前提で、データクエリ性能およびデータ圧縮効率は改善されることができる。

0007

以下の技術的解決手段は、本発明の実施形態で使用される。

0008

第1の態様によると、本発明の実施形態はクラスタリング記憶方法を提供し、ここで、方法はデータベースシステムにおいて適用され、且つ、
記憶されるべき第1のデータをデータベースシステム内のローカルメモリに1行ずつキャッシュするステップと、
第1のソート列を決定するステップであって、ここで、第1のソート列は、ローカルメモリ内にキャッシュされているデータをソートするために使用される、ステップと、
ローカルメモリ内にキャッシュされている第2のデータが事前に設定された条件を満たす場合、第2のデータを第1のソート列に従ってソートするステップであって、ここで、第2のデータは、第1のデータ内の、ローカルメモリ内にキャッシュされているデータである、ステップと、
ソートされた第2のデータをデータベースシステム内の記憶媒体にクラスタリング方式で記憶するステップと
を含む。

0009

第1の態様の第1の可能な実施方式では、事前に設定された条件は、ローカルメモリ内にキャッシュされている第2のデータのデータ量とローカルメモリ内の記憶用許可されているデータ量との間の関係を表すために使用される。

0010

第1の態様または第1の態様の第1の可能な実施方式を参照すると、第2の可能な実施方式では、事前に設定された条件は、第2のデータの行数が第1の事前に設定された閾値以上であることであり、且つ、
ローカルメモリ内にキャッシュされている第2のデータが事前に設定された条件を満たす場合、第2のデータを第1のソート列に従ってソートするステップは、具体的には、
第2のデータの行数が第1の事前に設定された閾値以上である場合、第1のソート列に従って、第2のデータをソートするステップを含む。

0011

第1の態様または第1の態様の第1の可能な実施方式を参照すると、第3の可能な実施方式では、事前に設定された条件は、ローカルメモリの、第2のデータによって占有されるサイズが、第2の事前に設定された閾値以上であることであり、且つ、
ローカルメモリ内にキャッシュされている第2のデータが事前に設定された条件を満たす場合、第2のデータを第1のソート列に従ってソートするステップは、具体的には、
ローカルメモリの、第2のデータによって占有されるサイズが、第2の事前に設定された閾値以上である場合、第1のソート列に従って、第2のデータをソートするステップを含む。

0012

第1の態様または第1の態様の第1の可能な実施方式乃至第3の可能な実施方式のいずれか1つの実施方式を参照すると、第4の可能な実施方式では、第1のソート列に従って、第2のデータをソートするステップは、具体的には、
第1のソート列の数値または第1のソート列の数値のハッシュ値に従って、第2のデータをソートするステップを含む。

0013

第1の態様または第1の態様の第1の可能な実施方式乃至第4の可能な実施方式のいずれか1つの実施方式を参照すると、第5の可能な実施方式では、ソートされた第2のデータをデータベースシステム内の記憶媒体にクラスタリング方式で記憶するステップは、具体的には、
ソートされた第2のデータを記憶媒体内アイドル状態物理ブロックにクラスタリング方式で記憶するステップであって、ここで、アイドル状態の物理ブロックは、第3のデータによって占有される物理ブロックを除く物理ブロックであり、且つ、第3のデータは、第1のデータ内の、第2のデータよりも先に記憶媒体にクラスタリング方式で記憶されているデータである、ステップを含む。

0014

第1の態様または第1の態様の第1の可能な実施方式乃至第5の可能な実施方式のいずれか1つの実施方式を参照すると、第6の可能な実施方式では、第1のソート列は、物理的な列および表現のうちの少なくとも1つを含む。

0015

第1の態様または第1の態様の第1の可能な実施方式乃至第6の可能な実施方式のいずれか1つの実施方式を参照すると、第7の可能な実施方式では、第1のデータが記憶媒体に全て記憶された後、方法は、
クエリ列を決定するステップと、
クエリ列が第1のソート列内の1番目のソート列である場合、第1のソート列内の1番目のソート列に従って、第1のデータに対してクエリ操作を実行するステップと
をさらに含む。

0016

第1の態様の第7の可能な実施方式を参照すると、第8の可能な実施方式では、クエリ列を決定するステップの後で、且つ、第1のソート列内の1番目のソート列に従って、第1のデータに対してクエリ操作を実行するステップの前に、方法は、
記憶媒体に記憶された第1のデータをローカルメモリに読み出すステップをさらに含み、ここで、
第1のソート列内の1番目のソート列に従って、第1のデータに対してクエリ操作を実行するステップは、具体的には、
ローカルメモリ内で、二分探索方式で、第1のソート列内の1番目のソート列に従って、第1のデータの1つ以上のデータページの各データページに対してクエリ操作を実行するステップを含む。

0017

第1の態様または第1の態様の第1の可能な実施方式乃至第6の可能な実施方式のいずれか1つの実施方式を参照すると、第9の可能な実施方式では、第1のデータが記憶媒体に全て記憶された後、方法は、
第2のソート列を決定するステップと、
第2のソート列が第1のソート列内の1番目のソート列である場合、第1のソート列内の1番目のソート列に従って、第1のデータに対してソート操作を実行するステップと
をさらに含む。

0018

第1の態様の第9の可能な実施方式を参照すると、第10の可能な実施方式では、第2のソート列を決定するステップの後で、且つ、第1のソート列内の1番目のソート列に従って、第1のデータに対してソート操作を実行するステップの前に、方法は、
記憶媒体に記憶された第1のデータをローカルメモリに読み出すステップをさらに含み、ここで、
第1のソート列内の1番目のソート列に従って、第1のデータに対してソート操作を実行するステップは、具体的には、
ローカルメモリ内で、第1のソート列内の1番目のソート列に従って、第1のデータに対してマージソートを実行するステップを含む。

0019

第1の態様または第1の態様の第1の可能な実施方式乃至第6の可能な実施方式のいずれか1つの実施方式を参照すると、第11の可能な実施方式では、第1のデータが記憶媒体に全て記憶された後、方法は、
集約列を決定するステップと、
集約列が第1のソート列内の1番目のソート列である場合、第1のソート列内の1番目のソート列に従って、第1のデータに対して集約操作を実行するステップであって、ここで、集約操作は、最大値または最小値について第1のデータを探索する操作である、ステップと
をさらに含む。

0020

第1の態様の第11の可能な実施方式を参照すると、第12の可能な実施方式では、集約列を決定するステップの後で、且つ、第1のソート列内の1番目のソート列に従って、第1のデータに対して集約操作を実行するステップの前に、方法は、
記憶媒体に記憶された第1のデータをローカルメモリに読み出すステップをさらに含み、ここで、
第1のソート列内の1番目のソート列に従って、第1のデータに対して集約操作を実行するステップは、具体的には、
ローカルメモリ内で、第1のソート列内の1番目のソート列に従って、第1のデータの1つ以上のデータページの各データページにおける最大値または最小値を決定するステップと、
第1のデータにおける最大値または最小値を決定するために、各データページにおける最大値または最小値を連続的に比較するステップとを含む。

0021

第1の態様の第13の可能な実施方式では、記憶されるべき第1のデータをデータベースシステム内のローカルメモリに1行ずつキャッシュするステップの前に、方法は、
記憶媒体内に表を作成するステップであって、ここで、表は、第1のデータをロードするために使用される、ステップをさらに含み、ここで、
ソートされた第2のデータをデータベースシステム内の記憶媒体にクラスタリング方式で記憶するステップは、具体的には、
ソートされた第2のデータを記憶媒体にクラスタリング方式で記憶するために、ソートされた第2のデータを表に1行ずつ挿入するステップを含む。

0022

第2の態様によると、本発明の実施形態はクラスタリング記憶装置を提供し、ここで、装置はデータベースシステムにおいて適用され、且つ、
記憶されるべき第1のデータをデータベースシステム内のローカルメモリに1行ずつキャッシュするように構成されるキャッシングユニットと、
第1のソート列を決定するように構成される決定ユニットであって、ここで、第1のソート列は、ローカルメモリ内にキャッシュされているデータをソートするために使用される、決定ユニットと、
キャッシングユニットによってローカルメモリ内にキャッシュされている第2のデータが事前に設定された条件を満たす場合、第2のデータを決定ユニットによって決定された第1のソート列に従ってソートするように構成される操作ユニットであって、ここで、第2のデータは、第1のデータ内の、ローカルメモリ内にキャッシュされているデータである、操作ユニットと、
操作ユニットによってソートされた第2のデータをデータベースシステム内の記憶媒体にクラスタリング方式で記憶するように構成される記憶ユニット
を含む。

0023

第2の態様の第1の可能な実施方式では、事前に設定された条件は、ローカルメモリ内にキャッシュされている第2のデータのデータ量とローカルメモリ内の記憶用に許可されているデータ量との間の関係を表すために使用される。

0024

第2の態様または第2の態様の第1の可能な実施方式を参照すると、第2の可能な実施方式では、事前に設定された条件は、第2のデータの行数が第1の事前に設定された閾値以上であることであり、且つ、
操作ユニットは、具体的には、第2のデータの行数が第1の事前に設定された閾値以上である場合、第1のソート列に従って、第2のデータをソートするように構成される。

0025

第2の態様または第2の態様の第1の可能な実施方式を参照すると、第3の可能な実施方式では、事前に設定された条件は、ローカルメモリの、第2のデータによって占有されるサイズが、第2の事前に設定された閾値以上であることであり、且つ、
操作ユニットは、具体的には、ローカルメモリの、第2のデータによって占有されるサイズが、第2の事前に設定された閾値以上である場合、第1のソート列に従って、第2のデータをソートするように構成される。

0026

第2の態様または第2の態様の第1の可能な実施方式乃至第3の可能な実施方式のいずれか1つの実施方式を参照すると、第4の可能な実施方式では、操作ユニットは、具体的には、決定ユニットによって決定された、第1のソート列の数値または第1のソート列の数値のハッシュ値に従って、第2のデータをソートするように構成される。

0027

第2の態様または第2の態様の第1の可能な実施方式乃至第4の可能な実施方式のいずれか1つの実施方式を参照すると、第5の可能な実施方式では、記憶ユニットは、具体的には、操作ユニットによってソートされた第2のデータを記憶媒体内のアイドル状態の物理ブロックにクラスタリング方式で記憶するように構成され、ここで、アイドル状態の物理ブロックは、第3のデータによって占有される物理ブロックを除く物理ブロックであり、且つ、第3のデータは、第1のデータ内の、第2のデータよりも先に記憶媒体にクラスタリング方式で記憶されているデータである。

0028

第2の態様または第2の態様の第1の可能な実施方式乃至第5の可能な実施方式のいずれか1つの実施方式を参照すると、第6の可能な実施方式では、決定ユニットによって決定された第1のソート列は、物理的な列および表現のうちの少なくとも1つを含む。

0029

第2の態様または第2の態様の第1の可能な実施方式乃至第6の可能な実施方式のいずれか1つの実施方式を参照すると、第7の可能な実施方式では、決定ユニットは、記憶ユニットが第1のデータ全てを記憶媒体に記憶した後、クエリ列を決定するようにさらに構成され、且つ、
操作ユニットは、決定ユニットによって決定されたクエリ列が第1のソート列内の1番目のソート列である場合、第1のソート列内の1番目のソート列に従って、第1のデータに対してクエリ操作を実行するようにさらに構成される。

0030

第2の態様の第7の可能な実施方式を参照すると、第8の可能な実施方式では、キャッシングユニットは、決定ユニットがクエリ列を決定した後で、且つ、操作ユニットが第1のソート列内の1番目のソート列に従って、第1のデータに対してクエリ操作を実行する前に、記憶媒体に記憶された第1のデータをローカルメモリに読み出すようにさらに構成され、且つ、
操作ユニットは、具体的には、ローカルメモリ内で、二分探索方式で、第1のソート列内の1番目のソート列に従って、キャッシングユニットによってキャッシュされた第1のデータの1つ以上のデータページの各データページに対してクエリ操作を実行するように構成される。

0031

第2の態様または第2の態様の第1の可能な実施方式乃至第6の可能な実施方式のいずれか1つの実施方式を参照すると、第9の可能な実施方式では、決定ユニットは、記憶ユニットが第1のデータ全てを記憶媒体に記憶した後、第2のソート列を決定するようにさらに構成され、且つ、
操作ユニットは、決定ユニットによって決定された第2のソート列が第1のソート列内の1番目のソート列である場合、第1のソート列内の1番目のソート列に従って、第1のデータに対してソート操作を実行するようにさらに構成される。

0032

第2の態様の第9の可能な実施方式を参照すると、第10の可能な実施方式では、キャッシングユニットは、決定ユニットが第2のソート列を決定した後で、且つ、操作ユニットが第1のソート列内の1番目のソート列に従って、第1のデータに対してソート操作を実行する前に、記憶媒体に記憶された第1のデータをローカルメモリに読み出すようにさらに構成され、且つ、
操作ユニットは、具体的には、ローカルメモリ内で、第1のソート列内の1番目のソート列に従って、キャッシングユニットによってキャッシュされた第1のデータに対してマージソートを実行するように構成される。

0033

第2の態様または第2の態様の第1の可能な実施方式乃至第6の可能な実施方式のいずれか1つの実施方式を参照すると、第11の可能な実施方式では、決定ユニットは、記憶ユニットが第1のデータ全てを記憶媒体に記憶した後、集約列を決定するようにさらに構成され、且つ、
操作ユニットは、決定ユニットによって決定された集約列が第1のソート列内の1番目のソート列である場合、第1のソート列内の1番目のソート列に従って、第1のデータに対して集約操作を実行するようにさらに構成され、ここで、集約操作は、最大値または最小値について第1のデータを探索する操作である。

0034

第2の態様の第11の可能な実施方式を参照すると、第12の可能な実施方式では、キャッシングユニットは、決定ユニットが集約列を決定した後で、且つ、操作ユニットが第1のソート列内の1番目のソート列に従って、第1のデータに対して集約操作を実行する前に、記憶媒体に記憶された第1のデータをローカルメモリに読み出すようにさらに構成され、且つ、
操作ユニットは、具体的には、ローカルメモリ内で、第1のソート列内の1番目のソート列に従って、キャッシングユニットによってキャッシュされた第1のデータの1つ以上のデータページの各データページにおける最大値または最小値を決定し、第1のデータにおける最大値または最小値を決定するために、各データページにおける最大値または最小値を連続的に比較するように構成される。

0035

第2の態様の第13の可能な実施方式では、クラスタリング記憶装置は、作成ユニットをさらに含み、ここで、
作成ユニットは、キャッシングユニットが記憶されるべき第1のデータをデータベースシステム内のローカルメモリに1行ずつキャッシュする前に、記憶媒体内に表を作成するように構成され、ここで、表は、第1のデータをロードするために使用され、且つ、
操作ユニットは、具体的には、ソートされた第2のデータを記憶媒体にクラスタリング方式で記憶するために、ソートされた第2のデータを作成ユニットによって作成された表に1行ずつ挿入するように構成される。

0036

第3の態様によると、本発明の実施形態はデータベースシステムを提供し、データベースシステムは、
底層記憶媒体と、
底層記憶媒体に結合され、且つ、底層記憶媒体のキャッシュとして役割を果たすように構成されるメモリと、
メモリに結合されたプロセッサとを含み、ここで、底層記憶媒体における1つ以上のデータブロックキャッシュ内ターゲットデータブロックマッピングされ、プロセッサはメモリ内命令を実行し、
記憶されるべき第1のデータをメモリに1行ずつキャッシュし、第1のソート列を決定し、メモリ内にキャッシュされている第2のデータが事前に設定された条件を満たす場合、第2のデータを第1のソート列に従ってソートし、ソートされた第2のデータを底層記憶媒体にクラスタリング方式で記憶するように構成され、ここで、第1のソート列は、メモリ内にキャッシュされているデータをソートするために使用され、第2のデータは、第1のデータ内の、メモリ内にキャッシュされているデータである。

0037

第3の態様の第1の可能な実施方式では、事前に設定された条件は、メモリ内にキャッシュされている第2のデータのデータ量とメモリ内の記憶用に許可されているデータ量との間の関係を表すために使用される。

0038

第3の態様または第3の態様の第1の可能な実施方式を参照すると、第2の可能な実施方式では、事前に設定された条件は、第2のデータの行数が第1の事前に設定された閾値以上であることであり、且つ、
プロセッサは、具体的には、第2のデータの行数が第1の事前に設定された閾値以上である場合、第1のソート列に従って、第2のデータをソートするように構成される。

0039

第3の態様または第3の態様の第1の可能な実施方式を参照すると、第3の可能な実施方式では、事前に設定された条件は、メモリの、第2のデータによって占有されるサイズが、第2の事前に設定された閾値以上であることであり、且つ、
プロセッサは、具体的には、メモリの、第2のデータによって占有されるサイズが、第2の事前に設定された閾値以上である場合、第1のソート列に従って、第2のデータをソートするように構成される。

0040

第3の態様または第3の態様の第1の可能な実施方式乃至第3の可能な実施方式のいずれか1つの実施方式を参照すると、第4の可能な実施方式では、プロセッサは、具体的には、第1のソート列の数値または第1のソート列の数値のハッシュ値に従って、第2のデータをソートするように構成される。

0041

第3の態様または第3の態様の第1の可能な実施方式乃至第4の可能な実施方式のいずれか1つの実施方式を参照すると、第5の可能な実施方式では、プロセッサは、具体的には、第2のデータを底層記憶媒体内のアイドル状態の物理ブロックにクラスタリング方式で記憶するように構成され、ここで、アイドル状態の物理ブロックは、第3のデータによって占有される物理ブロックを除く物理ブロックであり、且つ、第3のデータは、第1のデータ内の、第2のデータよりも先に底層記憶媒体にクラスタリング方式で記憶されているデータである。

0042

第3の態様または第3の態様の第1の可能な実施方式乃至第5の可能な実施方式のいずれか1つの実施方式を参照すると、第6の可能な実施方式では、プロセッサによって決定された第1のソート列は、物理的な列および表現のうちの少なくとも1つを含む。

0043

第3の態様または第3の態様の第1の可能な実施方式乃至第6の可能な実施方式のいずれか1つの実施方式を参照すると、第7の可能な実施方式では、プロセッサは、第1のデータが底層記憶媒体に全て記憶された後、クエリ列を決定し、クエリ列が第1のソート列内の1番目のソート列である場合、第1のソート列内の1番目のソート列に従って、第1のデータに対してクエリ操作を実行するようにさらに構成される。

0044

第3の態様の第7の可能な実施方式を参照すると、第8の可能な実施方式では、プロセッサは、クエリ列を決定した後で、且つ、第1のソート列内の1番目のソート列に従って、第1のデータに対してクエリ操作を実行する前に、底層記憶媒体に記憶された第1のデータをメモリに読み出し、メモリ内で、二分探索方式で、第1のソート列内の1番目のソート列に従って、第1のデータの1つ以上のデータページの各データページに対してクエリ操作を実行するようにさらに構成される。

0045

第3の態様または第3の態様の第1の可能な実施方式乃至第6の可能な実施方式のいずれか1つの実施方式を参照すると、第9の可能な実施方式では、プロセッサは、第1のデータが底層記憶媒体に全て記憶された後、第2のソート列を決定し、第2のソート列が第1のソート列内の1番目のソート列である場合、第1のソート列内の1番目のソート列に従って、第1のデータに対してソート操作を実行するようにさらに構成される。

0046

第3の態様の第9の可能な実施方式を参照すると、第10の可能な実施方式では、プロセッサは、第2のソート列を決定した後で、且つ、第1のソート列内の1番目のソート列に従って、第1のデータに対してソート操作を実行する前に、底層記憶媒体に記憶された第1のデータをメモリに読み出し、メモリ内で、第1のソート列内の1番目のソート列に従って、第1のデータに対してマージソートを実行するようにさらに構成される。

0047

第3の態様または第3の態様の第1の可能な実施方式乃至第6の可能な実施方式のいずれか1つの実施方式を参照すると、第11の可能な実施方式では、プロセッサは、第1のデータが底層記憶媒体に全て記憶された後、集約列を決定し、集約列が第1のソート列内の1番目のソート列である場合、第1のソート列内の1番目のソート列に従って、第1のデータに対して集約操作を実行するようにさらに構成され、ここで、集約操作は、最大値または最小値について第1のデータを探索する操作である。

0048

第3の態様の第11の可能な実施方式を参照すると、第12の可能な実施方式では、プロセッサは、集約列を決定した後で、且つ、第1のソート列内の1番目のソート列に従って、第1のデータに対して集約操作を実行する前に、底層記憶媒体に記憶された第1のデータをメモリに読み出し、メモリ内で、第1のソート列内の1番目のソート列に従って、第1のデータの1つ以上のデータページの各データページにおける最大値または最小値を決定し、第1のデータにおける最大値または最小値を決定するために、各データページにおける最大値または最小値を連続的に比較するようにさらに構成される。

0049

第3の態様の第13の可能な実施方式では、プロセッサは、記憶されるべき第1のデータがメモリに1行ずつキャッシュされる前に、底層記憶媒体内に表を作成し、ソートされた第2のデータを底層記憶媒体にクラスタリング方式で記憶するために、ソートされた第2のデータを表に1行ずつ挿入するようにさらに構成され、ここで、表は、第1のデータをロードするために使用される。

0050

本発明の実施形態で提供されるクラスタリング記憶方法および装置によると、記憶されるべき第1のデータはデータベースシステム内のローカルメモリに1行ずつキャッシュされ、第1のソート列が決定され、ここで、第1のソート列は、ローカルメモリ内にキャッシュされているデータをソートするために使用され、ローカルメモリ内にキャッシュされている第2のデータが事前に設定された条件を満たす場合、第2のデータが第1のソート列に従ってソートされ、ここで、第2のデータは、第1のデータ内の、ローカルメモリ内にキャッシュされているデータであり、ソートされた第2のデータがデータベースシステム内の記憶媒体にクラスタリング方式で記憶される。この解決手段を使用することによって、記憶されるべき第1のデータをローカルメモリに1行ずつキャッシュするプロセスでは、ローカルメモリ内にキャッシュされている第2のデータのデータ量がローカルメモリ内の記憶用に許可されているデータ量を超過しているとき、第2のデータは、決定された第1のソート列に従ってソートされ始め、且つ、ソートされた第2のデータはデータベースシステム内の記憶媒体に記憶される。記憶されるべきデータは、データローディングを完了するために、一部ずつソートおよび記憶されてよいため、データベースシステム内の記憶媒体におけるデータが部分的にシーケンシャルであることが保証されることができ、その結果、データローディング性能およびデータ更新性能がわずかに影響を受けるという前提で、データクエリ性能およびデータ圧縮効率が改善されることが保証されることができる。

図面の簡単な説明

0051

本発明の実施形態における、または従来技術における技術的解決手段をより明確に説明するために、以下では、実施形態または従来技術を説明するために必要とされる表および添付図面を簡潔に導入する。明らかに、以下の説明における表および添付図面は単に本発明のいくつかの実施形態を示し、すなわち、本発明で提供される表および添付図面は、以下の説明における表および添付図面を含むがそれらに限定はされない。

0052

図1は、本発明の実施形態に係るクラスタリング記憶方法の第1のフローチャートである。
図2は、本発明の実施形態に係るクラスタリング記憶方法の第2のフローチャートである。
図3は、本発明の実施形態に係るクラスタリング記憶方法の第3のフローチャートである。
図4は、本発明の実施形態に係る索引構成表の概略構成図である。
図5は、本発明の実施形態に係るクラスタリング記憶装置の第1の概略構成図である。
図6は、本発明の実施形態に係るクラスタリング記憶装置の第2の概略構成図である。
図7は、本発明の実施形態に係るデータベースシステムの概略構成図である。
図8は、本発明の実施形態に係る、クラスタリング方式でデータを記憶するための第1の概略図である。
図9は、本発明の実施形態に係る、クラスタリング方式でデータを記憶するための第2の概略図である。

実施例

0053

本発明で提供されるクラスタリング記憶方法では、クラスタリング記憶の観念によると、データがデータベースシステム内の記憶媒体に記憶されるとき、記憶媒体に記憶される全てのデータがシーケンシャルである(データが全体的にシーケンシャルである)ことを考慮することなく、記憶媒体に各回記憶されるデータのみがシーケンシャルである(データは部分的にシーケンシャルである)ことが保証される。従って、従来技術における非シーケンシャルな記憶方式で記憶媒体にデータを記憶するためにヒープ表が使用される場合と比較して、本発明で提供されるクラスタリング記憶方法を使用することによって、記憶媒体における同じタイプのデータは部分的にソートされた後に記憶されるため、データローディング性能およびデータ更新性能がわずかに影響を受けるという前提で、データクエリ性能およびデータ圧縮効率が改善されることが保証されることができる。具体的には、本発明の実施形態で提供されるクラスタリング記憶方法を使用することによって、1つの態様においては、データベースシステム内の記憶媒体における同じタイプのデータは部分的にソートされた後に記憶されるため、データが記憶された後、データクエリ性能およびデータ圧縮効率は比較的高く、1つの態様においては、データを記憶するプロセスでは、データがロードされるとき、データは一部ずつロードされるため、データローディング性能はわずかに影響を受けることが保証されることができ、別の態様においては、記憶媒体内のデータが更新される必要があるとき、更新されるべきデータが記憶媒体内で位置するデータの部分が直接更新されることができ(更新が追加している場合、追加されたデータは直接且つシーケンシャルに記憶媒体に記憶されてよい)、且つ、更新は記憶媒体内の全てのデータに対して要求されないため、データ更新性能はわずかに影響を受けることが保証されることができる。すなわち、本発明で提供されるクラスタリング記憶方法を使用することによって、データローディング性能およびデータ更新性能がわずかに影響を受けるという前提で、データクエリ性能およびデータ圧縮効率は改善されることが保証されることができる。

0054

さらに、本発明で提供されるクラスタリング記憶方法によると、データを記憶するプロセスでは、データはローカルメモリ内でのみソートされる必要があり、記憶媒体内でソートされる必要がなく、且つ、ローカルメモリ内でデータを処理する速度は、記憶媒体内でデータを処理する速度よりもはるかに速く、従って、本発明で提供されるクラスタリング記憶方法がデータを更新するために使用されるとき、時間およびシステム資源が節約されることができる。

0055

以下では、本発明の実施形態で提供されるクラスタリング記憶方法および装置を、本発明の実施形態における表および添付図面を参照して明確且つ完全に説明する。明らかに、説明される実施形態は、本発明の実施形態の全てではなく単に一部である。本発明の実施形態で提供されるクラスタリング記憶方法および装置は、データベースシステムにおいて適用されてよく、ここで、データベースシステムは、クラスタリング記憶装置のハードウェアエンティティおよびデータベース環境を含んでよく、クラスタリング記憶装置のハードウェアエンティティは、コンピュータノード(またはコンピューティングノードと呼ばれる)であってよく、または、本発明の実施形態で提供されるクラスタリング記憶解決手段を実施することができる別のデバイスであってよく、すなわち、本発明の実施形態で提供されるクラスタリング記憶方法は、コンピュータノードまたは別のデバイスによって実行されてよい。以下では、本発明の実施形態で提供されるクラスタリング記憶方法および装置を説明するための例として、コンピュータノードを使用する。

0056

実施形態1

0057

本発明の実施形態は、クラスタリング記憶方法を提供し、ここで、方法はデータベースシステムにおいて適用される。図1に示されるように、方法は以下のステップを含んでよい:

0058

S101.コンピュータノードは、記憶されるべき第1のデータをデータベースシステム内のローカルメモリに1行ずつキャッシュする。

0059

ハードディスクテキストで記憶されるデータ、すなわち記憶されるべき第1のデータが、データベースシステム内の記憶媒体に記憶されて、第1のデータに対する次のアクセスを容易にする必要がある場合、第1のデータを記憶するプロセスでは、コンピュータノードは、最初に第1のデータをソートして、次いで、ソートされた第1のデータを記憶媒体に記憶する必要がある。コンピュータノードが第1のデータを記憶媒体に記憶するプロセスでは、コンピュータノードは、最初に第1のデータをハードディスクからデータベースシステム内のローカルメモリに読み出す必要がある。具体的には、コンピュータノードは第1のデータをハードディスクからローカルメモリに1行ずつキャッシュしてよい。

0060

S102.コンピュータノードは第1のソート列を決定し、ここで、第1のソート列は、ローカルメモリ内にキャッシュされているデータをソートするために使用される。

0061

コンピュータノードが第1のデータをローカルメモリに1行ずつキャッシュするプロセスでは、コンピュータノードは第1のソート列を決定してよく、ここで、第1のソート列は、事前に設定されてよく、且つ、第1のソート列は、ローカルメモリ内にキャッシュされているデータをソートするために使用されてよい。

0062

任意で、本発明の本実施形態で提供されるクラスタリング記憶方法では、第1のデータをソートするとき、コンピュータノードは、第1のソート列の数値または第1のソート列の数値のハッシュ値に従って、第1のデータをソートしてよい。

0063

業者は、本発明の本実施形態で提供されるデータベースシステム内の記憶媒体は、ディスクであってよく、ここで、ディスクはハードディスクおよびフロッピーディスクを含んでよいことを理解することができる。よく使用されるディスクは一般にリムーバブルディスクであり、ここで、リムーバブルディスクは2つのタイプに分類されてよく、1つのタイプはチップ記憶に基づくUSBフラッシュドライブ(Universal Serial Bus flash disk,ユニバーサルシリアルバスフラッシュドライブ)またはフラッシュディスクであり、もう一方のタイプは、ハードディスクに基づくリムーバブルハードディスクであり、ここで、リムーバブルディスクは、たいていの場合リムーバブルハードディスクであり、且つ、リムーバブルハードディスクは、異なるハードディスクに従って、ノートブックコンピュータのリムーバブルハードディスクとデスクトップコンピュータのリムーバブルハードディスクとに分類される。リムーバブルハードディスクは一般に、USBインタフェースを介してコンピュータに接続され、すなわち、記憶媒体として、リムーバブルハードディスクは、USBインタフェースを介して、リムーバブルハードディスクとコンピュータとの間で送信されるデータを記憶してよい。

0064

特に、第1のソート列は、主キーと呼ばれてよく、または部分クラスタキー(partial cluster key)と呼ばれてよい。

0065

第1のソート列は、ユーザがコンピュータノードに表を作成するように命令するとき、第1のデータの属性によって指定されるソート列に従って、第1のデータをソートするための基準であり、すなわち、コンピュータノードは、第1のソート列に従って、記憶されるべき第1のデータにおける、ローカルメモリにキャッシュされているデータの各部分を別々にソートしてよく、その結果、第1のデータにおけるデータの各部分は別々に且つシーケンシャルに配列され、第1のデータが部分的にシーケンシャルであることを保証することは留意されるべきである。

0066

さらに、表を作成するように命令するとき、ユーザは、文を使用することによって表記憶構造を指定してよく、ここで、第1のソート列が表記憶構造で指定される。例えば、ユーザは、表t記憶構造を指定するために、Create table t(c1 int,c2 int, partial cluster key(c1,c2+1)という文を使用してよく、ここで、表t記憶構造は、第1のソート列、すなわち、部分クラスタキーを含む。

0067

表は、データレコードグループによって形成される。表は行に従って配列される関連データのグループであり、且つ、各表は同じタイプの情報を含む。表は実際、2次元表である。例えば、クラス内の全ての学生テスト点数が表内に記憶されてよく、ここで、表内の各行は1人の学生に対応し、且つ、各行は対応する学生に関する全ての情報を含み、例えば、学生の、学生番号、氏名および各コースの点数を含んでよい。

0068

表記憶構造は、定義された表のフィールド、タイプ、主キー、外部キー、索引等であり、すなわち、これらの基本属性は表記憶構造を構成する。表記憶構造が決定された後、異なるタイプのデータは、表記憶構造に従って直接挿入されてよい。

0069

データベースはデータを記憶するためのウェアハウスであり、データベースは1つの表または表のグループによって形成され、且つ、データベース内のデータは表単位で編成される。各データベースは、ファイルの形式でディスクに記憶され、すなわち、各データベースは1つの物理ファイルに対応する。異なるデータベースは、異なる方式における物理ファイルに対応する。例えば、データベースは、1つの表を含んでよく、または、複数の表を含んでよい。

0070

さらに、本発明の本実施形態で提供されるクラスタリング記憶方法によると、コンピュータノードは、データベースシステム内のローカルメモリにおける第1のデータに対するソートを完了し、且つ、ローカルメモリのサイズおよびデータ処理能力の制限に依存するため、コンピュータノードは第1のデータを一部ずつのみソートすることができる。コンピュータノードは次いで、データベースシステム内の記憶媒体に、一部ずつソートされたデータを連続的に記憶し、このようにして、記憶媒体に記憶された第1のデータが部分的にシーケンシャルであることが保証されることができる。

0071

S103.コンピュータノードによってローカルメモリ内にキャッシュされている第2のデータが事前に設定された条件を満たす場合、コンピュータノードは第2のデータを第1のソート列に従ってソートし、ここで、第2のデータは、第1のデータ内の、ローカルメモリ内にキャッシュされているデータである。

0072

コンピュータノードが第1のデータをキャッシュするプロセスでは、データベースシステム内のローカルメモリが制限されたサイズおよび制限されたデータ処理能力を有するため、第1のデータは一度にローカルメモリに全てキャッシュされることはできず、すなわち、コンピュータノードは、第1のデータをローカルメモリに一部ずつ別々にキャッシュしてよく、その結果、コンピュータノードは、ローカルメモリに別々にキャッシュされるデータを一部ずつ連続的に処理してよい。具体的には、コンピュータノードは、リアルタイムで、ローカルメモリにキャッシュされている第2のデータの状態に対する統計値収集してよい。コンピュータノードが、ローカルメモリにキャッシュされている第2のデータが事前に設定された条件を満たすと検出したとき、コンピュータノードは、第1のソート列に従って、第2のデータをソートし始めてよく、ここで、第2のデータは、第1のデータ内の、ローカルメモリ内にキャッシュされているデータである。

0073

さらに、前述の事前に設定された条件は、ローカルメモリ内にキャッシュされている第2のデータのデータ量とローカルメモリ内の記憶用に許可されているデータ量との間の関係を表すために使用されてよい。

0074

S104.コンピュータノードは、ソートされた第2のデータをデータベースシステム内の記憶媒体に記憶する。

0075

データベースでは、属性または属性グループのクエリ速度を改善するために、属性または属性グループ内の同じ値を有するタプルクラスタコードと呼ばれる)が、連続する物理ブロックに中心に記憶されてよい。この記憶方法はクラスタリングと呼ばれる。クラスタリング方式でデータを記憶することは、クラスタコードに従ってクエリを実行することにおける効率を大きく改善することができる。

0076

コンピュータノードが第2のデータをソートした後、コンピュータノードは、第2のデータをロードするプロセスを完了するために、ソートされた第2のデータをデータベースシステム内の記憶媒体にクラスタリング方式で記憶してよい。

0077

コンピュータノードは、記憶されるべき第1のデータがデータベースシステム内の記憶媒体に全て記憶されるまで、前述のS101からS104を繰り返し実行してよいことは留意されるべきである。

0078

コンピュータノードは、事前に設定された第1のソート列に従って、第1のデータにおける、ローカルメモリにキャッシュされているデータの各部分を連続的に且つ別々にソートし、各回ソートされた後に得られたデータの各部分を記憶媒体に記憶してよく、その結果、記憶媒体に記憶された第1のデータは部分的にシーケンシャルであり、すなわち、記憶媒体に記憶された第1のデータにおけるデータの各部分がシーケンシャルに配列されることが保証されることができることは理解されることができる。

0079

例示的に、ユーザが第1のデータ、すなわち、大学におけるダンス部内の500人の学生に関する情報をデータベースシステム内の記憶媒体に記憶して、次のアクセスを容易にする必要がある場合、ユーザは最初に、500人の学生に関する情報をコンピュータノードに入力し、テキストの形式で、コンピュータノードのハードディスク内に情報を記憶する必要がある。コンピュータノードが、500人の学生に関する情報を、ユーザの命令に従って、データベースシステム内の記憶媒体に記憶するプロセスでは、コンピュータノードは、ハードディスク内のテキストから500人の学生に関する情報をデータベースシステム内のローカルメモリに読み出してよい。具体的には、コンピュータノードは、各学生に従って、各学生に関する情報を1行ずつ読み出す方式で、500人の学生に関する情報をローカルメモリに連続的に読み出してよい。

0080

各学生に関する情報が、クラス、氏名、学生番号、年齢専攻および家族情報等の属性を含むと仮定される。本発明の本実施形態で提供されるクラスタリング記憶方法によると、500人の学生に関する情報は1つの表を構成してよい。表1に示されるように、表1内の各行(すなわち、各学生に関する情報)はタプルであり、且つ、各列(全ての学生に関する項目の情報)は属性である。

0081

0082

500人の学生に関する情報を入力するとき、ユーザは特定の順序に従って情報を入力しなくてよく、従って、ハードディスク内にテキストで記憶される500人の学生に関する情報は、シーケンシャルに配列されないことは留意されるべきである。500人の学生に関する情報の次の再利用を容易にするために、例えば、500人の学生に関する情報に対するクエリおよびソート等の操作を実行するために、500人の学生に関する情報は、長期間使用を容易にし、且つ、繰り返される操作を回避するために、データベースシステム内の記憶媒体に記憶される必要がある。特に、データがデータベースシステム内の記憶媒体に記憶されるとき、対応する表記憶構造は一般に記憶用に使用されてよい。従来技術で提供される表記憶構造と比較すると、本発明の本実施形態で提供される表記憶構造(本発明の本実施形態におけるコンピュータノードによって作成される表の記憶構造)、すなわち、表1に示される表記憶構造は、データローディング性能およびデータ更新性能がわずかに影響を受けるという前提で、データクエリ性能およびデータ圧縮効率が改善されることを保証することができる。

0083

前述の表1から、この例では、ユーザによって指定された第1のソート列、すなわち、部分クラスタキー(主キー)はクラスおよび学生番号であってよいことがわかる。これは、各学生が2つの属性、すなわち、クラスと学生番号の両方が決定されるときにのみ決定されることができ、すなわち、各学生は、クラスと学生番号の両方が決定されたときにのみ別の学生と区別されることができるためである。

0084

本発明の本実施形態で提供されるクラスタリング記憶方法を使用することによって、記憶されるべき第1のデータは、一部ずつソートされた後、データベースシステム内の記憶媒体に記憶されてよく、且つ、記憶媒体に記憶されたデータの各部分がシーケンシャルに配列されることが保証されることができる。このようにして、記憶されるべきデータは、データローディングを完了するために、一部ずつソートおよび記憶されてよいため、記憶媒体に記憶されたデータが部分的にシーケンシャルであることが保証されることができ、その結果、データローディング性能およびデータ更新性能がわずかに影響を受けるという前提で、データクエリ性能およびデータ圧縮効率が改善されることが保証されることができる。

0085

本発明の本実施形態で提供されるクラスタリング記憶方法によると、記憶されるべき第1のデータはデータベースシステム内のローカルメモリに1行ずつキャッシュされ、第1のソート列が決定され、ここで、第1のソート列は、ローカルメモリ内にキャッシュされているデータをソートするために使用され、ローカルメモリ内にキャッシュされている第2のデータが事前に設定された条件を満たす場合、第2のデータが第1のソート列に従ってソートされ、ここで、第2のデータは、第1のデータ内の、ローカルメモリ内にキャッシュされているデータであり、ソートされた第2のデータがデータベースシステム内の記憶媒体にクラスタリング方式で記憶される。この解決手段を使用することによって、記憶されるべき第1のデータをローカルメモリに1行ずつキャッシュするプロセスでは、ローカルメモリ内にキャッシュされている第2のデータのデータ量がローカルメモリ内の記憶用に許可されているデータ量を超過しているとき、第2のデータは、決定された第1のソート列に従ってソートされ始め、且つ、ソートされた第2のデータはデータベースシステム内の記憶媒体に記憶される。記憶されるべきデータは、データローディングを完了するために、一部ずつソートおよび記憶されてよいため、データベースシステム内の記憶媒体におけるデータが部分的にシーケンシャルであることが保証されることができ、その結果、データローディング性能およびデータ更新性能がわずかに影響を受けるという前提で、データクエリ性能およびデータ圧縮効率が改善されることが保証されることができる。

0086

実施形態2

0087

本発明の実施形態はクラスタリング記憶方法を提供し、ここで、方法はデータベースシステムにおいて適用される。図2に示されるように、方法は以下のステップを含んでよい:

0088

S201.コンピュータノードは、データベースシステム内の記憶媒体に表を作成し、ここで、表は、記憶されるべき第1のデータをロードするために使用される。

0089

ハードディスクにテキストで記憶されるデータ、すなわち記憶されるべき第1のデータが、データベースシステム内の記憶媒体に記憶される必要がある場合、コンピュータノードは最初に記憶媒体内に表を作成してよく、ここで、表は第1のデータをロードするために使用されてよい。

0090

当業者は、本発明の本実施形態で提供されるデータベースシステム内の記憶媒体は、ディスクであってよく、ここで、ディスクはハードディスクおよびフロッピーディスクを含んでよいことを理解することができる。よく使用されるディスクは一般にリムーバブルディスクであり、ここで、リムーバブルディスクは2つのタイプに分類されてよく、1つのタイプはチップ記憶に基づくUSBフラッシュドライブまたはフラッシュディスクであり、もう一方のタイプは、ハードディスクに基づくリムーバブルハードディスクであり、ここで、リムーバブルディスクは、たいていの場合リムーバブルハードディスクであり、且つ、リムーバブルハードディスクは、異なるハードディスクに従って、ノートブックコンピュータのリムーバブルハードディスクとデスクトップコンピュータのリムーバブルハードディスクとに分類される。リムーバブルハードディスクは一般に、USBインタフェースを介してコンピュータに接続され、すなわち、記憶媒体として、リムーバブルハードディスクは、USBインタフェースを介して、リムーバブルハードディスクとコンピュータとの間で送信されるデータを記憶してよい。

0091

S202.コンピュータノードは、第1のデータをデータベースシステム内のローカルメモリに1行ずつキャッシュする。

0092

本発明の本実施形態で提供されるクラスタリング記憶方法では、第1のデータに対する次のアクセスを容易にするために、第1のデータを記憶するプロセスでは、コンピュータノードは、最初に第1のデータをソートして、次いで、ソートされた第1のデータをデータベースシステム内の記憶媒体に記憶する必要がある。コンピュータノードが第1のデータを記憶媒体に記憶するプロセスでは、コンピュータノードは、最初に第1のデータをハードディスクからデータベースシステム内のローカルメモリに読み出す必要がある。具体的には、コンピュータノードは第1のデータをハードディスクからローカルメモリに1行ずつキャッシュしてよい。

0093

S203.コンピュータノードは第1のソート列を決定し、ここで、第1のソート列は、ローカルメモリ内にキャッシュされているデータをソートするために使用される。

0094

コンピュータノードが第1のデータをローカルメモリに1行ずつキャッシュするプロセスでは、コンピュータノードは第1のソート列を決定してよく、ここで、第1のソート列は、ローカルメモリ内にキャッシュされているデータをソートするために使用されてよい。

0095

特に、第1のソート列は、主キーと呼ばれてよく、または部分クラスタキーと呼ばれてよい。

0096

第1のソート列は、ユーザがコンピュータノードに表を作成するように命令するとき、第1のデータの属性によって指定されるソート列に従って、第1のデータをソートするための基準であり、すなわち、コンピュータノードは、第1のソート列に従って、記憶されるべき第1のデータにおける、ローカルメモリにキャッシュされているデータの各部分を別々にソートしてよく、その結果、第1のデータにおけるデータの各部分は別々に且つシーケンシャルに配列され、第1のデータが部分的にシーケンシャルであることを保証することは留意されるべきである。

0097

さらに、表を作成するように命令するとき、ユーザは、文を使用することによって表記憶構造を指定してよく、ここで、第1のソート列が表記憶構造で指定される。例えば、ユーザは、表t記憶構造を指定するために、
Create table t(c1 int,c2 int, partial cluster key(c1,c2+1)
という文を使用してよく、ここで、表t記憶構造は、第1のソート列、すなわち、部分クラスタキーを含む。

0098

表は、データレコードのグループによって形成される。表は行に従って配列される関連データのグループであり、且つ、各表は同じタイプの情報を含む。表は実際、2次元表である。例えば、クラス内の全ての学生のテストの点数が表内に記憶されてよく、ここで、表内の各行は1人の学生に対応し、且つ、各行は対応する学生に関する全ての情報を含み、例えば、学生の、学生番号、氏名および各コースの点数を含んでよい。

0099

表記憶構造は、定義された表のフィールド、タイプ、主キー、外部キー、索引等であり、すなわち、これらの基本属性は表記憶構造を構成する。表記憶構造が決定された後、異なるタイプのデータは、表記憶構造に従って直接挿入されてよい。

0100

データベースはデータを記憶するためのウェアハウスであり、データベースは1つの表または表のグループによって形成され、且つ、データベース内のデータは表単位で編成される。各データベースは、ファイルの形式でディスクに記憶され、すなわち、各データベースは1つの物理ファイルに対応する。異なるデータベースは、異なる方式における物理ファイルに対応する。例えば、dBASE、FoxProおよびParadoxフォーマットにおけるデータベースについては、表は別々のデータベースファイルであり、且つ、Microsoft AccessおよびBtrieveフォーマットにおけるデータベースについては、データベースファイルは複数の表を含んでよい。

0101

さらに、本発明の本実施形態で提供されるクラスタリング記憶方法によると、コンピュータノードは、データベースシステム内のローカルメモリにおける第1のデータに対するソートを完了し、且つ、ローカルメモリのサイズおよびデータ処理能力の制限に依存するため、コンピュータノードは第1のデータを一部ずつのみソートすることができる。コンピュータノードは次いで、データベースシステム内の記憶媒体に、一部ずつソートされたデータを連続的に記憶し、このようにして、記憶媒体に記憶された第1のデータが部分的にシーケンシャルであることが保証されることができる。

0102

任意で、前述の第1のソート列は、物理的な列および表現のうちの少なくとも1つを含んでよい。具体的には、第1のソート列は物理的な列であってよく、表現であってよく、物理的な列および表現であってよく、または、ソート要件を満たす任意の他のフォーマットであってよく、このことは本発明では限定されない。

0103

例示的に、第1のソート列を指定するための前述の文が例として使用される。文では、第1のソート列は“c1,c2+1”であり、ここで、“c1”は物理的な列であり、“c2+1”は表現である。

0104

さらに、表2に示されるように、表内のデータが記憶されるべき第1のデータである場合、第1のソート列は、要素列およびシリアル番号列、または数値列であってよく、ここで、要素列およびシリアル番号列、または数値列は、物理列と呼ばれてよく、または、第1のソート列は数値列の絶対値であってよく、ここで、数値列の絶対値は表現と呼ばれてよい。コンピュータノードが、ユーザの要件に従って、ユーザによって指定される前述の第1のソート列に従って、表2に示される第1のデータをソートしてよいことは理解されることができる。

0105

具体的には、第1のソート列が要素列およびシリアル番号列である場合、コンピュータノードが、昇順で、第1のソート列の値に従って、表2内のデータをソートした後に得られる結果(ソートはアルファベット順で、要素列に対して実行され、且つ、ソートは番号順で、シリアル番号列に対して実行される)は、表3に示される。第1のソート列が数値列である場合、コンピュータノードが、昇順で、第1のソート列の値に従って、表2内のデータをソートした後に得られる結果は、表4に示される。第1のソート列が数値列の絶対値である場合、コンピュータノードが、昇順で、第1のソート列の値に従って、表2内のデータをソートした後に得られる結果は、表5に示される。

0106

0107

0108

0109

0110

前述の表3、表4および表5から、異なる第1のソート列に対して、ソート結果は異なり、且つ、同じ第1のソート列に対して、第1のソート列の表現に従って実行されるソートの結果もまた、第1のソート列に従って直接実行されたソートの結果とは異なることが見てとれる。具体的には、ソートは、実際の使用要件に従って実行されてよく、このことは本発明では限定されない。

0111

任意で、第1のソート列の数は少なくとも1つであってよく、すなわち、第1のデータをソートするための少なくとも1つの基準があってよい。第1のソート列の数が少なくとも2つであるとき、少なくとも2つの第1のソート列は、主要な第1のソート列と少なくとも1つの二次的な第1のソート列とを含んでよく、その結果、コンピュータノードは、主要な第1のソート列に従って、第1のデータにおけるデータの各部分を最初にソートし、次いで、少なくとも1つの二次的な第1のソート列に従って、第1のデータにおけるデータの各部分を別々にソートしてよい。

0112

例示的に、前述の第1のソート列が“c1,c2+1”であることは例として使用され、ここで、“c1”は主要な第1のソート列であり、且つ、“c2+1”は二次的な第1のソート列である。

0113

さらに、表2に示されるように、第1のソート列が要素列およびシリアル番号列である場合、要素列は、主要な第1のソート列として設定されてよく、且つ、シリアル番号列は、二次的な第1のソート列として設定されてよく、または、シリアル番号列は、主要な第1のソート列として設定されてよく、且つ、要素列は、二次的な第1のソート列として設定されてよい。具体的な設定方式は、実際の要件に従って適応して調整されてよく、このことは本発明では限定されない。

0114

S204.コンピュータノードは、ローカルメモリ内にキャッシュされている第2のデータが事前に設定された条件を満たすかどうかを検出し、ここで、第2のデータは、第1のデータ内の、ローカルメモリ内にキャッシュされているデータである。

0115

コンピュータノードが第1のデータをローカルメモリ内にキャッシュするプロセスでは、コンピュータノードは、ローカルメモリ内にキャッシュされている第2のデータが事前に設定された条件を満たすかどうかを検出してよく、ここで、第2のデータは、第1のデータ内の、ローカルメモリ内にキャッシュされているデータであってよい。

0116

事前に設定された条件は、ローカルメモリ内にキャッシュされている第2のデータのデータ量とローカルメモリ内の記憶用に許可されているデータ量との間の関係を表すために使用されてよい。事前に設定された条件は、第2のデータの行数が第1の事前に設定された閾値以上であることであってよく、ローカルメモリの、第2のデータによって占有されるサイズが、第2の事前に設定された閾値以上であることであってよく、または、設計要件を満たす任意の他の事前に設定された条件であってよく、このことは本発明では限定されない。

0117

具体的には、コンピュータノードは、ローカルメモリ内にキャッシュされている第2のデータの行数が第1の事前に設定された閾値以上であるかどうかを検出してよく、または、コンピュータノードは、ローカルメモリの、ローカルメモリ内にキャッシュされている第2のデータによって占有されるサイズが第2の事前に設定された閾値以上であるかどうかを検出してよい。

0118

第1の事前に設定された閾値および第2の事前に設定された閾値の値が、コンピュータノードによって実際に使用されるメモリサイズおよびメモリのデータ処理能力に従って設定されてよく、このことは本発明では限定されないことは留意されるべきである。

0119

S205.コンピュータノードによってローカルメモリ内にキャッシュされている第2のデータが事前に設定された条件を満たす場合、コンピュータノードは第2のデータを第1のソート列に従ってソートする。

0120

コンピュータノードが第1のデータをキャッシュするプロセスでは、データベースシステム内のローカルメモリが制限されたサイズおよび制限されたデータ処理能力を有するため、第1のデータは一度にローカルメモリに全てキャッシュされることはできず、すなわち、コンピュータノードは、第1のデータをローカルメモリに一部ずつ別々にキャッシュしてよく、その結果、コンピュータノードは、ローカルメモリに別々にキャッシュされるデータを一部ずつ連続的に処理してよい。具体的には、コンピュータノードは、リアルタイムで、ローカルメモリにキャッシュされている第2のデータの状態に対する統計値を収集してよい。コンピュータノードが、ローカルメモリにキャッシュされている第2のデータが事前に設定された条件を満たすと検出したとき、コンピュータノードは、第1のソート列に従って、第2のデータをソートし始めてよい。

0121

例えば、第1の事前に設定された閾値が10000行である場合、ローカルメモリ内にキャッシュされている第2のデータの行数が10000行以上であるとき、コンピュータノードは、第1のソート列に従って、第2のデータをソートし始めてよく、且つ、それに応じて、第2の事前に設定された閾値が6ギガバイトである場合、ローカルメモリの、ローカルメモリ内にキャッシュされている第2のデータによって占有されるサイズが6ギガバイト以上であるとき、コンピュータノードは、第1のソート列に従って、第2のデータをソートし始めてよい。

0122

さらに、ローカルメモリの、ローカルメモリ内にキャッシュされている第2のデータによって占有されるサイズはまた、パーセンテージによって表されてもよい。例えば、ローカルメモリの容量が8ギガバイトである場合、第2の事前に設定された閾値は8ギガバイトの90%(パーセンテージ)であってよく、ローカルメモリの、ローカルメモリ内にキャッシュされている第2のデータによって占有されるサイズが8ギガバイトの90%よりも大きいとき、コンピュータノードは、第1のソート列に従って、第2のデータをソートし始めてよい。

0123

さらに、本発明の本実施形態で提供されるクラスタリング記憶方法では、第1のデータをソートするとき、コンピュータノードは、第1のソート列の数値または第1のソート列の数値のハッシュ値に従って、第2のデータをソートしてよい。

0124

任意の長さを有する二進値は、ハッシュアルゴリズムに従って、固定の長さを有するより小さい二進値にマッピングされてよく、且つ、固定の長さを有するより小さい二進値は、二進値のハッシュ値と呼ばれる。ハッシュ値は、一意のデータを有する、非常にコンパクトな数値の表現形式セグメントである。例えば、データのセグメントのハッシュ値が計算される場合、データのセグメント内の任意の文字が計算前に変更される限り、変更前後の計算によって得られる2つのハッシュ値もまた異なる。

0125

それに応じて、第1のソート列の数値のハッシュ値は、ハッシュアルゴリズムに従って、第1のソート列の数値の二進値を固定の長さを有するより小さい二進値にマッピングすることによって得られてよい。

0126

S206.コンピュータノードは、ソートされた第2のデータを記憶媒体にクラスタリング方式で記憶するために、ソートされた第2のデータを表に1行ずつ挿入する。

0127

データベースでは、属性または属性グループのクエリ速度を改善するために、属性または属性グループ内の同じ値を有するタプル(クラスタコードと呼ばれる)が、連続する物理ブロックに中心に記憶されてよい。この記憶方法はクラスタリングと呼ばれる。クラスタリング方式でデータを記憶することは、クラスタコードに従ってクエリを実行することにおける効率を大きく改善することができる。

0128

コンピュータノードが第2のデータをソートした後、コンピュータノードは、第2のデータをロードするプロセスを完了するために、ソートされた第2のデータをデータベースシステム内の記憶媒体にクラスタリング方式で記憶するために、ソートされた第2のデータをコンピュータノードによって作成された表に1行ずつ挿入してよい。

0129

具体的には、コンピュータノードは、ソートされた第2のデータをデータベースシステムにおける記憶媒体内のアイドル状態の物理ブロックにクラスタリング方式で記憶してよく、ここで、アイドル状態の物理ブロックは、第3のデータによって占有される物理ブロックを除く物理ブロックであり、且つ、第3のデータは、第1のデータ内の、第2のデータよりも先に記憶媒体にクラスタリング方式で記憶されているデータである。

0130

特に、コンピュータノードは、ソートされた第2のデータを記憶媒体内の連続するアイドル状態の物理ブロックにクラスタリング方式で記憶してよく、または、ソートされた第2のデータを記憶媒体内の不連続のアイドル状態の物理ブロックにクラスタリング方式で記憶してよく(例えば、第2のデータにおけるデータのある部分は、いくつかの連続するアイドル状態の物理ブロックにクラスタリング方式で記憶され、且つ、第2のデータにおけるデータの別の部分は、いくつかの他の連続するアイドル状態の物理ブロックにクラスタリング方式で記憶され、ここで、いくつかの連続するアイドル状態の物理ブロックといくつかの他の連続するアイドル状態の物理ブロックは、連続する物理ブロックではない)、具体的な記憶形式は本発明では限定されない。すなわち、前述の記憶形式のいずれが本発明で使用されても、記憶媒体に記憶されたデータが部分的にシーケンシャルであることは保証されることができる。

0131

コンピュータノードは、記憶されるべき第1のデータがデータベースシステム内の記憶媒体に全て記憶されるまで、前述のS202からS206を繰り返し実行してよいことは留意されるべきである。

0132

コンピュータノードは、第1のデータにおける、ローカルメモリにキャッシュされているデータの各部分を連続的にソートし、各回ソートされた後に得られたデータの各部分を記憶媒体に記憶してよく、その結果、記憶媒体に記憶された第1のデータは部分的にシーケンシャルであり、すなわち、記憶媒体に記憶された第1のデータにおけるデータの各部分がシーケンシャルに配列されることが保証されることができることは理解されることができる。

0133

例示的に、ユーザが第1のデータ、すなわち、大学におけるダンス部内の500人の学生に関する情報をデータベースシステム内の記憶媒体に記憶して、次のアクセスを容易にする必要がある場合、ユーザは最初に、500人の学生に関する情報をコンピュータノードに入力し、テキストの形式で、コンピュータノードのハードディスク内に情報を記憶する必要がある。コンピュータノードが、500人の学生に関する情報を、ユーザの命令に従って、データベースシステム内の記憶媒体に記憶するプロセスでは、コンピュータノードは、ハードディスク内のテキストから500人の学生に関する情報をデータベースシステム内のローカルメモリに読み出してよい。具体的には、コンピュータノードは、各学生に従って、各学生に関する情報を1行ずつ読み出す方式で、500人の学生に関する情報をローカルメモリに連続的に読み出してよい。

0134

各学生に関する情報が、クラス、氏名、学生番号、年齢、専攻および家族情報等の属性を含むと仮定される。本発明の本実施形態で提供されるクラスタリング記憶方法によると、500人の学生に関する情報は1つの表を構成してよい。表1に示されるように、表1内の各行(すなわち、各学生に関する情報)はタプルであり、且つ、各列(全ての学生に関する項目の情報)は属性である。

0135

500人の学生に関する情報を入力するとき、ユーザは特定の順序に従って情報を入力しなくてよく、従って、ハードディスク内にテキストで記憶される500人の学生に関する情報は、シーケンシャルに配列されないことは留意されるべきである。500人の学生に関する情報の次の再利用を容易にするために、例えば、500人の学生に関する情報に対するクエリおよびソート等の操作を実行するために、500人の学生に関する情報は、長期間使用を容易にし、且つ、繰り返される操作を回避するために、データベースシステム内の記憶媒体に記憶される必要がある。特に、データがデータベースシステム内の記憶媒体に記憶されるとき、対応する表記憶構造は一般に記憶用に使用されてよい。従来技術で提供される表記憶構造と比較すると、本発明の本実施形態で提供される表記憶構造(本発明の本実施形態におけるコンピュータノードによって作成される表の記憶構造)、すなわち、表1に示される表記憶構造は、データローディング性能およびデータ更新性能がわずかに影響を受けるという前提で、データクエリ性能およびデータ圧縮効率が改善されることを保証することができる。

0136

前述の表1から、この例では、ユーザによって指定された第1のソート列、すなわち、部分クラスタキー(主キー)はクラスおよび学生番号であってよいことがわかる。これは、各学生が2つの属性、すなわち、クラスと学生番号の両方が決定されるときにのみ決定されることができ、すなわち、各学生は、クラスと学生番号の両方が決定されたときにのみ別の学生と区別されることができるためである。

0137

さらに、図3に示されるように、コンピュータノードが第1のデータ全てを記憶媒体に記憶した後、ユーザは、ユーザの要件に従って、クエリ、ソートまたは集約等の対応する操作を記憶媒体に記憶された第1のデータに対して実行してよい。具体的には、本発明の本実施形態で提供されるクラスタリング記憶方法は、以下のステップをさらに含んでよい:

0138

S207.コンピュータノードはクエリ列を決定する。

0139

コンピュータノードが第1のデータ全てを記憶媒体に記憶した後、ユーザが第1のデータに対してクエリ操作を実行する必要がある場合、ユーザは対応するクエリ列を指定する必要があり、すなわち、コンピュータノードは、ユーザによって指定されたクエリ列を決定してよく、ここで、クエリ列は、第1のデータに対するクエリ操作を実行するための基準として使用されてよい。

0140

S208.コンピュータノードは、クエリ列を第1のソート列内の1番目のソート列と比較する。

0141

コンピュータノードがクエリ列を決定した後、コンピュータノードは、クエリ列が第1のソート列内の1番目のソート列であるかどうかを決定するために、クエリ列を第1のソート列内の1番目のソート列と比較してよい。

0142

S209.コンピュータノードは、記憶媒体に記憶された第1のデータをローカルメモリに読み出す。

0143

コンピュータノードがクエリ列を決定した後で、且つ、クエリ操作がクエリ列に従って、第1のデータに対して実行される前に、コンピュータノードは、ローカルメモリ内で、データに対するクエリ操作を完了するために、記憶媒体に記憶された第1のデータをローカルメモリに読み出す必要がある。

0144

S207が実行された後、S208およびS209の間の実行順序は、本発明では限定されず、すなわち、本発明では、S208が最初に実行されてよいとともに、次いで、S209が実行され、S209が最初に実行されてよいとともに、次いで、S208が実行され、または、S208およびS209が同時に実行されてよい。

0145

S210.クエリ列が第1のソート列内の1番目のソート列である場合、コンピュータノードは、ローカルメモリ内で、第1のソート列内の1番目のソート列に従って、第1のデータに対してクエリ操作を実行してよい。

0146

クエリ列が第1のソート列内の1番目のソート列である場合、コンピュータノードは、ローカルメモリ内で、第1のソート列内の1番目のソート列に従って、第1のデータに対してクエリ操作を実行してよい。

0147

第1のソート列の数が1つである場合、第1のソート列内の1番目のソート列は第1のソート列であり、且つ、第1のソート列の数が2つ以上である場合、第1のソート列内の1番目のソート列は第1のソート列内の主要な第1のソート列であることは理解されることができる。

0148

具体的には、本発明の本実施形態で提供されるクラスタリング記憶方法では、コンピュータノードは第1のデータが一部ずつソートされた後に得られるデータを、クラスタリング方式で記憶媒体に記憶してよいため、第1のデータは記憶媒体内で部分的且つシーケンシャルに配列されることが保証されることができる。従って、クエリ操作が、第1のソート列内の1番目のソート列に従って、第1のデータに対して実行される必要があるとき、コンピュータノードは、記憶媒体に記憶された第1のデータをローカルメモリに読み出し、且つ、ローカルメモリ内で、二分探索方式で、第1のデータの1つ以上のデータページの各データページに対してクエリ操作を直接実行してよい。

0149

二分探索は、二面性探索とも呼ばれ、且つ、二分探索の利点は、比較回数が小さく、探索速度が速く、平均性能が高いことであり、且つ、二分探索の欠点は、探索されるべき表が順序付けられた表である必要があり、データを挿入することおよびデータを削除することが比較的難しいことである。従って、二分探索方式は、あまり変更しないが頻繁に探索される順序付けられた表に適用可能である。例示的に、表内の要素が昇順で第1のソート列に従って配列されると仮定され、表の中央位置に記録されるキーワードは探索のキーワードと比較され、且つ、表の中央位置に記録されるキーワードが探索のキーワードと等しい場合、探索は成功であり、そうでなければ、中央位置に記録されるキーワードは表を2つの副表、すなわち、前の副表および次の副表に分割するために使用され、且つ、表の中央位置に記録されるキーワードが探索のキーワードよりも大きい場合、前の副表がさらに探索され、そうでなければ、次の副表がさらに探索される。前述のプロセスは、クエリ条件を満たすデータが見つかるまで繰り返され、且つ、この場合、探索は成功であり、または、前述のプロセスは副表が存在しなくなるまで繰り返され、且つ、この場合、探索は成功ではない。

0150

第1のデータは、記憶媒体内で部分的且つシーケンシャルに配列されるため、コンピュータノードによって、記憶媒体からローカルメモリに読み出される第1のデータもまた、部分的且つシーケンシャルに配列されることは留意されるべきである。第1のデータが、第1のソート列内の1番目のソート列に従って問い合わせられる必要がある場合、コンピュータノードは、前述のS207からS210を実行することによって、ローカルメモリにおける第1のデータ内で、クエリ条件を満たすデータを迅速に見つけることができ、それによって、データをブラウズする回数およびデータを比較する回数を低減し、且つ、データクエリ性能を改善する。

0151

さらに、本発明の本実施形態で提供されるクラスタリング記憶方法では、図4に示されるように、第1のデータに対応する索引がまた、データを問い合わせるために使用されてもよい。第1のデータに対応する索引は、第1のデータを記憶媒体に記憶するプロセスで作成されてよく、または、第1のデータに対応する索引は、第1のデータが記憶媒体に記憶された後に作成されてよく、このことは本発明では限定されない。

0152

第1のデータに対応する索引は、記憶媒体内の第1のデータの具体的な記憶位置を示すために使用されてよいことは理解されることができる。例えば、第1のデータに対応する索引は、記憶媒体内の、第1のデータが具体的に記憶される物理ブロック、データページおよびデータ行を示すために使用されてよい。

0153

具体的には、第1のデータが、本発明の本実施形態で提供されるクラスタリング記憶方法を使用することによって、記憶媒体に記憶された後、第1のデータは部分的且つシーケンシャルに記憶されるため、探索される必要があるデータ行は、クエリ列および第1のデータに対応する作成された索引に従って、記憶媒体内で直接見つけられることができる。従って、従来技術における、データが非シーケンシャルに記憶される場合と比較して、データを問い合わせる回数は大きく低減されるとともにデータクエリ性能は改善される。

0154

特に、第1のデータに対応する索引に従ってデータを探索するための方法は、従来技術における索引に従ってデータを探索するための方法と同様であるため、詳細はここでは再び説明されない。

0155

S211.コンピュータノードは第2のソート列を決定する。

0156

コンピュータノードが第1のデータ全てを記憶媒体に記憶した後、ユーザが第1のデータをソートする必要がある場合、ユーザは対応するソート列を指定する必要があり、すなわち、コンピュータノードは、ユーザによって指定された第2のソート列を決定してよく、ここで、第2のソート列は、第1のデータに対するソート操作を実行するための基準として使用されてよい。

0157

S212.コンピュータノードは、第2のソート列を第1のソート列内の1番目のソート列と比較する。

0158

コンピュータノードが第2のソート列を決定した後、コンピュータノードは、第2のソート列が第1のソート列内の1番目のソート列であるかどうかを決定するために、第2のソート列を第1のソート列内の1番目のソート列と比較してよい。

0159

S213.コンピュータノードは、記憶媒体に記憶された第1のデータをローカルメモリに読み出す。

0160

コンピュータノードが第2のソート列を決定した後で、且つ、ソート操作が第2のソート列に従って、第1のデータに対して実行される前に、コンピュータノードは、ローカルメモリ内で、データに対するソート操作を完了するために、記憶媒体に記憶された第1のデータをローカルメモリに読み出す必要がある。

0161

S211が実行された後、S212およびS213の間の実行順序は、本発明では限定されず、すなわち、本発明では、S212が最初に実行されてよいとともに、次いで、S213が実行され、S213が最初に実行されてよいとともに、次いで、S212が実行され、または、S212およびS213が同時に実行されてよい。

0162

S214. 第2のソート列が第1のソート列内の1番目のソート列である場合、コンピュータノードは、ローカルメモリ内で、第1のソート列内の1番目のソート列に従って、第1のデータに対してソート操作を実行する。

0163

第2のソート列が第1のソート列内の1番目のソート列である場合、コンピュータノードは、ローカルメモリ内で、第1のソート列内の1番目のソート列に従って、第1のデータに対してソート操作を実行してよい。

0164

具体的には、本発明の本実施形態で提供されるクラスタリング記憶方法では、コンピュータノードは第1のデータが一部ずつソートされた後に得られるデータを、クラスタリング方式で記憶媒体に記憶してよいため、第1のデータは記憶媒体内で部分的且つシーケンシャルに配列されることが保証されることができる。従って、ソート操作が、第1のソート列内の1番目のソート列に従って、第1のデータに対して実行される必要があるとき、コンピュータノードは、記憶媒体に記憶された第1のデータをローカルメモリに読み出し、且つ、ローカルメモリ内で、第1のデータにおけるデータの各部分を直接ソートしてよく、すなわち、コンピュータノードは第1のデータに対してマージソートを実行してよい。

0165

マージ(Merge)ソートは、2つ(または2つより多い)の順序付けられたシーケンスを結合して新しい順序付けられたシーケンスにするためのソート方法である。マージソートは、マージ操作に基づく有効なソートアルゴリズムである。本発明の本実施形態で提供されるマージソートは、コンピュータノードが、記憶媒体にクラスタリング方式で記憶されたいくつかの順序付けられたシーケンスを結合して統合された順序付けられたシーケンスにすることであってよい。

0166

第1のデータは、記憶媒体内で部分的且つシーケンシャルに配列されるため、コンピュータノードによって、記憶媒体からローカルメモリに読み出される第1のデータもまた、部分的且つシーケンシャルに配列されることは留意されるべきである。第1のデータが第1のソート列内の1番目のソート列に従ってソートされる必要がある場合、コンピュータノードは、前述のS211からS214を実行することによって、ローカルメモリ内で、第1のデータを迅速にソートすることができ、その結果、データをソートすることにおける効率が改善されることができる。

0167

S215.コンピュータノードは集約列を決定する。

0168

コンピュータノードが第1のデータ全てを記憶媒体に記憶した後、ユーザが第1のデータに対して集約操作を実行する必要がある場合、ユーザは対応する集約列を指定する必要があり、すなわち、コンピュータノードは、ユーザによって指定された集約列を決定してよく、ここで、集約列は、第1のデータに対する集約操作を実行するための基準として使用されてよい。

0169

本発明の本実施形態で提供されるクラスタリング記憶方法では、集約操作は、最大値または最小値について第1のデータを探索する操作であることは留意されるべきである。

0170

S216.コンピュータノードは、集約列を第1のソート列内の1番目のソート列と比較する。

0171

コンピュータノードが集約列を決定した後、コンピュータノードは、集約列が第1のソート列内の1番目のソート列であるかどうかを決定するために、集約列を第1のソート列内の1番目のソート列と比較してよい。

0172

S217.コンピュータノードは、記憶媒体に記憶された第1のデータをローカルメモリに読み出す。

0173

コンピュータノードが集約列を決定した後で、且つ、集約操作が集約列に従って、第1のデータに対して実行される前に、コンピュータノードは、ローカルメモリ内で、データに対する集約操作を完了するために、記憶媒体に記憶された第1のデータをローカルメモリに読み出す必要がある。

0174

S215が実行された後、S216およびS217の間の実行順序は、本発明では限定されず、すなわち、本発明では、S216が最初に実行されてよいとともに、次いで、S217が実行され、S217が最初に実行されてよいとともに、次いで、S216が実行され、または、S216およびS217が同時に実行されてよい。

0175

S218.集約列が第1のソート列内の1番目のソート列である場合、コンピュータノードは、ローカルメモリ内で、第1のソート列内の1番目のソート列に従って、第1のデータに対して集約操作を実行してよい。

0176

集約列が第1のソート列内の1番目のソート列である場合、コンピュータノードは、ローカルメモリ内で、第1のソート列内の1番目のソート列に従って、第1のデータに対して集約操作を実行してよい。

0177

さらに、コンピュータノードが第1のソート列内の1番目のソート列に従って、第1のデータに対して集約操作を実行する方法は、具体的には以下を含んでよい:

0178

(1)コンピュータノードは、ローカルメモリ内で、第1のソート列内の1番目のソート列に従って、第1のデータの1つ以上のデータページの各データページにおける最大値または最小値を決定してよい。

0179

(2)コンピュータノードは、第1のデータにおける最大値または最小値を決定するために、各データページにおける最大値または最小値を連続的に比較する。

0180

さらに、本発明の本実施形態で提供されるクラスタリング記憶方法では、コンピュータノードは第1のデータが一部ずつソートされた後に得られるデータを、クラスタリング方式で記憶媒体に記憶してよいため、第1のデータは記憶媒体内で部分的且つシーケンシャルに配列される。従って、第1のソート列内の1番目のソート列に従って、第1のデータに対して集約操作が実行される必要があるとき、コンピュータノードは、記憶媒体に記憶された第1のデータをローカルメモリに読み出してよく、前述の方法を使用することによって、コンピュータノードは、ローカルメモリ内で、第1のソート列内の1番目のソート列に従って、第1のデータの1つ以上のデータページの各データページにおける最大値または最小値を最初に決定し、次いで、コンピュータノードは、第1のデータにおける最大値または最小値を決定するために、各データページにおける最大値または最小値を連続的に比較する。

0181

第1のデータは、記憶媒体内で部分的且つシーケンシャルに配列されるため、コンピュータノードによって、記憶媒体からローカルメモリに読み出される第1のデータもまた、部分的且つシーケンシャルに配列されることは留意されるべきである。第1のソート列内の1番目のソート列に従って、第1のデータに対して集約操作が実行される必要がある場合、コンピュータノードは、前述のS215からS218を実行することによって、ローカルメモリ内で、第1のデータに対する集約操作を迅速に完了することができ、すなわち、コンピュータノードは、第1のデータにおける最大値または最小値を迅速に決定することができ、それによって、データを集約することにおける効率を改善する。

0182

さらに、本発明の本実施形態で提供されるクラスタリング記憶方法では、図4に示されるように、集約操作もまた、第1のデータに対応する索引を使用することによって、データに対して実行されてもよい。第1のデータに対応する索引は、第1のデータを記憶媒体に記憶するプロセスで作成されてよく、または、第1のデータに対応する索引は、第1のデータが記憶媒体に記憶された後に作成されてよく、このことは本発明では限定されない。

0183

第1のデータに対応する索引は、記憶媒体内の第1のデータの具体的な記憶位置を示すために使用されてよいことは理解されることができる。例えば、第1のデータに対応する索引は、記憶媒体内の、第1のデータが具体的に記憶される物理ブロック、データページおよびデータ行を示すために使用されてよい。

0184

具体的には、第1のデータが、本発明の本実施形態で提供されるクラスタリング記憶方法を使用することによって、記憶媒体に記憶された後、第1のデータは部分的且つシーケンシャルに記憶されるため、1つ以上のデータページの各データページにおける最大値または最小値が、集約列および第1のデータに対応する作成された索引に従って、記憶媒体内で直接見つけられることができる。従って、従来技術における、データが非シーケンシャルに記憶される場合と比較して、データに対して集約操作を実行する回数は大きく低減されるとともにデータ集約性能は改善される。

0185

特に、第1のデータに対応する索引に従ってデータに対して集約操作を実行するための方法は、従来技術における方法と同様であるため、詳細はここでは再び説明されない。

0186

S207からS210、S211からS214およびS215からS218の実行順序は本発明では限定されず、すなわち、第1のデータが記憶媒体に全て記憶された後、実行される必要があるステップは実際の操作要件に従って選択されてよいことは理解されることができる。例えば、第1のデータに対するクエリ、ソートおよび集約等の前述の操作に対応する例では、クエリ操作が第1のデータに対して実行される必要がある場合、コンピュータノードはS207からS210を実行してよく、ソート操作が第1のデータに対して実行される必要がある場合、コンピュータノードはS211からS214を実行してよく、集約操作が第1のデータに対して実行される必要がある場合、コンピュータノードはS215からS218を実行してよい。

0187

さらに、前述で挙げられた第1のデータに対して実行される様々な操作は単に例示であり、第1のデータが、本発明の本実施形態で提供されるクラスタリング記憶方法を使用することによって記憶された後、対応する操作は、別の対応する要件に従って、第1のデータに対してさらに実行されてよく、このことは、本発明では限定されない。

0188

例示的に、表6に示されるように、表6は、TPCH(ビジネスインテリジェンスコンピューティング・テスト標準)がデータをテストするために適用されるときの、従来技術で提供されるシーケンシャルな記憶と本発明の本実施形態で提供される部分的にシーケンシャルなクラスタリング記憶との間の実際のテストデータを示す。TPCHは、トランザクション処理性能評議会(Transaction Processing Performance Council, TPC)によって公表され、TPCHは、データベースシステムにおける複雑なクエリの応答時間をテストするために、決定支援システムにおけるデータベース操作シミュレートすることができる。

0189

0190

表6から、従来技術で提供されるシーケンシャルな記憶方法がデータを記憶するために使用されるときにTPCHを適用することによってデータをテストするための時間は、本発明の本実施形態で提供されるクラスタリング記憶方法がデータを記憶するために使用されるときにTPCHを適用することによってデータをテストするための時間よりもはるかに長いことが見てとれる。すなわち、データを記憶するために、本発明の本実施形態で提供されるクラスタリング記憶方法を使用することによって、TPCHを適用することによってデータをテストするための時間は低減されることができ、それによって、TPCHを適用することによってデータをテストするテスト性能を改善する。

0191

さらに、表6に示されるように、TPCHを適用することによってデータを問い合わせる操作においては、従来技術で提供されるシーケンシャルな記憶と比較すると、本発明の本実施形態で提供される部分的にシーケンシャルなクラスタリング記憶では、TPCHを適用することによってデータを問い合わせるクエリ性能は明らかに改善される。とりわけ、3つのクエリQ6、Q12およびQ15のクエリ性能の改善比は300%を超える。

0192

本発明の本実施形態で提供されるクラスタリング記憶方法は、データベースシステム内の単一の表のシナリオにおいて適用されてよく、または、データベースシステム内の複数の表がジョイン(join)として供するシナリオにおいて適用されてよいことは留意されるべきである。具体的には、本発明の本実施形態で提供されるクラスタリング記憶方法は、実際のユーザ要件に従って適用されてよく、このことは、本発明では限定されない。

0193

本発明の本実施形態で提供されるクラスタリング記憶方法を使用することによって、記憶されるべき第1のデータは、一部ずつソートされた後、データベースシステム内の記憶媒体に記憶されてよく、且つ、記憶媒体に記憶されたデータの各部分がシーケンシャルに配列されることが保証されることができる。このようにして、記憶されるべきデータは、データローディングを完了するために、一部ずつソートおよび記憶されてよいため、記憶媒体に記憶されたデータが部分的にシーケンシャルであることが保証されることができ、その結果、データローディング性能およびデータ更新性能がわずかに影響を受けるという前提で、データクエリ性能およびデータ圧縮効率が改善されることが保証されることができる。

0194

本発明の本実施形態で提供されるクラスタリング記憶方法によると、記憶されるべき第1のデータはデータベースシステム内のローカルメモリに1行ずつキャッシュされ、第1のソート列が決定され、ここで、第1のソート列は、ローカルメモリ内にキャッシュされているデータをソートするために使用され、ローカルメモリ内にキャッシュされている第2のデータが事前に設定された条件を満たす場合、第2のデータが第1のソート列に従ってソートされ、ここで、第2のデータは、第1のデータ内の、ローカルメモリ内にキャッシュされているデータであり、ソートされた第2のデータがデータベースシステム内の記憶媒体にクラスタリング方式で記憶される。この解決手段を使用することによって、記憶されるべき第1のデータをローカルメモリに1行ずつキャッシュするプロセスでは、ローカルメモリ内にキャッシュされている第2のデータのデータ量がローカルメモリ内の記憶用に許可されているデータ量を超過しているとき、第2のデータは、決定された第1のソート列に従ってソートされ始め、且つ、ソートされた第2のデータはデータベースシステム内の記憶媒体に記憶される。記憶されるべきデータは、データローディングを完了するために、一部ずつソートおよび記憶されてよいため、データベースシステム内の記憶媒体におけるデータが部分的にシーケンシャルであることが保証されることができ、その結果、データローディング性能およびデータ更新性能がわずかに影響を受けるという前提で、データクエリ性能およびデータ圧縮効率が改善されることが保証されることができる。

0195

実施形態3

0196

図5に示されるように、本発明の実施形態はクラスタリング記憶装置1を提供し、ここで、装置はデータベースシステムにおいて適用される。クラスタリング記憶装置1は、
記憶されるべき第1のデータをデータベースシステム内のローカルメモリに1行ずつキャッシュするように構成されるキャッシングユニット10と、
第1のソート列を決定するように構成される決定ユニット11であって、ここで、第1のソート列は、ローカルメモリ内にキャッシュされているデータをソートするために使用される、決定ユニット11と、
ローカルメモリ内にキャッシングユニット10によってキャッシュされている第2のデータが事前に設定された条件を満たす場合、第2のデータを決定ユニット11によって決定された第1のソート列に従ってソートするように構成される操作ユニット12であって、ここで、第2のデータは、第1のデータ内の、ローカルメモリ内にキャッシュされているデータである、操作ユニット12と、
操作ユニット12によってソートされた第2のデータをデータベースシステム内の記憶媒体にクラスタリング方式で記憶するように構成される記憶ユニット13と
を含んでよい。

0197

任意で、事前に設定された条件は、ローカルメモリ内にキャッシュされている第2のデータのデータ量とローカルメモリ内の記憶用に許可されているデータ量との間の関係を表すために使用される。

0198

任意で、事前に設定された条件は、第2のデータの行数が第1の事前に設定された閾値以上であることであり、且つ、
操作ユニット12は、具体的には、ローカルメモリ内にキャッシングユニット10によってキャッシュされている第2のデータの行数が第1の事前に設定された閾値以上である場合、第1のソート列に従って、第2のデータをソートするように構成される。

0199

任意で、事前に設定された条件は、ローカルメモリの、第2のデータによって占有されるサイズが、第2の事前に設定された閾値以上であることであり、且つ、
操作ユニット12は、具体的には、ローカルメモリの、ローカルメモリ内にキャッシングユニット10によってキャッシュされている第2のデータによって占有されるサイズが、第2の事前に設定された閾値以上である場合、第1のソート列に従って、第2のデータをソートするように構成される。

0200

任意で、操作ユニット12は、具体的には、決定ユニット11によって決定された、第1のソート列の数値または第1のソート列の数値のハッシュ値に従って、第2のデータをソートするように構成される。

0201

任意で、記憶ユニット13は、具体的には、操作ユニット12によってソートされた第2のデータを記憶媒体内のアイドル状態の物理ブロックにクラスタリング方式で記憶するように構成され、ここで、アイドル状態の物理ブロックは、第3のデータによって占有される物理ブロックを除く物理ブロックであり、且つ、第3のデータは、第1のデータ内の、第2のデータよりも先に記憶媒体にクラスタリング方式で記憶されているデータである。

0202

任意で、決定ユニット11によって決定された第1のソート列は、物理的な列および表現のうちの少なくとも1つを含む。

0203

任意で、決定ユニット11は、記憶ユニット13が第1のデータ全てを記憶媒体に記憶した後、クエリ列を決定するようにさらに構成され、且つ、操作ユニット12は、決定ユニット11によって決定されたクエリ列が第1のソート列内の1番目のソート列である場合、第1のソート列内の1番目のソート列に従って、第1のデータに対してクエリ操作を実行するようにさらに構成される。

0204

さらに、キャッシングユニット10は、決定ユニット11がクエリ列を決定した後で、且つ、操作ユニット12が第1のソート列内の1番目のソート列に従って、第1のデータに対してクエリ操作を実行する前に、記憶媒体に記憶された第1のデータをローカルメモリに読み出すようにさらに構成され、且つ、
操作ユニット12は、具体的には、ローカルメモリ内で、二分探索方式で、第1のソート列内の1番目のソート列に従って、キャッシングユニット10によってキャッシュされた第1のデータの1つ以上のデータページの各データページに対してクエリ操作を実行するように構成される。

0205

任意で、決定ユニット11は、記憶ユニット13が第1のデータ全てを記憶媒体に記憶した後、第2のソート列を決定するようにさらに構成され、且つ、操作ユニット12は、決定ユニット11によって決定された第2のソート列が第1のソート列内の1番目のソート列である場合、第1のソート列内の1番目のソート列に従って、第1のデータに対してソート操作を実行するようにさらに構成される。

0206

さらに、キャッシングユニット10は、決定ユニット11が第2のソート列を決定した後で、且つ、操作ユニット12が第1のソート列内の1番目のソート列に従って、第1のデータに対してソート操作を実行する前に、記憶媒体に記憶された第1のデータをローカルメモリに読み出すようにさらに構成され、且つ、
操作ユニット12は、具体的には、ローカルメモリ内で、第1のソート列内の1番目のソート列に従って、キャッシングユニット10によってキャッシュされた第1のデータに対してマージソートを実行するように構成される。

0207

任意で、決定ユニット11は、記憶ユニット13が第1のデータ全てを記憶媒体に記憶した後、集約列を決定するようにさらに構成され、且つ、操作ユニット12は、決定ユニット11によって決定された集約列が第1のソート列内の1番目のソート列である場合、第1のソート列内の1番目のソート列に従って、第1のデータに対して集約操作を実行するようにさらに構成され、ここで、集約操作は、最大値または最小値について第1のデータを探索する操作である。

0208

さらに、キャッシングユニット10は、決定ユニット11が集約列を決定した後で、且つ、操作ユニット12が第1のソート列内の1番目のソート列に従って、第1のデータに対して集約操作を実行する前に、記憶媒体に記憶された第1のデータをローカルメモリに読み出すようにさらに構成され、且つ、
操作ユニット12は、具体的には、ローカルメモリ内で、第1のソート列内の1番目のソート列に従って、キャッシングユニット10によってキャッシュされた第1のデータの1つ以上のデータページの各データページにおける最大値または最小値を決定し、第1のデータにおける最大値または最小値を決定するために、各データページにおける最大値または最小値を連続的に比較するように構成される。

0209

さらに、図6に示されるように、本発明の本実施形態で提供されるクラスタリング記憶装置1は、作成ユニット14をさらに含み、ここで、
作成ユニット14は、キャッシングユニット10が記憶されるべき第1のデータをデータベースシステム内のローカルメモリに1行ずつキャッシュする前に、記憶媒体内に表を作成するように構成され、ここで、表は、第1のデータをロードするために使用され、且つ、
操作ユニット12は、具体的には、ソートされた第2のデータを記憶媒体にクラスタリング方式で記憶するために、ソートされた第2のデータを作成ユニット14によって作成された表に1行ずつ挿入するように構成される。

0210

任意で、決定ユニット11によって決定された第1のソート列の数は少なくとも1つであり、ここで、第1のソート列の数が少なくとも2つであるとき、少なくとも2つの第1のソート列は、主要な第1のソート列と少なくとも1つの二次的な第1のソート列とを含む。

0211

本発明の本実施形態で提供されるクラスタリング記憶装置によると、クラスタリング記憶装置は、記憶されるべき第1のデータをデータベースシステム内のローカルメモリに1行ずつキャッシュし、第1のソート列を決定し、ここで、第1のソート列は、ローカルメモリ内にキャッシュされているデータをソートするために使用され、ローカルメモリ内にキャッシュされている第2のデータが事前に設定された条件を満たす場合、クラスタリング記憶装置は、第2のデータを第1のソート列に従ってソートし、ここで、第2のデータは、第1のデータ内の、ローカルメモリ内にキャッシュされているデータであり、クラスタリング記憶装置は、ソートされた第2のデータをデータベースシステム内の記憶媒体にクラスタリング方式で記憶する。この解決手段を使用することによって、クラスタリング記憶装置が記憶されるべき第1のデータをローカルメモリに1行ずつキャッシュするプロセスでは、ローカルメモリ内にキャッシュされている第2のデータのデータ量がローカルメモリ内の記憶用に許可されているデータ量を超過しているとき、クラスタリング記憶装置は、第2のデータを、決定された第1のソート列に従ってソートし始め、且つ、ソートされた第2のデータをデータベースシステム内の記憶媒体に記憶する。記憶されるべきデータは、データローディングを完了するために、一部ずつソートおよび記憶されてよいため、データベースシステム内の記憶媒体におけるデータが部分的にシーケンシャルであることが保証されることができ、その結果、データローディング性能およびデータ更新性能がわずかに影響を受けるという前提で、データクエリ性能およびデータ圧縮効率が改善されることが保証されることができる。

0212

実施形態4

0213

図7に示されるように、本発明の実施形態はデータベースシステムを提供し、ここで、データベースシステムはハードウェアエンティティおよびソフトウェア環境を含んでよい。ハードウェアエンティティはコンピュータノードであってよく、且つ、ソフトウェア環境はデータベース環境であってよく、ここで、コンピュータノードはプロセッサ20を含んでよく、且つ、データベース環境は底層記憶媒体21とメモリ22とを含んでよく、ここで、
底層記憶媒体21は、記憶されるべき第1のデータを記憶するように構成され、
メモリ22は底層記憶媒体21に結合されるとともに底層記憶媒体21のキャッシュとして役割を果たすために使用され、且つ、底層記憶媒体21における1つ以上のデータブロックはキャッシュ内のターゲットデータブロックにマッピングされることは理解されるべきであり、
プロセッサ20はメモリ22に結合され、且つ、プロセッサ20は、
記憶されるべき第1のデータをメモリ22に1行ずつキャッシュし、第1のソート列を決定し、メモリ22内にキャッシュされている第2のデータが事前に設定された条件を満たす場合、第2のデータを第1のソート列に従ってソートし、ソートされた第2のデータを底層記憶媒体21にクラスタリング方式で記憶するためにメモリ22内の命令を実行し、ここで、第1のソート列は、メモリ22内にキャッシュされているデータをソートするために使用され、第2のデータは、第1のデータ内の、メモリ22内にキャッシュされているデータである。

0214

任意で、事前に設定された条件は、メモリ22内にキャッシュされている第2のデータのデータ量とメモリ22内の記憶用に許可されているデータ量との間の関係を表すために使用される。

0215

任意で、事前に設定された条件は、第2のデータの行数が第1の事前に設定された閾値以上であることであり、且つ、
プロセッサ20は、具体的には、メモリ22内にキャッシュされている第2のデータの行数が第1の事前に設定された閾値以上である場合、第1のソート列に従って、第2のデータをソートするように構成される。

0216

任意で、事前に設定された条件は、メモリ22の、第2のデータによって占有されるサイズが、第2の事前に設定された閾値以上であることであり、且つ、
プロセッサ20は、具体的には、メモリ22の、メモリ22内にキャッシュされている第2のデータによって占有されるサイズが、第2の事前に設定された閾値以上である場合、第1のソート列に従って、第2のデータをソートするように構成される。

0217

任意で、プロセッサ20は、具体的には、第1のソート列の数値または第1のソート列の数値のハッシュ値に従って、第2のデータをソートするように構成される。

0218

任意で、プロセッサ20は、具体的には、ソートされた第2のデータを底層記憶媒体21内のアイドル状態の物理ブロックにクラスタリング方式で記憶するように構成され、ここで、アイドル状態の物理ブロックは、第3のデータによって占有される物理ブロックを除く物理ブロックであり、且つ、第3のデータは、第1のデータ内の、第2のデータよりも先に底層記憶媒体21にクラスタリング方式で記憶されているデータである。

0219

任意で、プロセッサ20によって決定された第1のソート列は、物理的な列および表現のうちの少なくとも1つを含む。

0220

任意で、プロセッサ20は、第1のデータが底層記憶媒体21に全て記憶された後、クエリ列を決定し、クエリ列が第1のソート列内の1番目のソート列であるかどうかを決定し、クエリ列が第1のソート列内の1番目のソート列であると決定された場合、第1のソート列内の1番目のソート列に従って、第1のデータに対してクエリ操作を実行し、クエリ結果を出力するようにさらに構成される。

0221

さらに、プロセッサ20は、クエリ列を決定した後で、且つ、第1のソート列内の1番目のソート列に従って、第1のデータに対してクエリ操作を実行する前に、底層記憶媒体21に記憶された第1のデータをメモリ22に読み出すようにさらに構成され、且つ、
プロセッサ20は、具体的には、メモリ22内で、二分探索方式で、第1のソート列内の1番目のソート列に従って、第1のデータの1つ以上のデータページの各データページに対してクエリ操作を実行し、クエリ結果を出力するように構成される。

0222

任意で、プロセッサ20は、第1のデータが底層記憶媒体21に全て記憶された後、第2のソート列を決定し、第2のソート列が第1のソート列内の1番目のソート列であるかどうかを決定し、第2のソート列が第1のソート列内の1番目のソート列であると決定された場合、第1のソート列内の1番目のソート列に従って、第1のデータに対してソート操作を実行し、ソートされた第1のデータを出力するようにさらに構成される。

0223

さらに、プロセッサ20は、第2のソート列を決定した後で、且つ、第1のソート列内の1番目のソート列に従って、第1のデータに対してソート操作を実行する前に、底層記憶媒体21に記憶された第1のデータをメモリ22に読み出すようにさらに構成され、且つ、
プロセッサ20は、具体的には、メモリ22内で、第1のソート列内の1番目のソート列に従って、第1のデータに対してマージソートを実行し、ソートされた第1のデータを出力するように構成される。

0224

任意で、プロセッサ20は、第1のデータが底層記憶媒体21に全て記憶された後、集約列を決定し、集約列が第1のソート列内の1番目のソート列であるかどうかを決定し、集約列が第1のソート列内の1番目のソート列であると決定された場合、第1のソート列内の1番目のソート列に従って、第1のデータに対して集約操作を実行し、集約操作を実行した結果を出力するようにさらに構成され、ここで、集約操作は、最大値または最小値について第1のデータを探索する操作である。

0225

さらに、プロセッサ20は、集約列を決定した後で、且つ、第1のソート列内の1番目のソート列に従って、第1のデータに対して集約操作を実行する前に、底層記憶媒体21に記憶された第1のデータをメモリ22に読み出すようにさらに構成され、且つ、
プロセッサ20は、具体的には、メモリ22内で、第1のソート列内の1番目のソート列に従って、第1のデータの1つ以上のデータページの各データページにおける最大値または最小値を決定し、第1のデータにおける最大値または最小値を決定するために、各データページにおける最大値または最小値を連続的に比較し、最大値または最小値を出力するように構成される。

0226

さらに、プロセッサ20は、記憶されるべき第1のデータがメモリ22に1行ずつキャッシュされる前に、底層記憶媒体21内に表を作成するようにさらに構成され、ここで、表は第1のデータをロードするために使用され、且つ、
プロセッサ20は、具体的には、ソートされた第2のデータを底層記憶媒体21にクラスタリング方式で記憶するために、ソートされた第2のデータを表に1行ずつ挿入するように構成される。

0227

任意で、プロセッサ20によって決定された第1のソート列の数は少なくとも1つであり、ここで、第1のソート列の数が少なくとも2つであるとき、少なくとも2つの第1のソート列は、主要な第1のソート列と少なくとも1つの二次的な第1のソート列とを含む。

0228

本発明の本実施形態では、コンピュータノードは、クラスタリング方式でデータを記憶することができるコンピュータまたは任意の他のデバイスであってよく、このことは、本発明では限定されない。すなわち、本発明の実施形態で提供されるクラスタリング記憶方法を実施することができる装置およびデバイスの両方が、本発明の保護範囲包含されるべきである。

0229

本発明の本実施形態で提供されるデータベースシステムによると、データベースシステム内のコンピュータノードは、記憶されるべき第1のデータをデータベースシステム内のメモリに1行ずつキャッシュし、第1のソート列を決定し、ここで、第1のソート列は、メモリ内にキャッシュされているデータをソートするために使用され、メモリ内にキャッシュされている第2のデータが事前に設定された条件を満たす場合、コンピュータノードは、第2のデータを第1のソート列に従ってソートし、ここで、第2のデータは、第1のデータ内の、メモリ内にキャッシュされているデータであり、コンピュータノードは、ソートされた第2のデータをデータベースシステム内の底層記憶媒体にクラスタリング方式で記憶する。この解決手段を使用することによって、コンピュータノードが記憶されるべき第1のデータをメモリに1行ずつキャッシュするプロセスでは、メモリ内にキャッシュされている第2のデータのデータ量がメモリ内の記憶用に許可されているデータ量を超過しているとき、コンピュータノードは、第2のデータを、決定された第1のソート列に従ってソートし始め、且つ、ソートされた第2のデータを底層記憶媒体に記憶する。記憶されるべきデータは、データローディングを完了するために、一部ずつソートおよび記憶されてよいため、データベースシステム内の底層記憶媒体におけるデータが部分的にシーケンシャルであることが保証されることができ、その結果、データローディング性能およびデータ更新性能がわずかに影響を受けるという前提で、データクエリ性能およびデータ圧縮効率が改善されることが保証されることができる。

0230

実施形態5

0231

本発明の実施形態で提供されるクラスタリング記憶方法をより明確に理解するために、以下では、本発明の実施形態で提供されるクラスタリング記憶方法をさらに説明するために具体例を使用する。図8に示されるように、記憶されるべき第1のデータは、9000000行の学生データであり、具体的には、データの各行は、図9に示されるクラス、学生番号および氏名等の各学生に関する情報を示すと仮定される。

0232

図9に示されるように、Aはソートされていないデータを示し、且つ、Bは、ソートされるとともに、本発明の実施形態で提供されるクラスタリング記憶方法を使用することによって記憶された後に得られるデータを示すことは留意されるべきである。

0233

データベースシステムでは、本発明の実施形態で提供されるクラスタリング記憶方法を使用することによって、クラスタリング方式で第1のデータを記憶するプロセスは、具体的には、以下のようになる:

0234

(1)コンピュータノードは、記憶されるべき学生データをデータベースシステム内のローカルメモリ内に1行ずつキャッシュする。

0235

(2)コンピュータノードは、第1のソート列がクラスおよび学生番号であることを決定し、ここで、第1のソート列は、ローカルメモリ内にキャッシュされている学生データをソートするために使用され、且つ、ソート列は、実際の要件に従ってユーザによって指定される。

0236

(3)ローカルメモリ内にキャッシュされている学生データが、本発明の本実施形態で提供される事前に設定された条件を満たす場合、コンピュータノードは、学生のクラスおよび学生番号に従って、ローカルメモリ内にキャッシュされている学生データをソートする。

0237

(4)コンピュータノードは、データベースシステム内の記憶媒体に、クラスタリング方式で、ローカルメモリ内のソートされた学生データを記憶する。

0238

(5)コンピュータノードは、記憶されるべき学生データが記憶媒体に一部ずつ全てソートおよび記憶されるまで、(1)から(4)を周期的に実行する。

0239

例示的に、図9に示されるAでは、記憶されるべき学生データの12個の行があり、且つ、学生データの12個の行は非シーケンシャルに記憶される。本発明の実施形態で提供されるクラスタリング記憶方法が学生データを記憶するために使用されるとき、コンピュータノードは、学生データの第1の行から開始して、学生データをデータベースシステム内のローカルメモリ内に1行ずつキャッシュしてよい。図9におけるB1に示されるように、学生データの6個の行のみが各回ローカルメモリ内にキャッシュされることができると仮定され、且つ、コンピュータノードが学生データの6個の行をローカルメモリ内にキャッシュしたとき、コンピュータノードは、学生データの6個の行をソートし、ソートされた学生データの6個の行をデータベースシステム内の記憶媒体にクラスタリング方式で記憶してよい。図9におけるB2に示されるように、コンピュータノードが学生データの6個の行の記憶を完了した後、コンピュータノードは、学生データの他の6個の行をローカルメモリ内に1行ずつキャッシュし、キャッシングが完了した後の学生データの他の6個の行をソートし、ソートされた学生データの他の6個の行を記憶媒体内にクラスタリング方式で記憶し続けてよい。この場合、図9におけるBに示されるように、コンピュータノードは、学生データの全ての記憶されるべき12個の行を記憶媒体にクラスタリング方式で記憶し、且つ、学生データの12個の行は、記憶媒体に部分的且つシーケンシャルに記憶される。

0240

さらに、学生データをキャッシュするとき、コンピュータノードは、ローカルメモリのサイズに従って学生データをキャッシュしてよい。具体的には、コンピュータノードによって一度にキャッシュされる学生データのいくつかの行のサイズが比較的大きい場合、コンピュータノードによってこの回にキャッシュされる学生データの行数は比較的小さく、それとは逆に、コンピュータノードによって一度にキャッシュされる学生データのいくつかの行のサイズが比較的小さい場合、コンピュータノードによってこの回にキャッシュされる学生データの行数は比較的大きい。具体的には、コンピュータノードによってキャッシュされる学生データのサイズは、実際の状態に従って決定されてよく、このことは、本発明では限定されない。

0241

本発明の実施形態で提供されるクラスタリング記憶方法では、コンピュータノードは、データベースシステム内のローカルメモリの処理能力に従って、記憶されるべきデータを1行ずつキャッシュしてよく、且つ、ローカルメモリ内にキャッシュされたデータの一部がローカルメモリの処理能力を超えるとき、コンピュータノードは、ユーザによって指定された決定されたソート列に従って、データのその部分をソートし始めて、ソートされたデータの部分をデータベースシステム内の記憶媒体に記憶してよい。コンピュータノードは、記憶されるべきデータを、データローディングを完了するために、一部ずつソートして、ソートされたデータを記憶してよいため、記憶媒体におけるデータが部分的にシーケンシャルであることが保証されることができ、その結果、データローディング性能およびデータ更新性能がわずかに影響を受けるという前提で、データクエリ性能およびデータ圧縮効率が改善されることが保証されることができる。

0242

便利且つ簡潔な説明のために、前述の機能モジュールの分割は説明のための例として使用されることは当業者によって明確に理解されることができる。実際の適用では、前述の機能は、異なる機能モジュールに割り当てられ、且つ、要件に従って実施されてよく、すなわち、装置の内部構造は異なる機能モジュールに分割されて、上記で説明された機能の全てまたはいくつかを実施する。前述のシステム、装置およびユニットの詳細な動作プロセスのために、前述の方法の実施形態における対応するプロセスに対して参照が行われてよく、且つ、詳細はここでは再び説明されない。

0243

本願で提供されるいくつかの実施形態では、開示されたシステム、装置および方法が他の方式で実施されてよいことは理解されるべきである、例えば、説明された装置の実施形態は、単に例示である。例えば、モジュールまたはユニット分割は単に、論理的な機能の分割であり、且つ、実際の実施では他の分割であってよい。例えば、複数のユニットまたはコンポーネントは、別のシステムに結合または統合されてよく、または、いくつかの特徴は無視されるかまたは実行されなくてよい。加えて、表示または議論された相互結合または直接結合または通信接続は、いくつかのインタフェースを介して実施されてよい。装置またはユニット間の間接結合または通信接続は、電子的、機械的または別の形態で実施されてよい。

0244

分離した部分として説明されたユニットは物理的に分離していてもいなくてもよく、且つ、ユニットとして表示された部分は、物理ユニットであってもなくてもよく、1つの位置に配置されてよく、または、複数のネットワークユニット上に分配されてよい。ユニットのいくつかまたはすべては、実施形態の解決手段の目的を達成するために、実際のニーズに従って選択されてよい。

0245

加えて、本発明の実施形態における機能ユニットは、1つの処理ユニットに統合されてよく、または、ユニットの各々は、物理的に孤立して存在してよく、または、2つ以上のユニットは1つのユニットに統合される。統合されたユニットは、ハードウェアの形態で実施されてよく、または、ソフトウェア機能ユニットの形態で実施されてよい。

0246

統合されたユニットが、ソフトウェア機能ユニットの形態で実施されて、独立した製品として販売または使用されるとき、統合されたユニットは、コンピュータ可読記憶媒体に記憶されてよい。このような理解に基づくと、本発明の技術的解決手段は本質的に、または従来技術に貢献する部分は、または技術的解決手段の全てまたはいくつかは、ソフトウェア製品の形態で実施されてよい。ソフトウェア製品は記憶媒体に記憶されるとともに、本発明の実施形態で説明される方法のステップの全てまたはいくつかを実行するように、コンピュータデバイスパーソナルコンピュータサーバまたはネットワークデバイスであってよい)またはプロセッサ(processor)に命令するためのいくつかの命令を含む。前述の記憶媒体は、USBフラッシュドライブ、リムーバブルハードディスク、読出し専用メモリ(ROM, Read-Only Memory)、ランダムアクセスメモリ(RAM, Random Access Memory)、磁気ディスクまたは光ディスク等のプログラムコードを記憶することができる任意の媒体を含む。

0247

前述の説明は、単に、本発明の具体的な実施方式であるが、本発明の保護範囲を限定するように意図されない。本発明で開示される技術的範囲内で当業者によって容易に理解される任意の変更または置換は、本発明の保護範囲に包含されるべきである。従って、本発明の保護範囲は、請求項の保護範囲に従うべきである。

0248

1クラスタリング記憶装置
10キャッシングユニット
11決定ユニット
12操作ユニット
13記憶ユニット
14作成ユニット
20プロセッサ
21底層記憶媒体
22 メモリ

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

  • グーグルエルエルシーの「 メッセージ交換スレッドの拡張」が 公開されました。( 2019/08/29)

    【課題・解決手段】メッセージ交換スレッドを拡張するための方法、装置、システム、およびコンピュータ可読媒体が提供される。様々な実装形態では、2つ以上のメッセージ交換クライアントを操作している2人以上の参... 詳細

  • 日本電気株式会社の「 情報処理装置」が 公開されました。( 2019/08/22)

    【課題】制御ノードと計算ノードとを有する情報処理装置において、計算ノードで動作する複数のプロセス間でメモリ共有の可否を制御する方法の実現が望まれていること。【解決手段】情報処理装置は、第1のメモリを有... 詳細

  • オムロン株式会社の「 デバイス選択装置、データセット選択装置、デバイス選択方法及びプログラム」が 公開されました。( 2019/08/22)

    【課題】所望の機能を有する仮想センサを実現するために、処理モジュールへ入力データを出力するデバイスを適切に選択可能なデバイス選択装置、デバイス選択方法及びプログラムを提供する。【解決手段】処理モジュー... 詳細

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ