JP2018526746A - データベーストランザクションを最適化するための方法および装置 - Google Patents

データベーストランザクションを最適化するための方法および装置 Download PDF

Info

Publication number
JP2018526746A
JP2018526746A JP2018511371A JP2018511371A JP2018526746A JP 2018526746 A JP2018526746 A JP 2018526746A JP 2018511371 A JP2018511371 A JP 2018511371A JP 2018511371 A JP2018511371 A JP 2018511371A JP 2018526746 A JP2018526746 A JP 2018526746A
Authority
JP
Japan
Prior art keywords
database
database operation
transaction
operation command
command
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.)
Granted
Application number
JP2018511371A
Other languages
English (en)
Other versions
JP6795259B2 (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 JP2018526746A publication Critical patent/JP2018526746A/ja
Application granted granted Critical
Publication of JP6795259B2 publication Critical patent/JP6795259B2/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/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • G06F16/24545Selectivity estimation or determination
    • 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/2308Concurrency control
    • G06F16/2315Optimistic concurrency control
    • 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
    • G06F16/24539Query rewriting; Transformation using cached or materialised query results
    • 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
    • G06F16/24547Optimisations to support specific applications; Extensibility of optimisers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Operations Research (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本開示は、データベースオペレーション方法および装置を提供する。方法は、アプリケーションサーバにより対象トランザクションを実行する処理の間、アプリケーションサーバにより対象トランザクションについて実行されたデータベースオペレーションコマンドを順次取得する段階と、データベースオペレーションコマンドに対して予測アルゴリズムを実行する段階と、予測実行結果をアプリケーションサーバに戻し、これにより、アプリケーションサーバが、次に実行されるべきデータベースオペレーションコマンドを決定する段階と、データベースオペレーションコマンドと、予測アルゴリズムの実行から生成された予測実行データとをローカルに記録する段階と、対象トランザクションに関するトランザクションコミットコマンドを取得する場合、アプリケーションサーバに対応するデータベースを制御して、対象トランザクションをローカルに記録されたデータベースオペレーションコマンドおよび予測実行データに従って実際に実行する段階とを備える。開示される実施形態は、トランザクション実行効率を向上させ、トランザクションスループットを増加させる。

Description

関連出願の相互参照 本願は、2015年9月8日に出願された、「データベースオペレーション方法および装置」という発明の名称の中国特許出願第201510563745.3号および2016年8月30日に出願された、「データベースオペレーション方法および装置」という発明の名称のPCT出願第PCT/CN16/97268号の優先権を主張する。これらの出願は両方とも、参照によりそれらの全体が本明細書に組み込まれている。
開示される実施形態は、データベース分野に関し、特に、データベーストランザクションの最適化に関する。
データベース「トランザクション」とは、全てであるか、または全てではないかのいずれであるかを問わず、単一の論理作業単位として実行される一連のデータベースオペレーションを指す。トランザクションは、構造化照会言語(SQL)ステートメントなど、一連のデータベースオペレーションコマンドから成る。これらのデータベースオペレーションコマンドは、条件付きステートメントおよびジャンプなどのロジックを有する。これは、1回の実行の間、トランザクションにおけるいくつかのデータベースオペレーションコマンドがスキップされ得、実行されない可能性があることを意味する。しかしながら、現在のシステムでは、トランザクションに関して実行される必要があるデータベースオペレーションコマンドは、事前に取得され得ない。データベースオペレーションコマンドは、データベースに対してオペレーションを実行するために順次実行されるトランザクションのロジックおよびステートメントに従って、実行の間にのみ決定され得る。このトランザクション実行技術は効率がより低く、トランザクションスループットが比較的低い。
開示される実施形態の様々な態様が、トランザクション実行効率を向上させるための、かつ、トランザクションスループットを増加させるためのデータベースオペレーション方法および装置を提供する。
開示される実施形態の一態様は、データベースオペレーション方法であって、アプリケーションサーバにより対象トランザクションを実行する処理の間、アプリケーションサーバにより対象トランザクションについて実行されたデータベースオペレーションコマンドを順次取得する段階と、データベースオペレーションコマンドに対して予測アルゴリズムを実行する段階と、
予測実行結果をアプリケーションサーバに戻し、これにより、アプリケーションサーバが、次に実行されるべきデータベースオペレーションコマンドを決定する段階と、データベースオペレーションコマンドと、予測アルゴリズムの実行から生成された予測実行データとをローカルに記録する段階と、対象トランザクションに関するトランザクションコミットコマンドを取得する場合、アプリケーションサーバに対応するデータベースを制御して、ローカルに記録されたデータベースオペレーションコマンドおよび予測実行データに従って対象トランザクションを実際に実行する段階とを備える方法を提供する。
本開示の別の態様は、データベースオペレーション装置であって、アプリケーションサーバにより対象トランザクションを実行する処理の間、アプリケーションサーバにより対象トランザクションについて実行されたデータベースオペレーションコマンドを順次取得するように構成される取得モジュールと、データベースオペレーションコマンドに対して予測アルゴリズムを実行し、予測実行結果をアプリケーションサーバに戻し、これにより、アプリケーションサーバが、次に実行されるべきデータベースオペレーションコマンドを決定し、かつ、データベースオペレーションコマンドと、予測アルゴリズムの実行から生成された予測実行データとをローカルに記録するように構成される予測実行モジュールと、対象トランザクションに関するトランザクションコミットコマンドを取得する場合、アプリケーションサーバに対応するデータベースを制御して、ローカルに記録されたデータベースオペレーションコマンドおよび予測実行データに従って対象トランザクションを実際に実行するように構成される制御実行モジュールとを備える装置を提供する。
本開示において、データベースオペレーション装置は、アプリケーションサーバと共に動作する。アプリケーションサーバが対象トランザクションを実行する場合、対象トランザクションについて実行されるべき全てのデータベースオペレーションコマンドと、予測実行データとを事前に取得および記録するために、予測実行プロセスが追加され、それにより、トランザクションのための実際の実行についての条件が与えられる。次に、記録されたデータベースオペレーションコマンドおよび予測実行データに従って、アプリケーションサーバに対応するデータベースを制御して、対象トランザクションに関する実行を実際にし、それにより、実行効率を向上させ、さらに、トランザクションスループットを増加させる。
開示される実施形態における技術的解決手段をより明確に示すべく、実施形態または現在のシステムの説明において用いられる図面が、以下の説明において簡潔に紹介される。以下に説明される図面は、本開示のいくつかの実施形態に過ぎず、当業者であれば、創造的な努力なしに、これらの図面から他の図面をさらに導出し得る。
現在のシステムにより用いられるデータベースアプリケーションシステムのブロック図である。
本開示のいくつかの実施形態に従ったデータベースアプリケーションシステムのブロック図である。
本開示のいくつかの実施形態に従ったデータベースオペレーション方法を示すフロー図である。
本開示のいくつかの実施形態に従ったデータベースオペレーション装置の機能ブロック図である。
開示される実施形態の目的、技術的実装および利点をより明確にすべく、開示される実施形態の技術的実装が、図面を参照して以下に明確かつ完全に説明される。説明される実施形態は、実施形態の全てではなく、実施形態の一部である。図示される実施形態に基づいて、当業者が創造的な努力をしないで実現する全ての他の実施形態が、本開示の範囲内に入る。
図1は、現在のシステムにより用いられるデータベースアプリケーションシステムのブロック図である。
図1に示されるように、システムは、アプリケーションサーバ10およびデータベース20を含む。データベース20の数は1または複数であり得る。1つのデータベース20のみが、図1において例として用いられる。トランザクション方式でデータベース20にアクセスする場合、アプリケーションサーバ10は、トランザクションロジックを実行して、データベース20上で、トランザクションについてのデータベースオペレーションコマンドを順次適用する。そのようなトランザクション実行手段は効率がより低く、トランザクションスループットが比較的低い。
現在のシステムにおける欠陥を考慮して、開示される実施形態は、図2に示されるように、新しいデータベースアプリケーションシステムを提供する。
図示されるシステムは、アプリケーションサーバ10とデータベース20との間にデータベースオペレーション装置30を加えている。データベースオペレーション装置30は、本明細書において提供されるデータベースオペレーション方法を実行して、新しいトランザクション実行ロジックを実装するように構成される。つまり、まず予測アルゴリズムをトランザクションに対して実行して、トランザクションについて実行される必要があるデータベースオペレーションコマンドを事前に取得し、実行経路を予測し、次に、データベースオペレーションコマンドと、予測の実行を介して取得された予測実行データとに基づいて、データベース20上でトランザクションを実際に実行する。方法は、論じられるように、トランザクション実行効率を向上させ、トランザクションスループットを増加させる。本明細書において用いられるように、トランザクションスループットとは、単位時間当たりのトランザクション処理数を指す。
データベースオペレーション装置30は、実際にはロジック処理装置であり、アプリケーションサーバ10とデータベース20との間に別々に配置され得ることに留意すべきである。いくつかの実施形態において、データベースオペレーション装置30は、アプリケーションサーバ10またはデータベース20のいずれかに配置され得る。
以下の実施形態は、開示される実施形態の技術的解決手段についての方法のフローを具体的に示す。
図3は、本開示のいくつかの実施形態に従ったデータベースオペレーション方法を示すフロー図である。図3に示されるように、方法は、以下の段階を含む。
段階301。アプリケーションサーバにより対象トランザクションを実行する処理の間、アプリケーションサーバにより対象トランザクションについて実行されたデータベースオペレーションコマンドを順次取得する。
段階302。データベースオペレーションコマンドに対して予測アルゴリズムを実行し、予測実行結果をアプリケーションサーバに戻し、これにより、アプリケーションサーバが、次に実行されるべきデータベースオペレーションコマンドを決定し、かつ、データベースオペレーションコマンドと、予測アルゴリズムの実行から生成された予測実行データとをローカルに記録する。
段階303。対象トランザクションに関するトランザクションコミットコマンドを取得する場合、アプリケーションサーバに対応するデータベースを制御して、ローカルに記録されたデータベースオペレーションコマンドおよび予測実行データに従って対象トランザクションを実際に実行する。
まず、説明の便宜のために、アプリケーションサーバにより実行される必要があるトランザクションは、本実施形態において、対象トランザクションと称される。対象トランザクションは、データベース上でオペレーションを実行するためのオペレーションコマンドを含み、データベースオペレーションコマンド以外に、トランザクション開始コマンド、トランザクションコミットコマンドおよびトランザクションロールバックコマンドなど、対象トランザクションに関する実行ステータスを制御するためのいくつかの制御コマンドをさらに含む。これらのコマンドは、データベース言語で書き込まれるステートメントであり得る。データベース言語に応じて、これらのコマンドは、異なる言語で書き込まれ得る。例えば、SQLが用いられる場合、上記のデータベースオペレーションコマンドおよび制御コマンドは、実際には一連のSQLステートメントである。
アプリケーションサーバは、対象トランザクション全体の実行ロジックを制御し、対象トランザクションは、既存の方法に従って実行され得る。データベースオペレーション装置は、アプリケーションサーバにより対象トランザクションを実行する処理の間、アプリケーションサーバにより対象トランザクションについて実行されたデータベースオペレーションコマンドを順次取得する。
一実施形態において、アプリケーションサーバは、データベースにアクセスすべく、既存の方式に従って、データベースオペレーションコマンドをデータベースに対して送信する。データベースオペレーション装置は、アプリケーションサーバによりデータベースに対して送信されたデータベースオペレーションコマンドをインタセプトすべく、アプリケーションサーバとデータベースとの間の通信をモニタし得る。
別の実施形態において、アプリケーションサーバの処理ロジックは、わずかに修正され、最初にデータベースオペレーションコマンドをデータベースに対して送信するロジックは、データベースオペレーションコマンドをデータベースオペレーション装置に送信するように変更される。本実施形態において、データベースオペレーション装置は、アプリケーションサーバによりアクティブに発行されたデータベースオペレーションコマンドを受信し得る。
対象トランザクションが明示的なトランザクションである場合、対象トランザクションについての第1コマンドが、「トランザクションを開始する」などのトランザクション開始コマンドであろうことに留意すべきである。この例において、アプリケーションサーバにより実行されたデータベースオペレーションコマンドを取得する前に、データベースオペレーション装置は、対象トランザクションについてアプリケーションサーバによりデータベースに対して送信されたトランザクション開始コマンドをインタセプトし得る。次に、データベースオペレーション装置は、(トランザクション開始コマンドに従って)対象トランザクションが実行される必要があることを決定し得る。代替的に、アプリケーションサーバにより実行されたデータベースオペレーションコマンドを取得する前に、データベースオペレーション装置は、アプリケーションサーバによりアクティブに発行されたトランザクション開始コマンドを受信し得、トランザクション開始コマンドに従って、対象トランザクションが実行される必要があることを決定し得る。対象トランザクションが黙示的なトランザクションである場合、対象トランザクションの第1コマンドは、データベースオペレーションコマンドであろう。この場合、トランザクション開始コマンドを取得する段階は含まれない。
アプリケーションサーバにより実行されたデータベースオペレーションコマンドを取得した後に、データベースオペレーション装置は、取得したデータベースオペレーションコマンドに対して予測アルゴリズムを実行し、予測実行結果をアプリケーションサーバに戻し、これにより、アプリケーションサーバが、次に実行されるべきデータベースオペレーションコマンドを決定し得る。予測実行結果により、対象トランザクションの実行経路が決定される。本明細書において、実行経路とは、データベースオペレーションコマンド間のジャンプロジックを指す。予測実行結果をアプリケーションサーバに戻すことにより、アプリケーションサーバにより対象トランザクション全体の実行ロジックを制御するという目的が実現される。
加えて、データベースオペレーション装置はさらに、取得したデータベースオペレーションコマンドと、データベースオペレーションコマンドに対する予測アルゴリズムの実行を介して生成された予測実行データとをローカルに記録する必要がある。予測実行データとは主に、データベースオペレーションコマンドに対して予測アルゴリズムを実行する処理におけるいくつかのデータを指す。
例えば、データベースオペレーション装置は、メモリバンクをローカルに確立し得、取得したデータベースオペレーションコマンドと、予測実行データとをメモリバンクに格納し得る。
データベースオペレーションコマンドによりデータベース上で実行されるオペレーションは主に、データベースにおけるデータへのアクセスである。データベースオペレーションコマンドのためのデータ環境がシミュレートされ得、シミュレートされたデータ環境に基づいて、データベースオペレーションコマンドに対して予測アルゴリズムを実行する。そのようなことに基づいて、データベースオペレーションコマンドに対して予測アルゴリズムを実行する方法は、ローカルに確立されたメモリバンクにおいて、データベースオペレーションコマンドにより要求されたデータ環境をシミュレートする段階と、シミュレートされたデータ環境に基づいて、データベースオペレーションコマンドに対して予測アルゴリズムを実行する段階とを含み得る。
さらに、ローカルに確立されたメモリバンクにおいて、データベースオペレーションコマンドにより要求されたデータ環境をシミュレート段階と、シミュレートされたデータ環境に基づいて、データベースオペレーションコマンドに対して予測アルゴリズムを実行する段階とは、取得したデータベースオペレーションコマンドを読み取りコマンドおよび書き込みコマンドに分割する段階と、実データベース上で読み取りコマンドを実行する段階とを含む。つまり、データベースにおける読み取りコマンドを実行して、読み取りデータセット(ReadSet)を取得し、読み取りデータセットをローカルメモリバンクに格納して、データベースオペレーションコマンドにより要求されたデータ環境をシミュレートする。次に、方法は、メモリバンクに対して書き込みコマンドを適用して、データベースオペレーションコマンドに対して予測アルゴリズムを実行することを可能にし得る。つまり、方法は、メモリバンクにおいて書き込みコマンドを実行して、読み取りデータセットにおける関連データを更新またはクエリするなど、読み取りデータセットを修正する。書き込みコマンドを実行して読み取りデータセットを修正することにより、結果データセット(affectRowInMemdb)が生成され得る。結果データセットは、予測実行結果を含む。
予測アルゴリズムを実行する上記処理において、データベースオペレーション装置は、読み取りコマンドにより読み取られた読み取りデータセットと、書き込みコマンドを実行することにより生成された結果データセットとをローカルに記録し得る。このことを考慮して、予測実行データは、読み取りデータセットおよび結果データセットを含み得るか、またはデータベースにおける実際の対象トランザクションについて有利な効果を生じさせ得るデータなど、読み取りデータセットにおけるいくつかのデータと、結果データセットにおけるいくつかのデータとを含み得る。そのようなデータの例には、第1レベルインデックス、第2レベルインデックスまたは1次キー値など、いくつかの値の様々なインデックスが含まれる。
データベースオペレーション装置は、順次取得したデータベースオペレーションコマンドに対してそれぞれ予測アルゴリズムを実行し、データベースオペレーションコマンドおよび対応する予測実行データを取得し、データオペレーションコマンドおよび対応する予測実行データをメモリバンクに格納する。
対象トランザクションについてのトランザクションコミットコマンドを取得する(つまり、アプリケーションサーバがトランザクションコミットコマンドを実行する)場合、データベースオペレーション装置は、ローカルに記録されたデータベースオペレーションコマンドおよび予測実行データに従ってアプリケーションサーバに対応するデータベースを制御して、対象トランザクションを実際に実行し得る。
上記事項を考慮して、データベースオペレーション装置は、アプリケーションサーバと共に動作する。アプリケーションサーバが対象トランザクションに関する実行をする場合、対象トランザクションについて実行されるべき全てのデータベースオペレーションコマンドと、予測実行データとを事前に取得および記録するために、予測実行プロセスが追加され、それにより、トランザクションのための実際の実行についての条件が与えられる。次に、記録されたデータベースオペレーションコマンドおよび予測実行データに従って対象トランザクションが実際に実行される場合、関連データ情報が事前に取得され得、コマンド間のジャンプが低減され得る。それにより、実行効率が向上し、トランザクションスループットが増加する。
アプリケーションサーバに対応するデータベースを制御して、ローカルに記録されたデータベースオペレーションコマンドおよび予測実行データに従って対象トランザクションを実際に実行する一実施形態は、ローカルに記録されたデータベースオペレーションコマンドをデータベースオペレーション装置によりデータベースに対して発行して、ローカルに記録されたデータベースオペレーションコマンドを実行するようデータベースに命令すること、データベースにより戻されたデータベースオペレーションコマンドの実際の実行結果を受信すること、次に、データベースオペレーションコマンドの実際の実行結果を予測実行結果と比較することを含む。実際の実行結果が予測実行結果と同じだった場合、トランザクションコミットコマンドをデータベースに対して発行し、これにより、データベースが対象トランザクションをコミットする。実際の実行結果が予測実行結果とは異なっていた場合、トランザクションロールバックコマンドをデータベースに対して発行し、これにより、データベースが対象トランザクションをロールバックする。
上記実施形態において、トランザクションの原子性が、実際の実行結果と予測実行結果との比較を介して考慮される。トランザクションの実行におけるエラーが回避され得、トランザクションが正常に実行される可能性が向上し得る。
さらに、現在のシステムでは、トランザクションにより実行される必要があるデータベースオペレーションコマンドの全てが事前に認識され得るわけではないので、データベースオペレーションコマンドは、トランザクションの実行ロジックに従って順次実行されざるを得ない。これは、アプリケーションサーバとデータベースとの間の頻繁なやり取りをもたらす。上記のことが遠隔的に行われるシナリオでは、大量のネットワークリソースが消費される。しかしながら、本実施形態において、対象トランザクションにより実行される必要がある全てのデータベースオペレーションコマンドは、予測実行処理を通じて、すなわち、ローカルに記録されたデータベースオペレーションコマンドを通じて、事前に取得される。従って、ローカルに記録されたデータベースオペレーションコマンドは、ローカルに記録されたデータベースオペレーションコマンドをデータベースに対して発行して、ローカルに記録されたデータベースオペレーションコマンドを実行するようデータベースに命令する処理において同時に(または一緒に)データベースに対して発行され得、それにより、ネットワークリソースが節約される。加えて、いくつかの並列データベースオペレーションコマンドについて、データベースは、並列オペレーションを実行し得、それにより、トランザクション実行効率をさらに向上させる。
さらに、ローカルに記録されたデータベースオペレーションコマンドおよびローカルに記録された予測実行データの全てが、データベースに対して一緒に発行され得る。
さらに、アプリケーションサーバに対応するデータベースを制御して、メモリバンクに格納されたデータベースオペレーションコマンドおよび予測実行データに従って対象トランザクションを実際に実行する一実施形態において、データベースオペレーション装置は、ローカルに記録されたデータベースオペレーションコマンドに従って、対象トランザクションがスタンドアロントランザクションであるかどうかを判断し得る。判断結果が肯定的であった場合、スタンドアロントランザクション処理ロジックを用いてデータベースを制御して、ローカルに記録されたデータベースオペレーションコマンドおよび予測実行データに従って対象トランザクションを実際に実行する。判断結果が否定的であった場合、分散トランザクション処理ロジックを用いてデータベースを制御して、ローカルに記録されたデータベースオペレーションコマンドおよび予測実行データに従って対象トランザクションを実際に実行する。
対象トランザクションがスタンドアロントランザクションであるか、または分散トランザクションであるかは、予測実行プロセスにおいて取得されたデータベースオペレーションコマンドに基づいて判断され得る。例えば、ローカルに記録されたデータベースオペレーションコマンドが適用されるオブジェクトが同じ物理デバイスであるかどうかが判断され得る。判断結果が肯定的であった場合、対象トランザクションはスタンドアロントランザクションであると判断され得る。判断結果が否定的であった場合、対象トランザクションは分散トランザクションであると判断され得る。
分散トランザクションの処理ロジックは、スタンドアロントランザクションのものとは異なる。スタンドアロントランザクションの処理ロジックは、読み取り/書き込みロック等のコマンド発行を伴わないなど、比較的単純である。従って、リソースの消費が比較的少ない。そのようなことに基づいて、本実施形態は、対象トランザクションがスタンドアロントランザクションであるかどうかを判断し、対象トランザクションがスタンドアロントランザクションであると判断した場合、スタンドアロントランザクションの処理ロジックを続行し、それにより、処理効率を向上させ、処理コストを節約する。
一実施形態において、データベースオペレーション装置が対象トランザクションについてのトランザクションロールバックコマンドを取得した場合(つまり、アプリケーションサーバがトランザクションロールバックコマンドを実行した場合)、ローカルメモリバンクが直接クリアされて、ロールバックオペレーションを可能にし得る。この場合、対象トランザクションは実際にはデータベースにおいて実行されないので、データベースは、ロールバックオペレーションを実行する必要がない。このことを考慮して、この場合、本実施形態の方法を用いることにより、トランザクション実行効率も向上させ得る。
開示される実施形態の技術的解決手段の動作フローを詳細に説明するために、以下の説明における例として、在庫削減トランザクションが用いられる。
在庫削減トランザクションのSQLコードは以下のとおりであり、括弧内のテキストは注記である。
begin transaction[トランザクションを開始する]
select * from inventory where itemId = ? for update;[アイテムidを用いて、現在の在庫を確認し、ロックする]
if (item.inventory > 0)
item.inventory−−;
update inventory set item.inventory =
$item.inventory where itemId = ?;
commit;
else
rollback;[現在の在庫が0よりも大きい場合、アイテム在庫を削減および更新してコミットし、そうでなければ、ロールバックする]
実際の実行処理の間、アプリケーションサーバは、在庫削減トランザクションのロジック全体を担い、データベースオペレーション装置(または実行サーバと称され得る)は、アプリケーションサーバにより実行されたbegin transactionと、実行される必要があるSQLステートメントと、commit/rollbackコマンドとのみを取得し得る。
まず、トランザクションの開始後、データベースオペレーション装置は、メモリバンクをローカルに確立する。
「select * from inventory where itemId = ? for update」というSQLステートメントを取得する場合、データベースオペレーション装置は、当該SQLステートメントをデータベースにおいて直接検索し、クエリ結果(つまり、処理されるべくクエリされたデータ、現在の在庫)をローカルメモリバンクに記録し、全ての問い合わせ結果をアプリケーションサーバに戻す。
当該SQLステートメントはクエリステートメントであるので、当該ステートメントを分割すると同じ結果をもたらさないことに留意すべきである。オペレーションを簡略化すべく、クエリステートメントは分割される必要がない可能性がある。
データベースオペレーション装置により戻されたクエリ結果を受信した後、アプリケーションサーバは、クエリ結果が0よりも大きいかどうかを判断し、判断結果が肯定的であった場合、現在の在庫を削減し、当該ステートメントの更新を実行する。つまり、「update inventory set item.inventory = $item.inventory where itemId = ?」について判断結果が否定的であった場合、ロールバックステートメントを実行する。
データベースオペレーション装置がロールバックステートメントを受信した場合、ローカルメモリバンクはクリアされる。この場合、トランザクションはデータベースにおいて実行されないので、データベースは、ロールバックオペレーションを実行する必要がない。
データベースオペレーション装置が更新ステートメント、すなわち、「update inventory set item.inventory = ? where itemId = ?」を受信した場合、データベースオペレーション装置は、当該SQLステートメントを読み取りデータベースコマンド、すなわち、「select * from inventory where itemId = ?」と、書き込みデータベースコマンド、すなわち、「update inventory set item.inventory = ? where itemId = ?」とに分割する。次に、当該装置は、読み取りデータセットを取得するために「select * from inventory where itemId = ?」というステートメントをデータベースに送信し、読み取りデータセットにおけるデータをローカルメモリバンクに書き込み、次に、結果データセットを取得すべく、かつ、当該結果データセットの実行結果をアプリケーションサーバに戻すべく、「update inventory set item.inventory = ? where itemId = ?」というステートメントに基づいて、ローカルメモリバンクにおいて更新オペレーションを実行する。次に、アプリケーションサーバは、コミットコマンドを実行する。結果データセットおよび読み取りデータセットにおけるデータは、予測実行データを形成する。
コミットコマンドを取得する場合、データベースオペレーション装置は、SQLステートメントと、メモリバンクに格納された予測実行データとに基づいて、データベースにおいて在庫削減トランザクションを実行する。この時、トランザクション実行処理が実際に行われる。
好ましくは、データベースオペレーション装置は、メモリバンクにおける全てのSQLステートメントをデータベースに一度にコミットし得、データベースは、これに基づいて実行をし、SQLステートメントを伝送することにより、ネットワークリソースコストを節約する。
実行結果もこの実際の実行から戻され、予測実行結果が実際の実行結果と比較され得る。比較結果が、2つの結果は同じであるということであった場合、このトランザクションは、データベースにおいてコミットされ得る。比較結果が、2つの結果は異なるということであった場合、当該コミットは失敗とみなされる。この場合、トランザクションは、データベースにおいて実際には実行およびコミットされないので、要求全体が単にロールバックされ得、アプリケーションサーバは、再コミットする。
実行される必要がある全てのSQLステートメントが、全てのスライス条件および数値インデックスなど、それらの対応する予測実行データと共に、上記の予測の実行から既に取得されている。これらのデータは、トランザクションがスタンドアロントランザクションであるかどうかを事前に判断するのに十分なものである。これに基づいて、対応するトランザクションロジックが用いられ得、リソースの節約に役立つ。
前述の方法の実施形態の各々を簡潔に説明すべく、方法の実施形態の全てが一連の動作の組み合わせとして表されることに留意すべきである。当業者であれば、本開示は、説明される一連の動作により限定されないことを認識しているはずである。ある段階は、開示される実施形態に従って、異なる順序で適用され得るか、または同時に実行され得る。第2に、当業者であれば、本明細書において説明される全ての実施形態は、例示的な実施形態に属することも認識しているはずである。関連する動作およびモジュールは、本開示に必ずしも必要ではない。
実施形態において、各実施形態の説明には独自の着目点がある。また、ある実施形態において詳細に説明されないものの参照は、他の実施形態の関連する説明を参照することによりなされ得る。
図4は、本開示のいくつかの実施形態に従ったデータベースオペレーション装置の機能ブロック図である。図4に示されるように、装置は、取得モジュール41と、予測実行モジュール42と、制御実行モジュール43とを含む。
取得モジュール41は、アプリケーションサーバにより対象トランザクションを実行する処理の間、アプリケーションサーバにより対象トランザクションについて実行されたデータベースオペレーションコマンドを順次取得するように構成される。
予測実行モジュール42は、データベースオペレーションコマンドに対して予測アルゴリズムを実行し、予測実行結果をアプリケーションサーバに戻し、これにより、アプリケーションサーバが、次に実行されるべきデータベースオペレーションコマンドを決定し、かつ、データベースオペレーションコマンドと、予測アルゴリズムの実行から生成された予測実行データとをローカルに記録するように構成される。
制御実行モジュール43は、対象トランザクションに関するトランザクションコミットコマンドを取得する場合、アプリケーションサーバに対応するデータベースを制御して、メモリバンクに格納されたデータベースオペレーションコマンドおよび予測実行データに従って対象トランザクションを実際に実行するように構成される。
一実施形態において、取得モジュール41は具体的には、アプリケーションサーバによりデータベースに対して送信されたデータベースオペレーションコマンドをインタセプトするように、またはアプリケーションサーバによりアクティブに発行されたデータベースオペレーションコマンドを受信するように構成される。
一実施形態において、取得モジュール41はさらに、アプリケーションサーバにより対象トランザクションについて実行されたデータベースオペレーションコマンドを取得する前に、対象トランザクションについてアプリケーションサーバによりデータベースに対して送信されたトランザクション開始コマンドをインタセプトするように、またはアプリケーションサーバによりアクティブに発行された対象トランザクションについてのトランザクション開始コマンドを受信するように構成される。
一実施形態において、予測実行モジュール42は具体的には、ローカルに確立されたメモリバンクにおいて、データベースオペレーションコマンドにより要求されたデータ環境をシミュレートし、シミュレートされたデータ環境に基づいて、データベースオペレーションコマンドに対して予測アルゴリズムを実行するように構成される。
さらに、予測実行モジュール42は具体的には、データベースオペレーションコマンドを読み取りコマンドおよび書き込みコマンドに分割し、データベースにおいて読み取りコマンドを実行して、読み取りデータセットを取得し、読み取りデータセットをメモリバンクに格納して、データベースオペレーションコマンドのためのデータ環境をシミュレートし、かつ、メモリバンクにおいて書き込みコマンドを実行して、読み取りデータセットを修正するように構成される。
一実施形態において、制御実行モジュール43は具体的には、ローカルに記録されたデータベースオペレーションコマンドをデータベースに対して発行して、データベースオペレーションコマンドを実行するようデータベースに命令し、データベースにより戻されたデータベースオペレーションコマンドの実際の実行結果を受信し、実際の実行結果が予測実行結果と同じだった場合、トランザクションコミットコマンドをデータベースに対して発行し、これにより、データベースが対象トランザクションをコミットし、かつ、実際の実行結果が予測実行結果とは異なっていた場合、トランザクションロールバックコマンドをデータベースに対して発行し、これにより、データベースが対象トランザクションをロールバックするように構成される。
トランザクションの原子性は、制御実行モジュール43に実際の実行結果を予測実行結果と比較させることにより考慮される。トランザクションの実行におけるエラーが回避され得、トランザクションが正常に実行される可能性が向上し得る。
さらに、制御実行モジュール43は具体的には、ローカルに記録されたデータベースオペレーションコマンドをデータベースに対して発行する処理において、ローカルに記録されたデータベースオペレーションコマンドをデータベースに対して同時に発行して、ローカルに記録されたデータベースオペレーションコマンドを実行するようデータベースに命令し、それによりネットワークリソースを節約するように構成される。
一実施形態において、制御実行モジュール43は具体的には、ローカルに記録されたデータベースオペレーションコマンドに従って、対象トランザクションがスタンドアロントランザクションであるかどうかを判断し、判断結果が肯定的だった場合、スタンドアロントランザクション処理ロジックを用いてデータベースを制御して、ローカルに記録されたデータベースオペレーションコマンドおよび予測実行データに従って対象トランザクションを実際に実行するように、または判断結果が否定的だった場合、分散トランザクション処理ロジックを用いてデータベースを制御して、ローカルに記録されたデータベースオペレーションコマンドおよび予測実行データに従って対象トランザクションを実際に実行するように構成される。
分散トランザクションの処理ロジックは、スタンドアロントランザクションのものとは異なる。スタンドアロントランザクションの処理ロジックは、読み取り/書き込みロック等のコマンド発行を伴わないなど、比較的単純である。従って、リソースの消費が比較的少ない。そのようなことに基づいて、制御実行モジュール43は、対象トランザクションがスタンドアロントランザクションであるかどうかを判断し、対象トランザクションがスタンドアロントランザクションであると判断した場合、スタンドアロントランザクションの処理ロジックを続行し、それにより、処理効率を向上させ、処理コストを節約する。
一実施形態において、予測実行モジュール42はさらに、対象トランザクションに関するトランザクションロールバックコマンドが取得された場合、メモリバンクをクリアするなど、ローカルに記録されたデータベースオペレーションコマンドおよび予測実行データを削除するように構成される。
本実施形態において提供されるデータベースオペレーション装置は、アプリケーションサーバとデータベースとの間に別々に配置され得るか、またはアプリケーションサーバまたはデータベースに配置され得る。
本実施形態において提供されるデータベースオペレーション装置は、アプリケーションサーバと共に動作する。アプリケーションサーバが対象トランザクションに関する実行をする場合、予測実行プロセスが追加される。予測の実行において、対象トランザクションの実行経路、すなわち、実際に実行されるデータベースオペレーションコマンドが事前に取得され得、トランザクションの実際の実行についての条件を与えるべく、予測の実行から生成された予測実行データが記録される。次に、記録されたデータベースオペレーションコマンドおよび予測実行データに従って対象トランザクションが実際に実行される場合、関連データ情報が予測実行データに基づいて事前に取得され得、コマンド間のジャンプが低減され得、それにより、実行効率が向上し、トランザクションスループットが増加する。
当業者であれば、簡便かつ簡潔な説明のために、上述のシステム、デバイスおよびユニットの特定の作業プロセスの参照が、前述の方法の実施形態における対応するプロセスを参照することによりなされ得ることを明確に理解し得る。このことは本明細書において繰り返し述べない。
本開示により提供されるいくつかの実施形態において、開示されるシステム、装置および方法は、他のやり方で実装され得ることが理解されるべきである。例えば、上述のデバイスの実施形態は、例示的なものに過ぎない。例えば、ユニットの分割は、論理的機能の分割に過ぎず、複数のユニットまたはコンポーネントが組み合わされ得るか、または別のシステムに統合され得る等の実際の実装における他の分割方法が存在し得るか、またはいくつかの特徴が無視され得るか、または実行されない。加えて、表示されるか、または論じられる相互結合、直接結合または通信接続は、デバイスまたはユニットのいくつかのインタフェース、間接結合または通信接続を通じた電気的形式、機械的形式または他の形式であり得る。
別個の部分として説明されるユニットは、物理的に分離され得るか、または物理的に分離され得ない。ユニットとして示される部分は、物理ユニットであり得るか、または物理ユニットであり得ず、一箇所に配置され得るか、または複数のネットワークユニット上に分散され得る。本実施形態の解決手段の目的は、実際の要件に従ってユニットの一部または全部を選択することにより、実現され得る。
加えて、開示される実施形態における様々な機能ユニットは、1つの処理ユニットに統合され得るか、もしくはそれらのユニットは、物理的に、かつ別々に存在するか、または2つまたはそれより多くのユニットが1つのユニットに統合される。統合されたユニットは、ハードウェアを用いることにより実装され得、ハードウェアにソフトウェア機能ユニットを加えた形式でも実装され得る。
ソフトウェア機能ユニットの形式で実装される統合されたユニットは、コンピュータ可読記憶媒体に格納され得る。ソフトウェア機能ユニットは、記憶媒体に格納され、(パーソナルコンピュータ、サーバ、ネットワークデバイスまたは同様のものであり得る)コンピュータデバイス、またはプロセッサが、開示される実施形態における方法の段階の一部を実行することを可能にするいくつかの命令を含む。前述の記憶媒体は、USBフラッシュディスク、モバイルハードディスク、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク、光学ディスクまたは同様のものなど、プログラムコードを格納することができる様々な媒体を含む。
最後に、上記実施形態は、本開示の技術的解決手段の限定ではなく、例示のために用いられているに過ぎないことを留意すべきである。開示される実施形態が前述の実施形態を参照して詳細に説明されているが、当業者であれば、前述の実施形態に記録されている技術的解決手段がさらに修正され得るか、またはそれらにおける技術的特徴の一部に対して均等な置き換えがなされ得ることを理解するはずである。これらの修正または置き換えは、対応する技術的解決手段の本質を、本開示の実施形態における技術的解決手段の趣旨および範囲から逸脱させない。

Claims (16)

  1. データベースオペレーション方法であって、
    アプリケーションサーバにより対象トランザクションを実行する処理の間、前記アプリケーションサーバにより前記対象トランザクションについて実行されたデータベースオペレーションコマンドを順次取得する段階と、
    前記データベースオペレーションコマンドに対して予測アルゴリズムを実行する段階と、
    予測実行結果を前記アプリケーションサーバに戻し、これにより、前記アプリケーションサーバが、次に実行されるべきデータベースオペレーションコマンドを決定する段階と、
    前記データベースオペレーションコマンドと、前記予測アルゴリズムの前記実行から生成された予測実行データとをローカルに記録する段階と、
    前記対象トランザクションに関するトランザクションコミットコマンドを取得する場合、前記アプリケーションサーバに対応するデータベースを制御して、ローカルに記録された前記データベースオペレーションコマンドおよび前記予測実行データに従って前記対象トランザクションを実際に実行する段階と
    を備える方法。
  2. アプリケーションサーバにより対象トランザクションを実行する処理の間、前記アプリケーションサーバにより前記対象トランザクションについて実行されたデータベースオペレーションコマンドを順次取得する前記段階は、
    前記アプリケーションサーバにより前記データベースに対して送信された前記データベースオペレーションコマンドをインタセプトする段階、または
    前記アプリケーションサーバによりアクティブに発行された前記データベースオペレーションコマンドを受信する段階
    の一方を有する、
    請求項1に記載の方法。
  3. 前記データベースオペレーションコマンドに対して予測アルゴリズムを実行する前記段階は、
    ローカルに確立されたメモリバンクにおいて、前記データベースオペレーションコマンドについて要求されるデータ環境をシミュレートする段階と、
    シミュレートされた前記データ環境に基づいて、前記データベースオペレーションコマンドに対して予測アルゴリズムを実行する段階と
    を有する、
    請求項1に記載の方法。
  4. ローカルに確立されたメモリバンクにおいて、前記データベースオペレーションコマンドについて要求されるデータ環境をシミュレートする前記段階と、シミュレートされた前記データ環境に基づいて、前記データベースオペレーションコマンドに対して予測アルゴリズムを実行する前記段階とは、
    前記データベースオペレーションコマンドを読み取りコマンドおよび書き込みコマンドに分割する段階と、
    前記データベースにおいて前記読み取りコマンドを実行して、読み取りデータセットを取得する段階と、
    前記読み取りデータセットを前記メモリバンクに格納して、前記データベースオペレーションコマンドのための前記データ環境をシミュレートする段階と、
    前記メモリバンクにおいて前記書き込みコマンドを実行して、前記読み取りデータセットを修正する段階と
    を含む、
    請求項3に記載の方法。
  5. 前記アプリケーションサーバに対応するデータベースを制御して、ローカルに記録された前記データベースオペレーションコマンドおよび前記予測実行データに従って前記対象トランザクションを実際に実行する前記段階は、
    ローカルに記録された前記データベースオペレーションコマンドを前記データベースに対して発行して、前記データベースオペレーションコマンドを実行するよう前記データベースに命令し、前記データベースにより戻された前記データベースオペレーションコマンドの実際の実行結果を受信する段階と、
    前記実際の実行結果が前記予測実行結果と同じだった場合、前記トランザクションコミットコマンドを前記データベースに対して発行し、これにより、前記データベースが前記対象トランザクションをコミットする段階と、
    前記実際の実行結果が前記予測実行結果とは異なっていた場合、トランザクションロールバックコマンドを前記データベースに対して発行し、これにより、前記データベースが前記対象トランザクションをロールバックする段階と
    を有する、
    請求項1に記載の方法。
  6. ローカルに記録された前記データベースオペレーションコマンドを前記データベースに対して発行する前記段階は、
    ローカルに記録された前記データベースオペレーションコマンドを前記データベースに対して同時に発行する段階
    を含む、
    請求項5に記載の方法。
  7. 前記アプリケーションサーバに対応するデータベースを制御して、ローカルに記録された前記データベースオペレーションコマンドおよび前記予測実行データに従って前記対象トランザクションを実際に実行する前記段階は、
    ローカルに記録された前記データベースオペレーションコマンドに従って、前記対象トランザクションがスタンドアロントランザクションであるかどうかを判断する段階と、
    判断結果が肯定的であった場合、スタンドアロントランザクション処理ロジックを用いて前記データベースを制御して、ローカルに記録された前記データベースオペレーションコマンドおよび前記予測実行データに従って前記対象トランザクションを実際に実行する段階、または
    判断結果が否定的であった場合、分散トランザクション処理ロジックを用いて前記データベースを制御して、ローカルに記録された前記データベースオペレーションコマンドおよび前記予測実行データに従って前記対象トランザクションを実際に実行する段階と
    を有する、
    請求項1に記載の方法。
  8. 前記対象トランザクションに関するトランザクションロールバックコマンドを取得した場合、ローカルに記録された前記データベースオペレーションコマンドおよび前記予測実行データを削除する段階
    をさらに備える、請求項1から7のいずれか一項に記載の方法。
  9. データベースオペレーション装置であって、
    アプリケーションサーバにより対象トランザクションを実行する処理の間、前記アプリケーションサーバにより前記対象トランザクションについて実行されたデータベースオペレーションコマンドを順次取得する取得モジュールと、
    前記データベースオペレーションコマンドに対して予測アルゴリズムを実行し、予測実行結果を前記アプリケーションサーバに戻し、これにより、前記アプリケーションサーバが、次に実行されるべきデータベースオペレーションコマンドを決定し、かつ、前記データベースオペレーションコマンドと、前記予測アルゴリズムの前記実行から生成された予測実行データとをローカルに記録する予測実行モジュールと、
    前記対象トランザクションに関するトランザクションコミットコマンドを取得する場合、前記アプリケーションサーバに対応するデータベースを制御して、ローカルに記録された前記データベースオペレーションコマンドおよび前記予測実行データに従って前記対象トランザクションを実際に実行する制御実行モジュールと
    を備える装置。
  10. 前記取得モジュールは具体的には、
    前記アプリケーションサーバにより前記データベースに対して送信された前記データベースオペレーションコマンドをインタセプトするか、または
    前記アプリケーションサーバによりアクティブに発行された前記データベースオペレーションコマンドを受信する、
    請求項9に記載の装置。
  11. 前記予測実行モジュールは具体的には、
    ローカルに確立されたメモリバンクにおいて、前記データベースオペレーションコマンドにより要求されたデータ環境をシミュレートし、シミュレートされた前記データ環境に基づいて、前記データベースオペレーションコマンドに対して予測アルゴリズムを実行する、
    請求項9に記載の装置。
  12. 前記予測実行モジュールは具体的には、
    前記データベースオペレーションコマンドを読み取りコマンドおよび書き込みコマンドに分割し、
    前記データベースにおいて前記読み取りコマンドを実行して、読み取りデータセットを取得し、
    前記読み取りデータセットを前記メモリバンクに格納して、前記データベースオペレーションコマンドのための前記データ環境をシミュレートし、かつ、
    前記メモリバンクにおいて前記書き込みコマンドを実行して、前記読み取りデータセットを修正する、
    請求項11に記載の装置。
  13. 前記制御実行モジュールは具体的には、
    ローカルに記録された前記データベースオペレーションコマンドを前記データベースに対して発行して、前記データベースオペレーションコマンドを実行するよう前記データベースに命令し、前記データベースにより戻された前記データベースオペレーションコマンドの実際の実行結果を受信し、
    前記実際の実行結果が前記予測実行結果と同じだった場合、前記トランザクションコミットコマンドを前記データベースに対して発行し、これにより、前記データベースが前記対象トランザクションをコミットし、かつ、
    前記実際の実行結果が前記予測実行結果とは異なっていた場合、トランザクションロールバックコマンドを前記データベースに対して発行し、これにより、前記データベースが前記対象トランザクションをロールバックする、
    請求項9に記載の装置。
  14. 前記制御実行モジュールは具体的には、
    ローカルに記録された前記データベースオペレーションコマンドを前記データベースに対して同時に発行する、
    請求項13に記載の装置。
  15. 前記制御実行モジュールは具体的には、
    ローカルに記録された前記データベースオペレーションコマンドに従って、前記対象トランザクションがスタンドアロントランザクションであるかどうかを判断し、
    判断結果が肯定的であった場合、スタンドアロントランザクション処理ロジックを用いて前記データベースを制御して、ローカルに記録された前記データベースオペレーションコマンドおよび前記予測実行データに従って前記対象トランザクションを実際に実行するか、または
    判断結果が否定的であった場合、分散トランザクション処理ロジックを用いて前記データベースを制御して、ローカルに記録された前記データベースオペレーションコマンドおよび前記予測実行データに従って前記対象トランザクションを実際に実行する、
    請求項9に記載の装置。
  16. 前記予測実行モジュールはさらに、
    前記対象トランザクションに関するトランザクションロールバックコマンドが取得された場合、ローカルに記録された前記データベースオペレーションコマンドおよび前記予測実行データを削除する、
    請求項9から15のいずれか一項に記載の装置。
JP2018511371A 2015-09-08 2016-08-30 データベーストランザクションを最適化するための方法および装置 Active JP6795259B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201510563745.3 2015-09-08
CN201510563745.3A CN106503007B (zh) 2015-09-08 2015-09-08 数据库操作方法及装置
PCT/CN2016/097268 WO2017041639A1 (zh) 2015-09-08 2016-08-30 数据库操作方法及装置

Publications (2)

Publication Number Publication Date
JP2018526746A true JP2018526746A (ja) 2018-09-13
JP6795259B2 JP6795259B2 (ja) 2020-12-02

Family

ID=58239114

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018511371A Active JP6795259B2 (ja) 2015-09-08 2016-08-30 データベーストランザクションを最適化するための方法および装置

Country Status (4)

Country Link
US (1) US11500869B2 (ja)
JP (1) JP6795259B2 (ja)
CN (1) CN106503007B (ja)
WO (1) WO2017041639A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106503027B (zh) * 2015-09-08 2020-02-21 阿里巴巴集团控股有限公司 数据库操作方法及装置
CN109766330B (zh) * 2018-12-29 2020-02-14 北京三快在线科技有限公司 数据分片方法、装置、电子设备及存储介质
CN111198913A (zh) * 2019-12-10 2020-05-26 北京康沙士信息科技有限公司 一种异构数据库网络融合的方法及系统
CN111694798B (zh) * 2020-04-23 2023-04-25 武汉达梦数据库股份有限公司 一种基于日志解析的数据同步方法及数据同步系统
CN111930830B (zh) * 2020-06-22 2024-04-16 心有灵犀科技股份有限公司 一种基于共享数据库的分布式事务数据处理方法及系统
CN112214790A (zh) * 2020-09-17 2021-01-12 杭州安恒信息技术股份有限公司 数据库敏感操作的阻断方法、装置、电子装置和存储介质
CN114386904A (zh) * 2022-01-05 2022-04-22 北京京东振世信息技术有限公司 一种库存预占方法、装置、服务器及存储介质
CN117033083B (zh) * 2023-09-28 2024-01-19 武汉吧哒科技股份有限公司 数据备份方法、系统及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04245342A (ja) * 1991-01-30 1992-09-01 Toshiba Corp 分散型データベースシステム
JP2001142898A (ja) * 1999-11-16 2001-05-25 Hitachi Ltd 問合せ処理の実行可否判定方法
JP2010066922A (ja) * 2008-09-09 2010-03-25 Hitachi Ltd データベース管理方法、データベース管理プログラム、および、データベース管理システム
JP2010198581A (ja) * 2009-02-27 2010-09-09 Hitachi Ltd データベース管理方法、データベース管理装置及びデータベース管理プログラム
JP2015072537A (ja) * 2013-10-02 2015-04-16 富士通株式会社 情報処理プログラム、情報処理装置及び情報処理方法
JP2015520445A (ja) * 2012-04-26 2015-07-16 アマデウス エス.エイ.エス バッチ指向型の計算を用いるデータベースシステム

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5758144A (en) 1994-06-24 1998-05-26 International Business Machines Corporation Database execution cost and system performance estimator
CA2384259A1 (en) 2002-04-29 2003-10-29 Ibm Canada Limited-Ibm Canada Limitee Access concurrency for cached authorization information in relational database systems
JP3602840B2 (ja) * 2002-10-22 2004-12-15 株式会社東芝 命令の投機的実行制御装置およびその方法
US7698348B2 (en) 2003-12-19 2010-04-13 Kinaxis Holdings Inc. Extended database engine providing versioning and embedded analytics
US7493419B2 (en) * 2005-12-13 2009-02-17 International Business Machines Corporation Input/output workload fingerprinting for input/output schedulers
US7594079B2 (en) 2006-09-29 2009-09-22 Mips Technologies, Inc. Data cache virtual hint way prediction, and applications thereof
US9141670B2 (en) 2007-08-27 2015-09-22 Teradata Us, Inc. Methods and systems for hardware acceleration of streamed database operations and queries based on multiple hardware accelerators
CN101212481A (zh) * 2007-12-21 2008-07-02 华为技术有限公司 一种事务控制方法、系统和装置
US8224845B2 (en) * 2008-01-21 2012-07-17 International Business Machines Corporation Transaction prediction modeling method
CN101587447B (zh) 2008-05-23 2013-03-27 国际商业机器公司 基于预测的事务执行系统和方法
CN101739298B (zh) 2008-11-27 2013-07-31 国际商业机器公司 共享缓存管理方法和系统
US20120227045A1 (en) 2009-12-26 2012-09-06 Knauth Laura A Method, apparatus, and system for speculative execution event counter checkpointing and restoring
CN103136308A (zh) 2011-11-23 2013-06-05 英业达股份有限公司 应用系统数据库更新的方法和系统
CN103186733B (zh) * 2011-12-30 2016-01-27 中国移动通信集团广东有限公司 数据库用户行为管理系统和数据库用户行为管理方法
US20130191105A1 (en) * 2012-01-20 2013-07-25 International Business Machines Coporation Virtual systems testing
CN102662640B (zh) * 2012-04-12 2015-04-01 苏州睿云智芯微电子有限公司 双重分支目标缓冲器和分支目标处理系统及处理方法
US20130275685A1 (en) 2012-04-16 2013-10-17 International Business Machines Corporation Intelligent data pre-caching in a relational database management system
CN103092955B (zh) * 2013-01-17 2016-08-03 华为技术有限公司 检查点操作方法、装置及系统
US9477707B2 (en) * 2013-01-29 2016-10-25 Nec Corporation System and methods for predicting query execution time for concurrent and dynamic database workloads
US20140223418A1 (en) * 2013-02-02 2014-08-07 Ca, Inc. Performance data in virtual services
US9418129B2 (en) 2013-03-08 2016-08-16 Oracle International Corporation Adaptive high-performance database redo log synchronization
US9195606B2 (en) 2013-03-15 2015-11-24 Intel Corporation Dead block predictors for cooperative execution in the last level cache
US9165425B2 (en) * 2013-04-08 2015-10-20 Steelseries Aps Method and apparatus for configuring a computing environment
US9477481B2 (en) * 2014-06-27 2016-10-25 International Business Machines Corporation Accurate tracking of transactional read and write sets with speculation
US9684514B2 (en) * 2014-09-10 2017-06-20 International Business Machines Corporation Inference based condition code generation
US9928064B2 (en) 2015-11-10 2018-03-27 International Business Machines Corporation Instruction stream modification for memory transaction protection
US10733091B2 (en) * 2016-05-03 2020-08-04 International Business Machines Corporation Read and write sets for ranges of instructions of transactions
US10572373B2 (en) * 2017-04-20 2020-02-25 International Business Machines Corporation Automated test generation for multi-interface and multi-platform enterprise virtualization management environment
US10481958B2 (en) * 2017-12-29 2019-11-19 Intel IP Corporation Speculative execution tag for asynchronous DRAM refresh

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04245342A (ja) * 1991-01-30 1992-09-01 Toshiba Corp 分散型データベースシステム
JP2001142898A (ja) * 1999-11-16 2001-05-25 Hitachi Ltd 問合せ処理の実行可否判定方法
JP2010066922A (ja) * 2008-09-09 2010-03-25 Hitachi Ltd データベース管理方法、データベース管理プログラム、および、データベース管理システム
JP2010198581A (ja) * 2009-02-27 2010-09-09 Hitachi Ltd データベース管理方法、データベース管理装置及びデータベース管理プログラム
JP2015520445A (ja) * 2012-04-26 2015-07-16 アマデウス エス.エイ.エス バッチ指向型の計算を用いるデータベースシステム
JP2015072537A (ja) * 2013-10-02 2015-04-16 富士通株式会社 情報処理プログラム、情報処理装置及び情報処理方法

Also Published As

Publication number Publication date
JP6795259B2 (ja) 2020-12-02
US11500869B2 (en) 2022-11-15
WO2017041639A1 (zh) 2017-03-16
CN106503007A (zh) 2017-03-15
US20180181618A1 (en) 2018-06-28
CN106503007B (zh) 2019-07-23

Similar Documents

Publication Publication Date Title
JP2018526746A (ja) データベーストランザクションを最適化するための方法および装置
CN107463637B (zh) 一种分布式NewSQL数据库系统和数据储存方法
US9697254B2 (en) Graph traversal operator inside a column store
JP6877435B2 (ja) データベース動作方法及び装置
CN106897123B (zh) 数据库操作方法及装置
CN111581234B (zh) Rac多节点数据库查询方法、装置及系统
KR20180035035A (ko) 데이터 엔진에서의 질의 최적화 방법 및 장치
CN107247624B (zh) 一种面向Key-Value系统的协同优化方法及系统
TWI774643B (zh) 資料庫操作方法及裝置
CN116108057B (zh) 一种分布式数据库访问方法、装置、设备及存储介质
CN103377292B (zh) 数据库结果集缓存方法及设备
CN106503027B (zh) 数据库操作方法及装置
US7908268B2 (en) Predictive database pool preparation
US11934927B2 (en) Handling system-characteristics drift in machine learning applications
TWI725110B (zh) 資料庫操作方法及裝置
US20160004747A1 (en) Join query execution method and device, and storage medium
US20170075955A1 (en) Database system, database access method, and database access program
TWI805544B (zh) 資料庫操作方法及裝置
TWI735512B (zh) 資料庫操作方法及裝置
TWI790991B (zh) 資料庫操作方法及裝置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190730

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200623

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200630

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200925

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: 20201013

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201110

R150 Certificate of patent or registration of utility model

Ref document number: 6795259

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250