JPWO2004063928A1 - データベース負荷軽減システムおよび負荷軽減プログラム - Google Patents

データベース負荷軽減システムおよび負荷軽減プログラム Download PDF

Info

Publication number
JPWO2004063928A1
JPWO2004063928A1 JP2004566262A JP2004566262A JPWO2004063928A1 JP WO2004063928 A1 JPWO2004063928 A1 JP WO2004063928A1 JP 2004566262 A JP2004566262 A JP 2004566262A JP 2004566262 A JP2004566262 A JP 2004566262A JP WO2004063928 A1 JPWO2004063928 A1 JP WO2004063928A1
Authority
JP
Japan
Prior art keywords
query
load
database
load reduction
database servers
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.)
Pending
Application number
JP2004566262A
Other languages
English (en)
Inventor
宮本 大輔
大輔 宮本
哲士 阿部
哲士 阿部
Original Assignee
アクセリア株式会社
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 アクセリア株式会社 filed Critical アクセリア株式会社
Publication of JPWO2004063928A1 publication Critical patent/JPWO2004063928A1/ja
Pending legal-status Critical Current

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Fuzzy Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本元明の目的は、クエリーを解釈し、負荷分散可能なクエリーをデータベースサーバに振り分けることにより負荷を分散するデータベース負荷軽減システムおよび負荷軽減プログラムを提供することである。データベース負荷軽減システムにおいて、クエリー解釈型ロードバランサ1は、ユーザ端末10から受信したクエリーを解釈して、負荷分散が可能なクエリーか否か判断する。そして、負荷分散が可能なクエリーを、負荷分散アルゴリズムにより順次データベースサーバ2−1〜2−nの内の1つに振り分けて負荷を分散する。一方、データの書き込みなどの負荷分散できないクエリーの場合は、複製して全てのデータベースサーバ2−1〜2−nに送信し、データベースの整合性を保持する。

Description

