JP7440007B2 - データベースをクエリするためのシステム、方法および装置 - Google Patents

データベースをクエリするためのシステム、方法および装置 Download PDF

Info

Publication number
JP7440007B2
JP7440007B2 JP2020533622A JP2020533622A JP7440007B2 JP 7440007 B2 JP7440007 B2 JP 7440007B2 JP 2020533622 A JP2020533622 A JP 2020533622A JP 2020533622 A JP2020533622 A JP 2020533622A JP 7440007 B2 JP7440007 B2 JP 7440007B2
Authority
JP
Japan
Prior art keywords
query
database
value
slave
processing unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020533622A
Other languages
English (en)
Other versions
JP2021508867A (ja
Inventor
ツァン、グァンジョウ
リン、シャオビン
ファン、シャオジアン
ドウ、シャンミン
ゼン、ウェンジン
チョウ、ジェンジョン
ション、リァンチュン
ツァン、ウェンジエ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of JP2021508867A publication Critical patent/JP2021508867A/ja
Application granted granted Critical
Publication of JP7440007B2 publication Critical patent/JP7440007B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2069Management of state, configuration or failover
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication

Description

[関連出願の相互参照]
本願は、2018年12月25日に出願された、「データベースシステムならびにデータベースをクエリするための方法およびデバイス」と題する国際出願番号PCT/CN18/123437の国内段階移行であり、2017年12月29日に出願された、「データベースシステムならびにデータベースをクエリするための方法および装置」と題する中国特許出願第201711482536.1号の優先権を主張する。これらの出願の両方が、参照により、その全体が本明細書に組み込まれる。
[背景技術]
開示される実施形態示は、データベースに関し、具体的には、データベースシステムに関する。開示される実施形態は、データベースをクエリするための方法およびデータベースをクエリするための装置にも関する。開示される実施形態はさらに、クエリタスクを割り当てるための方法およびクエリタスクを割り当てるための装置に関する。開示される実施形態はさらに、データベースクエリを実行するための方法およびデータベースクエリを実行するための装置に関する。開示される実施形態はさらに、データベースクエリを実行するための方法およびデータベースクエリを実行するための装置に関する。
[関連する従来技術の説明]
非分散データベースは通常、1つのマスタデータベースに加えて1または複数のスレーブデータベースを有するマスタ‐スレーブアーキテクチャを用いる。
このアーキテクチャにおいて、マスタデータベースは、外部で書き込み可能である。マスタデータベース内のデータが更新された場合、データは、トランザクションログを通じてスレーブデータベースへ同期される。概して、1つのマスタデータベースが1または複数のスレーブデータベースに対応し、各スレーブデータベースは、マスタデータベースのものに合致するデータの完全なセットを格納する。
マスタデータベースが機能不全になった場合、各スレーブデータベースは、スタンバイデータベースとして機能してマスタデータベースを置換することにより、可用性を改善できる。各スレーブデータベースは、クエリ要求を実行できるので、マスタデータベースのクエリロードを共有できる。
現在のアーキテクチャにおいて、構造化照会言語(SQL)クエリオペレーションは、1つのデータベース内でのみ実行できる。すなわち、SQLクエリは、マスタデータベース内のみで、または1つのスレーブデータベース内のみで実行できる。結果として、1つのスレーブデータベースは、高負荷かつ低速応答での大きく複雑なSQLクエリオペレーションの実行でビジーになり得るが、一方で、他のスレーブデータベースはアイドルになる。特に、スレーブデータベースは通常、デイリークエリデータベースとして機能することに加え、デイリーレポートの生成および特定の時間(例えば、早朝)におけるデータのチェックなどの複雑なオペレーションを実行する。この場合、大きく複雑なSQLクエリオペレーションを実行すると、システムの過負荷に起因して、クエリサービスの提供に失敗することさえあり得る。
上記のように仮定すると、マスタ‐スレーブアーキテクチャを有する既存の非分散データベースは、他のスタンバイデータベースリソースを複雑なクエリには利用できないので、結果として、クエリ応答時間が低速になり、全体的に非効率になる。
本願は、マスタ‐スレーブアーキテクチャを有する既存のデータベースのこれらの課題を解決するためのデータベースシステムを提供する。開示される実施形態は、データベースをクエリするための方法、クエリオペレーションを割り当てるための方法、データベースクエリを実行するための方法およびデータベースクエリを実行するための方法、ならびにこれらの方法に対応する装置をさらに提供する。
一実施形態において、本開示は、データベースシステムを提供する。データベースシステムは、マスタデータベースと、少なくとも1つのスレーブデータベースと、クエリ処理ユニットとを備える。マスタデータベースは、スレーブデータベースとのデータ接続を有し、スレーブデータベースは、クエリ処理ユニットとのデータ接続を有する。クエリ処理ユニットは、クエリ要求を、重複しないクエリ範囲を有するクエリオペレーション命令に分割し、クエリオペレーションを実行すべく、分割したクエリオペレーション命令を同じまたは異なるスレーブデータベースへ送信し、クエリ結果を戻す。
一実施形態において、本開示は、
データベースに対するクエリ要求を取得する段階と、
クエリ要求を、重複しないクエリ範囲を有する、スレーブデータベースに対するクエリオペレーション命令に分割する段階と、
スレーブデータベースに対するクエリオペレーション命令を実行する段階と、
クエリ要求の結果をクエリ要求の要求元に提供する段階と
を備える、データベースをクエリするための方法をさらに提供する。
一実施形態において、本開示は、
データベースに対するクエリ要求を取得する段階と、
クエリ要求を、重複しないクエリ範囲を有する、スレーブデータベースに対するクエリオペレーションに分割する段階と
を備える、クエリオペレーションを割り当てるための方法をさらに提供する。
一実施形態において、本開示は、
クエリタスクを取得する段階と、
クエリタスクにより指定されるクエリオペレーションを実行する段階と、
クエリオペレーションの結果を、クエリタスクにより指定される受信者に提供する段階と
を備える、データベースクエリを実行するための方法をさらに提供する。
一実施形態において、本開示は、
クエリタスクを取得する段階と、
クエリタスクにより指定される他のクエリオペレーションのクエリ結果を取得する段階と、
クエリ結果を統合する段階と、
統合の結果を、クエリタスクにより指定される受信者に提供する段階と
を備える、データベースクエリを実行するための方法さらに提供する。
一実施形態において、本開示は、
データベースをクエリするためのクエリ要求を取得または受信するように構成された取得ユニットと、
クエリ要求を、重複しないクエリ範囲を有する、スレーブデータベースに対するクエリオペレーション命令に分割するように構成された分割ユニットと、
スレーブデータベースに対するクエリオペレーション命令を実行するように構成された実行ユニットと、
クエリ要求のクエリ結果を要求の要求元に提供するように構成された提供ユニットと
を備える、データベースをクエリするための装置をさらに提供する。
一実施形態において、本開示は、
データベースに対するクエリ要求を取得または受信するように構成された取得ユニットと、
クエリ要求を、重複しないクエリ範囲を有する、スレーブデータベースに対するクエリオペレーションに分割するように構成された分割ユニットと
を備える、クエリオペレーションを割り当てるための装置をさらに提供する。
一実施形態において、本開示は、
クエリタスクを取得または受信するように構成された取得ユニットと、
クエリタスクにより指定されるクエリオペレーション命令を実行するように構成された実行ユニットと、
クエリオペレーションの結果を、クエリタスクにより指定される受信者に提供するように構成された提供ユニットと
を備える、データベースクエリを実行するための装置をさらに提供する。
一実施形態において、本開示は、
クエリタスクを取得または受信するように構成された取得ユニットと、
クエリタスクにより指定される他のクエリオペレーションのクエリ結果を取得するように構成された第2の取得ユニットと、
クエリ結果を統合するように構成された統合ユニットと、
統合の結果を、クエリタスクにより指定される受信者に提供するように構成された提供ユニットと
を備える、データベースクエリを実行するための装置をさらに提供する。
既存のシステムと比較すると、開示されるデータベースシステムの一態様は、以下の利点を提供する。クエリ処理ユニットは、クエリ要求を、重複しないクエリ範囲を有するクエリオペレーション命令に分割し、クエリオペレーションを実行すべく、分割したクエリオペレーション命令を同じまたは異なるスレーブデータベースへ送信する。これにより、スレーブデータベースリソースを効果的に利用でき、特定の、または単一のスレーブデータベースに対するクエリロードが高まるのを回避でき、クエリ効率の改善の効果を実現できる。
既存のシステムと比較すると、本願において提供されるデータベースをクエリするための方法の一態様は、以下の利点を有する。クエリ要求が、重複しないクエリ範囲を有する、スレーブデータベースに対するクエリオペレーションに分割されることにより、クエリがスレーブデータベースへオフロードされ、これにより、スレーブデータベースリソースを効果的に利用し、クエリ効率を改善する機能が実現される。
既存のシステムと比較すると、本願において提供されるクエリオペレーションを割り当てるための方法の一態様は、以下の利点を有する。クエリ要求が、重複しないクエリ範囲を有する、スレーブデータベースに対するクエリオペレーションに分割されることにより、クエリがスレーブデータベースへオフロードされ、これにより、スレーブデータベースリソースを効果的に利用し、クエリ効率を改善する機能が実現される。
既存のシステムと比較すると、本願において提供されるデータベースクエリを実行するための方法の一態様は、以下の利点を有する。クエリタスクにより指定されるクエリオペレーションの結果を、指定される受信者へ送信することにより、フレキシブルなクエリを実行し、リソースを完全に利用してクエリロードを共有する機能を実現できる。
既存のシステムと比較すると、本願において提供されるデータベースクエリを実行するための方法の一態様は、以下の利点を有する。クエリオペレーションの取得した結果を統合でき、統合の結果を、クエリタスクにより指定される受信者に提供できる。リソースを完全に利用してクエリロードを共有する機能が実現される。
本開示のいくつかの実施形態によるデータベースシステムのブロック図である。
本開示のいくつかの実施形態によるデータベースをクエリするための方法を示すフロー図である。
本開示のいくつかの実施形態によるクエリオペレーションを割り当てるための方法を示すフロー図である。
本開示のいくつかの実施形態によるデータベースクエリを実行するための方法を示すフロー図である。
本開示のいくつかの実施形態によるデータベースクエリを実行するための方法を示すフロー図である。
本開示のいくつかの実施形態によるデータベースをクエリするための装置のブロック図である。
本開示のいくつかの実施形態によるクエリオペレーションを割り当てるための装置のブロック図である。
本開示のいくつかの実施形態によるデータベースクエリを実行するための装置のブロック図である。
本開示のいくつかの実施形態によるデータベースクエリを実行するための装置のブロック図である。
開示される実施形態の十分な理解を容易にすべく、以下の説明では、多くの具体的な詳細を記載する。しかしながら、開示される実施形態は、本明細書において説明するもの以外の多くの方式で実装でき、当業者であれば、本開示の本質から逸脱することなく、同様の導出を行うことができる。従って、本開示は、以下に開示される特定の実施形態によって限定されない。
本開示の第1の実施形態は、図1にブロック図が示されるデータベースシステムを提供する。
例示される実施形態において、当該システムは、マスタデータベース(U101)、スレーブデータベース(U102)、スレーブデータベース(U103)、スレーブデータベース(U104)およびクエリ処理ユニット(U105)を含む。マスタデータベース(U101)は、スレーブデータベース(U102、U103、U104)の各々とのデータ接続を有し、スレーブデータベース(U102、U103、U104)の各々は、クエリ処理ユニット(U105)とのデータ接続を有する。
例示されるように、データ接続は、ハードウェア接続、ソフトウェア接続、またはハードウェアおよびソフトウェア接続の組み合わせを含み得る。一実施形態において、ハードウェア接続は、イーサネット(登録商標)接続などの有線ネットワーク接続であってよい。代替的に、または上記と関連して、ハードウェア接続は、Bluetooth(登録商標)または無線ローカルエリアネットワーク(WLAN)などの無線ネットワーク接続であってよい。いくつかの実施形態において、ソフトウェア接続は、様々なソフトウェアプロトコルまたはプログラムプロセスの間のインタフェース接続であってよい。例示される実施形態では、データ接続を通じて、データおよび情報をやり取りできる。
マスタデータベース(U101)は、データベースについての更新オペレーション(例えば、記録の追加、記録の修正、および記録の削除)を外部で受信および実行する。当該オペレーションに応答して、データベース情報が更新される。
スレーブデータベース(U102、U103およびU104)(それぞれ、かつ、代替的に、0、1および2という番号が付される)は、データベースデータのセットがマスタデータベースのものと合致することを確実にすべく、マスタデータベースと個別に同期されたままである。故に、例として、マスタデータベースが機能不全になった場合、スレーブデータベースは、マスタデータベースを置換して、元のマスタデータベースにより外部で提供されていたサービスを提供できる。
スレーブデータベース(U102、U103、U104)がマスタデータベースと同期されたままであることが可能である多くのやり方が存在し得る。一実施形態において、マスタデータベースが更新された場合、マスタデータベースは、スレーブデータベースへ更新情報を伝送する。次に、スレーブデータベースは、マスタデータベースの更新情報に従って、自らのデータベースデータを更新する。別の実施形態では、スレーブデータベースは、マスタデータベースに対して更新情報を、または、マスタデータベースの更新情報を保存するユニットを、(自らの条件に基づいて)定期的にチェックし、ひとたび更新が生じると、自らのデータベースデータを更新する。
スレーブデータベース(U102、U103、U104)はさらに、クエリ処理ユニット(U105)からのクエリオペレーションを受信し、当該クエリオペレーションに応答する。スレーブデータベースは、データベースデータが、マスタデータベースとの同期を通じてマスタデータベースのものと合致し、故にデータベースクエリ機能を提供するために用いられ得る、ということを確実にする。
例示される実施形態において、クエリ処理ユニット(U105)は、対応するスレーブデータベースへクエリ要求を送信できるか、または、クエリ要求を、重複しないクエリ範囲を有するクエリオペレーション命令に分割できる。次に、クエリ処理ユニット(U105)は、クエリオペレーション命令を実行すべく、分割したクエリオペレーション命令を同じ(または異なる)スレーブデータベースへ送信し、クエリ結果を戻すことができる。
具体的には、クエリ処理ユニット(U105)は、データベースに対するクエリ要求を受信し、対応するクエリオペレーション命令を当該クエリ要求に従って生成し、次に、特定の、または指定されたスレーブデータベースに対するクエリオペレーションを実行すべく、当該スレーブデータベースへクエリオペレーション命令を送信できる。例えば、当該クエリオペレーション命令は、単純なデータクエリを含んでよく、特定のスレーブデータベースのみが、クエリされる必要がある。代替的に、当該クエリオペレーション命令は、クエリオペレーションを提供するスレーブデータベースを指定し得る。代替的に、クエリ処理ユニット(U105)は、クエリ要求を、重複しないクエリ範囲を有するクエリオペレーション命令に変換し、当該クエリオペレーション命令を同じまたは異なるスレーブデータベースへ分散させて異なるデータベースに対して異なるクエリオペレーションを実行することで、複数のスレーブデータベースを適切に利用し、効率の改善を支援し、単一のスレーブデータベースにより実行されるクエリのデータ処理負荷を減らし得る。
クエリ処理ユニットが、クエリ要求を分割し、次に、それを異なるスレーブデータベースへ分散させてクエリオペレーションを実行し得る例が、以下に提供される。クエリ処理ユニットは、データベースに対するクエリ要求を受信した後に、当該外部クエリ要求を、重複しないクエリ範囲を有するクエリオペレーション命令に分割する。次に、クエリ処理ユニットは、スレーブデータベース(U102、U103、U104)に対してクエリオペレーションを実行する。
概して、重複しないクエリ範囲を有するクエリオペレーション命令は、重複しないスレーブデータベースに対して実行されるクエリオペレーション命令を指す。すなわち、異なるスレーブデータベースが、異なる記録についてクエリされる。
外部クエリ要求を、重複しないクエリ範囲を有するクエリオペレーション命令に分割するための様々な方法が存在し得る。様々なそのような方法を以下で説明する。
方法1。第1の方法では、クエリ要求は、外部クエリ要求のクエリオブジェクトに対応する分散列値に従って、重複しないクエリ範囲を有する、スレーブデータベースに対するクエリオペレーション命令に分割される。クエリオブジェクトに対応する分散列値は、クエリされたオブジェクトの各記録が、スレーブデータベースを指定するために用いられ得る1つの値に対応することを指す。当該値は、分散列値と称される。分散列値に対応するスレーブデータベースの識別子が、分散列値を処理することにより取得され得る。
例えば、クエリされたオブジェクトは、人口データテーブルを含み得る。当該テーブルの各記録は、都市および人口のサイズなどの情報を含み得る。故に、分散列値は、当該テーブルのデータの列である。データの各々は、人口データテーブルの記録の行に対応する。
クエリ処理ユニット(U105)は、人口データテーブルについての外部クエリ要求を取得した後に、人口データテーブルに対応する分散列値を取得する。クエリ処理ユニット(U105)は、当該クエリ要求を、人口データテーブルの指定される分散列値エントリについてのクエリに変換する。いくつかの実施形態では、ハッシュ演算が、各分散列値に対して実行され得る。次に、スレーブデータベースの数(本実施形態では3)に従って、モジュロ演算が実行される。モジュロ演算の後に生成される剰余に従ってクエリオペレーションを対応するスレーブデータベースに対して実行することが決定される。
例えば、分散列値A0、B0、C0、D0等の後に、A1、B1、C1、D1等、A2、B2、C2、D2等が、前述の処理を受け、剰余0を有する分散列値が、A0、B0、C0、D0等を含み、剰余1を有する分散列値が、A1、B1、C1、D1等を含み、剰余2を有する分散列値が、A2、B2、C2、D2等を含む。
次に、0という番号が付されたスレーブデータベース(U102)に対して実行されるクエリオペレーションは、剰余0を有するA0、B0、C0およびD0などの分散列値に対応する様々な記録として機能する。
1という番号が付されたスレーブデータベース(U103)に対して実行されるクエリオペレーションは、剰余1を有するA1、B1、c1およびD1などの分散列値に対応する様々な記録として機能する。
2という番号が付されたスレーブデータベース(U104)に対して実行されるクエリオペレーションは、剰余2を有するA2、B2、C2およびD2などの分散列値に対応する様々な記録として機能する。
クエリオブジェクトに対応する分散列値は、以下のタイプを含む。
[I.クエリオブジェクトの予め保存された分散列値。]
データベースの様々なクエリオブジェクトに対応する分散列値テーブルが、予め生成され得る。例えば、データベースの所有者が、データベースのクエリオブジェクトの記録の各行の分散列値を予め生成し得る。クエリオブジェクトの分散列値テーブルが生成された後、分散列値テーブルは、データベースが更新された場合、格納され、同期的に更新される。クエリ処理ユニット(U105)は、外部クエリ要求を受信した場合、このクエリ要求に対応するクエリオブジェクトの分散列値を、データベースのクエリオブジェクトに対応する保存された分散列値テーブルから取得する。
クエリオブジェクトの保存された分散列値テーブルから分散列値を取得することにより、クエリの段階を簡略化し、クエリ効率を改善できる。さらに、分散列値がデータベースの所有者により予め生成されるので、その対応する記録についてのクエリは最大限、様々なスレーブデータベースへオフロードされ得る。
[II.クエリオブジェクトの任意の列の列値。]
外部クエリ要求が受信された場合、当該クエリ要求に対応するクエリオブジェクトの任意の列の値も、クエリオブジェクトの分散列値として用いられ得る。クエリ要求により指定される列の値は、分散列値として用いられ得る。
例えば、様々な都市の人口データのクエリでは、人口データテーブルの都市の列における都市名の値の全てが最初にクエリされてよく、都市名の値は、分散列値として用いられ得る。
クエリ要求に対応するクエリオブジェクトの列の値が分散列値として用いられることにより、クエリ要求の情報が完全に利用され得る。このシナリオでは、分散列値テーブルを予め生成および維持する必要がなく、データベースのメンテナンスワークロードの低減が実現され得る。
[III.クエリオブジェクトの最初の列の値。]
クエリオブジェクトの列を指定しないクエリ要求では、クエリされるクエリオブジェクトの最初の列の値が、分散列値として用いられ得る。このシナリオでは、クエリオブジェクトの最初の列の値が分散列値として用いられることにより、クエリ要求がクエリオブジェクトの列を指定しない場合、クエリオブジェクトが確実に有する列の値が、分散列値として用いられ得る。これにより、データベースのメンテナンス作業が簡略化される。
[IV.クエリ要求により指定される列の値。]
外部クエリ要求が受信された場合、当該クエリ要求に含まれる列の値はさらに、クエリオブジェクトの分散列値として用いられ得る。
例えば、様々な都市の人口データのクエリでは、クエリ要求が「都市」を指定する場合、人口データテーブルの都市の列における都市名の値の全てが最初にクエリされてよく、都市名の値は、分散列値として用いられ得る。
クエリ要求により指定される列の値が分散列値として用いられることにより、クエリ要求の情報が完全に利用され得る。分散列値テーブルを予め生成および維持する必要性が存在せず、データベースのメンテナンスワークロードの低減という効果が実現され得る。
データベースの複数のテーブルのクエリでは、関連する条件を有する列の値が、分散列値として選択され得る。例えば、クエリ要求に対応するクエリオブジェクトがテーブルt1およびt2であり、テーブルt1の列c1がテーブルt2の列c2に関連付けられる場合には、テーブルt1の列c1と、テーブルt2の列c2とはそれぞれ、t1およびt2の分散列として選択され得る。分散列値を取得するオペレーションは、select * from t1, t2であり、t1.c1=t2.c2である。
分散列値に従って、クエリ要求を、重複しないクエリ範囲を有する、スレーブデータベースに対するクエリタスクに分割することは、単一のクエリオブジェクトについてのクエリにのみ適用可能なのではなく、複数のクエリオブジェクトについてのクエリにも適用可能であり、普遍的な適用可能性を有する。
方法2:第2の方法では、クエリ要求は、クエリ要求に対応するクエリオブジェクトの記録の固有キーに従って、重複しないクエリ範囲を有するスレーブデータベースに対するクエリオペレーション命令に分割される。
固有キーは、クエリオブジェクトの各記録に対応するキーの値を指し、各記録のキー値は異なる。キー値の値ドメインが、クエリに関与するスレーブデータベースのものと同じ番号を有する複数の値ドメインに予め分割されてよい。各スレーブデータベース(固有キーに従ってインデックスが付される)が、対応する値ドメインのデータにアクセスすることが、指定される。
例えば、本実施形態における3つのスレーブデータベースについてはc1が固有キーであり、[0, 60]、[60, 100]および[100, 150]という3つの値ドメインが分割され、各スレーブデータベースは、対応する値ドメインの記録データに個別にアクセスする。
この方法は、単一のクエリオブジェクトについてのクエリに適している。
方法3:第3の方法では、クエリ要求は、クエリ要求に対応するクエリオブジェクトのデータページの数に従って、重複しないクエリ範囲を有するスレーブデータベースに対するクエリオペレーション命令に分割される。
クエリオブジェクトのデータページの数は、クエリに関与するスレーブデータベースのものと同じ番号を有する複数の範囲に予め分割され得る。例えば、クエリオブジェクトのデータページの数は、0から1500であり、3つのスレーブデータベースが存在し、次に、これらの数は、3つのスレーブデータベースによりそれぞれ処理される、[0-500]、[500, 1000]および[1000-1500]という3つの範囲に分割され得る。
この方式は、単一のクエリオブジェクトについてのクエリに適している。
クエリ処理ユニット(U105)は、スレーブデータベース(U102、U103およびU104)に対してクエリオペレーションを実行し、スレーブデータベース(U102、U103およびU104)は、クエリオペレーションの結果をクエリ処理ユニット(U105)へ戻す。
例えば、スレーブデータベース(U102)は、人口データテーブルの分散列値A0、B0、C0、D0等に対するクエリオペレーションの結果をクエリ処理ユニット(U105)へ戻し、スレーブデータベース(U103)は、人口データテーブルの分散列値A1、B1、C1、D1等に対するクエリオペレーションの結果をクエリ処理ユニット(U105)へ戻し、スレーブデータベース(U104)は、人口データテーブルの分散列値A2、B2、C2、D2等に対するクエリオペレーションの結果をクエリ処理ユニット(U105)へ戻す。
クエリ処理ユニット(U105)は、クエリオペレーションの実行結果を受信した後に、クエリ結果をクエリ要求の要求元に外部で提供する。
例えば、クエリ処理ユニット(U105)は、人口データテーブルの分散列値A0、B0、C0、D0等を有する記録に対するクエリオペレーションの、スレーブデータベース(U102)により戻される実行結果と、人口データテーブルの分散列値A1、B1、C1、D1等を有する記録に対するクエリオペレーションの、スレーブデータベース(U103)により戻される実行結果と、人口データテーブルの分散列値A2、B2、C2、D2等を有する記録に対するクエリオペレーションの、スレーブデータベース(U104)により戻される実行結果とを個別に受信し、次に、これらの実行結果を外部クエリ要求の要求元へ戻す。
この時点で、本実施形態において提供されるデータベースシステムは、外部クエリ要求に対する完全な応答を生成している。
本実施形態において提供されるデータベースシステムのクエリ処理ユニットはさらに、クエリタスクを送信し、他のクエリ処理ユニットにより送信されるクエリタスクとクエリオペレーションの結果とを受信し、受信したクエリタスクにより指定されるデータベースクエリオペレーションを実行し、クエリオペレーションの結果を統合し、スレーブデータベースに対するクエリオペレーションの結果または統合の後の結果を、クエリタスクにより指定される受信者に提供するように構成され得る。
クエリオペレーションのクエリ結果の統合は、クエリオペレーションの実行結果のソートまたはマージ等を含む。
クエリ処理ユニット(U105)はさらに、クエリに関与するスレーブデータベースの数を、クエリに含まれるデータの統計情報(例えば、クエリに対応するテーブルのサイズ)に従って動的に決定し、クエリオペレーション命令を実行すべく、分割したクエリオペレーション命令を、決定したスレーブデータベースへ送信し、クエリ結果を戻し得る。つまり、クエリ処理ユニットは、いくつのスレーブデータベースがクエリに関与するかを、クエリ要求に含まれる作業の量、またはクエリオブジェクトのサイズに従って決定し得る。クエリに対応する小量の作業または小さいデータテーブルの場合、少数のスレーブデータベースが割り当てられ得るか、または、1つのスレーブデータベースがクエリオペレーションに関与することさえ可能であり、逆に、クエリオペレーションを実行する各スレーブデータベースの作業を可能な限り均衡させるために、可能な限り多くのスレーブデータベースがクエリオペレーションへの関与に割り当てられることにより、効率が改善する。
クエリ処理ユニットは、スレーブデータベースと同じ物理ノード上に配置され得る。すなわち、スレーブデータベースおよびクエリ処理ユニットの両方が、各スレーブデータベースのノード上に提供される。このようにして、データベースに対する大きく複雑なクエリ要求を処理すべく、複数のスレーブデータベースの能力が完全に利用され得る。
例えば、以上で説明したマスタデータベース、スレーブデータベースおよびクエリ処理ユニットに加え、データベースシステムは、スレーブデータベースに対応するクエリ処理ユニットをさらに含み得る。クエリ処理ユニットはそれぞれ、対応するスレーブデータベースが存在するノード上に配置される。いくつかの都市の人口データのクエリでは、クエリ処理ユニット(U105)により受信される外部クエリ要求は、select c1, count(c2) from t1 group by c1である。人口データテーブルt1の列c1は都市名であり、列c2は人口サイズの値である。
クエリ処理ユニット(U105)は、外部クエリ要求をスレーブデータベース(U102、U103およびU104)に対するクエリタスクに変換し、クエリタスクを、スレーブデータベースに対応するクエリ処理ユニットへ分散させる。クエリタスクは、重複しないクエリ範囲を有する、スレーブデータベースに対するクエリオペレーション命令を含み得る。
スレーブデータベースに対応するクエリ処理ユニットは、クエリタスクを受信する。重複しないクエリ範囲を有する、スレーブデータベースに対するクエリオペレーション命令をクエリタスクが含まない場合には、重複しないクエリ範囲を有する、スレーブデータベースに対するクエリオペレーション命令は、受信したクエリタスクと、対応するスレーブデータベースとに従って形成される。
例えば、データベースシステムのスレーブデータベースに対応するクエリ処理ユニットに対して形成されるクエリタスクは、以下のとおりである。
つまり、スレーブデータベース(U102)が位置するノード上のクエリ処理ユニットに対応するクエリタスクは、分散列値A0、B0、C0、D0等を有する都市の人口サイズデータをクエリしており、スレーブデータベース(U104)が位置するノード上のクエリ処理ユニットへクエリ結果を送信している。
スレーブデータベース(U103)が位置するノード上のクエリ処理ユニットに対応するクエリタスクは、分散列値A1、B1、C1、D1等を有する都市の人口サイズデータをクエリしており、スレーブデータベース(U104)が位置するノード上のクエリ処理ユニットへクエリ結果を送信している。
スレーブデータベース(U104)が位置するノード上のクエリ処理ユニットに対応するクエリタスクは、分散列値A2、B2、C2、D2等を有する都市の人口サイズデータをクエリしており、スレーブデータベース(U102)およびスレーブデータベース(U103)により送信される都市の人口サイズデータを受信しており、都市の人口サイズの和を計算しており、クエリ処理ユニット(U105)へ結果を送信している。
各スレーブデータベースと同じノード上に配置された各クエリ処理ユニットは、現在のノード上のスレーブデータベースに対する対応するクエリタスクに対応するクエリオペレーションを実行する。スレーブデータベース(U102)が位置するノード上のクエリ処理ユニットは、分散列値A0、B0、C0、D0等を有する都市の人口サイズデータをクエリするオペレーションをスレーブデータベース(U102)に対して実行し、スレーブデータベース(U104)が位置するノード上のクエリ処理ユニットへクエリオペレーションの実行結果を送信する。
スレーブデータベース(U103)が位置するノード上のクエリ処理ユニットは、分散列値A1、B1、C1、D1等を有する都市の人口サイズデータをクエリするオペレーションをスレーブデータベース(U103)に対して実行し、スレーブデータベース(U104)が位置するノード上のクエリ処理ユニットへクエリオペレーションの実行結果を送信する。
スレーブデータベース(U104)が位置するノード上のクエリ処理ユニットは、分散列値A2、B2、C2、D2等を有する都市の人口サイズデータをクエリするオペレーションをスレーブデータベース(U104)に対して実行し、スレーブデータベース(U102)および(U103)が位置するノードから送信される都市の人口サイズデータを受信し、受信した都市の人口サイズデータを統合して都市の人口サイズデータを取得し、統合した都市の人口サイズデータをクエリ処理ユニット(U105)へ送信する。
本開示の第2の実施形態は、データベースをクエリするための方法を提供する。当該方法は、図2に概略フローチャートが示され、以下の段階を含む。
段階S201:データベースに対するクエリ要求を取得または受信する。
クエリ要求は通常、指定されたデータベース情報のクエリオブジェクトの情報を含み得る。クエリオブジェクトの情報は、クエリされる必要があるテーブルの名前およびクエリされる必要があるテーブルの列の値などの情報を含み得る。
この段階の詳細な説明については、図1および他の図に関連して説明するクエリ処理ユニットの関連する説明を参照してよい。ここではそのような詳細を繰り返さない。
段階S202:クエリ要求を、重複しないクエリ範囲を有する、スレーブデータベースに対するクエリオペレーション命令に分割する。
重複しないクエリ範囲を有する、スレーブデータベースに対するクエリオペレーション命令は、重複しないスレーブデータベースに対して実行されるクエリオペレーション命令を指す。すなわち、2つの異なるスレーブデータベースが、異なる記録についてクエリされる。
クエリ要求を、重複しないクエリ範囲を有する、スレーブデータベースに対するクエリオペレーション命令に分割するための多くの方式が存在し得る。本実施形態は、クエリ要求を、重複しないクエリ範囲を有する、スレーブデータベースに対するクエリオペレーション命令に分割するための以下の方法を提供する。
方法1:クエリ要求は、クエリオブジェクトに対応する分散列値に従って、重複しないクエリ範囲を有する、スレーブデータベースに対するクエリオペレーション命令に分割される。
当該要求に対応するクエリオブジェクトに対応する分散列値は、
I.クエリオブジェクトの予め保存された分散列値と、
II.クエリオブジェクトの任意の列の値と、
III.クエリオブジェクトの最初の列の値と、
IV.クエリ要求により指定される列の値と
のうちの少なくとも1つの項目を含む。
対応する詳細な説明については、図1の説明におけるクエリ処理ユニットの関連する説明を参照してよい。ここでは繰り返さない。
方法2:クエリ要求は、クエリ要求に対応するクエリオブジェクトの記録の固有キーに従って、重複しないクエリ範囲を有する、スレーブデータベースに対するクエリオペレーション命令に分割される。
方法3:クエリ要求は、クエリ要求に対応するクエリオブジェクトのデータページの数に従って、重複しないクエリ範囲を有する、スレーブデータベースに対するクエリオペレーション命令に分割される。
段階S203:スレーブデータベースに対するクエリオペレーション命令を実行する。
この段階の詳細な説明については、図1および他の図に関連して説明するクエリ処理ユニットの関連する説明を参照してよい。ここではそのような詳細を繰り返さない。
この段階の後に、クエリオペレーションの結果を統合する段階がさらに含まれ得る。関連する説明については、図1の説明における関連する説明を参照してよい。ここでは繰り返さない。
段階S204:クエリ要求の結果をクエリ要求の要求元に提供する。
データベースをクエリするための要求の結果が、スレーブデータベースに対するクエリオペレーションの実行結果または統合の結果に従って、要求の要求元へ戻される。このようにして、データベースについての今回のクエリが実現される。
本開示の第3の実施形態は、クエリオペレーションを割り当てるための方法を提供する。当該方法は、図3に概略フローチャートが示され、以下の段階を含む。
段階S301:データベースに対するクエリ要求を取得または受信する。
この段階の詳細な説明については、図1および他の図に関連して説明するクエリ処理ユニットの関連する説明を参照してよい。ここではそのような詳細を繰り返さない。
段階S302:クエリ要求を、重複しないクエリ範囲を有する、スレーブデータベースに対するクエリオペレーション命令に分割する。
クエリ要求を、重複しないクエリ範囲を有する、スレーブデータベースに対するクエリオペレーション命令に分割するための多くの方法が存在し得る。本実施形態は、クエリ要求を、重複しないクエリ範囲を有する、スレーブデータベースに対するクエリオペレーション命令に分割するための以下の方法を提供する。
方法1:クエリ要求は、クエリオブジェクトに対応する分散列値に従って、重複しないクエリ範囲を有する、スレーブデータベースに対するクエリオペレーション命令に分割される。
クエリオブジェクトに対応する分散列値は、
I.クエリオブジェクトの予め保存された分散列値と、
II.クエリオブジェクトの任意の列の値と、
III.クエリオブジェクトの最初の列の値と、
IV.クエリ要求により指定される列の値と
のうちの少なくとも1つの項目を含む。
方法2:クエリ要求は、クエリ要求に対応するクエリオブジェクトの記録の固有キーに従って、重複しないクエリ範囲を有する、スレーブデータベースに対するクエリオペレーション命令に分割される。
方法3:クエリ要求は、クエリ要求に対応するクエリオブジェクトのデータページの数に従って、重複しないクエリ範囲を有する、スレーブデータベースに対するクエリオペレーション命令に分割される。
対応する詳細な説明については、図1の関連する説明を参照してよい。ここでは繰り返さない。
本開示の第4の実施形態は、データベースクエリを実行するための方法を提供する。当該方法は、図4に概略フロー図が示され、以下の段階を含む。
段階S401:クエリタスクを取得または受信する。
段階S402:クエリタスクにより指定されるクエリオペレーションを実行する。
段階S403:クエリオペレーションの結果を、クエリタスクにより指定される受信者に提供する。
図5に例示される実施形態における段階に関する詳細については、図1および他の図に関連して説明するクエリ処理ユニットの関連する説明を参照してよい。ここではそのような詳細を繰り返さない。
本開示の第5の実施形態は、データベースクエリを実行するための方法を提供する。当該方法は、図5にフロー図が示され、以下の段階を含む。
段階S501:クエリタスクを取得または受信する。
段階S502:クエリタスクにより指定される他のクエリオペレーションのクエリ結果を取得する。
段階S503:クエリ結果を統合する。
いくつかの実施形態では、この段階S503の前に、クエリタスクにより指定されるクエリオペレーションを実行してクエリ結果を取得する段階がさらに含まれ得る。
段階S504:統合の結果を、クエリタスクにより指定される受信者に提供する。
図5に例示される実施形態における段階に関する詳細については、図1および他の図に関連して説明するクエリ処理ユニットの関連する説明を参照してよい。ここではそのような詳細を繰り返さない。
本開示の第6の実施形態は、データベースをクエリするための装置を提供する。当該装置は、図6にブロック図が示され、取得ユニット(U601)と、分割ユニット(U602)と、実行ユニット(U603)と、提供ユニット(U604)とを含む。
例示される実施形態において、取得ユニット(U601)は、データベースをクエリするためのクエリ要求を取得または受信するように構成される。
例示される実施形態において、分割ユニット(U602)は、クエリ要求を、重複しないクエリ範囲を有する、スレーブデータベースに対するクエリオペレーション命令に分割するように構成される。
いくつかの実施形態では、分割ユニットは、クエリオブジェクトに対応する分散列値に従って、クエリ要求を、重複しないクエリ範囲を有する、スレーブデータベースに対するクエリタスクに分割するように構成される。クエリオブジェクトに対応する分散列値は、クエリオブジェクトの予め保存された分散列値と、クエリオブジェクトの任意の列の値と、クエリオブジェクトの最初の列の値と、クエリ要求により指定される列の値とのうちの少なくとも1つの項目を含む。
いくつかの実施形態では、分割ユニットはさらに、クエリ要求に対応するクエリオブジェクトの記録の固有キーに従って、クエリ要求を、重複しないクエリ範囲を有する、スレーブデータベースに対するクエリオペレーション命令に分割するように構成され得る。
いくつかの実施形態では、分割ユニットはさらに、クエリ要求に対応するクエリオブジェクトのデータページの数に従って、クエリ要求を、重複しないクエリ範囲を有する、スレーブデータベースに対するクエリオペレーション命令に分割するように構成され得る。
例示される実施形態において、実行ユニット(U603)は、スレーブデータベースに対するクエリオペレーションを実行するように構成される。
例示される実施形態において、提供ユニット(U604)は、クエリ要求のクエリ結果を当該要求の要求元に提供するように構成される。
図6に例示される、当該実施形態において提供される装置は、クエリオペレーションの結果を統合するように構成された統合ユニットをさらに含み得る。
本開示の第7の実施形態は、クエリオペレーションを割り当てるための装置を提供する。当該装置は、図7にブロック図が示され、取得ユニット(U701)および分割ユニット(U702)を含む。
例示される実施形態において、取得ユニット(U701)は、データベースに対するクエリ要求を取得または受信するように構成され、分割ユニット(U702)は、クエリ要求を、重複しないクエリ範囲を有する、スレーブデータベースに対するクエリオペレーション命令に分割するように構成される。
いくつかの実施形態では、分割ユニット(U702)は、クエリオブジェクトに対応する分散列値に従って、クエリ要求を、重複しないクエリ範囲を有する、スレーブデータベースに対するクエリタスクに分割するように構成され得る。分散列値は、クエリオブジェクトの予め保存された分散列値と、クエリオブジェクトの任意の列の値と、クエリオブジェクトの最初の列の値と、クエリ要求により指定される列の値とのうちの少なくとも1つを含む。
いくつかの実施形態では、分割ユニット(U702)はさらに、クエリ要求に対応するクエリオブジェクトの記録の固有キーに従って、クエリ要求を、重複しないクエリ範囲を有する、スレーブデータベースに対するクエリオペレーション命令に分割するように構成され得る。
いくつかの実施形態では、分割ユニット(U702)はさらに、クエリ要求に対応するクエリオブジェクトのデータページの数に従って、クエリ要求を、重複しないクエリ範囲を有する、スレーブデータベースに対するクエリオペレーション命令に分割するように構成され得る。
本開示の第8の実施形態は、データベースクエリを実行するための装置を提供する。当該装置は、図8にブロック図が示され、取得ユニット(U801)、実行ユニット(U802)および提供ユニット(U803)を含む。例示される実施形態において、取得ユニット(U801)は、クエリタスクを取得または受信するように構成される。例示される実施形態において、実行ユニット(U802)は、クエリタスクにより指定されるクエリオペレーションを実行するように構成される。例示される実施形態において、提供ユニット(U803)は、クエリオペレーションの結果を、クエリタスクにより指定される受信者に提供するように構成される。
本開示の第9の実施形態は、データベースクエリを実行するための装置を提供する。当該装置は、図9にブロック図が示され、取得ユニット(U901)、第2の取得ユニット(U902)、統合ユニット(U903)および提供ユニット(U904)を含む。例示される実施形態において、取得ユニット(U901)は、クエリタスクを取得または受信するように構成される。例示される実施形態において、第2の取得ユニット(U902)は、クエリタスクにより指定される他のクエリオペレーションのクエリ結果を取得するように構成される。例示される実施形態において、統合ユニット(U903)は、クエリ結果を統合するように構成される。例示される実施形態において、提供ユニット(U904)は、統合の結果を、クエリタスクにより指定される受信者に提供するように構成される。
本実施形態において提供されるデータベースクエリを実行するための装置は、実行ユニットをさらに含み得る。本実施形態において、実行ユニットは、クエリタスクにより指定されるクエリオペレーションを実行してクエリ結果を取得するように構成される。
以上では、開示される実施形態を例示的な実施形態を通じて説明したが、開示される実施形態は、それらに限定されるように意図されてはいない。当業者であれば、本開示の趣旨および範囲から逸脱することなく、可能な変更および修正を行うことができる。従って、本開示の範囲は、特許請求の範囲によって限定されるものとする。
典型的な構成では、コンピューティングデバイスは、1または複数のプロセッサ(CPU)と、入力/出力インタフェースと、ネットワークインタフェースと、メモリとを含む。
メモリは、リードオンリメモリ(ROM)またはフラッシュメモリ(例えば、フラッシュRAM)などの非永続的メモリ、ランダムアクセスメモリ(RAM)および/または不揮発性メモリ等の形態のコンピュータ可読媒体を含んでよい。メモリは、コンピュータ可読媒体の例である。
コンピュータ可読媒体は、任意の方法または技術を用いて情報の記憶を実現できる永続的および非永続的な移動可能および移動不可能な媒体を含む。情報は、コンピュータ可読命令、データ構造、プログラムのモジュール、または他のデータであってよい。コンピュータの記憶媒体の例は、限定されるものではないが、相変化メモリ(PCRAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、他のタイプのRAMデバイス、ROM、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、フラッシュメモリもしくは他のメモリ技術、コンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)もしくは他の光ストレージ、カセットテープ磁気テープ/磁気ディスクストレージもしくは他の磁気ストレージデバイスまたは任意の他の非伝送媒体を含み、コンピューティングデバイスによりアクセス可能な情報を格納するために用いられ得る。本明細書における定義によれば、コンピュータ可読媒体は、変調データ信号および搬送波などの非一時的コンピュータ可読媒体を含まない。
当業者であれば、開示される実施形態は、方法、システムまたはコンピュータプログラム製品として実装され得ることを理解するはずである。従って、開示される実施形態は、ハードウェアにおいて完全に実装され得るか、ソフトウェアにおいて完全に実装され得るか、またはソフトウェアとハードウェアとの組み合わせを用いて実装され得る。さらに、開示される実施形態は、コンピュータ使用可能プログラムコードを含む1または複数のコンピュータ使用可能記憶媒体(磁気ディスクメモリ、CD-ROM、光メモリ等を含むが、これらに限定されない)に実装されるコンピュータプログラム製品として実装され得る。

Claims (25)

  1. マスタデータベースと、少なくとも1つのスレーブデータベースと、クエリ処理ユニットとを備えるデータベースシステムであって、前記マスタデータベースは、前記少なくとも1つのスレーブデータベースとのデータ接続を有し、前記少なくとも1つのスレーブデータベースは、前記クエリ処理ユニットとのデータ接続を有し、各スレーブデータベースは、前記マスタデータベースのデータのセットに合致するデータのセットを格納し、前記クエリ処理ユニットは、クエリされる必要があるデータテーブルの情報を含むクエリ要求を、前記データテーブルの各記録に対応するキーの値を指す固有キーに従って、重複しないクエリ範囲を有するクエリオペレーション命令に分割し、前記クエリオペレーション命令を実行すべく、分割した前記クエリオペレーション命令を同じまたは異なるスレーブデータベースへ送信し、クエリ結果を戻すように構成され、前記固有キーの値ドメインを、前記クエリ要求に関与する前記スレーブデータベースのものと同じ番号を有する複数の値ドメインに分割することで、前記クエリ要求は分割される、データベースシステム。
  2. 前記クエリ処理ユニットは、前記クエリ要求を受信し、前記スレーブデータベースの数に従って前記データテーブルの記録の各行に対してモジュロ演算を実行し、前記モジュロ演算により生成される剰余を有する分散列値を取得し、前記分散列値に従って、前記クエリ要求を、前記重複しないクエリ範囲を有する前記クエリオペレーション命令に分割し、前記クエリオペレーション命令を実行すべく、分割した前記クエリオペレーション命令を同じまたは異なるスレーブデータベースへ送信し、クエリ結果を戻すように構成され、前記分散列値は、前記データテーブルの各記録が前記スレーブデータベースを指定するために用いられる1つの値に対応することを示し、前記分割したクエリオペレーション命令はそれぞれ、同じ剰余の値を有する前記分散列値に対応する前記記録に対して行われ、前記データテーブルの列を指定しない前記クエリ要求について、クエリされる前記データテーブルの最初の列の値が、前記分散列値として用いられる、請求項1に記載のデータベースシステム。
  3. 前記分散列値は、前記データテーブルの予め保存された分散列値と、前記データテーブルの任意の列の値と、前記データテーブルの最初の列の値と、前記クエリ要求により指定される列の値とのうちの少なくとも1つの項目を含む、請求項2に記載のデータベースシステム。
  4. 前記クエリ処理ユニットは、前記クエリ要求を受信し、前記データテーブルのデータページの数に従って、前記クエリ要求を、前記重複しないクエリ範囲を有する前記クエリオペレーション命令に分割し、前記クエリオペレーション命令を実行すべく、分割した前記クエリオペレーション命令を同じまたは異なるスレーブデータベースへ送信し、クエリ結果を戻すように構成され、複数の前記データページは、前記少なくとも1つのスレーブデータベースによりそれぞれ処理される複数の範囲に分割される、請求項1から3のいずれか一項に記載のデータベースシステム。
  5. 前記クエリ処理ユニットはさらに、クエリタスクを送信し、他のクエリ処理ユニットにより送信されるクエリタスクとクエリオペレーションの結果とを受信し、受信した前記クエリタスクにより指定されるデータベースクエリオペレーションを実行し、前記クエリオペレーションの前記結果を統合し、前記少なくとも1つのスレーブデータベースに対して実行される前記クエリオペレーションの結果または前記統合の後の結果を、前記クエリタスクにより指定される受信者に提供するように構成される、請求項1から4のいずれか一項に記載のデータベースシステム。
  6. 前記クエリ処理ユニットは、前記少なくとも1つのスレーブデータベースと同じ物理ノード上に配置される、請求項5に記載のデータベースシステム。
  7. 前記クエリ処理ユニットは、前記クエリ要求を、前記重複しないクエリ範囲を有する前記クエリオペレーション命令に分割し、前記クエリ要求に関与するスレーブデータベースの数を、前記データテーブルのサイズに従って動的に決定し、前記クエリオペレーション命令を実行すべく、分割した前記クエリオペレーション命令を、決定した前記スレーブデータベースへ送信し、クエリ結果を戻すように構成される、請求項1から6のいずれか一項に記載のデータベースシステム。
  8. 前記クエリ処理ユニットはさらに、対応するスレーブデータベースへ前記クエリ要求を送信するように構成される、請求項1から7のいずれか一項に記載のデータベースシステム。
  9. クエリ処理ユニットが、クエリされる必要があるデータテーブルの情報を含むクエリ要求を取得する段階と、
    前記クエリ処理ユニットが、前記クエリ要求を、前記データテーブルの各記録に対応するキーの値を指す固有キーに従って、重複しないクエリ範囲を有する、スレーブデータベースに対するクエリオペレーション命令に分割する段階であって、各スレーブデータベースは、前記スレーブデータベースとのデータ接続を有するマスタデータベースのデータのセットに合致するデータのセットを格納する、段階と
    前記クエリ処理ユニットが、前記スレーブデータベースに対する前記クエリオペレーション命令を実行する段階と、
    前記クエリ処理ユニットが、前記クエリ要求の結果を前記クエリ要求の要求元に提供する段階と
    を備え、
    前記固有キーの値ドメインを、前記クエリ要求に関与する前記スレーブデータベースのものと同じ番号を有する複数の値ドメインに分割することで、前記クエリ要求は分割される、データベースをクエリするための方法。
  10. 前記クエリ処理ユニットが、前記スレーブデータベースの数に従って前記データテーブルの記録の各行に対してモジュロ演算を実行し、前記モジュロ演算により生成される剰余を有する分散列値を取得し、前記クエリ処理ユニットが、前記分散列値に従って、前記クエリ要求を、前記重複しないクエリ範囲を有する、前記スレーブデータベースに対する前記クエリオペレーション命令に分割する段階であって、前記分散列値は、前記データテーブルの各記録が前記スレーブデータベースを指定するために用いられる1つの値に対応することを示し、前記分割したクエリオペレーション命令はそれぞれ、同じ剰余の値を有する前記分散列値に対応する前記記録に対して行われ、前記データテーブルの列を指定しない前記クエリ要求について、クエリされる前記データテーブルの最初の列の値が、前記分散列値として用いられる、段階を備える、請求項9に記載のデータベースをクエリするための方法。
  11. 前記分散列値は、
    前記データテーブルの予め保存された分散列値と、
    前記データテーブルの任意の列の値と、
    前記データテーブルの最初の列の値と、
    前記クエリ要求により指定される列の値と
    のうちの少なくとも1つの項目を含む、
    請求項10に記載のデータベースをクエリするための方法。
  12. 前記クエリ処理ユニットが、前記データテーブルのデータページの数に従って、前記クエリ要求を、前記重複しないクエリ範囲を有する、前記スレーブデータベースに対する前記クエリオペレーション命令に分割する段階を備え、複数の前記データページは、前記スレーブデータベースによりそれぞれ処理される複数の範囲に分割される、請求項9から11のいずれか一項に記載のデータベースをクエリするための方法。
  13. 前記クエリ要求の結果を前記クエリ要求の要求元に提供する前記段階の前に、前記クエリ処理ユニットが、クエリオペレーションの結果を統合する段階をさらに備える、請求項9から12のいずれか一項に記載のデータベースをクエリするための方法。
  14. 前記スレーブデータベースに対する前記クエリオペレーション命令を実行する前記段階は、前記クエリ処理ユニットが、前記クエリ要求に関与するスレーブデータベースの数を、前記データテーブルのサイズに従って決定し、決定した前記スレーブデータベースに対して前記クエリオペレーション命令を実行する段階である、請求項9から13のいずれか一項に記載のデータベースをクエリするための方法。
  15. クエリ処理ユニットが、クエリされる必要があるデータテーブルの情報を含むクエリ要求を取得する段階と、
    前記クエリ処理ユニットが、前記クエリ要求を、前記データテーブルの各記録に対応するキーの値を指す固有キーに従って、重複しないクエリ範囲を有する、スレーブデータベースに対するクエリオペレーション命令に分割する段階であって、各スレーブデータベースは、前記スレーブデータベースとのデータ接続を有するマスタデータベースのデータのセットに合致するデータのセットを格納する、段階と
    を備え、
    前記固有キーの値ドメインを、前記クエリ要求に関与する前記スレーブデータベースのものと同じ番号を有する複数の値ドメインに分割することで、前記クエリ要求は分割される、クエリオペレーションを割り当てるための方法。
  16. 前記クエリ処理ユニットが、前記スレーブデータベースの数に従って前記データテーブルの記録の各行に対してモジュロ演算を実行し、前記モジュロ演算により生成される剰余を有する分散列値を取得し、前記分散列値に従って、前記クエリ要求を、前記重複しないクエリ範囲を有する、前記スレーブデータベースに対する前記クエリオペレーション命令に分割する段階であって、前記分散列値は、前記データテーブルの各記録が前記スレーブデータベースを指定するために用いられる1つの値に対応することを示し、前記分割したクエリオペレーション命令はそれぞれ、同じ剰余の値を有する前記分散列値に対応する前記記録に対して行われ、前記データテーブルの列を指定しない前記クエリ要求について、クエリされる前記データテーブルの最初の列の値が、前記分散列値として用いられる、段階を備える、請求項15に記載のクエリオペレーションを割り当てるための方法。
  17. 前記分散列値は、
    前記データテーブルの予め保存された分散列値と、
    前記データテーブルの任意の列の値と、
    前記データテーブルの最初の列の値と、
    前記クエリ要求により指定される列の値と
    のうちの少なくとも1つの項目を含む、
    請求項16に記載のクエリオペレーションを割り当てるための方法。
  18. 前記クエリ処理ユニットが、前記データテーブルのデータページの数に従って、前記クエリ要求を、前記重複しないクエリ範囲を有する、前記スレーブデータベースに対する前記クエリオペレーション命令に分割する段階を有し、複数の前記データページは、前記スレーブデータベースによりそれぞれ処理される複数の範囲に分割される、請求項15から17のいずれか一項に記載のクエリオペレーションを割り当てるための方法。
  19. 前記クエリ処理ユニットが、クエリタスクを取得する段階と、
    前記クエリ処理ユニットが、前記クエリタスクにより指定されるクエリオペレーションを実行する段階と、
    前記クエリ処理ユニットが、前記クエリオペレーションの結果を、前記クエリタスクにより指定される受信者に提供する段階と
    を備える、請求項9から14のいずれか一項に記載のデータベースをクエリするための方法。
  20. 前記クエリ処理ユニットが、クエリタスクを取得する段階と、
    前記クエリ処理ユニットが、前記クエリタスクにより指定される他のクエリオペレーションのクエリ結果を取得する段階と、
    前記クエリ処理ユニットが、前記クエリ結果を統合する段階と、
    前記クエリ処理ユニットが、統合の結果を、前記クエリタスクにより指定される受信者に提供する段階と
    を備える、請求項9から14のいずれか一項に記載のデータベースをクエリするための方法。
  21. 前記クエリ結果を統合する前記段階の前に、前記クエリ処理ユニットが、前記クエリタスクにより指定されるクエリオペレーションを実行してクエリ結果を取得する段階をさらに備える、請求項20に記載のデータベースをクエリするための方法。
  22. クエリされる必要があるデータテーブルの情報を含むクエリ要求を取得または受信するように構成された取得ユニットと、
    前記クエリ要求を、前記データテーブルの各記録に対応するキーの値を指す固有キーに従って、重複しないクエリ範囲を有する、スレーブデータベースに対するクエリオペレーション命令に分割するように構成された分割ユニットであって、各スレーブデータベースは、前記スレーブデータベースとのデータ接続を有するマスタデータベースのデータのセットに合致するデータのセットを格納する、分割ユニットと
    前記スレーブデータベースに対する前記クエリオペレーション命令を実行するように構成された実行ユニットと、
    前記クエリ要求のクエリ結果を前記クエリ要求の要求元に提供するように構成された提供ユニットと
    を備え、
    前記固有キーの値ドメインを、前記クエリ要求に関与する前記スレーブデータベースのものと同じ番号を有する複数の値ドメインに分割することで、前記クエリ要求は分割される、データベースをクエリするための装置。
  23. クエリされる必要があるデータテーブルの情報を含むクエリ要求を取得または受信するように構成された取得ユニットと、
    前記クエリ要求を、前記データテーブルの各記録に対応するキーの値を指す固有キーに従って、重複しないクエリ範囲を有する、スレーブデータベースに対するクエリオペレーション命令に分割するように構成された分割ユニットであって、各スレーブデータベースは、前記スレーブデータベースとのデータ接続を有するマスタデータベースのデータのセットに合致するデータのセットを格納する、分割ユニットと
    を備え、
    前記固有キーの値ドメインを、前記クエリ要求に関与する前記スレーブデータベースのものと同じ番号を有する複数の値ドメインに分割することで、前記クエリ要求は分割される、クエリオペレーションを割り当てるための装置。
  24. 前記クエリ処理ユニットは、
    クエリタスクを取得または受信するように構成された取得ユニットと、
    前記クエリタスクにより指定されるクエリオペレーションを実行するように構成された実行ユニットと、
    前記クエリオペレーションの結果を、前記クエリタスクにより指定される受信者に提供するように構成された提供ユニットと
    を有する、請求項1から8のいずれか一項に記載のデータベースシステム。
  25. 前記クエリ処理ユニットは、
    クエリタスクを取得または受信するように構成された取得ユニットと、
    前記クエリタスクにより指定される他のクエリオペレーションのクエリ結果を取得するように構成された第2の取得ユニットと、
    前記クエリ結果を統合するように構成された統合ユニットと、
    統合の結果を、前記クエリタスクにより指定される受信者に提供するように構成された提供ユニットと
    を有する、請求項1から8のいずれか一項に記載のデータベースシステム。
JP2020533622A 2017-12-29 2018-12-25 データベースをクエリするためのシステム、方法および装置 Active JP7440007B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201711482536.1A CN110019274B (zh) 2017-12-29 2017-12-29 一种数据库系统以及查询数据库的方法和装置
CN201711482536.1 2017-12-29
PCT/CN2018/123437 WO2019128978A1 (zh) 2017-12-29 2018-12-25 一种数据库系统以及查询数据库的方法和装置

Publications (2)

Publication Number Publication Date
JP2021508867A JP2021508867A (ja) 2021-03-11
JP7440007B2 true JP7440007B2 (ja) 2024-02-28

Family

ID=67066574

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020533622A Active JP7440007B2 (ja) 2017-12-29 2018-12-25 データベースをクエリするためのシステム、方法および装置

Country Status (5)

Country Link
US (1) US11789957B2 (ja)
EP (1) EP3734476A4 (ja)
JP (1) JP7440007B2 (ja)
CN (1) CN110019274B (ja)
WO (1) WO2019128978A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111159106B (zh) * 2019-12-30 2023-04-07 亚信科技(中国)有限公司 一种数据查询方法及装置
US11568065B2 (en) * 2021-01-15 2023-01-31 Bank Of America Corporation System for securing electronic data by aggregation of distributed electronic database entries

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007531087A (ja) 2004-02-21 2007-11-01 データレグロ,インコーポレーテッド 無共有型並列データベースシステム及びデータベース管理方法
JP2013152512A (ja) 2012-01-24 2013-08-08 Mitsubishi Electric Corp 情報処理装置及び情報処理方法及びプログラム
US20140114994A1 (en) 2012-10-24 2014-04-24 Marklogic Corporation Apparatus and Method for Securing Preliminary Information About Database Fragments for Utilization in Mapreduce Processing
JP2014232483A (ja) 2013-05-30 2014-12-11 富士通株式会社 データベースシステム、検索方法およびプログラム
US20160092542A1 (en) 2014-09-26 2016-03-31 Oracle International Corporation System and method for dynamic database split generation in a massively parallel or distributed database environment

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5694546A (en) 1994-05-31 1997-12-02 Reisman; Richard R. System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list
US7181438B1 (en) 1999-07-21 2007-02-20 Alberti Anemometer, Llc Database access system
US6795819B2 (en) 2000-08-04 2004-09-21 Infoglide Corporation System and method for building and maintaining a database
US6778977B1 (en) 2001-04-19 2004-08-17 Microsoft Corporation Method and system for creating a database table index using multiple processors
EA200400873A1 (ru) 2001-12-28 2005-12-29 Джеффри Джэймс Джонас Хранилище данных реального времени
US8620937B2 (en) 2002-12-27 2013-12-31 International Business Machines Corporation Real time data warehousing
US7403942B1 (en) 2003-02-04 2008-07-22 Seisint, Inc. Method and system for processing data records
CA2425045C (en) * 2003-04-08 2013-01-15 Ibm Canada Limited - Ibm Canada Limitee Method and system for executing a database query
US8200775B2 (en) 2005-02-01 2012-06-12 Newsilike Media Group, Inc Enhanced syndication
US7490113B2 (en) 2003-08-27 2009-02-10 International Business Machines Corporation Database log capture that publishes transactions to multiple targets to handle unavailable targets by separating the publishing of subscriptions and subsequently recombining the publishing
US8543566B2 (en) 2003-09-23 2013-09-24 Salesforce.Com, Inc. System and methods of improving a multi-tenant database query using contextual knowledge about non-homogeneously distributed tenant data
US7707039B2 (en) 2004-02-15 2010-04-27 Exbiblio B.V. Automatic modification of web pages
US7499917B2 (en) 2005-01-28 2009-03-03 International Business Machines Corporation Processing cross-table non-Boolean term conditions in database queries
US7672930B2 (en) * 2005-04-05 2010-03-02 Wal-Mart Stores, Inc. System and methods for facilitating a linear grid database with data organization by dimension
US7908242B1 (en) 2005-04-11 2011-03-15 Experian Information Solutions, Inc. Systems and methods for optimizing database queries
US7831620B2 (en) * 2006-08-31 2010-11-09 International Business Machines Corporation Managing execution of a query against a partitioned database
US8468244B2 (en) 2007-01-05 2013-06-18 Digital Doors, Inc. Digital information infrastructure and method for security designated data and with granular data stores
WO2009004620A2 (en) * 2007-07-03 2009-01-08 Xeround Systems Ltd. Method and system for data storage and management
US8489622B2 (en) 2008-12-12 2013-07-16 Sas Institute Inc. Computer-implemented systems and methods for providing paginated search results from a database
US8078825B2 (en) 2009-03-11 2011-12-13 Oracle America, Inc. Composite hash and list partitioning of database tables
US8880549B2 (en) * 2009-11-09 2014-11-04 International Business Machines Corporation Concurrent database access by production and prototype applications
US8655867B2 (en) 2010-05-13 2014-02-18 Salesforce.Com, Inc. Method and system for optimizing queries in a multi-tenant database environment
CN101916280A (zh) * 2010-08-17 2010-12-15 上海云数信息科技有限公司 并行计算系统及按查询内容进行负载均衡的方法
US20120331010A1 (en) * 2011-06-24 2012-12-27 Douglass Adam Christie Systems And Methods For Performing A Query On A Distributed Database
CN102254031A (zh) * 2011-08-03 2011-11-23 无锡浙潮科技有限公司 基于批处理请求的Microsoft SQL Server数据库集群
CN104054073B (zh) 2011-11-15 2018-10-30 起元科技有限公司 数据分群、分段、以及并行化
US9110947B1 (en) * 2011-12-30 2015-08-18 Teradata Us, Inc. Column-oriented task execution in a row-partitioned database system
US9928287B2 (en) * 2013-02-24 2018-03-27 Technion Research & Development Foundation Limited Processing query to graph database
CN103123652A (zh) * 2013-03-14 2013-05-29 曙光信息产业(北京)有限公司 数据查询方法和集群数据库系统
US9235618B2 (en) * 2013-04-06 2016-01-12 Citrix Systems, Inc. Systems and methods for caching of SQL responses using integrated caching
US9063710B2 (en) 2013-06-21 2015-06-23 Sap Se Parallel programming of in memory database utilizing extensible skeletons
US9720992B2 (en) * 2013-11-22 2017-08-01 Sap Se DML replication with logical log shipping
US10496642B2 (en) * 2014-10-03 2019-12-03 The Regents Of The University Of Michigan Querying input data
EP3076308B1 (en) * 2015-03-31 2017-11-29 Sap Se Telecommunication method for handling a database query in a telecommunication system
CN106326309B (zh) * 2015-07-03 2020-02-21 阿里巴巴集团控股有限公司 一种数据查询方法和装置
US10642833B2 (en) * 2015-08-11 2020-05-05 Sybase, Inc. Accelerating database queries using composite union enumeration
US10678792B2 (en) * 2015-10-23 2020-06-09 Oracle International Corporation Parallel execution of queries with a recursive clause
CN107451154B (zh) * 2016-05-31 2021-03-30 华为技术有限公司 一种数据表的处理方法、装置及系统
CN106339432A (zh) * 2016-08-19 2017-01-18 上海巨数信息科技有限公司 一种按查询内容进行负载均衡的系统及其方法
CN106372177B (zh) * 2016-08-30 2019-09-27 东华大学 支持混合数据类型的关联查询及模糊分组的查询扩展方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007531087A (ja) 2004-02-21 2007-11-01 データレグロ,インコーポレーテッド 無共有型並列データベースシステム及びデータベース管理方法
JP2013152512A (ja) 2012-01-24 2013-08-08 Mitsubishi Electric Corp 情報処理装置及び情報処理方法及びプログラム
US20140114994A1 (en) 2012-10-24 2014-04-24 Marklogic Corporation Apparatus and Method for Securing Preliminary Information About Database Fragments for Utilization in Mapreduce Processing
JP2014232483A (ja) 2013-05-30 2014-12-11 富士通株式会社 データベースシステム、検索方法およびプログラム
US20160092542A1 (en) 2014-09-26 2016-03-31 Oracle International Corporation System and method for dynamic database split generation in a massively parallel or distributed database environment

Also Published As

Publication number Publication date
US11789957B2 (en) 2023-10-17
EP3734476A1 (en) 2020-11-04
CN110019274A (zh) 2019-07-16
US20210097075A1 (en) 2021-04-01
JP2021508867A (ja) 2021-03-11
WO2019128978A1 (zh) 2019-07-04
EP3734476A4 (en) 2021-09-15
CN110019274B (zh) 2023-09-26

Similar Documents

Publication Publication Date Title
US10831562B2 (en) Method and system for operating a data center by reducing an amount of data to be processed
US9152669B2 (en) System and method for distributed SQL join processing in shared-nothing relational database clusters using stationary tables
US9031925B2 (en) Hadoop access via hadoop interface services based on function conversion
US9576026B2 (en) System and method for distributed SQL join processing in shared-nothing relational database clusters using self directed data streams
US20130031229A1 (en) Traffic reduction method for distributed key-value store
CN105069149A (zh) 一种面向结构化列式数据的分布式并行数据导入方法
WO2017005094A1 (zh) 一种数据查询方法和装置
CN108900626B (zh) 一种云环境下数据存储方法、装置及系统
WO2018058998A1 (zh) 一种数据加载方法、终端和计算集群
EP3373158B1 (en) Data storage method and coordinator node
CN113111038B (zh) 文件存储方法、装置、服务器及存储介质
CN110941602B (zh) 数据库的配置方法、装置、电子设备及存储介质
CN111159219B (zh) 一种数据管理方法、装置、服务器及存储介质
JP7440007B2 (ja) データベースをクエリするためのシステム、方法および装置
TW202008763A (zh) 資料處理方法和裝置、用戶端
US20190228009A1 (en) Information processing system and information processing method
CN114218267A (zh) 查询请求异步处理方法、装置、计算机设备、存储介质
CN104572809A (zh) 一种分布式关系数据库自由扩展方法
US10210200B2 (en) Action-based routing of a transaction in an online transaction processing system
CN103559247A (zh) 一种数据业务处理方法及装置
CN111400301A (zh) 一种数据查询方法、装置及设备
CN111858656A (zh) 一种基于分布式架构的静态数据的查询方法和设备
JP5464017B2 (ja) 分散メモリデータベースシステム、データベースサーバ、データ処理方法およびそのプログラム
Neumann et al. Combining query performance with data integrity in the cloud: a hybrid cloud storage framework to enhance data access on the Windows Azure platform
KR101681651B1 (ko) 데이터베이스 관리 시스템 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211028

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221122

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230418

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230725

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231109

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20231117

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240116

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240131

R150 Certificate of patent or registration of utility model

Ref document number: 7440007

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150