JP2021135828A - Request processing system and request processing method - Google Patents
Request processing system and request processing method Download PDFInfo
- Publication number
- JP2021135828A JP2021135828A JP2020032451A JP2020032451A JP2021135828A JP 2021135828 A JP2021135828 A JP 2021135828A JP 2020032451 A JP2020032451 A JP 2020032451A JP 2020032451 A JP2020032451 A JP 2020032451A JP 2021135828 A JP2021135828 A JP 2021135828A
- Authority
- JP
- Japan
- Prior art keywords
- server
- request
- write
- order
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims description 7
- 238000000034 method Methods 0.000 claims abstract description 84
- 230000004044 response Effects 0.000 claims description 33
- 230000005540 biological transmission Effects 0.000 claims description 13
- 230000010076 replication Effects 0.000 description 133
- 238000004891 communication Methods 0.000 description 31
- 238000010586 diagram Methods 0.000 description 25
- 230000006870 function Effects 0.000 description 8
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
Images
Landscapes
- Hardware Redundancy (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本発明は、リクエスト処理システムおよびリクエスト処理方法に関する。 The present invention relates to a request processing system and a request processing method.
コンピュータシステムにおいてデータの作成が行われる場合、データ消失のリスクを低減するために、複製を作成することが一般的に行われている。例えば、複製作成手法としては「Passive replication」と「Active replication」が知られている。「Passive replication」とは、プライマリサーバのみが書込みリクエストを受信し、プライマリサーバが残りのバックアップサーバに書込みリクエストを転送する方式である。一方で、「Active replication」とは、全てのサーバが直接書込みリクエストを受信する方式である。「Active replication」は、「Passive replication」に比べて処理を並列に実行できるので、書込みにかかる時間を短くすることができる。 When data is created in a computer system, it is common practice to create duplicates to reduce the risk of data loss. For example, "Passive replication" and "Active replication" are known as replication creation methods. "Passive replication" is a method in which only the primary server receives a write request and the primary server forwards the write request to the remaining backup servers. On the other hand, "Active replication" is a method in which all servers directly receive write requests. Since "Active replication" can execute processing in parallel as compared with "Passive replication", the time required for writing can be shortened.
また、書込みリクエストの送信元であるクライアントが複数存在する環境では、各サーバ間で整合性が保たれない事象が発生することがある。例えば、「Passive replication」では、リクエストの入り口が1つであるため、クライアントの装置内やクライアントとサーバとの間に特殊な機構を設けることなく、サーバ側で書込みリクエストを受信順で処理することができる。 Also, in an environment where there are multiple clients that are the source of write requests, an event may occur in which consistency is not maintained between each server. For example, in "Passive replication", since there is only one request entrance, write requests are processed in the order of reception on the server side without providing a special mechanism in the client device or between the client and the server. Can be done.
一方、「Active replication」では、サーバ間で整合性を保つために、書込みリクエストの順序制御が要求されることもある。例えば、クライアントAが書込みリクエストA1、クライアントBが書込みリクエストB1をサーバX,Y,Zのそれぞれに送信したとする。このとき、送信タイミングやネットワークの経路によっては、サーバXとZは、書込みリクエストをA1、B1の順で受信し、サーバYは、書込みリクエストをB1、A1の順で受信することが起こり得る。この場合、サーバXとZとでは、書込み後のデータが一致するが、サーバXおよびZとサーバYとでは、書込み後のデータが一致せず、サーバ間で整合性が保たれないので、データの複製を保持する要件を満たせない。 On the other hand, in "Active replication", control of the order of write requests may be required in order to maintain consistency between servers. For example, assume that the client A sends a write request A1 and the client B sends a write request B1 to each of the servers X, Y, and Z. At this time, depending on the transmission timing and the network route, the servers X and Z may receive the write request in the order of A1 and B1, and the server Y may receive the write request in the order of B1 and A1. In this case, the data after writing matches between the servers X and Z, but the data after writing does not match between the servers X and Z and the server Y, and the consistency cannot be maintained between the servers. Cannot meet the requirement to keep a copy of.
このため、複数クライアント環境において「Active replication」を実現させるためには、「atomic broadcast」または「total order broadcast」と呼ばれる、「全ての受信先において同じ順序でリクエストを受信する」ための機構が用いられる。例えば、クライアントとサーバとの間に、順序制御用サーバを設置するシステム構成が知られている。クライアントは、順序制御用サーバに書込みリクエストを送信し、順序制御用サーバは、クライアントから送信される書込みリクエストの順序制御を行った上で、各サーバに送信する。 Therefore, in order to realize "Active replication" in a multiple client environment, a mechanism called "atomic broadcast" or "total order broadcast" is used to "receive requests in the same order at all recipients". Be done. For example, a system configuration in which an order control server is installed between a client and a server is known. The client sends a write request to the order control server, and the order control server controls the order of the write requests sent from the client and then sends the write request to each server.
ところで、高速な書込みはユーザが求める価値の一つであり、書込みが高速であればあるほど価値が高くなるシステムも存在する。例えば、オークションの入札や株の売買などは、クライアントからのリクエストに対して遅滞なく最速で処理することが要求される。 By the way, high-speed writing is one of the values that users demand, and there are systems in which the higher the writing speed, the higher the value. For example, auction bids and stock trading are required to be processed at the fastest speed without delay in response to a request from a client.
しかしながら、複数のクライアント環境において上記技術を適用した場合、クライアントからの書込みリクエストに対して、高速な書込み処理を実行することが難しい。例えば、「Passive replication」の場合、クライアントが代表サーバに書込みを行った後に代表サーバが他のサーバに書込みを行うので、処理が逐次で実行されることとなり、書込み処理を高速に実行できない。「Active replication」の場合、書込み処理を並列で実行できるものの、サーバ間の整合性を保証するために、順序制御用サーバによる書込みリクエストの順序制御を行う必要があり、処理に時間がかかる。 However, when the above technique is applied in a plurality of client environments, it is difficult to execute high-speed write processing in response to a write request from a client. For example, in the case of "Passive replication", since the representative server writes to another server after the client writes to the representative server, the processes are executed sequentially, and the write process cannot be executed at high speed. In the case of "Active replication", write processing can be executed in parallel, but in order to guarantee consistency between servers, it is necessary to control the order of write requests by the order control server, which takes time.
一つの側面では、クライアントからの書込みリクエストを高速に処理することができるリクエスト処理システムおよびリクエスト処理方法を提供することを目的とする。 One aspect is to provide a request processing system and a request processing method capable of processing a write request from a client at high speed.
第1の案では、リクエスト処理システムは、複数のクライアント端末それぞれから送信されるリクエストに応じた処理を実行する第1のサーバと第2のサーバとを有する。前記複数のクライアント端末それぞれは、前記第1のサーバと前記第2のサーバとのそれぞれに、データの書込みリクエストまたはデータの読込みリクエストを送信する送信部を有する。前記第1のサーバは、前記書込みリクエストを受信した場合、前記書込みリクエストに応じた書込み処理を実行する書込み処理部と、前記読込みリクエストを受信した場合、前記読込みリクエストより前に受信された書込みリクエストの順番を含む順序通知を前記第2のサーバに送信する読込み処理部と、を有する。前記第2のサーバは、前記書込みリクエストを受信して保持する受信部と、前記順序通知を受信した場合、前記順序通知に含まれる順番に従って、保持する書込みリクエストに応じた書込み処理を実行する書込み処理部と、を有する。 In the first plan, the request processing system has a first server and a second server that execute processing according to a request transmitted from each of the plurality of client terminals. Each of the plurality of client terminals has a transmission unit that transmits a data write request or a data read request to each of the first server and the second server. When the first server receives the write request, the write processing unit executes a write process in response to the write request, and when the first server receives the read request, the write request received before the read request. It has a read processing unit that transmits an order notification including the order of the above to the second server. The second server receives and holds the write request, and when the order notification is received, the second server executes a write process according to the write request to be held in accordance with the order included in the order notification. It has a processing unit.
一つの側面では、クライアントからの書込みリクエストを高速に処理することができる。 On one side, write requests from clients can be processed at high speed.
以下に、本願の開示するリクエスト処理システムおよびリクエスト処理方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。 Hereinafter, examples of the request processing system and the request processing method disclosed in the present application will be described in detail with reference to the drawings. The present invention is not limited to this embodiment. In addition, each embodiment can be appropriately combined within a consistent range.
[全体構成]
図1は、実施例1にかかるリクエスト処理システムの全体構成例を示す図である。図1に示すように、リクエスト処理システムは、クライアント端末A10、クライアント端末B20、代表サーバ30、複製サーバ40、複製サーバ50がネットワークNを介して相互に通信可能に接続されるシステムである。なお、サーバ台数やクライアント端末の数は、一例であり、任意に変更できる。また、ネットワークNには、有線や無線を問わず、インターネットや専用線などの各種通信網を用いることができる。
[overall structure]
FIG. 1 is a diagram showing an overall configuration example of the request processing system according to the first embodiment. As shown in FIG. 1, the request processing system is a system in which a client terminal A10, a client terminal B20, a
このリクエスト処理システムでは、クライアント端末A10とクライアント端末B20のそれぞれが書込みまたは読込みを行う対象のデータを、代表サーバ30、複製サーバ40、複製サーバ50のそれぞれが記憶する。また、各複製サーバが記憶するデータは、代表サーバ30のデータ消失のリスクを低減するためのものであり、各データ間で同期が取れていることが要求される。
In this request processing system, each of the
このようなリクエスト処理システムは、複数のクライアント環境において「Active replication」を実現するシステムである。具体的には、クライアント端末A10またはクライアント端末B20は、代表サーバ30、複製サーバ40、複製サーバ50のそれぞれに書込みリクエストや読込みリクエストを送信する。そして、代表サーバ30、複製サーバ40、複製サーバ50のそれぞれは、各クライアント端末から受信する各リクエストに応じた処理を実行する。
Such a request processing system is a system that realizes "Active replication" in a plurality of client environments. Specifically, the client terminal A10 or the client terminal B20 transmits a write request and a read request to each of the
ここで、一般的に、複数のクライアント環境における「Active replication」では、書込み処理を並列で実行できるものの、サーバ間の整合性を保証するために、順序制御用サーバによる書込みリクエストの順序制御を行う必要があり、書込み処理が高速に実行できない。このため、オークションの入札や株の売買など、クライアントからのリクエストに対して遅滞なく最速で処理することが要求されるシステムでは、ユーザの要件を満たすことができず、システムの信頼性の低下に繋がる。 Here, in general, in "Active replication" in a plurality of client environments, write processing can be executed in parallel, but in order to guarantee consistency between servers, the order control server controls the order of write requests. It is necessary and the write process cannot be executed at high speed. For this reason, a system that is required to process requests from clients at the fastest speed without delay, such as bidding for auctions and buying and selling stocks, cannot meet the user's requirements, resulting in a decrease in system reliability. Connect.
そこで、実施例1にかかるリクエスト処理システムでは、複数の複製サーバに対してクライアント端末同士で順序の調整を行わずにリクエストを送信し、読み込み前に代表サーバ30で実行済みの書込み順序を残りの複製サーバに通知することで、高速性と信頼性の向上を図る。
Therefore, in the request processing system according to the first embodiment, the request is transmitted to the plurality of replication servers without adjusting the order between the client terminals, and the write order already executed by the
具体的には、クライアント端末A10とクライアント端末B20は、代表サーバ30と複製サーバ40と複製サーバ50とのそれぞれに、データの書込みリクエストまたはデータの読込みリクエストを送信する。代表サーバ30は、書込みリクエストを受信した場合、書込みリクエストに応じた書込み処理を実行する。また、代表サーバ30は、読込みリクエストを受信した場合、読込みリクエストより前に受信された書込みリクエストの順番を含む順序通知を各複製サーバに送信する。そして、各複製サーバは、書込みリクエストを受信した場合は、書込み処理を実行せずに当該リクエストを保持し、代表サーバ30から順序通知を受信した場合、順序通知に含まれる順番に従って、保持する書込みリクエストに応じた書込み処理を実行する。
Specifically, the client terminal A10 and the client terminal B20 transmit a data write request or a data read request to the
このようにすることで、実施例1にかかるリクエスト処理システムでは、書込み時に実施する処理を最低限にすることで、ユーザへの高速な書き込み完了通知を実現する。この結果、複数のクライアント環境における「Active replication」において、順序制御用の特別な機構を用いずに、クライアントからの書込みリクエストを高速に処理することができる。 By doing so, in the request processing system according to the first embodiment, high-speed write completion notification to the user is realized by minimizing the processing to be executed at the time of writing. As a result, in "Active replication" in a plurality of client environments, write requests from clients can be processed at high speed without using a special mechanism for order control.
[機能構成]
図2は、実施例1にかかるリクエスト処理システムの機能構成を示す機能ブロック図である。なお、クライアント端末A10とクライアント端末B20とは同様の構成を有するので、クライアント端末A10についてのみ説明する。同様に、複製サーバ40と複製サーバ50とは同様の構成を有するので、複製サーバ40についてのみ説明する。
[Functional configuration]
FIG. 2 is a functional block diagram showing a functional configuration of the request processing system according to the first embodiment. Since the client terminal A10 and the client terminal B20 have the same configuration, only the client terminal A10 will be described. Similarly, since the
(クライアント端末の構成)
図2に示すように、クライアント端末A10は、通信部11、記憶部12、制御部13を有する。
(Client terminal configuration)
As shown in FIG. 2, the client terminal A10 has a
通信部11は、代表サーバ30や各複製サーバとの間の通信を制御する処理部であり、例えば通信インタフェースなどにより実現される。例えば、通信部11は、代表サーバ30や各複製サーバに各種リクエストを送信し、代表サーバ30や各複製サーバから各種リクエストに対応する応答を受信する。
The
記憶部12は、各種データや制御部13が実行するプログラムなどを記憶する処理部であり、例えばメモリやハードディスクなどにより実現される。
The
制御部13は、クライアント端末A10全体を司る処理部であり、例えばプロセッサなどにより実現される。この制御部13は、書込み要求部13aと読込み要求部13bを有する。なお、書込み要求部13aと読込み要求部13bは、プロセッサなどの電子回路で実現することもでき、プロセッサが実行するプロセスとして実現することもできる。
The
書込み要求部13aは、代表サーバ30と各複製サーバとに、書込みリクエストを送信する処理部である。例えば、書込み要求部13aは、ユーザ操作やアプリケーションによる操作などの任意の契機で、代表サーバ30および各複製サーバに、書込みリクエストを送信する。そして、書込み要求部13aは、書込みリクエストに応じた書込み処理を実行したサーバから処理結果を受信する。
The
ここで、書込みリクエストは、クライアント端末ごとにリクエストの順序を付与して送信されることとする。例えば、クライアント端末Aから送信される書込みリクエストは、IDとしてのAと送信順を示す番号とが付与されており、送信順に、書込みリクエストA1、書込みリクエストA2、書込みリクエストA3などとなる。同様に、クライアント端末Bから送信される書込みリクエストは、IDとしてのBと送信順を示す番号とが付与されており、送信順に、書込みリクエストB1、書込みリクエストB2、書込みリクエストB3などとなる。なお、書込みリクエストA1などは、単に「A1」などを省略して記載することがある。 Here, it is assumed that the write request is transmitted by assigning the order of the requests to each client terminal. For example, the write request transmitted from the client terminal A is assigned an A as an ID and a number indicating the transmission order, and the write request A1, the write request A2, the write request A3, and the like are given in the order of transmission. Similarly, the write request transmitted from the client terminal B is assigned a B as an ID and a number indicating the transmission order, and becomes a write request B1, a write request B2, a write request B3, and the like in the order of transmission. The write request A1 or the like may be described by simply omitting "A1" or the like.
読込み要求部13bは、代表サーバ30と各複製サーバに、読込みリクエストを送信する処理部である。例えば、読込み要求部13bは、ユーザ操作やアプリケーションによる操作などの任意の契機で、代表サーバ30および各複製サーバに、読込みリクエストを送信する。そして、読込み要求部13bは、読込みリクエストに応じた読込み処理を実行したサーバから、処理結果を受信する。なお、読込みリクエストの記載方法は、上記書込みリクエストと同様、IDと送信順を示す番号とが付与されるものとする。
The read
(代表サーバ30の構成)
図2に示すように、代表サーバ30は、通信部31、記憶部32、制御部33を有する。通信部31は、各クライアント端末や各複製サーバとの間の通信を制御する処理部であり、例えば通信インタフェースなどにより実現される。例えば、通信部31は、各クライアント端末から書込みリクエストや読込みリクエストを受信する。また、通信部31は、各クライアント端末に各種リクエストに対応する応答を送信し、各複製サーバに後述する順序通知を送信する。
(Configuration of representative server 30)
As shown in FIG. 2, the
記憶部32は、各種データや制御部33が実行するプログラムなどを記憶する処理部であり、例えばメモリやハードディスクなどにより実現される。例えば、記憶部32は、リクエスト情報32aとデータベース32bとを記憶する。
The
リクエスト情報32aは、各クライアント端末から受信された各種リクエストに関する情報である。例えば、リクエスト情報32aは、各クライアント端末が送信したリクエストの種別と受信順とを管理する情報である。なお、リクエスト情報32aは、各リクエストが実行済みか未実行かを区別できるように管理することもできる。
The
図3は、代表サーバ30のリクエスト情報32aの一例を示す図である。図3に示すように、リクエスト情報32aは、受信順を示す「順番」と、受信されたリクエストの種別を示す「リクエスト」とが対応付けられる。図3の例では、クライアント端末A10が1番目に送信した書込みリクエストA1、クライアント端末A10が2番目に送信した書込みリクエストA2、クライアント端末B20が1番目に送信した書込みリクエストB1、クライアント端末A10が3番目に送信した書込みリクエストA3、クライアント端末B20が2番目に送信した書込みリクエストB2の順で、代表サーバ30が受信したことを示す。
FIG. 3 is a diagram showing an example of
データベース32bは、各クライアント端末が処理対象とするデータを記憶する。具体的には、データベース32bは、ユーザごとに管理されており、各クライアント端末のユーザが書込み対象または読込み対象とするデータを記憶する。
The
制御部33は、代表サーバ30全体を司る処理部であり、例えばプロセッサなどにより実現される。この制御部33は、書込み処理部33a、順序通知部33b、読込み処理部33cを有する。なお、書込み要求部13aと読込み要求部13bは、プロセッサなどの電子回路で実現することもでき、プロセッサが実行するプロセスとして実現することもできる。
The
書込み処理部33aは、クライアント端末A10またはクライアント端末B20から書込みリクエストを受信した場合に、遅滞なく、書込みリクエストに応じた書込み処理を実行する処理部である。具体的には、書込み処理部33aは、書込みリクエストを受信すると、リクエスト情報32aを更新する。そして、書込み処理部33aは、書込みリクエストを受信した順で、データベース32bへの書込み処理を実行し、処理結果(実行結果)をリクエスト元のクライアント端末に送信する。
The
例えば、図3に示した順でリクエストを受信した場合、書込み処理部33aは、書込みリクエストA1、書込みリクエストA2、書込みリクエストB1、書込みリクエストA3、書込みリクエストB2の順で、書込み処理を実行する。ここで、書込み処理部33aは、リクエストを受信すると、他のリクエストの受信等を待つことなく、そのリクエストに対応する書込み処理を実行する。つまり、書込み処理部33aは、書込みリクエストA1を受信すると、すぐに書込みリクエストA1に対応する書込み処理を実行し、その後に、書込みリクエストA2を受信すると、すぐに書込みリクエストA2に対応する書込み処理を実行する。
For example, when the requests are received in the order shown in FIG. 3, the
順序通知部33bは、クライアント端末A10またはクライアント端末B20から読込みリクエストを受信した場合、読込みリクエストより前に受信された書込みリクエストの順番を含む順序通知を各複製サーバに送信する処理部である。 The order notification unit 33b is a processing unit that, when a read request is received from the client terminal A10 or the client terminal B20, transmits an order notification including the order of the write requests received before the read request to each replication server.
例えば、順序通知部33bは、図3に示す書込みリクエストが受信された後に、クライアント端末Aから読込みリクエストを受信すると、リクエスト情報32aを参照し、書込みリクエストの受信順が「書込みリクエストA1、書込みリクエストA2、書込みリクエスB1、書込みリクエストA3、書込みリクエストB2」であることを特定する。そして、順序通知部33bは、順序通知として「書込みリクエストA1、書込みリクエストA2、書込みリクエスB1、書込みリクエストA3、書込みリクエストB2」の順番である情報(例えば「A1→A2→B1→A3→B2」)を生成して、複製サーバ40と複製サーバ50に送信する。
For example, when the order notification unit 33b receives the read request from the client terminal A after receiving the write request shown in FIG. 3, the order notification unit 33b refers to the
なお、順序通知部33bは、読込みリクエストを受信すると、リクエスト情報32aに登録するとともに、読込み処理部33cに読込みリクエストを通知する。
When the order notification unit 33b receives the read request, the order notification unit 33b registers the read request in the
読込み処理部33cは、クライアント端末A10またはクライアント端末B20から送信された読込みリクエストに応じた読込み処理を実行する処理部である。具体的には、読込み処理部33cは、順序通知部33bにより順序通知が送信されて、各複製サーバから順序通知の正常受信を示す受信応答を受信した後に、読込み処理を実行する。そして、読込み処理部33cは、読込んだデータなどを含む処理結果を、リクエスト元に送信する。
The
(複製サーバ40の構成)
図2に示すように、複製サーバ40は、通信部41、記憶部42、制御部43を有する。通信部41は、各クライアント端末や代表サーバ30との間の通信を制御する処理部であり、例えば通信インタフェースなどにより実現される。例えば、通信部41は、各クライアント端末から書込みリクエストや読込みリクエストを受信する。また、通信部41は、代表サーバ30から順序通知を受信する。
(Configuration of replication server 40)
As shown in FIG. 2, the
記憶部42は、各種データや制御部33が実行するプログラムなどを記憶する処理部であり、例えばメモリやハードディスクなどにより実現される。例えば、記憶部42は、リクエスト情報42aとデータベース42bとを記憶する。
The storage unit 42 is a processing unit that stores various data, a program executed by the
リクエスト情報42aは、各クライアント端末から受信した各種リクエストに関する情報である。例えば、リクエスト情報42aは、各クライアント端末が送信したリクエストの種別と受信順とを管理する情報である。なお、リクエスト情報42aは、各リクエストが実行済みか未実行かを区別できるように管理することもできる。
The
図4は、複製サーバ40のリクエスト情報42aの一例を示す図である。図4に示すように、リクエスト情報42aは、受信順を示す「順番」と、受信されたリクエストの種別を示す「リクエスト」とが対応付けられる情報である。図4の例では、クライアント端末A10が1番目に送信した書込みリクエストA1、クライアント端末B20が1番目に送信した書込みリクエストB1、クライアント端末A10が2番目に送信した書込みリクエストA2、クライアント端末A10が3番目に送信した書込みリクエストA3、クライアント端末B20が2番目に送信した書込みリクエストB2の順で、複製サーバ40が受信したことを示す。
FIG. 4 is a diagram showing an example of
ここで、図4に示す複製サーバ40のリクエスト情報42aと、図3に示す代表サーバ30のリクエスト情報32aとを比較すると、各クライアント端末から同じ順番でリクエストが送信されているにも関わらず、複製サーバ40と代表サーバ30との間では、リクエストの受信順が異なっている。これは、通信経路、通信の混在状況、サーバの負荷など様々な要因による。このため、複製サーバ40は、代表サーバ30との間でデータベースの整合性を保つために、代表サーバ30と同じ順番で書込み処理を実行することが要求される。
Here, when the
データベース42bは、各クライアント端末が処理対象とするデータを記憶する。具体的には、データベース42bは、ユーザごとに管理されており、各クライアント端末のユーザが書込み対象または読込み対象とするデータを記憶する。なお、代表サーバ30と各複製サーバとは、データの複製を管理する関係性(一貫性の維持)であることから、各データベースが同期されている必要がある。
The
制御部43は、複製サーバ40全体を司る処理部であり、例えばプロセッサなどにより実現される。この制御部43は、受信部43aと書込み処理部43bを有する。なお、受信部43aと書込み処理部43bは、プロセッサなどの電子回路で実現することもでき、プロセッサが実行するプロセスとして実現することもできる。
The
受信部43aは、クライアント端末A10またはクライアント端末B20から書込みリクエストを受信した場合に、当該書込みリクエストを保持する処理部である。具体的には、受信部43aは、書込みリクエストを受信すると、書込み処理を実行することなく、受信した順でリクエスト情報42aに登録し、受信順を管理する。このとき、受信部43aは、書込み処理を実行していないが、書込みリクエストを正常に受信したため、書込みリクエストに対応する応答を、送信元のクライアント端末に送信する。
The receiving
書込み処理部43bは、代表サーバ30から順序通知を受信した場合、順序通知に含まれる順番に従って、保持する書込みリクエストに応じた書込み処理を実行する処理部である。例えば、書込み処理部43bは、順序通知として「A1→A2→B1→A3→B2」を受信する。すると、書込み処理部43bは、リクエスト情報42aに「書込みリクエストA1、書込みリクエストB1、書込みリクエストA2、書込みリクエストA3、書込みリクエストB2」と登録されているにも関わらず、順序通知で通知された「A1→A2→B1→A3→B2」の順番で書込み処理を実行する。なお、書込み処理部43bは、順序通知を受信した後、または、書込み完了後に、順序通知を正常に受信したことを示す受信応答を代表サーバ30に送信する。また、書込み完了後、書込み処理部43bは、書込み完了の通知を代表サーバ30に送信してもよい。
When the order notification is received from the
[処理の具体例]
次に、図5−図7を用いて、システム全体における各リクエスト発行時の流れを具体的に説明する。図5は、システム全体の書込みリクエスト時の処理を説明する図である。図6は、システム全体の読込みリクエスト時の処理1を説明する図であり、図7は、システム全体の読込みリクエスト時の処理2を説明する図である。
[Specific example of processing]
Next, with reference to FIGS. 5 to 7, the flow at the time of issuing each request in the entire system will be specifically described. FIG. 5 is a diagram illustrating processing at the time of a write request for the entire system. FIG. 6 is a diagram for explaining the
図5に示すように、クライアント端末A10は、書込みリクエストA1を代表サーバ30と各複製サーバとに送信した後、次に、書込みリクエストA2を代表サーバ30と各複製サーバとに送信した後、さらに、書込みリクエストA3を代表サーバ30と各複製サーバとに送信する。また、クライアント端末B20は、書込みリクエストB1を代表サーバ30と各複製サーバとに送信した後、次に、書込みリクエストB2を代表サーバ30と各複製サーバとに送信する。
As shown in FIG. 5, the client terminal A10 sends a write request A1 to the
そして、代表サーバ30は、書込みリクエストA1を受信すると、データベース32bへの書込み処理を実行し、次に、書込みリクエストA2を受信すると、データベース32bへの書込み処理を実行する。さらに、代表サーバ30は、書込みリクエストB1を受信すると、データベース32bへの書込み処理を実行し、次に、書込みリクエストA3を受信すると、データベース32bへの書込み処理を実行し、さらに書込みリクエストB2を受信すると、データベース32bへの書込み処理を実行する。すなわち、代表サーバ30は、書込みリクエストA1、A2、B1、A3、B2の順で受信し、受信した順で書込み処理を実行する。
Then, when the
一方、複製サーバ40は、代表サーバ30とは異なり、書込みリクエストA1、B1、A2、A3、B2の順で受信するが、書込み処理を実行せずに抑制する。また、複製サーバ50は、代表サーバ30とも複製サーバ40とも異なり、書込みリクエストA1、A2、A3、B1、B2の順で受信するが、書込み処理を実行せずに抑制する。
On the other hand, unlike the
その後、図6に示すように、クライアント端末A10は、代表サーバ30と各複製サーバに、読込みリクエストA1を送信し、代表サーバ30と各複製サーバは、読込みリクエストA1を受信する。
After that, as shown in FIG. 6, the client terminal A10 transmits a read request A1 to the
すると、代表サーバ30は、自装置がそれまでに受信した書込みリクエストの順序として、A1、A2、B1、A3、B2を特定し、この順番を順序情報として、複製サーバ40と複製サーバ50のそれぞれに送信する。
Then, the
その後、図7に示すように、順序通知を送信した代表サーバ30は、読込みリクエストA1に応じた読込み処理を実行し、データベース32bから読み込んだデータを、リクエスト元のクライアント端末A10に送信する。
After that, as shown in FIG. 7, the
一方で、複製サーバ40は、書込みリクエストを「A1、B1、A2、A3、B2」の順で保持するが、順序通知で通知された「A1、A2、B1、A3、B2」の順に並び替えて、データベース42bへの書込みを順次実行する。同様に、複製サーバ50は、書込みリクエストを「A1、A2、A3、B1、B2」の順で保持するが、順序通知で通知された「A1、A2、B1、A3、B2」の順に並び替えて、データベース52bへの書込みを順次実行する。
On the other hand, the
[処理シーケンス]
図8Aと図8Bは、実施例1にかかる処理の流れを示すシーケンス図である。図8Aに示すように、クライアント端末A10(またはクライアント端末B20)は、書込みリクエストを、代表サーバ30、複製サーバ40、複製サーバ50のそれぞれに送信する(S101からS104)。
[Processing sequence]
8A and 8B are sequence diagrams showing a flow of processing according to the first embodiment. As shown in FIG. 8A, the client terminal A10 (or the client terminal B20) transmits a write request to each of the
すると、代表サーバ30は、データベース32bへの書込み処理を実行し(S105)、処理結果を書込み応答として、クライアント端末A10に送信する(S106とS107)。
Then, the
一方、複製サーバ40は、書込み処理を実行せず、受信した書込みリクエストを保持する(S108)。その後、複製サーバ40は、書込みリクエストに対する応答として、書込み応答をクライアント端末A10に送信する(S109とS110)。
On the other hand, the
同様に、複製サーバ50も、書込み処理を実行せず、受信した書込みリクエストを保持する(S111)。その後、複製サーバ50は、書込みリクエストに対する応答として、書込み応答をクライアント端末A10に送信する(S112とS113)。
Similarly, the
続いて、クライアント端末A10またはクライアント端末B20は、書込みリクエストを、代表サーバ30、複製サーバ40、複製サーバ50のそれぞれに送信する(S114からS117)。
Subsequently, the client terminal A10 or the client terminal B20 transmits a write request to each of the
すると、代表サーバ30は、データベース32bへの書込み処理を実行し(S118)、処理結果を書込み応答として、クライアント端末A10に送信する(S119とS120)。
Then, the
一方、複製サーバ40は、書込み処理を実行せず、受信した書込みリクエストを保持する(S121)。その後、複製サーバ40は、書込みリクエストに対する応答として、書込み応答をクライアント端末A10に送信する(S122とS123)。
On the other hand, the
同様に、複製サーバ50も、書込み処理を実行せず、受信した書込みリクエストを保持する(S124)。その後、複製サーバ50は、書込みリクエストに対する応答として、書込み応答をクライアント端末A10に送信する(S125とS126)。
Similarly, the
続いて、図8Bに示すように、クライアント端末A10またはクライアント端末B20は、読込みリクエストを、代表サーバ30、複製サーバ40、複製サーバ50のそれぞれに送信する(S127からS130)。
Subsequently, as shown in FIG. 8B, the client terminal A10 or the client terminal B20 transmits a read request to each of the
すると、代表サーバ30は、順序通知を生成して、複製サーバ40と複製サーバ50とに送信する(S131からS133)。そして、複製サーバ40は、順序通知にしたがって、データベース42bへの書込み処理を実行し(S134)、順序通知を正常に受信したことを示す受信応答を代表サーバ30に送信する(S135とS136)。同様に、複製サーバ50は、順序通知にしたがって、データベース52bへの書込み処理を実行し(S137)、順序通知を正常に受信したことを示す受信応答を代表サーバ30に送信する(S138とS139)。
Then, the
一方、代表サーバ30は、送信した順序通知に対する受信応答を各複製サーバから受信した後、読込み処理を実行して(S140)、データベース32bから読み込んだデータを、読込み応答として、クライアント端末A10に送信する(S141とS142)。
On the other hand, the
[効果]
上述したように、実施例1にかかるリクエスト処理システムは、「Active replication」において、書込みリクエストの送信時に順序制御を実行せず、順序制御はデータ読み込み時に実行する。また、書込みリクエスト時は、代表サーバ30のみでデータベースの更新処理を実行し、他の複製サーバでは書込みリクエストの受信と記録のみを行い、直ちに更新処理を実行することはしない。つまり、代表サーバ30での更新順序の複製サーバへの共有は、データの読込み前に実行し、複製サーバでの更新処理は、更新順序を受け取った時点で実行する。
[effect]
As described above, the request processing system according to the first embodiment does not execute the order control at the time of transmitting the write request in "Active replication", and executes the order control at the time of reading the data. Further, at the time of a write request, only the
このように、実施例1にかかるリクエスト処理システムは、「Active replication」を採用しつつも、書込みリクエストを送信時に順序制御しないことで、一般的な「Atomic broadcast」を利用して順序制御を実施する方式に比べて、高速な書込みを実現することができる。また、実施例1にかかるリクエスト処理システムは、順序制御を実施する方式に比べて、高速な書込み処理を実現し、処理が逐次的に実行される「Passive replication」に比べても、高速な書込み処理を実現することができる。 In this way, the request processing system according to the first embodiment adopts "Active replication", but does not control the order of write requests at the time of transmission, so that the order is controlled by using the general "Atomic broadcast". It is possible to realize high-speed writing as compared with the method of performing. Further, the request processing system according to the first embodiment realizes high-speed write processing as compared with the method of performing order control, and is faster than "Passive replication" in which the processing is sequentially executed. Processing can be realized.
ところで、図1に示したリクエスト処理システムでは、代表サーバ30に障害が発生した場合、他の複製サーバが代表サーバに昇格することで、システムの継続性を維持する。その際もデータベースの一貫性を維持することが要求される。そこで、実施例2では、代表サーバ30の障害発生時に、データベースの一貫性を維持する例を説明する。
By the way, in the request processing system shown in FIG. 1, when a failure occurs in the
[全体構成]
図9は、実施例2にかかるリクエスト処理システムの全体構成例を示す図である。図9に示すように、リクエスト処理システムは、図1と同様、クライアント端末A10、クライアント端末B20、代表サーバ30、複製サーバ40、複製サーバ50がネットワークNを介して相互に通信可能に接続されるシステムである。
[overall structure]
FIG. 9 is a diagram showing an overall configuration example of the request processing system according to the second embodiment. As shown in FIG. 9, in the request processing system, as in FIG. 1, the client terminal A10, the client terminal B20, the
このような状態において、代表サーバ30で障害は発生した場合、複製サーバ40が代表サーバに昇格してシステムの継続性を維持する。なお、障害としては、各クライアント端末と代表サーバ30との間の通信経路の障害、代表サーバ30自体の故障など様々な障害が該当する。また、障害時に、複製サーバ40が代表サーバに昇格する手法は、冗長化システムなどで利用される一般的な技術を採用することができる。
In such a state, if a failure occurs in the
[機能構成]
図10は、実施例2にかかるリクエスト処理システムの機能構成を示す機能ブロック図である。なお、クライアント端末A10とクライアント端末B20とは同様の構成を有するので、クライアント端末A10についてのみ説明するが、実施例1と同様の構成なので、詳細な説明は省略する。また、代表サーバ30についても、実施例1と同様の構成なので、詳細な説明は省略する。
[Functional configuration]
FIG. 10 is a functional block diagram showing a functional configuration of the request processing system according to the second embodiment. Since the client terminal A10 and the client terminal B20 have the same configuration, only the client terminal A10 will be described, but since the configuration is the same as that of the first embodiment, detailed description thereof will be omitted. Further, since the
(複製サーバ40の構成)
図10に示すように、代表サーバに昇格した複製サーバ40は、通信部41、記憶部42、制御部43を有する。なお、通信部41、記憶部42、制御部43の受信部43a、制御部43の書込み処理部43bは、実施例1と同様の機能なので、詳細な説明は省略する。ここでは、実施例1とは異なる障害対応部43cと送信部43dについて説明する。
(Configuration of replication server 40)
As shown in FIG. 10, the
障害対応部43cは、代表サーバ30に障害が発生した場合、複製サーバ40が受信した書込みリクエストの順番で、書込み処理を実行する処理部である。例えば、障害対応部43cは、代表サーバ30に障害が発生して、複製サーバ40が代表サーバに昇格した場合に、複製サーバ40が受信済みかつ未実行の書込みリクエストを、複製サーバ40の受信順で実行する。このとき、障害対応部43cは、書込み処理の結果を各リクエスト元に送信することもできる。
The
送信部43dは、障害対応部43cにより実行された書込みリクエストの順番を複製サーバ50に送信する処理部である。例えば、送信部43dは、代表サーバ30の障害発生後に、複製サーバ40と複製サーバ50との間で一貫性を維持するために、障害発生時に未実行であった書込みリクエストを複製サーバ40に反映させた順番を、複製サーバ50に通知する。
The
(複製サーバ50の構成)
図10に示すように、代表サーバ30の障害後も複製担当である複製サーバ50は、通信部51、記憶部52、制御部53を有する。なお、通信部51、記憶部52、制御部53の受信部53a、制御部53の書込み処理部53bは、複製サーバ40の通信部41、記憶部42、制御部43の受信部43a、制御部43の書込み処理部53bと同様の機能なので、詳細な説明は省略する。ここでは、複製サーバ40とは異なる障害対応部53cについて説明する。
(Configuration of replication server 50)
As shown in FIG. 10, the
障害対応部53cは、複製サーバ40から順序通知を受信した場合、当該順序通知に含まれる順番に従って、保持する書込みリクエストに応じた書込み処理を実行する処理部である。例えば、障害対応部53cは、自装置である複製サーバ50のリクエスト情報52aに登録される書込みリクエスト順ではなく、複製サーバ40が実行した書込みリクエストと同じ順番で、書込み処理を実行する。
When the
[具体例]
次に、図11を用いて、代表サーバ30に障害が発生したときの書込みリクエストの反映手法について説明する。図11は、実施例2にかかるリクエスト処理を説明する図である。図11には、代表サーバ30、複製サーバ40、複製サーバ50が受信した書込みリクエストの順番が示されており、代表サーバ30においてB2までの処理を確定し、残りの複製サーバに通知した後、A4とA5、B3の処理順の通知前に代表サーバ30が停止した状態を表している。
[Concrete example]
Next, a method of reflecting a write request when a failure occurs in the
つまり、代表サーバ30、複製サーバ40、複製サーバ50の間で、A1、A2、B1、A3、B2の順番で、データベースへの書込み処理が完了している。しかし、それ以降については、代表サーバ30からの通知前であることから、3つのサーバ間でA4、A5、B3の受信順序は一致していない。
That is, the writing process to the database is completed in the order of A1, A2, B1, A3, and B2 among the
この場合は、複製サーバ40も複製サーバ50も、代表サーバ30での実行順を知る術がないので、代表サーバ30での実行順と同じ順序で処理を実施することはできない。そのため、複製サーバ40または複製サーバ50を代表サーバに昇格させ、その昇格した代表サーバでの受信順で処理を実行する。例えば、複製サーバ40を代表サーバに昇格させ、複製サーバ40は、複製サーバ40において未実行であるリクエストの受信順「A4、B3、A5」で実行順を確定する。そして、複製サーバ40は、確定した実行順で書込みリクエストを実行し、実行した実行順を複製サーバ50に通知する。
In this case, neither the
ここで、システム上では、クライアント端末からの書込みリクエストを反映させて、矛盾のない状態を早急に生成するために、A4、B3、A5のリクエスト処理が完了するまで各クライアント端末からの各種リクエストの受け付けを抑制し、処理を停止する。 Here, on the system, in order to reflect the write request from the client terminal and quickly generate a consistent state, various requests from each client terminal are requested until the request processing of A4, B3, and A5 is completed. Suppress acceptance and stop processing.
[効果]
上述したように、代表サーバ30に障害が発生し、切り替えが必要になった際には、切り替え先において、代表サーバ30から通知が来ていない分の書込みリクエストについては切り替え先が受信した順序で更新処理を実施する。この結果、各複製サーバで未反映の書込みリクエストを迅速に反映し、システム間での矛盾を抑制しつつ、複製サーバ間での一貫性を維持することができる。なお、処理の実行結果は読み込み処理を行うことで外部に観測されて初めて、一貫性の維持が必要になる。単に書き込みのみを実施した段階では、書き込み元からもどのような順序で処理が実施されたか分からないため、各サーバの間で、必ずしも状態が一致している必要はない。
[effect]
As described above, when a failure occurs in the
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。 By the way, although the examples of the present invention have been described so far, the present invention may be implemented in various different forms other than the above-mentioned examples.
[数値等]
上記実施例で用いたサーバ台数、リクエストの数等は、あくまで一例であり、任意に変更することができる。
[Numerical values, etc.]
The number of servers, the number of requests, etc. used in the above embodiment are merely examples and can be changed arbitrarily.
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。なお、代表サーバ30は、第1のサーバに対応し、複製サーバ40は、第2のサーバに対応し、複製サーバ50は、第3のサーバに対応する。クライアント端末Aの書込み要求部13aおよび読込み要求部13bは、送信部に対応する。
[system]
Information including processing procedures, control procedures, specific names, various data and parameters shown in the above documents and drawings can be arbitrarily changed unless otherwise specified. The
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。 Further, each component of each of the illustrated devices is a functional concept, and does not necessarily have to be physically configured as shown in the figure. That is, the specific forms of distribution and integration of each device are not limited to those shown in the figure. That is, all or a part thereof can be functionally or physically distributed / integrated in any unit according to various loads, usage conditions, and the like.
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。 Further, each processing function performed by each device may be realized by a CPU and a program analyzed and executed by the CPU, or may be realized as hardware by wired logic.
[ハードウェア]
次に、ハードウェア構成例を説明する。図1等に示した各装置は、同様のハードウェア構成を有するので、ここではコンピュータ1として説明する。図12は、ハードウェア構成例を説明する図である。図12に示すように、コンピュータ1は、通信装置1a、HDD(Hard Disk Drive)1b、メモリ1c、プロセッサ1dを有する。また、図12に示した各部は、バス等で相互に接続される。
[hardware]
Next, a hardware configuration example will be described. Since each device shown in FIG. 1 and the like has a similar hardware configuration, it will be described here as a
通信装置1aは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。HDD1bは、図2や図10等に示した機能を動作させるプログラムやDBを記憶する。
The communication device 1a is a network interface card or the like, and communicates with another server. The
プロセッサ1dは、図2や図10に示した各処理部と同様の処理を実行するプログラムをHDD1b等から読み出してメモリ1cに展開することで、図2や図10等で説明した各機能を実行するプロセスを動作させる。例えば、このプロセスは、代表サーバ30が有する各処理部と同様の機能を実行する。具体的には、プロセッサ1dは、書込み処理部33a、順序通知部33b、読込み処理部33c等と同様の機能を有するプログラムをHDD1b等から読み出す。そして、プロセッサ1dは、書込み処理部33a、順序通知部33b、読込み処理部33c等と同様の処理を実行するプロセスを実行する。
The processor 1d executes each function described in FIGS. 2 and 10 by reading a program that executes the same processing as each processing unit shown in FIGS. 2 and 10 from the
このように、コンピュータ1は、プログラムを読み出して実行することでリクエスト処理方法を実行する情報処理装置として動作する。また、コンピュータ1は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、コンピュータ1によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
In this way, the
10 クライアント端末A
11 通信部
12 記憶部
13 制御部
13a 書込み要求部
13b 読込み要求部
20 クライアント端末B
30 代表サーバ
31 通信部
32 記憶部
32a リクエスト情報
32b データベース
33 制御部
33a 書込み処理部
33b 順序通知部
33c 読込み処理部
40、50 複製サーバ
41 通信部
42 記憶部
42a リクエスト情報
42b データベース
43 制御部
43a 受信部
43b 書込み処理部
10 Client terminal A
11
30
Claims (6)
前記複数のクライアント端末それぞれは、
前記第1のサーバと前記第2のサーバとのそれぞれに、データの書込みリクエストまたはデータの読込みリクエストを送信する送信部を有し、
前記第1のサーバは、
前記書込みリクエストを受信した場合、前記書込みリクエストに応じた書込み処理を実行する書込み処理部と、
前記読込みリクエストを受信した場合、前記読込みリクエストより前に受信された書込みリクエストの順番を含む順序通知を前記第2のサーバに送信する読込み処理部と、を有し、
前記第2のサーバは、
前記書込みリクエストを受信して保持する受信部と、
前記順序通知を受信した場合、前記順序通知に含まれる順番に従って、保持する書込みリクエストに応じた書込み処理を実行する書込み処理部と、を有する
ことを特徴とするリクエスト処理システム。 In a request processing system having a first server and a second server that execute processing according to a request transmitted from each of a plurality of client terminals.
Each of the plurality of client terminals
Each of the first server and the second server has a transmission unit for transmitting a data write request or a data read request.
The first server is
When the write request is received, the write processing unit that executes the write process in response to the write request and the write processing unit
When the read request is received, it has a read processing unit that transmits an order notification including the order of write requests received before the read request to the second server.
The second server is
A receiver that receives and holds the write request,
A request processing system including a write processing unit that executes write processing according to a write request to be held in accordance with the order included in the order notification when the order notification is received.
前記第2のサーバは、前記第1のデータベースとの一貫性の維持が要求される第2のデータベースを記憶する記憶部を有し、
前記第1のサーバの前記書込み処理部は、前記書込みリクエストを受信した場合、前記第1のデータベースに対して前記書込み処理を実行し、
前記第2のサーバの前記書込み処理部は、前記書込みリクエストが受信された場合に、前記第2のデータベースに対しての前記書込み処理を抑制し、前記順序通知が受信された場合に、前記順序通知に含まれる順番に従って、前記第2のデータベースに対して前記書込み処理を実行することを特徴とする請求項1に記載のリクエスト処理システム。 The first server has a storage unit that stores a first database including data to be processed by each of the plurality of client terminals.
The second server has a storage unit that stores a second database that is required to maintain consistency with the first database.
When the write processing unit of the first server receives the write request, the write processing unit executes the write processing on the first database.
The write processing unit of the second server suppresses the write process for the second database when the write request is received, and when the order notification is received, the order is The request processing system according to claim 1, wherein the write process is executed for the second database according to the order included in the notification.
前記第2のサーバは、
前記第2のサーバが実行した書込みリクエストの順番を含む第2の順序通知を、前記第3のサーバに送信する送信部とを有し、
前記第3のサーバは、
前記第2の順序通知を受信した場合、前記第2の順序通知に含まれる順番に従って、保持する書込みリクエストに応じた書込み処理を実行する障害対応部を有することを特徴とする請求項4に記載のリクエスト処理システム。 The request processing system has a third server having the receiving unit of the second server and the writing process.
The second server is
It has a transmission unit that transmits a second order notification including the order of write requests executed by the second server to the third server.
The third server is
The fourth aspect of claim 4 is characterized in that, when the second order notification is received, it has a failure handling unit that executes a write process according to a write request to be held in accordance with the order included in the second order notification. Request processing system.
前記複数のクライアント端末それぞれは、
前記第1のサーバと前記第2のサーバとのそれぞれに、データの書込みリクエストまたはデータの読込みリクエストを送信し、
前記第1のサーバは、
前記書込みリクエストを受信した場合、前記書込みリクエストに応じた書込み処理を実行し、
前記読込みリクエストを受信した場合、前記読込みリクエストより前に受信された書込みリクエストの順番を含む順序通知を前記第2のサーバに送信し、
前記第2のサーバは、
前記書込みリクエストを受信して保持し、
前記順序通知を受信した場合、前記順序通知に含まれる順番に従って、保持する書込みリクエストに応じた書込み処理を実行する、
処理を含むことを特徴とするリクエスト処理方法。 In a request processing method executed by a request processing system having a first server and a second server that execute processing according to a request transmitted from each of a plurality of client terminals.
Each of the plurality of client terminals
A data write request or a data read request is transmitted to each of the first server and the second server, respectively.
The first server is
When the write request is received, the write process corresponding to the write request is executed, and the write process is executed.
When the read request is received, an order notification including the order of the write requests received before the read request is sent to the second server.
The second server is
Receive and hold the write request
When the order notification is received, the write process according to the write request to be held is executed according to the order included in the order notification.
A request processing method characterized by including processing.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020032451A JP2021135828A (en) | 2020-02-27 | 2020-02-27 | Request processing system and request processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020032451A JP2021135828A (en) | 2020-02-27 | 2020-02-27 | Request processing system and request processing method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021135828A true JP2021135828A (en) | 2021-09-13 |
Family
ID=77661376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020032451A Pending JP2021135828A (en) | 2020-02-27 | 2020-02-27 | Request processing system and request processing method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2021135828A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023027082A1 (en) | 2021-08-23 | 2023-03-02 | 積水化学工業株式会社 | Peptide-bound hybrid liposome exosome, peptide-bound exosome, composition containing these, and method for forming same |
-
2020
- 2020-02-27 JP JP2020032451A patent/JP2021135828A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023027082A1 (en) | 2021-08-23 | 2023-03-02 | 積水化学工業株式会社 | Peptide-bound hybrid liposome exosome, peptide-bound exosome, composition containing these, and method for forming same |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11797347B2 (en) | Managing multileg transactions in distributed and parallel environments | |
US9774462B2 (en) | Methods and apparatus for requesting message gap fill requests and responding to message gap fill requests | |
US9612928B2 (en) | Memory-mirroring control apparatus and memory-mirroring control method | |
CA2911001C (en) | Failover system and method | |
US8898669B2 (en) | Methods and systems for coordinated transactions | |
US20160149801A1 (en) | Apparatus and method for failover of device interconnect using remote memory access with segmented queue | |
JP5007239B2 (en) | Distributed transaction matching service | |
US20160092324A1 (en) | Fast single-master failover | |
CN107038192B (en) | Database disaster tolerance method and device | |
US20170235600A1 (en) | System and method for running application processes | |
JP2021135828A (en) | Request processing system and request processing method | |
JP2023539430A (en) | Electronic trading system and method based on point-to-point mesh architecture | |
US20060288094A1 (en) | Methods for configuring cache memory size | |
US9081748B2 (en) | Dynamic redundancy management | |
US20240046356A1 (en) | System and method for managing events in a queue of a distributed network | |
EP1746507B1 (en) | System and method for recovering a trading system | |
JPH09204318A (en) | Check point acquisition timing decision method in computer network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20221117 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230807 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230815 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230907 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20231121 |