本発明は、データベースの負荷軽減システムに係わり、特に、クエリーを解釈して複数のデータベースサーバに順次振り分け、負荷を軽減するデータベース負荷軽減システムおよび負荷軽減プログラムに関する。
近年、インターネットの普及により、コンピュータネットワークを介してデータベースを利用するユーザが急激に増加している。ユーザのデータベースに対するクエリーが多発すると、データベースを提供するサーバは負荷の増加によって性能が低下し、クエリーを発してからクエリーの結果を取得するまでの処理時間が長くなる。特に、データベースへのアクセスに同期アクセスを用いている場合、クエリーの結果を取得して次の処理に進むまでの時間が長くなり、操作性が悪化する。従って、データベースサーバの負荷を軽減し、多数のユーザのクエリーを効率的に処理する技術が必要になる。
従来、データベースサーバの負荷を軽減する手法として、複数のデータベースサーバを設置し、クエリーを複数のデータベースサーバの内のどれか1台に振り分けることにより、各データベースサーバの負荷を抑える手法があ(例えば、非特許文献1)る。この手法を用いた場合の複数のデータベースにおける内容の同期、整合性保持のためには、ファイルサーバを用いる手法があり、各データベースサーバは、ファイルサーバに設置したデータベースを共有することにより、内容の整合性を保持できる。
上述した従来のクエリーを振り分ける方法では、複数のデータベースサーバの内の1台にのみ新規データの追加や更新手続きのクエリーが振り分けられた場合、各データベースサーバが提供するデータベースの内容が異なることになり、データベースの整合性を保持できないという問題があった。また、整合性保持のためにファイルサーバを用いる場合、データベースを共有させるファイルサーバに負荷が集中することになり、データベースを提供するシステムの性能が低下する。この性能低下を避けるためには、ファイルサーバに膨大なリソースを備えなければならないという問題があった。
本発明の目的は、ユーザのデータベースサーバへのクエリーを解釈してクエリーの種類を分け、負荷分散が可能なクエリーの場合、複数のデータベースサーバに振り分けることによって効果的に負荷分散を行い、負荷分散に適しないデータ書き込みなどのクエリーの場合、全てのデータベースサーバに実行してデータベースの整合性を保持するデータベース負荷軽減システムおよび負荷軽減プログラムを提供することである。
本発明の要旨は、複数のデータベースサーバと、該複数のデータベースサーバを管理する負荷軽減装置とを備えるデータベース負荷軽減システムであって、前記負荷軽減装置は、受信したクエリーを解釈して、データベースサーバの負荷分散を行うことが可能なクエリーか否か判断するクエリー解釈手段と、該クエリー解釈手段により負荷分散が可能と判断されたクエリーをデータベースサーバへ順次振り分け、送信するクエリー振り分け手段と、前記クエリー解釈手段により負荷分散ができないと判断されたクエリーを複製する複製手段と、該複製手段により複製されたクエリーを管理する全てのデータベースサーバに送信する手段とを具備することを特徴とするデータベース負荷軽減システムである。
上記構成は、データベースサーバへの負荷の分散と複数のデータベースの整合性の保持を実現するものとして好適である。
また、本発明の要旨は、上記データベース負荷軽減システムにおいて、前記クエリー解釈手段が、受信したクエリーがデータの読み込みを行う正規表現か否か判断し、読み込みを行う正規表現の場合、負荷分散を行うことが可能なクエリーであると判断する。
また、本発明の要旨は、上記データベース負荷軽減システムにおいて、前記クエリー振り分け手段が、前記クエリー解釈手段により負荷分散が可能と判断されたクエリーを、所定の負荷軽減アルゴリズムを用いることにより、複数のデータベースサーバの内の1つを、順に、かつループ状に選択して振り分ける。
また、本発明の要旨は、上記データベース負荷軽減システムにおいて、前記クエリー実行手段が、前記複製手段により複製されたクエリーを、既に振り分けられたクエリーに続き、次に受信する負荷分散可能なクエリーを振り分ける予定のデータベースサーバから始め、順次全てのデータベースサーバに送信する。
以上説明したように、本発明によれば、クエリーを解釈して、負荷分散可能なクエリーの場合は、複数のデータベースサーバにラウンドロビン方式等の負荷分散アルゴリズムにより順次振り分けて負荷を分散させ、一方、データベースへの書き込み処理を必要とするクエリーの場合は、全てのデータベースサーバに送信して実行するので、データベースの整合性を保持しながら、負荷を分散できるため、負荷の増加によるデータベースサーバの性能低下を防ぎ、かつデータベースの信頼性を維持できるという効果が得られる。
本発明の一実施の形態を示す概念図である。 “update”文などの処理を示す概念図である。
以下、図面を参照して本発明の一実施の形態について説明する。図1は、同実施形態を示す概念図である。同図において、2−1〜2−n(nは正の整数)は、データベースを提供するデータベースサーバである。データベースサーバ2−1〜2−nの台数は、クエリーの数量を考慮して算出される必要な負荷軽減率に基づいて定められる。1は、ユーザ端末10から受信したクエリーを解釈し、クエリーをデータベースサーバ2−1〜2−nのいずれか1つに振り分け、送信する、あるいは、全てのデータベースサーバ2−1〜2−nにクエリーを送信する負荷軽減装置(以下、クエリー解釈型ロードバランサと呼ぶ)である。
クエリー解釈型ロードバランサ1は、ユーザ端末10からのクエリーを解釈し、クエリーが負荷分散可能なクエリーか否かを判断する。ここで、データベースサーバに対するクエリーは、データベースを操作するためのプログラミング言語として最も広く普及しているSQL(Structured Query Language)によって記述されているものとする。クエリー解釈型ロードバランサ1は、このSQLの内容に着目して、判断する。例えば、“select”文などで表現されるデータベース参照系のクエリーは、データベースの読み込みを行うため、負荷分散の可能なクエリーであると判断する。
PostgreSQLによる“select”文の正規表現の例を次に示す。
^Q[\tΔ]*select[\tΔ]+.*;$
PostgreSQLでは、SQL文の先頭の“^”に続いてクエリー識別文字“Q”を付与してクエリーであることを宣言する。上記の例に示すように、“Q”の後に、“select”文が記載される。“Q”と“select”文の間にはスペースまたはTABが含まれても良い。負荷分散の可能なクエリーであることを判断するには、この正規表現を用いて“select”文などで表現されるデータベースの参照のみを行う参照系のクエリーで有るか否かを判定する。
なお、上述したクエリー解釈型のロードバランサ1へのクエリーは、特別な構成のクエリーではなく、一般的なデータベースサーバへのクエリーを利用できる。
その他、この正規表現に一致しないクエリー、例えば、“update”文、“insert”文、“delete”文などで表現されるデータベースのデータを変更する更新系のクエリーは、データベースの書き込み処理を行うため、負荷分散できないクエリーであると解釈する。なお、PostgreSQLの例を示したが、使用する言語はこれに限るものではなく、他の言語を使用することも可能である。
クエリー解釈型ロードバランサ1は、負荷分散可能と判断したクエリーを、所定の既存の負荷分散アルゴリズム(ラウンドロビン方式、重みづけ優先順位方式、接続数方式、応答時間方式、HTTP(HyperText Transfer Protocol)ヘッダ方式またはこれらの複合型などのアルゴリズム等)、例えば、ラウンドロビンによりデータベースサーバ2−1〜2−nに振り分ける。ラウンドロビンは、データベースサーバ2−1〜2−nの内の1つを昇順に、かつループ状に選択してクエリーを振り分ける。負荷分散できないクエリーの場合は、n個(データベースサーバの台数)に複製し、全てのデータベースサーバ2−1〜2−nに対してクエリーを送信し、実行する。このクエリーは、ラウンドロビンにより既に振り分けられたクエリーに続いて、次に受信する負荷分散可能なクエリーを振り分ける予定のデータベースサーバから始めて、順次全てのデータベースサーバ2−1〜2−nに対して送信する。また、クエリー解釈型ロードバランサ1は、データベースサーバ2−1〜2−nから各々送信される、クエリーに対応した処理の終了を示す同様な確認データのいずれか一つの確認データ、例えば、データベースサーバ2−1〜2−nのいずれかから最後に受信した確認データを、ユーザ端末10へ送信する。
次に、図1を参照して、本実施の形態の動作を説明する。先ず、ユーザ端末10から入力されたクエリーは、通信ネットワークを介してクエリー解釈型ロードバランサ1に送られる。クエリー解釈型ロードバランサ1は、このクエリーを解釈して、“select”文などの参照系のクエリーの正規表現に一致するか否かを判断する。一致する場合、負荷分散可能なクエリーであると判断し、ラウンドロビンに送る。ラウンドロビンは、順次データベースサーバ2−1〜2−nの内の1つを昇順に選択してクエリーを振り分け、送信する。
クエリーを受信したデータベースサーバ、例えば、データベースサーバ2−iは、クエリーを実行してクエリーの結果をクエリー解釈型ロードバランサ1を介してユーザ端末10に返す。クエリー解釈型ロードバランサ1は、データベースサーバにクエリーを送信した後、予め定めた時間を経過したにもかかわらずクエリーの結果を取得できない場合、次の順のデータベースサーバにクエリーを振り分ける。
なお、上述のように、“select”文から成るクエリーを複数のデータベースサーバに振り分けることによる負荷分散の効果をデータベースサーバのCPU(Central Processing Unit)負荷を計測して評価した結果によれば、クエリー全てが“select”文などの参照系であり、データベースサーバが2台(n=2)の場合、CPU利用率で平均約60%改善されるという結果が得られた。
一方、クエリーが、“select”文の正規表現に一致せず、負荷分散できないクエリーであると判断された場合、このクエリーをn個に複製する。図2は、クエリーが、“update”文の場合の処理を示す図である。複製されたクエリーは、先ず、ラウンドロビンにより既に振り分けられたクエリーに続いて、次に受信する負荷分散可能なクエリーを振り分ける予定のデータベースサーバに対して送信される。続いて、順次全てのデータベースサーバ2−1〜2−nに対して送信される。クエリーを送信した後、予め定めた時間を経過してもクエリーに対する応答が得られない場合は、次のデータベースサーバへ実行を移す。

