JP5536568B2 - トランザクションを集約して処理する方法、システム、およびプログラム - Google Patents
トランザクションを集約して処理する方法、システム、およびプログラムInfo
- Publication number
- JP5536568B2 JP5536568B2 JP2010150989A JP2010150989A JP5536568B2 JP 5536568 B2 JP5536568 B2 JP 5536568B2 JP 2010150989 A JP2010150989 A JP 2010150989A JP 2010150989 A JP2010150989 A JP 2010150989A JP 5536568 B2 JP5536568 B2 JP 5536568B2
- Authority
- JP
- Japan
- Prior art keywords
- client
- transaction
- sql
- database
- data
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 60
- 230000004931 aggregating effect Effects 0.000 title claims description 9
- 230000008569 process Effects 0.000 claims description 33
- 238000006243 chemical reaction Methods 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 3
- 230000006399 behavior Effects 0.000 description 16
- 230000002776 aggregation Effects 0.000 description 9
- 238000004220 aggregation Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 4
- 238000003672 processing method Methods 0.000 description 3
- 239000000470 constituent Substances 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
S1: SELECT C11, C12, C13 FROM T1 WHEREK1=? →クライアントIDを1とする
> C11: INT, C12: DOUBLE, C13: STRING
S2: SELECT C21, C22, C23 FROM T0 WHERE K2=? →クライアントIDを2とする
> C21: DOUBLE, C22:INT, C23: DATE
例では、{INT, DOUBLE,STRING, DATE}となる。
例では、INT, INT, DOUBLE,STRING, DATEの順となる。
S1': SELECT 1, C11, C12, C13, NULL FROM T1 WHERE K1=?
S2': SELECT 2, C22, C21, ‘CONST', C23 FROM T2 WHERE K2=?
S2とS2'の対応:{1→3, 2→2, 3→5} (1→3は、S2の1番目の項目がS2'の3番目の項目に対応することを意味する)
SELECT 1, C11, C12, C13, NULL FROM T1 WHERE K1=? UNION ALL SELECT 2,C22, C21, ‘CONST', C23 FROM T2 WHERE K2=?
・SELECT対象となるデータの型情報のみを利用して、UNION ALLのデータ型を決定すること
・UNION ALLのデータ(カラム)名とクライアントの要求したSELECT文のデータ(カラム)名の対応関係から、各クライアント用の結果を分割して生成すること。
・SELECT文のIDが結果に含まれない場合は、空の結果(ResultSet)を生成すること
これにより本発明は、DB Proxy120で、複数の照会SQLを集約してデータベースに処理要求し、その結果をそれぞれのクライアントに分割して返すことができる。
1.クライアント1は、トランザクション中の照会クエリ(レコードAを照会r11)を、DB Proxy120に転送する。
2.クライアント2は、トランザクション中の照会クエリ(レコードBを照会r21)を、DB Proxy120に転送する。
3.DB Proxy120は、クライアント1とクライアント2から受信した照会クエリを1つのクエリにまとめ、集約トランザクション(レコードAとレコードBを同時照会r11+21)としてデータベース130に処理要求する。
4.ここでクライアント1が、同じトランザクション中の更新クエリを更新トランザクション(レコードAを更新w12)として、DB Proxy120経由で照会中の集約トランザクション(照会クエリ)とは別に、データベース130に要求する。
4.まずクライアント1は、更新するレコードAが、集約トランザクションとして照会したかをDBProxy120に問い合わせる。集約トランザクションとして照会している場合、クライアント1は、集約トランザクション経由で処理した照会クエリを、直接トランザクションとして、データベース130に処理要求する。
5.クライアント1は、DBProxy120にコミット要求を出す。
6.クライアント1はレコードAの更新クエリを直接トランザクションとして、データベース130に処理要求する
SELECT * FROM TABLE1 WHERE ID=100
また、SQL C(SELECT)のように、クエリからでは更新したデータを判定できない場合も、同様にProxy、経由で照会できないと判断する。
Proxyモードの場合は、ステップ706で照会SQLで照会したデータを、更新SQLが更新する可能性があるかを判断する。
例えば、照会済SQL記憶部内に、図16のSQL D(SELECT)という照会SQLを要求する場合、SQL E(UPDATE)という更新の際は更新する可能性がなく、SQLF(UPDATE)の際は更新する可能性があると判断する。
120 DBProxy
130 データベース
1409 システム・バス
1410 CPU
1420 メイン・メモリ
1420 主記憶
1430 ハードディスク・ドライブ
1440 ネットワークコントローラ
1450 キーボード
1460 マウス
1470 ディスプレイ
1480 オーディオコントローラ
Claims (9)
- データベースと接続されたコンピュータを用いて、複数のSQL文を含むコミットまたはロールバックが可能な一連の処理であるトランザクションを集約する方法であって、
複数クライアントから、複数のSQL文を含む複数トランザクションを受信するステップと、
前記SQL文の各々について当該SQL文を発したクライアントのクライアントIDと対応付けるステップと、
前記SQL文のデータ型を生成するステップと、
全SQL文について異なるデータ型のみを追加し、集合したデータ型を生成するステップと、
各クライアントのSQL文を、各SQL文が前記集合したデータ型の順に並ぶように変換するステップと、
前記クライアントのクライアントID毎に、対応する前記変換後のSQL文のデータ型と対応する変換前のSQL文のデータ型の対応関係を記憶するステップと、
全ての変換後のSQL文を集合演算子を用いて集約し、集約トランザクションとしてデータベースに送信するステップ、
を有する、方法。 - 前記方法が、さらに
前記データベースから前記集約トランザクションに対する結果を受信するステップと、
を有する、請求項1記載の方法。 - 前記方法が、さらに
前記結果を前記複数クライアントの各々トランザクションに対する照会結果に分割して送信するステップであって、
データベースから送信された結果からクライアントIDを判断するステップと、
前記記憶した前記変換後のSQLのデータ型と変換前のデータ型の対応関係に基づき、前記クライアントID毎に、変換前のSQL文に対する照会結果に変換するステップと、
前記クライアントIDを有するクライアントにトランザクションに対する結果を送信するステップ、
を有する、請求項2記載の方法。 - 前記方法が、
前記集約トランザクションで、クライアントが集約トランザクション経由で照会したデータを更新するステップであって、
更新するデータが、集約トランザクションとして照会したかを前記コンピュータに問い合わせるステップと、
集約トランザクションとして照会している場合、集約トランザクション経由で処理したSQL文を、直接トランザクションとして、データベースに処理要求するステップと、
前記クライアントからのコミット要求に応じて、前記データを更新するための更新クエリを直接トランザクションとして、データベースに処理要求するステップ、
を有する、請求項1記載の方法。 - データベースと接続されたコンピュータを用いて、複数のSQL文を含むコミットまたはロールバックが可能な一連の処理であるトランザクションを集約するシステムであって、
複数クライアントから、複数のSQL文を含む複数トランザクションを受信する手段と、
前記SQL文の各々について当該SQL文を発したクライアントのクライアントIDと対応付ける手段と、
前記SQL文のデータ型を生成する手段と、
全SQL文について異なるデータ型のみを追加し、集合したデータ型を生成する手段と、
各クライアントのSQL文を、各SQL文が前記集合したデータ型の順に並ぶように変換する手段と、
前記クライアントのクライアントID毎に、対応する前記変換後のSQL文のデータ型と対応する変換前のSQL文のデータ型の対応関係を記憶する手段と、
全ての変換後のSQL文を集合演算子を用いて集約し、集約トランザクションとしてデータベースに送信する手段、
を有する、システム。 - 前記システムが、さらに
前記データベースから前記集約トランザクションに対する結果を受信する手段と、
を有する、請求項5記載のシステム。 - 前記システムが、さらに
前記結果を前記複数クライアントの各々トランザクションに対する照会結果に分割して送信する手段であって、
データベースから送信された結果からクライアントIDを判断する手段と、
前記記憶した前記変換後のSQLのデータ型と変換前のデータ型の対応関係に基づき、前記クライアントID毎に、変換前のSQL文に対する照会結果に変換する手段と、
前記クライアントIDを有するクライアントにトランザクションに対する結果を送信する手段、
を有する、請求項6記載のシステム。 - 前記システムが、
前記集約トランザクションで、クライアントが集約トランザクション経由で照会したデータを更新する手段であって、
更新するデータが、集約トランザクションとして照会したかを前記コンピュータに問い合わせる手段と、
集約トランザクションとして照会している場合、集約トランザクション経由で処理したSQL文を、直接トランザクションとして、データベースに処理要求する手段と、
前記クライアントからのコミット要求に応じて、前記データを更新するための更新クエリを直接トランザクションとして、データベースに処理要求する手段、
を有する、請求項5記載のシステム。 - 請求項1〜4記載の何れか1つに記載の方法の各ステップを、コンピュータに実行させるためのプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010150989A JP5536568B2 (ja) | 2010-07-01 | 2010-07-01 | トランザクションを集約して処理する方法、システム、およびプログラム |
US13/172,142 US8527501B2 (en) | 2010-07-01 | 2011-06-29 | Method, system, and program for combining and processing transactions |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010150989A JP5536568B2 (ja) | 2010-07-01 | 2010-07-01 | トランザクションを集約して処理する方法、システム、およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012014502A JP2012014502A (ja) | 2012-01-19 |
JP5536568B2 true JP5536568B2 (ja) | 2014-07-02 |
Family
ID=45400504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010150989A Expired - Fee Related JP5536568B2 (ja) | 2010-07-01 | 2010-07-01 | トランザクションを集約して処理する方法、システム、およびプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US8527501B2 (ja) |
JP (1) | JP5536568B2 (ja) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9665620B2 (en) | 2010-01-15 | 2017-05-30 | Ab Initio Technology Llc | Managing data queries |
US8818963B2 (en) | 2010-10-29 | 2014-08-26 | Microsoft Corporation | Halloween protection in a multi-version database system |
US9195712B2 (en) | 2013-03-12 | 2015-11-24 | Microsoft Technology Licensing, Llc | Method of converting query plans to native code |
US10180951B2 (en) | 2013-03-15 | 2019-01-15 | Amazon Technologies, Inc. | Place snapshots |
US9501501B2 (en) | 2013-03-15 | 2016-11-22 | Amazon Technologies, Inc. | Log record management |
US11030055B2 (en) | 2013-03-15 | 2021-06-08 | Amazon Technologies, Inc. | Fast crash recovery for distributed database systems |
US9672237B2 (en) | 2013-03-15 | 2017-06-06 | Amazon Technologies, Inc. | System-wide checkpoint avoidance for distributed database systems |
US9514007B2 (en) | 2013-03-15 | 2016-12-06 | Amazon Technologies, Inc. | Database system with database engine and separate distributed storage service |
US10747746B2 (en) | 2013-04-30 | 2020-08-18 | Amazon Technologies, Inc. | Efficient read replicas |
US9760596B2 (en) | 2013-05-13 | 2017-09-12 | Amazon Technologies, Inc. | Transaction ordering |
US9208032B1 (en) | 2013-05-15 | 2015-12-08 | Amazon Technologies, Inc. | Managing contingency capacity of pooled resources in multiple availability zones |
US10303564B1 (en) | 2013-05-23 | 2019-05-28 | Amazon Technologies, Inc. | Reduced transaction I/O for log-structured storage systems |
US9047189B1 (en) | 2013-05-28 | 2015-06-02 | Amazon Technologies, Inc. | Self-describing data blocks of a minimum atomic write size for a data store |
US10216949B1 (en) | 2013-09-20 | 2019-02-26 | Amazon Technologies, Inc. | Dynamic quorum membership changes |
US9460008B1 (en) | 2013-09-20 | 2016-10-04 | Amazon Technologies, Inc. | Efficient garbage collection for a log-structured data store |
US9519664B1 (en) | 2013-09-20 | 2016-12-13 | Amazon Technologies, Inc. | Index structure navigation using page versions for read-only nodes |
US10223184B1 (en) | 2013-09-25 | 2019-03-05 | Amazon Technologies, Inc. | Individual write quorums for a log-structured distributed storage system |
US9880933B1 (en) | 2013-11-20 | 2018-01-30 | Amazon Technologies, Inc. | Distributed in-memory buffer cache system using buffer cache nodes |
US9223843B1 (en) | 2013-12-02 | 2015-12-29 | Amazon Technologies, Inc. | Optimized log storage for asynchronous log updates |
US10474645B2 (en) * | 2014-02-24 | 2019-11-12 | Microsoft Technology Licensing, Llc | Automatically retrying transactions with split procedure execution |
US9779180B2 (en) * | 2014-10-27 | 2017-10-03 | Successfactors, Inc. | Detection of the N-queries via unit test |
US10437819B2 (en) * | 2014-11-14 | 2019-10-08 | Ab Initio Technology Llc | Processing queries containing a union-type operation |
US10108623B2 (en) | 2014-12-12 | 2018-10-23 | International Business Machines Corporation | Merging database operations for serializable transaction execution |
US10417281B2 (en) | 2015-02-18 | 2019-09-17 | Ab Initio Technology Llc | Querying a data source on a network |
US9984142B2 (en) | 2015-11-05 | 2018-05-29 | Oracle International Corporation | Single unit of work |
US11914571B1 (en) | 2017-11-22 | 2024-02-27 | Amazon Technologies, Inc. | Optimistic concurrency for a multi-writer database |
US11093223B2 (en) | 2019-07-18 | 2021-08-17 | Ab Initio Technology Llc | Automatically converting a program written in a procedural programming language into a dataflow graph and related systems and methods |
US11341163B1 (en) | 2020-03-30 | 2022-05-24 | Amazon Technologies, Inc. | Multi-level replication filtering for a distributed database |
US11586626B1 (en) * | 2021-11-03 | 2023-02-21 | International Business Machines Corporation | Optimizing cloud query execution |
KR102518268B1 (ko) * | 2022-04-13 | 2023-04-05 | 주식회사 비투엔 | 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 장치 및 방법 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05108452A (ja) | 1991-10-15 | 1993-04-30 | Oki Electric Ind Co Ltd | データベース管理方式 |
US5280612A (en) | 1991-11-26 | 1994-01-18 | International Business Machines Corporation | Multiple version database concurrency control system |
US5932309A (en) * | 1995-09-28 | 1999-08-03 | Alliedsignal Inc. | Colored articles and compositions and methods for their fabrication |
JP3620203B2 (ja) * | 1996-03-13 | 2005-02-16 | 株式会社日立製作所 | データベースの検索処理方法 |
JPH11161530A (ja) | 1997-11-27 | 1999-06-18 | Ntt Data Corp | トランザクション処理システム |
JP2957551B2 (ja) | 1997-12-12 | 1999-10-04 | 株式会社リコー | 分散型データベースシステムの一貫性管理方法およびコンピュータ読み取り可能な記録媒体 |
JPH11232302A (ja) * | 1998-02-19 | 1999-08-27 | Hitachi Ltd | 予約型情報検索配信方法及びシステム |
US20030055826A1 (en) * | 2001-09-14 | 2003-03-20 | Kevin Graham | System and method for connecting to and controlling to disparate databases |
US20030074342A1 (en) * | 2001-10-11 | 2003-04-17 | Curtis Donald S. | Customer information management infrastructure and methods |
WO2004072816A2 (en) * | 2003-02-07 | 2004-08-26 | Lammina Systems Corporation | Method and apparatus for online transaction processing |
JP3823169B1 (ja) | 2005-12-06 | 2006-09-20 | データアクセス株式会社 | データ制御装置、システム、方法、及びプログラム |
JP2007183728A (ja) | 2006-01-05 | 2007-07-19 | Nippon Telegr & Teleph Corp <Ntt> | 多重化データベースシステム及びその同期化方法、仲介装置、仲介プログラム |
JP4261609B1 (ja) | 2008-05-02 | 2009-04-30 | 透 降矢 | トランザクションの同時実行制御を備えたマルチオペレーション・プロセッシングを用いたデータベースのトランザクション処理システム |
-
2010
- 2010-07-01 JP JP2010150989A patent/JP5536568B2/ja not_active Expired - Fee Related
-
2011
- 2011-06-29 US US13/172,142 patent/US8527501B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US8527501B2 (en) | 2013-09-03 |
JP2012014502A (ja) | 2012-01-19 |
US20120005196A1 (en) | 2012-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5536568B2 (ja) | トランザクションを集約して処理する方法、システム、およびプログラム | |
US10853343B2 (en) | Runtime data persistency for in-memory database systems | |
JP4612715B2 (ja) | 情報処理システム、データ更新方法およびデータ更新プログラム | |
JP5940074B2 (ja) | トランザクション処理システム、方法及びプログラム | |
EP2653986B1 (en) | Client-side caching of a database transaction token. | |
US6397227B1 (en) | Database management system and method for updating specified tuple fields upon transaction rollback | |
US20160342647A1 (en) | Parallel processing database system with a shared metadata store | |
JP2023546249A (ja) | トランザクション処理方法、装置、コンピュータ機器及びコンピュータプログラム | |
US20150234884A1 (en) | System and Method Involving Resource Description Framework Distributed Database Management System and/or Related Aspects | |
US20160335310A1 (en) | Direct-connect functionality in a distributed database grid | |
US20080281846A1 (en) | High performant row-level data manipulation using a data layer interface | |
US20110161281A1 (en) | Distributed Transaction Management in a Distributed Shared Disk Cluster Environment | |
US7958167B2 (en) | Integration of unstructed data into a database | |
WO2017063520A1 (zh) | 数据库的操作方法及装置 | |
EP3688551B1 (en) | Boomerang join: a network efficient, late-materialized, distributed join technique | |
US12007985B2 (en) | Executing transactions on distributed databases | |
Mühlbauer et al. | Scyper: A hybrid oltp&olap distributed main memory database system for scalable real-time analytics | |
WO2022127866A1 (zh) | 数据处理方法、装置、电子设备、存储介质 | |
EP3462341B1 (en) | Local identifiers for database objects | |
US10810116B2 (en) | In-memory database with page size adaptation during loading | |
JP5181183B2 (ja) | 変換装置、サーバシステム、変換方法およびプログラム | |
US8135839B1 (en) | System and method for locking exclusive access to a divided resource | |
US11169886B2 (en) | Modification of temporary database pages | |
US20240095248A1 (en) | Data transfer in a computer-implemented database from a database extension layer | |
Arnold et al. | HRDBMS: Combining the best of modern and traditional relational databases |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130304 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131217 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140307 |
|
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: 20140408 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140424 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5536568 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |