JP2012078993A - Method and system to scale up and scale down relational database - Google Patents
Method and system to scale up and scale down relational database Download PDFInfo
- Publication number
- JP2012078993A JP2012078993A JP2010222316A JP2010222316A JP2012078993A JP 2012078993 A JP2012078993 A JP 2012078993A JP 2010222316 A JP2010222316 A JP 2010222316A JP 2010222316 A JP2010222316 A JP 2010222316A JP 2012078993 A JP2012078993 A JP 2012078993A
- Authority
- JP
- Japan
- Prior art keywords
- instance
- sql
- data
- sql statement
- relational database
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本発明は、IaaS(Infrastructure as a Service)などで提供する仮想マシンインスタンス上で動作するリレーショナルデータベース(以下、RDB)に対し、SQL問い合わせを中継するプロキシを用いてシステムの停止を必要とせず動的に、スケールアップ及びスケールダウンを実現する技術に関するものである。 In the present invention, a relational database (hereinafter referred to as RDB) operating on a virtual machine instance provided by IaaS (Infrastructure as a Service) or the like is dynamically used by using a proxy that relays an SQL query without stopping the system. In particular, the present invention relates to a technique for realizing scale-up and scale-down.
現在、仮想マシンインスタンスを提供するIaaSが数多く提供されている。その中でもAmazon Web Services(以下、AWSと略す)のEC2のように、様々な性能のインスタンスを時間単位の課金で利用できるIaaSは、サービス利用者の増減に伴う負荷の増減に合わせて、計算資源の利用コストをスケールすることが可能であるため、多くのWebサービスで利用されつつある。
このようなWebサービスは、一般的にWebアプリケーションとデータベースで構成されているが、Webアプリケーションについては、負荷に応じて動的にインスタンスを増減させるスケールOUT/INの手法が一般的に利用されている。また、スケールOUT/IN機能は、既にIaaSベンダ自身やサードーパーティから提供されている。
Currently, there are many IaaSs that provide virtual machine instances. Among them, like EC2 of Amazon Web Services (hereinafter abbreviated as “AWS”), IaaS that can use various performance instances with hourly billing is a computing resource that matches the increase or decrease of the load accompanying the increase or decrease of service users. Since it is possible to scale the usage cost of the Internet, it is being used in many Web services.
Such a web service is generally composed of a web application and a database, but for web applications, a scale OUT / IN method that dynamically increases or decreases instances according to the load is generally used. Yes. The scale OUT / IN function is already provided by the IaaS vendor itself or a third party.
データベースについても、負荷に応じて処理性能を変化させる方法は幾つか提案されている。インスタンス数を増減させて処理性能を変化させるスケールOUT/INを実現する方法としては、非特許文献1に代表されるNoSQLと分類されるデータベースがある。また、従来のRDBクラスタ技術では更新性能が問題となっていたが、非特許文献2や非特許文献3などのように、更新性能も台数に応じてリニアに向上できるクラスタ技術も現れてきている。 As for the database, several methods for changing the processing performance according to the load have been proposed. As a method for realizing the scale OUT / IN for changing the processing performance by increasing or decreasing the number of instances, there is a database classified as NoSQL represented by Non-Patent Document 1. In addition, although update performance has been a problem in the conventional RDB cluster technology, cluster technologies that can improve the update performance linearly according to the number of devices have appeared, such as Non-Patent Document 2 and Non-Patent Document 3. .
しかし、これらの方法は従来のRDBと同様の機能が提供されなかったり、従来のRDBと同様のインタフェースが提供されなかったり、常に3台以上稼動する構成でないと、1台の性能より劣ってしまうなど、様々な問題がある。また、動的に台数を増減させる方法も確立されていない。
一方、RDBが稼動するインスタンス(=仮想マシン)を、性能が異なるインスタンスに入れ替えことで負荷に応じた性能に変更するスケールUP/DOWNを実現する方法もある。例えば、pgpool-IIのレプリケーションとオンラインリカバリ機能を用いれば、インスタンスを入れ替えることは可能である。しかし、オンラインリカバリ中でも、一時的にRDBの接続を止める必要があり、その間はサービスが停止してしまう。
特許文献1を用いれば、停止せずにインスタンスを入れ替えることが可能ではあるが、RDBMS自体に、特許文献1で示された処理を行う機能を持つ必要がある。このため、既存のRDBMSに、この方法を容易に実現することは困難である。
さらに、特許文献1は、実機環境でマシン環境の変化が少ない場面におけるサーバの故障時や、スレーブサーバの追加を想定している。IaaS上で負荷に応じてRDBの処理性能を変化させる場合には、数時間や一日単位でインスタンスを入れ替えなければならない。特許文献1の方法では、データ転送量やコピーなどの処理時間が大きく、データ転送量や入れ替えコストが増大してしまう。そのため、入れ替えのための時間が大きくなる上、データ転送量やインスタンスの起動時間で課金されるIaaSではコスト増となる。従って、このような場合には特許文献1の方法は適さない。
However, these methods are inferior to the performance of one unit unless the same function as the conventional RDB is provided, the same interface as the conventional RDB is not provided, or when three or more units are not always operated. There are various problems. Also, a method for dynamically increasing or decreasing the number has not been established.
On the other hand, there is also a method for realizing scale UP / DOWN in which an instance (= virtual machine) in which RDB operates is replaced with an instance having different performance to change the performance according to the load. For example, using pgpool-II's replication and online recovery functions, it is possible to swap instances. However, even during online recovery, it is necessary to temporarily stop the RDB connection, and the service stops during that time.
If Patent Document 1 is used, it is possible to replace the instance without stopping, but the RDBMS itself needs to have a function of performing the processing shown in Patent Document 1. For this reason, it is difficult to easily implement this method in an existing RDBMS.
Further, Patent Document 1 assumes that a server failure occurs in a scene where there is little change in the machine environment in an actual machine environment, or that a slave server is added. When changing the processing performance of the RDB according to the load on IaaS, the instances must be replaced every few hours or every day. In the method of Patent Document 1, the data transfer amount and the processing time for copying and the like are long, and the data transfer amount and replacement cost increase. As a result, the time required for replacement increases, and the cost of IaaS charged by the data transfer amount and the instance startup time increases. Therefore, in such a case, the method of Patent Document 1 is not suitable.
本発明は上記の問題に鑑みなされたもので、その目的は、IaaS上のインスタンスで動作するRDBのスケールUP/DOWNを、Webサービスを止めることなく動的に、かつ低コストでインスタンスの入れ替えを行うことで実現する方法およびシステムを提供することにある。 The present invention has been made in view of the above problems, and its purpose is to change the scale of an RDB that operates on an instance on IaaS dynamically and at low cost without stopping the Web service. It is to provide a method and a system which are realized by performing.
上記目的を達成するために、本発明は、第1及びは第2のリレーショナルデータベースに対し選択的にSQL文の送受信を中継する中継手段と、データ更新を行うSQL文のコピーを記憶する第1の手段と、データ更新を行うSQL文のコピーが記憶されているかいないかを判定する手段と、その判定結果に基づきデータ更新を行うSQL文のコピーをインスタンスの入れ替え元の前記リレーショナルデータベースとは別の第2のリレーショナルデータベースへ送信して反映させ、第1、第2のリレーショナルデータベースに格納されたデータの同期をとる手段と、両リレーショナルデータベースのデータの同期確立後に前記インスタンス入れ替え元のリレーショナルデータベースが稼動していたインスタンスを異なる性能のインスタンスに変更すると共に、入れ替え先のリレーショナルデータベースが稼動していたインスタンスを異なるインスタンスに変更する手段とを備えることを特徴とする。 In order to achieve the above object, the present invention stores a relay means for selectively relaying transmission and reception of SQL statements to the first and second relational databases, and a first copy for storing SQL statements for updating data. And a means for determining whether or not a copy of the SQL statement that performs data update is stored, and a copy of the SQL statement that performs data update based on the determination result is different from the relational database from which the instance is replaced. Means for synchronizing the data stored in the first and second relational databases, and the relational database from which the instance is replaced after the synchronization of the data of both relational databases is established. Change running instances to instances with different performance Together with further be characterized by comprising a means for changing the instance relational database exchange destination was busy at different instances.
また、本発明に係るシステムは、第1及び第2のリレーショナルデータベースに対し選択的にSQL文の送受信を中継する中継手段と、データ更新を行うSQL文のコピーを記憶する第1の手段と、データ更新を行うSQL文のコピーが記憶されているかいないかを判定する手段と、その判定結果に基づきデータ更新を行うSQL文のコピーをインスタンスの入れ替え元の前記リレーショナルデータベースとは別の第2のリレーショナルデータベースへ送信して反映させ、第1、第2のリレーショナルデータベースに格納されたデータの同期をとる手段と、両リレーショナルデータベースのデータの同期確立後に前記インスタンス入れ替え元のリレーショナルデータベースが稼動していたインスタンスを異なる性能のインスタンスに変更すると共に、入れ替え先のリレーショナルデータベースが稼動していたインスタンスを異なるインスタンスに変更する手段とを備えることを特徴とする。 In addition, the system according to the present invention includes a relay unit that selectively relays transmission and reception of SQL statements to the first and second relational databases, a first unit that stores a copy of the SQL statement that performs data update, A means for determining whether or not a copy of the SQL statement for performing data update is stored, and a second copy that is different from the relational database from which the instance is replaced by replacing the copy of the SQL statement for performing data update based on the determination result A means for synchronizing the data stored in the first and second relational databases by transmitting to the relational database and reflecting it, and the relational database from which the instance was replaced was in operation after the synchronization of the data in both relational databases was established Change an instance to an instance with a different performance Together, characterized in that it comprises a means for changing the instance relational database exchange destination was busy at different instances.
本発明によれば、Webサービス等で利用されているRDBを、サービスを止めることなく動的に、かつ短時間及び低コストで、スケールUP/DOWNできる。 According to the present invention, it is possible to scale up / down an RDB used in a web service or the like dynamically without stopping the service, in a short time and at a low cost.
以下、本発明を実施する場合の一形態を、図面を参照して具体的に説明する。
図1に本発明のシステムの構成図を示す。
本システムは、IaaS100上の仮想マシンサービスを用いたインスタンス群とストレージサービスを用いたストレージ群で構成される。
IaaS100上には、Webアプリ用インスタンス110、コントロール・プロキシ用インスタンス120、DBシステム(A)130を構成するDBMS用インスタンスA140とデータを保管するストレージ(A)150、DBシステム(B)160を構成するDBMS用インスタンスB170とデータを保管するストレージ(B)180を配置する。
Hereinafter, an embodiment for carrying out the present invention will be specifically described with reference to the drawings.
FIG. 1 shows a configuration diagram of the system of the present invention.
This system includes an instance group using a virtual machine service on IaaS 100 and a storage group using a storage service.
On the IaaS 100, a
Webアプリ用インスタンス110には、Webアプリ111及びそれを動作させる一連のプログラムが配置されている。このWebアプリ111は、RDBMSの代わりに後述のコントロール・プロキシ用インスタンス120上の制御プロキシ部122にSQL文を発行し、その結果を受け取る。
コントロール・プロキシ用インスタンス120には、コントロール部121及び制御プロキシ部122、RDBMS123、SQL文ストアX124を配置する。コントロール部121は、IaaS100が提供するAPIなどのインタフェースを通して、インスタンス入れ替え時にインスタンスの起動停止や、インスタンス上のRDBMSの起動停止などのコントロールを行う。
In the
In the
制御プロキシ部122は、Webアプリ111から受けたSQL文を、Webアプリ111の代わりに後述するDBシステム(A)130やDBシステム(B)160へ発行し、その結果を受けてWebアプリ111に返したり、Webアプリ111から受けたSQL文の中から更新を含むSQL文(以下、更新系SQL文と略記)を判定し、それを後述する各種SQLストアの中の適切なものに蓄積したりする。
RDBMS123は、コントロール・プロキシ用インスタンス120の処理負荷に余裕がある場合に、蓄積された更新系SQL文を適切なDBデータに反映させる。SQL文ストアX124は、インスタンス入れ替え処理中の更新系SQL文を蓄積するリポジトリである。
The
The RDBMS 123 reflects the accumulated update SQL statement in appropriate DB data when the processing load of the
DBシステム(A)130及びDBシステム(B)160は、入れ替え元及び入れ替え先となるDBシステムである。どちらも同じ構成となっており、DBMS用インスタンス(A)140及びDBMS用インスタンス(B)170には、一般的なRDBMSであるRDBMS−(A)141及びRDBMS−(B)171が各々配置されている。
また、ストレージ(A)150及びストレージ(B)180には、入れ替え処理前及び入れ替え処理後に更新系SQL文を蓄積するSQL文ストアZ151及びSQL文ストアY181と、RDBMS−(A)141及びRDBMS−(B)171が各々利用するDBデータ(A)152及びDBデータ(B)182を配置する。
The DB system (A) 130 and the DB system (B) 160 are DB systems to be replaced and replaced. Both have the same configuration, and RDBMS- (A) 141 and RDBMS- (B) 171 which are general RDBMSs are arranged in the DBMS instance (A) 140 and the DBMS instance (B) 170, respectively. ing.
Further, the storage (A) 150 and the storage (B) 180 are stored in the SQL statement store Z151 and the SQL statement store Y181 that store update SQL statements before and after the replacement process, and RDBMS- (A) 141 and RDBMS-. (B) DB data (A) 152 and DB data (B) 182 used by 171 are arranged.
以下では、入れ替え開始時点で利用されている入れ替え元をDBシステム(A)130、入れ替え終了時に利用されている入れ替え先をDBシステム(B)160として説明する。
ここで、入れ替え処理を説明する前に、入れ替え開始前の状態を図2で説明する。
入れ替え開始前の状態では、DBシステム(A)130が利用され、DBMS用インスタンス(B)170は稼動していない。ただし、ストレージ(B)180には、DBデータ(B)182にSQL文ストアY181を反映させれば、ストレージ(A)150のDBデータ(A)152と同等のデータになるようなDBデータ(B)182とSQL文ストアY181が、予め存在するものとする。これらは、既存のDBデータコピー技術と、以降で説明するSQL文の蓄積を用いれば実現可能である。
In the following description, it is assumed that the replacement source used at the start of replacement is the DB system (A) 130, and the replacement destination used at the end of replacement is the DB system (B) 160.
Here, before explaining the replacement process, the state before the start of the replacement will be described with reference to FIG.
In the state before the start of replacement, the DB system (A) 130 is used, and the DBMS instance (B) 170 is not operating. However, if the SQL statement store Y181 is reflected in the DB data (B) 182 in the storage (B) 180, the DB data (such as the DB data (A) 152 in the storage (A) 150 becomes the same data ( B) Assume that 182 and the SQL statement store Y181 exist in advance. These can be realized by using an existing DB data copy technique and accumulation of SQL sentences described below.
入れ替え開始前の状態では、Webアプリ111が発行したSQL文は、黒矢印201で示すように、コントロール・プロキシ用インスタンス120の制御プロキシ部122に送る。制御プロキシ部122は、黒矢印202で示すように、全てのSQL文を、DBMS用インスタンス(A)140のRDBMS−(A)141に送る。
RDBMS−(A)141はストレージ(A)150のDBデータ(A)152を用いてSQL文を処理し、その結果を、制御プロキシ部122を経由して、Webアプリ111に返答する。
In the state before the start of replacement, the SQL statement issued by the
The RDBMS- (A) 141 processes the SQL sentence using the DB data (A) 152 of the storage (A) 150 and returns the result to the
また、入れ替え開始前の状態では、コントロール・プロキシ用インスタンス120はストレージ(B)180にも接続されており、制御プロキシ部122は、Webアプリ111から受けたSQL文の中で、更新系SQL文をコピーし、白矢印203で示すようにストレージ(B)180中のSQL文ストアY181に蓄積する。
さらに、コントロール・プロキシ用インスタンス120で、処理能力に余裕がある場合には、RDBMS123が、白矢印204及び205に示すように、ストレージ(B)180のSQL文ストアY181に蓄積された更新系SQL文を、ストレージ(B)180のDBデータB182に反映させる。
このように、入れ替え開始前の状態では、DBシステム(A)130が利用され、更新系SQL文のみがストレージ(B)180中のSQL文ストアY181に蓄積され、コントロール・プロキシ用インスタンス120の処理能力の余裕に応じてストレージ(B)180のDBデータ(B)182に、更新系SQL文が反映される。
In the state before the start of replacement, the
Furthermore, when the
Thus, in the state before the start of replacement, the DB system (A) 130 is used, and only the update SQL statement is accumulated in the SQL statement store Y181 in the storage (B) 180, and the processing of the
次に、入れ替え処理の概要フローを図3に示す。
入れ替え処理は、入れ替え準備処理(ステップ301)、DBシステム切り替え処理(ステップ302)、入れ替え後処理(ステップ303)の3つのフェーズで行われる。
以後、この順序で詳細な処理を説明する。
入れ替え準備処理(ステップ301)の詳細な処理フローを図4に示す。
まず、コントロール・プロキシ用インスタンス120上のコントロール部121は、コントロール・プロキシ用インスタンス120上に、SQL文ストアX140を作成し、これまでコントロール・プロキシ用インスタンス120の制御プロキシ部122がストレージ(B)180上のSQL文ストアY181に蓄積してきた更新系SQL文を、SQL文ストアX124に蓄積するように制御プロキシ部122の設定を変更する(ステップ401)。
Next, an outline flow of the replacement process is shown in FIG.
The replacement process is performed in three phases: a replacement preparation process (step 301), a DB system switching process (step 302), and a post-replacement process (step 303).
Hereinafter, detailed processing will be described in this order.
A detailed processing flow of the replacement preparation process (step 301) is shown in FIG.
First, the
次に、コントロール部121は、コントロール・プロキシ用インスタンス120とストレージ(B)180の接続を切断し、ストレージ(B)180に接続された形で、DBMS用インスタンス(B)170を起動する(ステップ402)。そして、DBMS用インスタンス(B)170上に、ストレージ(B)180上のDBデータ(B)182を利用する設定で、RDBMS−(B)171を起動する(ステップ403)。
最後に、コントロール部121は、起動したRDBMS−(B)171に対し、ストレージ(B)180上のSQL文ストアY181に蓄積された更新系SQL文を、DBデータ(B)182に反映させる(ステップ404)。
Next, the
Finally, the
以上が、入れ替え準備処理(ステップ301)である。入れ替え準備処理が終わった状態を図5に示す。
図2と比べ、DBシステム(B)180が変更され、更新系SQL文は白矢印501で示すように、SQL文ストアX124に蓄積されるようになるが、DBシステム(A)130側は変化せずWebアプリ111が送る全てのSQL文の処理は、依然としてDBシステム(A)130が利用されるため、Webアプリ111は引き続きSQL文処理を含む動作を継続することができる。
The above is the replacement preparation process (step 301). FIG. 5 shows a state where the replacement preparation process is completed.
Compared to FIG. 2, the DB system (B) 180 is changed, and the update SQL statement is accumulated in the SQL statement store X124 as indicated by the
次に、DBシステム切り替え処理(ステップ302)の詳細な処理フローを図6に示す。
まず、コントロール部121は、制御プロキシ部122の設定を変え、Webアプリ111から受け取ったSQL文を図7に示す処理フローで処理するようにする(ステップ601)。
ここで、図7の処理フローを説明する。Webアプリ111からSQL文を受け取った制御プロキシ部122は、そのSQL文をDBシステム(A)130に送る(ステップ701)。次に、更新系SQL文かどうかを判断する(ステップ702)。もし、ステップ702で、更新系SQL文で無いと判断された場合には、DBシステム(A)130からSQL文処理結果を受け取り(ステップ703)、Webアプリ111にその結果を返答する(ステップ704)。
Next, a detailed process flow of the DB system switching process (step 302) is shown in FIG.
First, the
Here, the processing flow of FIG. 7 will be described. The
ステップ702で更新系SQL文と判断された場合には、次にSQL文ストアX124にSQL文の蓄積が無いかどうかを判断する(ステップ705)。もし、SQL文ストアX124にSQL文の蓄積が有った場合は、ステップ702で更新系SQL文と判断されたSQL文を、SQL文ストアX124に蓄積する(ステップ706)。その後、先と同様にステップ703及びステップ704の処理を行う。
ステップ705で、SQL文ストアX124にSQL文の蓄積が無い場合は、ステップ702で更新系SQL文と判断されたSQL文を、DBシステム(B)160に送る(ステップ707)。この段階でデータの同期がとれたことになる。そして、DBシステム(B)160からSQL文処理結果を受け取る(ステップ708)。そして、先と同様にDBシステム(A)130からSQL文処理結果を受け取り(ステップ703)、Webアプリ111にその結果を返答する(ステップ704)。
If it is determined in
If there is no SQL sentence stored in the SQL sentence store X124 in
この際、従来のレプリケーション技術と同様に、ステップ708とステップ703で受け取ったSQL文処理結果を比較し、適切なエラー処理を行ってもよい。
ステップ601で、制御プロキシ部122の設定を図7で示した処理フローになるように設定した後、コントロール部121は、DBMS用インスタンス(B)170上のRDBMS−(B)171に対し、SQL文ストアX124に蓄積されたSQL文を送り、反映処理を行う(ステップ602)。
この際、RDBMS−(B)171から処理結果が帰ってきた時点で、SQL文ストアX124からSQL文を削除するようにする。
At this time, as in the conventional replication technique, the SQL statement processing results received in
In
At this time, when the processing result is returned from the RDBMS- (B) 171, the SQL sentence is deleted from the SQL sentence store X124.
次に、コントロール部121は、SQL文ストアX124に蓄積されたSQL文が全て反映されたかどうかを確認する(ステップ603)。もし、ステップ603の途中で、制御プロキシ部122のステップ706の処理の影響などにより、SQL文ストアX124に蓄積されたSQL文が全て反映されていない場合は、再度ステップ602の反映処理を行う。
Next, the
ステップ603で、SQL文ストアX124に蓄積されたSQL文が全て反映された場合、制御プロキシ部122の処理は、図7のステップ706に進むことは無くなり、更新系SQL文は、図8の白矢印801のようにDBシステム(B)160側にもコピーされて送られることとなる。そこで、次にコントロール部121は、制御プロキシ部122の設定を変え、DBシステム(A)130とDBシステム(B)160を入れ替える(ステップ604)。
If all the SQL statements stored in the SQL statement store X124 are reflected in
具体的には、図7で示したSQL処理フローのDBシステム(A)とDBシステム(B)を入れ替えて、全てのSQL文がDBシステム(B)160で処理されるようにし、更新系SQL文のみDBシステムA130に送られるようにする。この状態を図9に示す。
制御プロキシ部122は、黒矢印201で示すように、これまでと同様にWebアプリ111からSQL文を受け取るが、黒矢印901で示すように、全てのSQL文はDBシステム(B)160に送信し、DBシステム(B)160から受け取った結果をWebアプリ111に返す。
Specifically, the DB system (A) and the DB system (B) in the SQL processing flow shown in FIG. 7 are exchanged so that all SQL statements are processed by the DB system (B) 160, and the update system SQL is changed. Only the sentence is sent to the DB system A130. This state is shown in FIG.
As indicated by the
また、更新系SQL文は、白矢印902で示すように、DBシステム(A)130に送られ、DBシステム(A)130のストレージ(A)150上のDBデータ(A)152に反映される。
Further, the update SQL statement is sent to the DB system (A) 130 and reflected in the DB data (A) 152 on the storage (A) 150 of the DB system (A) 130 as indicated by the
以上により、DBシステム切り替え処理(ステップ302)は終了する。
DBシステム切り替え処理(ステップ302)が終了した後は、実質的に処理が行われるDBシステムが、DBシステム(A)130からDBシステム(B)160に切り替わっている。ここで、更新系SQL文はステップ604まではDBシステム(A)130のみ、それ以降はDBシステム(A)130とDBシステム(B)160の両方で処理される。
また、更新系以外のSQL文は、ステップ604まではDBシステム(A)130、それ以降はDBシステム(B)160で処理される。このため、SQL文が処理されないタイミングは存在せず、Webアプリ111は引き続きSQL文処理を含む動作を継続することができる。
Thus, the DB system switching process (step 302) ends.
After the DB system switching process (step 302) is completed, the DB system on which the process is substantially performed is switched from the DB system (A) 130 to the DB system (B) 160. Here, the update SQL statement is processed only by the DB system (A) 130 until step 604, and the subsequent processing is performed by both the DB system (A) 130 and the DB system (B) 160.
In addition, SQL statements other than the update system are processed by the DB system (A) 130 up to step 604 and the DB system (B) 160 thereafter. For this reason, there is no timing at which the SQL sentence is not processed, and the
次に、入れ替え後処理(ステップ303)の詳細な処理フローを図10に示す。
まず、コントロール部121は、制御プロキシ部122の設定を変え、DBシステム(A)130に送られていた更新系SQL文をDBシステム(A)130に送らずに、SQL文ストアX124に蓄積するようにする(ステップ1001)。これにより、図5で、DBシステム(A)130とDBシステム(B)160を入れ替えた状態になる。
次にコントロール部121は、DBMS用インスタンスA140を停止する(ステップ1002)。ステップ1001によりSQL文が送られることは無いので、この停止は問題を引き起こすことは無い。次に、ストレージA150を、コントロール・プロキシ用インスタンス120に接続させ、ストレージA150上にSQL文ストアZ151を作成し、制御プロキシ部122の設定を変え、更新系SQL文をSQL文ストアZ151に蓄積するようにする(ステップ1003)。
Next, FIG. 10 shows a detailed processing flow of the post-replacement processing (step 303).
First, the
Next, the
次に、SQL文ストアX124に蓄積されていた更新系SQL文を、SQL文の順序を変えずにSQL文ストアZ151にマージする(ステップ1004)。
次に、コントロール・プロキシ用インスタンス120上のRDBMS123の設定を変更し、コントロール・プロキシ用インスタンス120の処理負荷に余裕がある場合に、SQL文ストアZ151をストレージ(A)150上のDBデータ(A)152に反映させるようにする(ステップ1005)。
Next, the update SQL statement stored in the SQL statement store X124 is merged into the SQL statement store Z151 without changing the order of the SQL statements (step 1004).
Next, when the setting of the
ここで、ステップ1004のマージ処理の代わりに、コントロール・プロキシ用インスタンス120上のRDBMS123を起動し、SQL文ストアX124に蓄積されていたSQL文を、ストレージ(A)150上のDBデータ(A)152に反映させてもよい。
Here, instead of the merge processing in
以上により、入れ替え後処理(ステップ303)は終了する。
これにより、図2で示した入れ替え開始前の状態と比較し、DBシステムA130とDBシステムB160が完全に入れ替わった状態となる。
Thus, the post-replacement process (step 303) ends.
Thereby, compared with the state before the start of replacement shown in FIG. 2, the
本発明では、再度入れ替えを行うことも可能で、上記で示したように、DBデータ全ての移行は必要ない。また、Webアプリ111からのSQL文は、どの時点でも同期されたデータを持つDBシステム(A)130もしくはDBシステム(B)160で処理されるため、動的な入れ替えも実現できている。
以上のうに、IaaSで提供される異なる性能のインスタンスを、上記のシステムで入れ替えることにより、動的なスケールUP及びDOWNが実現できる。
In the present invention, replacement can be performed again, and as shown above, it is not necessary to migrate all DB data. In addition, since the SQL sentence from the
As described above, dynamic scale UP and DOWN can be realized by replacing instances of different performances provided by IaaS with the above system.
100…IaaS、110…Webアプリ用インスタンス、111…Webアプリ、120…コントロール・プロキシ用インスタンス、121…コントロール部、122…制御プロキシ部、123…RDBMS、124…SQL文ストアX、130…DBシステム(A)、140…DBMS用インスタンス(A)、141…RDBMS−(A)、150…ストレージ(A)、151…SQL文ストアZ、152…DBデータ(A)、160…DBシステム(B)、170…DBMS用インスタンス(B)、171…RSBMS−(B)、180…ストレージ(B)、181…SQL文ストアY、182…DBデータ(B)
DESCRIPTION OF
Claims (2)
前記システムが、
第1および第2のリレーショナルデータベースに対し選択的にSQL文の送受信を中継する中継手段と、データ更新を行うSQL文のコピーを記憶する第1のステップと、データ更新を行うSQL文のコピーが記憶されているかいないかを判定する第2のステップと、その判定結果に基づきデータ更新を行うSQL文のコピーをインスタンスの入れ替え元の前記リレーショナルデータベースとは別の第2のリレーショナルデータベースへ送信して反映させ、第1、第2のリレーショナルデータベースに格納されたデータの同期をとる第3のステップと、両リレーショナルデータベースのデータの同期確立後に前記インスタンス入れ替え元のリレーショナルデータベースが稼動していたインスタンスを異なる性能のインスタンスに変更すると共に、入れ替え先のリレーショナルデータベースが稼動していたインスタンスを異なるインスタンスに変更する第4のステップとを備えることを特徴とするリレーショナルデータベースをスケールアップおよびスケールダウンさせる方法。 A method for scaling up and down an instance in a system with virtual machines on which first and second relational databases run, comprising:
The system is
A relay unit that selectively relays transmission / reception of SQL statements to / from the first and second relational databases, a first step of storing a copy of the SQL statement that updates data, and a copy of the SQL statement that updates data A second step for determining whether or not the data is stored, and a copy of the SQL statement for updating data based on the determination result is sent to a second relational database different from the relational database from which the instance is replaced The third step of reflecting and synchronizing the data stored in the first and second relational databases is different from the instance in which the relational database from which the instance was replaced was operating after the synchronization of the data of both relational databases was established. When changing to a performance instance, , How to scale up and scale down a relational database, characterized in that it comprises a fourth step of changing the instance relational database exchange destination was busy at different instances.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010222316A JP2012078993A (en) | 2010-09-30 | 2010-09-30 | Method and system to scale up and scale down relational database |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010222316A JP2012078993A (en) | 2010-09-30 | 2010-09-30 | Method and system to scale up and scale down relational database |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012078993A true JP2012078993A (en) | 2012-04-19 |
Family
ID=46239192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010222316A Pending JP2012078993A (en) | 2010-09-30 | 2010-09-30 | Method and system to scale up and scale down relational database |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012078993A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101521475B1 (en) * | 2013-10-24 | 2015-05-19 | 에스케이텔레콤 주식회사 | Method and apparatus for virtualized value-add service |
CN107665227A (en) * | 2017-04-10 | 2018-02-06 | 平安科技(深圳)有限公司 | A kind of data version control method and versions of data controller |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004094289A (en) * | 2002-08-29 | 2004-03-25 | Toshiba Tec Corp | Access method to heterogeneous database and office computer using the method |
-
2010
- 2010-09-30 JP JP2010222316A patent/JP2012078993A/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004094289A (en) * | 2002-08-29 | 2004-03-25 | Toshiba Tec Corp | Access method to heterogeneous database and office computer using the method |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101521475B1 (en) * | 2013-10-24 | 2015-05-19 | 에스케이텔레콤 주식회사 | Method and apparatus for virtualized value-add service |
CN107665227A (en) * | 2017-04-10 | 2018-02-06 | 平安科技(深圳)有限公司 | A kind of data version control method and versions of data controller |
WO2018188196A1 (en) * | 2017-04-10 | 2018-10-18 | 平安科技(深圳)有限公司 | Data version control method, data version controller, device and computer-readable storage medium |
CN107665227B (en) * | 2017-04-10 | 2019-12-24 | 平安科技(深圳)有限公司 | Data version control method and data version controller |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112099918B (en) | Live migration of clusters in a containerized environment | |
US9031910B2 (en) | System and method for maintaining a cluster setup | |
US9934242B2 (en) | Replication of data between mirrored data sites | |
US9286298B1 (en) | Methods for enhancing management of backup data sets and devices thereof | |
WO2017097059A1 (en) | Distributed database system and self-adaptation method therefor | |
CN113010496B (en) | Data migration method, device, equipment and storage medium | |
CN105493474B (en) | System and method for supporting partition level logging for synchronizing data in a distributed data grid | |
US20120130950A1 (en) | Data replication to multiple data nodes | |
CN110149382A (en) | Data synchronization method, system, main server, synchronization client and medium | |
CN103078927A (en) | Key-value data distributed caching system and method thereof | |
CN108897641B (en) | Log analysis service real-time synchronization system under database master-slave environment | |
JPWO2013046352A1 (en) | Computer system, data management method, and data management program | |
US11403319B2 (en) | High-availability network device database synchronization | |
WO2014177085A1 (en) | Distributed multicopy data storage method and device | |
Le et al. | Dynastar: Optimized dynamic partitioning for scalable state machine replication | |
CN110019484B (en) | Database system, implementation method, management device, data interface device and medium | |
JP5287366B2 (en) | Management server, backup method, backup method, and program | |
JP2012078993A (en) | Method and system to scale up and scale down relational database | |
WO2024109253A1 (en) | Data backup method and system, and device | |
JP2012215937A (en) | Scale-up/down method and system using stream type replication function of database | |
CN116383308A (en) | Data synchronization method and system with full link back pressure characteristic | |
JP5716460B2 (en) | Cluster system and control method thereof | |
JP6237925B2 (en) | Cluster system and cluster control method | |
Afonso | Mechanisms for providing causal consistency on edge computing | |
JP2009211273A (en) | File exchange device and file exchange method in information communication system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130131 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131225 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140110 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140502 |