Claims (5)

  1. 複数のデータベースサーバと、該複数のデータベースサーバを管理する負荷軽減装置とを備えるデータベース負荷軽減システムであって、
    前記負荷軽減装置は、
    受信したクエリーを解釈して、データベースサーバの負荷分散を行うことが可能なクエリーか否か判断するクエリー解釈手段と、
    該クエリー解釈手段により負荷分散が可能と判断されたクエリーをデータベースサーバへ順次振り分け、送信するクエリー振り分け手段と、
    前記クエリー解釈手段により負荷分散ができないと判断されたクエリーを複製する複製手段と、
    該複製手段により複製されたクエリーを、管理する全てのデータベースサーバに送信するクエリー送信手段と、
    を具備することを特徴とするデータベース負荷軽減システム。
  2. 前記クエリー解釈手段は、受信したクエリーがデータの読み込みを行う正規表現か否か判断し、読み込みを行う正規表現の場合、負荷分散を行うことが可能なクエリーであると判断することを特徴とする請求項1に記載のデータベース負荷軽減システム。
  3. 前記クエリー振り分け手段は、前記クエリー解釈手段により負荷分散が可能と判断されたクエリーを、所定の負荷軽減アルゴリズムを用いることにより、複数のデータベースサーバの内の1つを、順に、かつループ状に選択して振り分けることを特徴とする請求項1に記載のデータベース負荷軽減システム。
  4. 前記クエリー送信手段は、前記複製手段により複製されたクエリーを、既に振り分けられたクエリーに続き、次に受信する負荷分散可能なクエリーを振り分ける予定のデータベースサーバから始め、順次全てのデータベースサーバに送信することを特徴とする請求項1に記載のデータベース負荷軽減システム。
  5. 複数のデータベースサーバと、該複数のデータベースサーバを管理する負荷軽減装置とを備えるデータベース負荷軽減システムにおいて、
    受信したクエリーを解釈して、データベースサーバの負荷分散を行うことが可能なクエリーか否か判断する機能と、負荷分散が可能と判断されたクエリーをデータベースサーバへ、負荷分散アルゴリズムにより順次振り分け、送信する機能と、負荷分散ができないと判断されたクエリーを複製する機能と、複製されたクエリーを、管理する全てのデータベースサーバに送信する機能とをコンピュータに実行させることを特徴とする負荷軽減プログラム。
JP2004566262A 2003-01-14 2003-01-14 データベース負荷軽減システムおよび負荷軽減プログラム Pending JPWO2004063928A1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2003/000221 WO2004063928A1 (ja) 2003-01-14 2003-01-14 データベース負荷軽減システムおよび負荷軽減プログラム

Publications (1)

Publication Number Publication Date
JPWO2004063928A1 true JPWO2004063928A1 (ja) 2006-05-18

Family

ID=32697370

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004566262A Pending JPWO2004063928A1 (ja) 2003-01-14 2003-01-14 データベース負荷軽減システムおよび負荷軽減プログラム

Country Status (3)

Country Link
US (1) US20060129528A1 (ja)
JP (1) JPWO2004063928A1 (ja)
WO (1) WO2004063928A1 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006012610A2 (en) 2004-07-23 2006-02-02 Citrix Systems, Inc. Systems and methods for optimizing communications between network nodes
AU2005266945A1 (en) 2004-07-23 2006-02-02 Citrix Systems, Inc. A method and systems for securing remote access to private networks
JP4575064B2 (ja) * 2004-07-29 2010-11-04 三菱電機株式会社 情報検索装置
US7627591B2 (en) * 2004-10-29 2009-12-01 Skyler Technology, Inc. Method and/or system for manipulating tree expressions
US8954595B2 (en) 2004-12-30 2015-02-10 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP buffering
US7810089B2 (en) * 2004-12-30 2010-10-05 Citrix Systems, Inc. Systems and methods for automatic installation and execution of a client-side acceleration program
US8255456B2 (en) 2005-12-30 2012-08-28 Citrix Systems, Inc. System and method for performing flash caching of dynamically generated objects in a data communication network
JP4723301B2 (ja) * 2005-07-21 2011-07-13 株式会社日立製作所 ストリームデータ処理システムおよびストリームデータ処理方法
US8209696B2 (en) * 2006-02-13 2012-06-26 Teradata Us, Inc. Method and system for load balancing a distributed database
JP4571609B2 (ja) * 2006-11-08 2010-10-27 株式会社日立製作所 リソース割当方法、リソース割当プログラム、および、管理コンピュータ
US8060614B2 (en) * 2008-06-19 2011-11-15 Microsoft Corporation Streaming operator placement for distributed stream processing
US20100241893A1 (en) * 2009-03-18 2010-09-23 Eric Friedman Interpretation and execution of a customizable database request using an extensible computer process and an available computing environment
CA2709498A1 (en) * 2009-07-10 2011-01-10 Xkoto Inc. System and method for subunit operations in a database
US9116946B2 (en) 2010-04-02 2015-08-25 Scalebase Inc. System and method for interacting with a plurality of data sources
US9589029B2 (en) * 2010-12-28 2017-03-07 Citrix Systems, Inc. Systems and methods for database proxy request switching
WO2012091948A2 (en) 2010-12-28 2012-07-05 Citrix Systems, Inc. Systems and methods for database proxy request switching
US11481091B2 (en) 2013-05-15 2022-10-25 Google Llc Method and apparatus for supporting user interactions with non- designated locations on a digital map
US20150120697A1 (en) 2013-10-28 2015-04-30 Scalebase Inc. System and method for analysis of a database proxy
US10303702B2 (en) 2014-02-07 2019-05-28 Ignite Scalarc Solutions, Inc. System and method for analysis and management of data distribution in a distributed database environment
US10394817B2 (en) 2015-09-22 2019-08-27 Walmart Apollo, Llc System and method for implementing a database
US10083201B2 (en) 2015-09-22 2018-09-25 Walmart Apollo, Llc System for maintaining consistency across a decentralized database cluster and method therefor
US10116736B2 (en) * 2015-09-22 2018-10-30 Walmart Apollo, Llc System for dynamically varying traffic routing modes in a distributed cluster and method therefor
US10268744B2 (en) 2015-09-22 2019-04-23 Walmart Apollo, Llc System for maintaining consistency across a decentralized database cluster and method therefor
US10169138B2 (en) 2015-09-22 2019-01-01 Walmart Apollo, Llc System and method for self-healing a database server in a cluster
US10162721B2 (en) * 2016-11-28 2018-12-25 Sap Se Workload shifting in a database system using hint-based routing
US12095671B2 (en) * 2022-08-25 2024-09-17 Charter Communications Operating, Llc Apparatus and method for network function signaling latency reduction
KR102519005B1 (ko) * 2022-12-29 2023-04-06 주식회사 에스티씨랩 데이터베이스 상태를 이용한 디지털 기반 데이터 송수신 제어 서버, 시스템 및 방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09146804A (ja) * 1995-11-28 1997-06-06 Toshiba Corp データ整合装置
US6950848B1 (en) * 2000-05-05 2005-09-27 Yousefi Zadeh Homayoun Database load balancing for multi-tier computer systems
US7099915B1 (en) * 2000-06-30 2006-08-29 Cisco Technology, Inc. Server load balancing method and system
JP2001147847A (ja) * 2000-10-10 2001-05-29 Hitachi Ltd データベース管理システムおよび問合せの処理方法
US7933983B2 (en) * 2002-12-17 2011-04-26 Hewlett-Packard Development Company, L.P. Method and system for performing load balancing across control planes in a data center
US20050177745A1 (en) * 2004-02-11 2005-08-11 Alio, Inc. Distributed System and Methodology for Delivery of Media Content

Also Published As

Publication number Publication date
US20060129528A1 (en) 2006-06-15
WO2004063928A1 (ja) 2004-07-29

Similar Documents

Publication Publication Date Title
JPWO2004063928A1 (ja) データベース負荷軽減システムおよび負荷軽減プログラム
US11860874B2 (en) Multi-partitioning data for combination operations
US12093247B2 (en) Blockchain system and method
US11151137B2 (en) Multi-partition operation in combination operations
JP5118059B2 (ja) 検索可能なデータサービスのための方法及び装置
US9304815B1 (en) Dynamic replica failure detection and healing
JP5998206B2 (ja) クラスタデータグリッドにおける拡張可能な中央集中型動的リソース分散
JP4696089B2 (ja) 分散ストレージシステム
US11604608B2 (en) Blockchain transaction processing systems and methods
KR20120072907A (ko) 오브젝트를 복수 개의 데이터 노드들의 위치에 기반하여 분산 저장하는 분산 저장 시스템 및 그 위치 기반 분산 저장 방법 및 컴퓨터에 의하여 독출 가능한 저장 매체
JPWO2011074699A1 (ja) 分散処理管理サーバ、分散システム、分散処理管理プログラム及び分散処理管理方法
JP2014044677A (ja) 送信制御プログラム、通信ノード、および送信制御方法
US11487736B2 (en) Blockchain transaction processing systems and methods
CN113434282A (zh) 流计算任务的发布、输出控制方法及装置
US20100145911A1 (en) Serverless Replication of Databases
CN113168405B (zh) 数据库管理服务提供系统
CN110045983A (zh) 版本库管理方法、装置及服务器
US11500845B2 (en) Blockchain transaction processing systems and methods
EP2889789A1 (en) Replication description model for data distribution
WO2022121387A1 (zh) 数据存储方法、装置、服务器及介质
JP2004013867A (ja) 複製データベースシステム、データベース装置及びそれに用いるデータベース更新方法並びにそのプログラム
WO2024131083A1 (zh) 一种数据处理方法、装置、电子设备、计算机存储介质及计算机程序产品
US12056158B1 (en) Fast recovery of partioned replicated data store
CN115827270A (zh) 数据处理方法、装置、服务器、介质及产品
CN116962434A (zh) 数据对比方法、装置、存储介质及电子设备

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081104

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090407