JP5292351B2 - Message queue management system, lock server, message queue management method, and message queue management program - Google Patents

Message queue management system, lock server, message queue management method, and message queue management program Download PDF

Info

Publication number
JP5292351B2
JP5292351B2 JP2010078784A JP2010078784A JP5292351B2 JP 5292351 B2 JP5292351 B2 JP 5292351B2 JP 2010078784 A JP2010078784 A JP 2010078784A JP 2010078784 A JP2010078784 A JP 2010078784A JP 5292351 B2 JP5292351 B2 JP 5292351B2
Authority
JP
Japan
Prior art keywords
session
queue
request
client
master
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
Application number
JP2010078784A
Other languages
Japanese (ja)
Other versions
JP2011210107A (en
Inventor
康太 上西
公洋 山本
光一 鷲坂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2010078784A priority Critical patent/JP5292351B2/en
Publication of JP2011210107A publication Critical patent/JP2011210107A/en
Application granted granted Critical
Publication of JP5292351B2 publication Critical patent/JP5292351B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Description

本発明は、メッセージキュー管理システム及びロックサーバ及びメッセージキュー管理方法及びメッセージキュー管理プログラムに係り、特に、安価なハードウェアを用いた信頼性の低いネットワーク・コンピュータ・クラスタ環境において、ネットワーク故障及びサーバ故障耐性を備えたメッセージキュー管理システム及びロックサーバ及びメッセージキュー管理方法及びメッセージキュー管理プログラムに関する。   The present invention relates to a message queue management system, a lock server, a message queue management method, and a message queue management program, and more particularly, in a network computer cluster environment with low reliability using inexpensive hardware, a network failure and a server failure. The present invention relates to a message queue management system, a lock server, a message queue management method, and a message queue management program.

第1の従来技術として、安価なハードウェアを用いた信頼性の低いネットワーク・コンピュータ・クラスタ環境において、長時間トランザクションをサポートする技術がある。この技術は、マスタ交代に備えてデータを複製(レプリケーション)することによりサーバ故障への耐障害性、トランザクションによるクライアント端末の故障に対する耐障害性を実現するものである(例えば、非特許文献1参照)
また、第2の従来技術として、ネットワーク故障、サーバ故障のいずれにも対応したロックサービスがある。この技術は、ファイルにロックをかけるオペレーションを行うことでネットワーク故障、サーバ故障、クライアント故障のいずれに対しても対応が可能な技術である(例えば、非特許文献2,3参照)。
As a first conventional technique, there is a technique for supporting a long-time transaction in an unreliable network computer cluster environment using inexpensive hardware. This technology realizes fault tolerance against a server failure and fault tolerance against a client terminal failure due to a transaction by replicating data in preparation for a master change (for example, see Non-Patent Document 1). )
Further, as a second conventional technique, there is a lock service corresponding to both a network failure and a server failure. This technique is a technique that can cope with any of a network failure, a server failure, and a client failure by performing an operation for locking a file (for example, see Non-Patent Documents 2 and 3).

http://www.ibm.com/software/jp/websphere/integration/wmq/http://www.ibm.com/software/jp/websphere/integration/wmq/ Mike Burrows, "The Chubby lock service for loosely-coupled distributed systems", 7th USENIX Symposium on Operating Systems Design and Implementation (OSDI), 2006. November 8.(http://research.google.com/archive/chubby-osdi06.pdf)Mike Burrows, "The Chubby lock service for loosely-coupled distributed systems", 7th USENIX Symposium on Operating Systems Design and Implementation (OSDI), 2006. November 8. (http://research.google.com/archive/chubby-osdi06 .pdf) Tushar Chandra et al., "Paxos Made Live - An Engineering Perspective," PODC'07, 2007.(http://labs.google.com/papers/paxos_made_live.html)Tushar Chandra et al., "Paxos Made Live-An Engineering Perspective," PODC'07, 2007. (http://labs.google.com/papers/paxos_made_live.html)

しかしながら、上記の第1の従来技術(非特許文献1)は、ネットワークが分断された場合には、マスタが複数存在するマルチマスタ状態が発生する可能性がある。また、トランザクションはロールバックされるため、タスクキューの実施例ではタスク処理に長時間を要するという問題がある。また、長時間トランザクションにより、キュー内の要素が失われないことは保証できるが、Paxos(信頼性が低いプロセッサのネットワークにおいて、単一の結果について合意を得る問題を解決するためのプロトコルの集合)を用いていないため、データの一貫性が保障できないケースがある。また、キュー内の要素は失われないが、クライアントが故障した場合に、サーバ内にキュー内のエントリが永久に残留するという問題がある。   However, in the first prior art (Non-Patent Document 1), when the network is divided, there is a possibility that a multi-master state in which a plurality of masters exist is generated. Further, since the transaction is rolled back, there is a problem that the task processing takes a long time in the embodiment of the task queue. Paxos (a set of protocols for solving consensus issues on a single outcome in a network of unreliable processors) can be guaranteed that long-running transactions will not lose elements in the queue. In some cases, data consistency cannot be guaranteed. In addition, although the elements in the queue are not lost, there is a problem that the entries in the queue remain in the server permanently if the client fails.

また、第2の従来技術(非特許文献2、3)は、ネットワーク故障、サーバ故障にも対応できるロックサービスであり、ロック・ファイル処理等のオペレーションが可能であるが、サーバ上のファイル操作とそれに対応する分散ロックをプリミティブな操作とした場合、その組み合わせだけでは、サーバが故障しフェイルオーバした場合にキュー内の情報の無矛盾性を保障することができない。例えば、ファイルにロックをかけた上でキュー情報を操作するのでは、一つのキュー操作(プッシュ・ポップ等)に対して、ファイルのロックと読み込み・書き込みの複数の操作を行わなければならず、十分な性能が期待できない。   The second prior art (Non-Patent Documents 2 and 3) is a lock service that can cope with network failures and server failures, and can perform operations such as lock / file processing. When the corresponding distributed lock is a primitive operation, it is not possible to guarantee consistency in the information in the queue when the server fails and fails over only by the combination. For example, in order to operate queue information after locking a file, multiple operations of file locking and reading / writing must be performed for one queue operation (push, pop, etc.) Sufficient performance cannot be expected.

本発明は、上記の点に鑑みなされたもので、1)クライアントが故障した際に、サーバ上のキュー内のエントリが永久に残留することを防止し、2)ネットワーク故障、サーバ故障、クライアント故障のいずれの故障が同時起きた場合でも、過半数のサーバが互いに通信可能な状態である限り、サーバとして動作を継続でき、キューの状態を正常に維持でき、3)同期している複数サーバ間でネットワークが分散した場合(Split Brain状態)に、読み出されるキューの状態が不一致とならないようにし、4)クラスタ内の一部のサーバが故障した場合であっても、キューのトランザクション状態が導入されているシステムにおいて、当該状態を保持する、ことが可能なメッセージキュー管理システム及びロックサーバ及びメッセージキュー管理方法及びメッセージキュー管理プログラムを提供することを目的とする。   The present invention has been made in view of the above points. 1) When a client fails, entries in the queue on the server are prevented from remaining permanently. 2) Network failure, server failure, client failure If any of these failures occur simultaneously, as long as a majority of servers can communicate with each other, they can continue to operate as servers and maintain their queue status normally. 3) Between multiple synchronized servers When the network is distributed (Split Brain state), the read queue state should not be inconsistent. 4) Even if some servers in the cluster fail, the queue transaction state is introduced. Message queue management system, lock server, and message queue management method capable of retaining the state in a system An object of the present invention is to provide a message queue management program.

図1は、本発明の原理構成図である。   FIG. 1 is a principle configuration diagram of the present invention.

本発明(請求項1)は、ネットワーク・コンピュータ・クラスタ環境での、複数のクライアント端末、複数のワーカ、プライマリサーバ、バックアップサーバ、マスタまたはレプリカの動作モードを有する複数のロックサーバを含む大規模分散処理システムにおいて、該クライアント端末、該ワーカ、該プライマリサーバ、該バックアップサーバをクライアント1とし、該クライアントと該複数のロックサーバ300からなるメッセージキュー管理システムであって、
クライアント1は、
全てのマスタ候補に対して接続要求を送信し、該マスタ候補からセッションIDを取得し、該セッションIDに対するキュー操作要求を行う手段と、
セッションIDの送信元の該マスタ候補から所定の時間内にメッセージを受信できない場合には、全てのマスタ候補に該セッションIDを送信することにより再接続要求を送信する手段と、を有し、
ロックサーバ300は、
キュー及び該キューの情報を格納したデータベース309と、
セッション情報を格納したセッション情報記憶手段304と、
マスタは常に一台であることを保証する多数決プロトコルであるPaxosを用いて自装置がマスタか否かを判定するマスタ調整手段301と、
マスタ調整手段301の結果、マスタが交代した場合には、データベース309内に予め複製されていたキューの情報及びクライアント1からの再接続要求によって有効なセッションの確認を行い、キューに対する操作の途中状態を復元し、自装置がマスタになれば非マスタにデータ複製を要求し、自装置がマスタでなければマスタからのデータ復元要求に応じて、自装置内にデータを複製するレプリケーション手段307と、
クライアント1から接続要求受信後、該クライアントに対してセッションIDを送信し、セッション情報記憶手段304に該クライアント1の情報と共にセッションIDを格納するセッション管理手段303と、
クライアント1が故障した場合は、セッション情報記憶手段304からセッションIDに対応する全てのキューを取得し、該全てのキューのレコードにセッションIDが存在する場合は、該セッションIDを空欄として該セッション情報記憶手段を更新する自動アンマーク手段3031と、を有する。
The present invention (claim 1), network-in a computer cluster environment, a plurality of client terminals, a plurality of workers, the primary server, a backup server, a large-scale including a plurality of lock server having an operating mode of the Master or Replica In a distributed processing system, the client terminal, the worker, the primary server, and the backup server are the client 1, and the message queue management system includes the client and the plurality of lock servers 300.
Client 1
Means for transmitting a connection request to all master candidates, obtaining a session ID from the master candidate, and performing a queue operation request for the session ID;
Means for transmitting a reconnection request by transmitting the session ID to all master candidates when a message cannot be received within a predetermined time from the master candidate of the session ID transmission source;
The lock server 300
A database 309 storing a queue and information of the queue;
Session information storage means 304 storing session information;
Master adjustment means 301 for determining whether or not the device is a master using Paxos, which is a majority protocol that guarantees that there is always one master,
When the master is changed as a result of the master adjustment unit 301, a valid session is confirmed based on the queue information previously copied in the database 309 and the reconnection request from the client 1, and an intermediate state of the operation on the queue Replication means 307 for requesting data replication to a non-master if the own apparatus becomes the master, and replicating data in the own apparatus in response to a data restoration request from the master if the own apparatus is the master,
A session management unit 303 that transmits a session ID to the client after receiving the connection request from the client 1 and stores the session ID together with the information of the client 1 in the session information storage unit 304;
When the client 1 fails, all the queues corresponding to the session ID are acquired from the session information storage unit 304, and when the session ID exists in the records of all the queues, the session information is left as the session ID. Automatic unmarking means 3031 for updating the storage means.

また、本発明(請求項2)は、請求項1のメッセージキュー管理システムにおいて、
削除待ちのセッション情報を格納した削除待ちセッション記憶手段と、
を更に有し、
レプリケーション手段307は、
自装置が以前マスタではなかった場合は、セッション情報記憶手段304からマスタ交代前のセッション情報を読み込んで、削除待ちセッション記憶手段に格納し、該セッション情報記憶手段のセッション情報を削除し、所定の時間が経過後、該削除待ちセッション記憶手段にセッションがある場合には、該削除待ちセッション記憶手段からセッションIDを取得し、該セッション情報記憶手段の該セッションIDを空欄として該セッション情報記憶手段を更新する第1のセッション制御手段と、
クライアント1からの再接続要求に対しては、削除待ちセッション情報記憶手段から該再接続要求に該当するセッションIDを削除し、該セッションIDを該セッション情報記憶手段に追加し、該セッションIDを該クライアントに送信する再接続要求処理手段と、該クライアントからの要求が該接続要求及び該再接続要求以外であれば、要求内容に応じてデータベース309内のキューに対する処理を行い、レプリカとして動作するロックサーバに送信する要求処理手段と、を含む第2のセッション制御手段と、を含む。
The present invention (Claim 2) is the message queue management system according to Claim 1,
A deletion waiting session storage means storing session information waiting for deletion;
Further comprising
The replication means 307
If the device itself has not been a master before, the session information before the master change is read from the session information storage unit 304, stored in the session storage unit waiting for deletion, the session information in the session information storage unit is deleted, When there is a session in the session storage unit waiting for deletion after a lapse of time, a session ID is obtained from the session storage unit waiting for deletion, and the session information storage unit is set with the session ID of the session information storage unit blank. First session control means for updating;
In response to the reconnection request from the client 1, the session ID corresponding to the reconnection request is deleted from the deletion waiting session information storage means, the session ID is added to the session information storage means, and the session ID is A reconnection request processing means to be transmitted to the client, and if the request from the client is other than the connection request and the reconnection request, the lock that operates as a replica performs processing for the queue in the database 309 according to the request content Request processing means for transmitting to the server, and second session control means.

また、本発明(請求項3)は、請求項2の第2のセッション制御手段の要求処理手段において、
クライアント1からの要求がキューのプッシュ操作要求である場合は、取得したキューID、キー、及びキー値を用いてデータベース309のキューに対してプッシュ操作を行うプッシュ手段と、
クライアント1からの要求がキューのポップ操作要求である場合は、取得したキューIDに基づいてデータベース309のキューについてポップ操作を行うポップ手段と、
クライアント1からの要求が削除要求である場合は、取得したキューID、キーを用いてデータベース309のキューについて削除操作を行う削除手段と、
クライアント1からの要求が、キューに対する操作の途中状態の復元のための要求であるマーク要求である場合は、キューIDとセッションIDを取得し、データベース309から該キューIDに該当するキューの先頭レコードを取得し、該レコードにセッションIDが設定されていなければ、取得した該セッションIDを設定するマーク手段と、
クライアント1からの要求が、キューに対する操作の途中状態を復元しない要求であるアンマーク要求である場合は、キューIDとキーを取得し、データベース309から該キューIDに該当するレコード一覧から該キーに対応するレコードを取得して、該レコードのセッションIDを削除するアンマーク手段と、を含む。
The present invention (Claim 3) is the request processing means of the second session control means of Claim 2,
When the request from the client 1 is a queue push operation request, a push unit that performs a push operation on the queue of the database 309 using the acquired queue ID, key, and key value;
When the request from the client 1 is a queue pop operation request, pop means for performing a pop operation on the queue of the database 309 based on the acquired queue ID;
If the request from the client 1 is a deletion request, a deletion unit that performs a deletion operation on the queue of the database 309 using the acquired queue ID and key;
When the request from the client 1 is a mark request that is a request for restoring the mid-operation state of the queue, the queue ID and the session ID are acquired, and the first record of the queue corresponding to the queue ID is obtained from the database 309. And if the session ID is not set in the record, mark means for setting the acquired session ID;
If the request from the client 1 is an unmark request that is a request that does not restore the mid-operation state of the queue, the queue ID and key are acquired, and the database 309 obtains the key from the record list corresponding to the queue ID. Unmarking means for acquiring a corresponding record and deleting the session ID of the record.

本発明(請求項4)は、ネットワーク・コンピュータ・クラスタ環境での、複数のクライアント端末、複数のワーカ、プライマリサーバ、バックアップサーバ、マスタまたはレプリカの動作モードを有する複数のロックサーバを含む大規模分散処理システムにおいて、該クライアント端末、該ワーカ、該プライマリサーバ、該バックアップサーバをクライアントとするシステムにおけるロックサーバであって、
キュー及び該キューの情報を格納したデータベースと、
セッション情報を格納したセッション情報記憶手段と、
マスタは常に一台であることを保証する多数決プロトコルであるPaxosを用いて自装置がマスタか否かを判定するマスタ調整手段と、
マスタ調整手段の結果、マスタが交代した場合には、データベース内に予め複製されていたキューの情報及びクライアントからの再接続要求によって有効なセッションの確認を行い、キューに対する操作の途中状態を復元し、自装置がマスタになれば非マスタにデータ複製を要求し、自装置がマスタでなければマスタからのデータ復元要求に応じて、自装置内にデータを複製するレプリケーション手段と、
クライアントから接続要求受信後、該クライアントに対してセッションIDを送信し、セッション情報記憶手段に該クライアントの情報と共にセッションIDを格納するセッション管理手段と、
クライアントが故障した場合は、セッション情報記憶手段からセッションIDに対応する全てのキューを取得し、該全てのキューのレコードにセッションIDが存在する場合は、該セッションIDを空欄として該セッション情報記憶手段を更新する自動アンマーク手段と、を有する。
The present invention (claim 4), network-in a computer cluster environment, a plurality of client terminals, a plurality of workers, the primary server, a backup server, a large-scale including a plurality of lock server having an operating mode of the Master or Replica In a distributed processing system, a lock server in a system in which the client terminal, the worker, the primary server, and the backup server are clients,
A queue and a database storing information about the queue;
Session information storage means for storing session information;
Master adjustment means for determining whether or not the device is a master using Paxos, which is a majority protocol that guarantees that there is always one master,
If the master changes as a result of the master adjustment means, the queue information that has been replicated in the database in advance and the valid session are confirmed by the reconnection request from the client, and the intermediate state of the operation on the queue is restored. A replication means for requesting data replication to a non-master if the own device becomes a master, and for replicating data in the own device in response to a data restoration request from the master if the own device is not a master;
Session management means for transmitting a session ID to the client after receiving a connection request from the client, and storing the session ID together with the client information in a session information storage means;
When the client fails, all the queues corresponding to the session ID are acquired from the session information storage means, and when the session ID exists in the records of all the queues, the session information storage means with the session ID as blank And automatic unmarking means for updating.

また、本発明(請求項5)は、請求項4のロックサーバにおいて、
削除待ちのセッション情報を格納した削除待ちセッション記憶手段と、
を更に有し、
レプリケーション手段は、
自装置が以前マスタではなかった場合は、セッション情報記憶手段からマスタ交代前のセッション情報を読み込んで、削除待ちセッション記憶手段に格納し、該セッション情報記憶手段のセッション情報を削除し、所定の時間が経過後、該削除待ちセッション記憶手段にセッションがある場合には、該削除待ちセッション記憶手段からセッションIDを取得し、該セッション情報記憶手段の該セッションIDを空欄として該セッション情報記憶手段を更新する第1のセッション制御手段と、
クライアントからの再接続要求に対しては、削除待ちセッション情報記憶手段から該再接続要求に該当するセッションIDを削除し、該セッションIDを該セッション情報記憶手段に追加し、該セッションIDを該クライアントに送信する再接続要求処理手段と、該クライアントからの要求が該接続要求及び該再接続要求以外であれば、要求内容に応じてデータベース内のキューに対する処理を行い、レプリカとして動作するロックサーバに送信する要求処理手段と、を含む第2のセッション制御手段と、を含む。
The present invention (Claim 5) is the lock server according to Claim 4,
A deletion waiting session storage means storing session information waiting for deletion;
Further comprising
Replication means
If the device itself has not been a master before, the session information before the master change is read from the session information storage means, stored in the deletion waiting session storage means, the session information in the session information storage means is deleted, and a predetermined time When there is a session in the session storage unit waiting for deletion after the elapse of time, the session ID is acquired from the session storage unit waiting for deletion and the session information storage unit is updated with the session ID of the session information storage unit blank. First session control means for
In response to the reconnection request from the client, the session ID corresponding to the reconnection request is deleted from the deletion waiting session information storage means, the session ID is added to the session information storage means, and the session ID is added to the client If the request from the client and the request from the client are other than the connection request and the reconnection request, processing is performed on the queue in the database according to the request content, and the lock server operating as a replica And a second session control means including a request processing means for transmission.

また、本発明(請求項6)は、請求項5のロックサーバにおいて、
第2のセッション制御手段の要求処理手段は、
クライアントからの要求がキューのプッシュ操作要求である場合は、取得したキューID、キー、及びキー値を用いてデータベースのキューに対してプッシュ操作を行うプッシュ手段と、
クライアントからの要求がキューのポップ操作要求である場合は、取得したキューIDに基づいてデータベースのキューについてポップ操作を行うポップ手段と、
クライアントからの要求が削除要求である場合は、取得したキューID、キーを用いてデータベースのキューについて削除操作を行う削除手段と、
クライアントからの要求が、キューに対する操作の途中状態の復元のための要求であるマーク要求である場合は、キューIDとセッションIDを取得し、データベースから該キューIDに該当するキューの先頭レコードを取得し、該レコードにセッションIDが設定されていなければ、取得した該セッションIDを設定するマーク手段と、
クライアントからの要求が、キューに対する途中状態を復元しない要求であるアンマーク要求である場合は、キューIDとキーを取得し、データベースから該キューIDに該当するレコード一覧から該キーに対応するレコードを取得して、該レコードのセッションIDを削除するアンマーク手段と、を含む。
Moreover, this invention (Claim 6) is the lock server of Claim 5,
The request processing means of the second session control means is:
If the request from the client is a queue push operation request, a push means for performing a push operation on the database queue using the acquired queue ID, key, and key value;
If the request from the client is a queue pop operation request, pop means for performing a pop operation on the database queue based on the acquired queue ID;
If the request from the client is a deletion request, a deletion unit that performs a deletion operation on the database queue using the acquired queue ID and key;
When the request from the client is a mark request that is a request for restoring the mid-operation state of the queue, the queue ID and the session ID are obtained, and the first record of the queue corresponding to the queue ID is obtained from the database. If the session ID is not set in the record, a mark means for setting the acquired session ID;
When the request from the client is an unmark request that is a request that does not restore the intermediate state with respect to the queue, the queue ID and key are obtained, and the record corresponding to the key is retrieved from the record list corresponding to the queue ID from the database. And unmarking means for acquiring and deleting the session ID of the record.

本発明(請求項7)は、ネットワーク・コンピュータ・クラスタ環境での、複数のクライアント端末、複数のワーカ、プライマリサーバ、バックアップサーバ、マスタまたはレプリカの動作モードを有する複数のロックサーバを含む大規模分散処理システムにおいて、該クライアント端末、該ワーカ、該プライマリサーバ、該バックアップサーバをクライアントとし、該複数のロックサーバのうちのいずれかをマスタとするメッセージキュー管理方法であって、
クライアントは、
全てのマスタ候補となるロックサーバに対して接続要求を送信し、該マスタ候補からセッションIDを取得し、該セッションIDに対するキュー操作要求を行うステップと、
セッションIDの送信元の該マスタ候補から所定の時間内にメッセージを受信できない場合には、全てのマスタ候補に該セッションIDを送信することにより再接続要求を送信するステップと、を行い、
ロックサーバは、
マスタは常に一台であることを保証する多数決プロトコルであるPaxosを用いて自装置がマスタか否かを判定するマスタ調整ステップと、
マスタ調整ステップの結果、マスタが交代した場合には、データベース内に予め複製されていたキューの情報及びクライアントからの再接続要求によって有効なセッションの確認を行い、キューに対する操作の途中状態を復元し、自装置がマスタになれば非マスタにデータ複製を要求し、自装置がマスタでなければマスタからのデータ復元要求に応じて、自装置内にデータを複製するレプリケーションステップと、
クライアントから接続要求受信後、該クライアントに対してセッションIDを送信し、セッション情報記憶手段に該クライアントの情報と共にセッションIDを格納するセッション管理ステップと、
クライアントが故障した場合は、セッション情報記憶手段からセッションIDに対応する全てのキューを取得し、該全てのキューのレコードにセッションIDが存在する場合は、該セッションIDを空欄として該セッション情報記憶手段を更新する自動アンマークステップと、を行う。
The present invention (claim 7), network-in a computer cluster environment, a plurality of client terminals, a plurality of workers, the primary server, a backup server, a large-scale including a plurality of lock server having an operating mode of the Master or Replica In a distributed processing system, a message queue management method in which the client terminal, the worker, the primary server, and the backup server are clients, and any one of the plurality of lock servers is a master,
The client
Sending connection requests to all master candidate lock servers, obtaining a session ID from the master candidate, and performing a queue operation request for the session ID;
If a message cannot be received within a predetermined time from the master candidate of the session ID transmission source, a step of transmitting a reconnection request by transmitting the session ID to all master candidates is performed.
The lock server
A master adjustment step of determining whether or not the own device is a master using Paxos, which is a majority protocol that guarantees that the master is always one;
If the master is changed as a result of the master adjustment step, the queue information that has been duplicated in the database in advance and the valid session are confirmed by the reconnection request from the client, and the intermediate state of the operation on the queue is restored. A replication step of requesting data replication to a non-master if the own device becomes a master, and replicating data in the own device in response to a data restoration request from the master if the own device is not the master;
A session management step of transmitting a session ID to the client after receiving a connection request from the client, and storing the session ID together with the information of the client in session information storage means;
When the client fails, all the queues corresponding to the session ID are acquired from the session information storage means, and when the session ID exists in the records of all the queues, the session information storage means with the session ID as blank And an automatic unmarking step for updating.

また、本発明(請求項8)は、請求項7のレプリケーションステップにおいて、
自装置が以前マスタではなかった場合は、
セッション情報を格納したセッション情報記憶手段からマスタ交代前のセッション情報を読み込んで、削除待ちのセッション情報を格納した削除待ちセッション記憶手段に格納し、該セッション情報記憶手段のセッション情報を削除し、所定の時間が経過後、該削除待ちセッション記憶手段にセッションがある場合には、該削除待ちセッション記憶手段からセッションIDを取得し、データベースの該セッションIDに該当するクライントが保持していたキューの途中状態を無効化する第1のセッション制御ステップと、
クライアントからの再接続要求に対しては、削除待ちセッション情報記憶手段から該再接続要求に該当するセッションIDを削除し、該セッションIDを該セッション情報記憶手段に追加し、該セッションIDを該クライアントに送信し、
クライアントからの要求が該接続要求及び該再接続要求以外であれば、要求内容に応じてデータベース内のキューに対する処理を行い、他のロックサーバに送信する第2のセッション制御ステップと、を含む。
Further, the present invention (Claim 8) is a replication step according to Claim 7,
If your device was not the master before,
Reads the session information before the master change from the session information storage means storing the session information, stores the session information waiting for deletion in the deletion waiting session storage means, deletes the session information in the session information storage means, If there is a session in the session storage unit waiting for deletion after the elapse of time, the session ID is acquired from the session storage unit waiting for deletion, and the middle of the queue held by the client corresponding to the session ID in the database A first session control step of invalidating the state;
In response to the reconnection request from the client, the session ID corresponding to the reconnection request is deleted from the deletion waiting session information storage means, the session ID is added to the session information storage means, and the session ID is added to the client To
If the request from the client is other than the connection request and the reconnection request, a second session control step of processing the queue in the database according to the request content and transmitting to the other lock server is included.

また、本発明(請求項9)は、請求項8の第2のセッション制御ステップにおいて、
クライアントからの要求がキューのプッシュ操作要求である場合は、取得したキューID、キー、及びキー値を用いてデータベースのキューに対してプッシュ操作を行い、
クライアントからの要求がキューのポップ操作要求である場合は、取得したキューIDに基づいてデータベースのキューについてポップ操作を行い、
クライアントからの要求が削除要求である場合は、取得したキューID、キーを用いてデータベースのキューについて削除操作を行い、
クライアントからの要求が、キューに対する操作の途中状態の復元のための要求であるマーク要求である場合は、キューIDとセッションIDを取得し、データベースから該キューIDに該当するキューの先頭レコードを取得し、該レコードにセッションIDが設定されていなければ、取得した該セッションIDを設定するマーク操作を行い、
クライアントからの要求が、キューに対する途中状態を復元しない要求であるアンマーク要求である場合は、キューIDとキーを取得し、データベースから該キューIDに該当するレコード一覧から該キーに対応するレコードを取得して、該レコードのセッションIDを削除するアンマーク操作を行う。
The present invention (Claim 9) is characterized in that, in the second session control step of Claim 8,
When the request from the client is a queue push operation request, a push operation is performed on the database queue using the acquired queue ID, key, and key value.
If the request from the client is a queue pop operation request, perform a pop operation on the database queue based on the acquired queue ID,
If the request from the client is a delete request, perform a delete operation on the database queue using the acquired queue ID and key,
When the request from the client is a mark request that is a request for restoring the mid-operation state of the queue, the queue ID and the session ID are obtained, and the first record of the queue corresponding to the queue ID is obtained from the database. If the session ID is not set in the record, a mark operation for setting the acquired session ID is performed.
When the request from the client is an unmark request that is a request that does not restore the intermediate state with respect to the queue, the queue ID and key are obtained, and the record corresponding to the key is retrieved from the record list corresponding to the queue ID from the database. Obtaining and performing an unmark operation for deleting the session ID of the record.

本発明(請求項10)は、請求項4乃至6のいずれか1項に記載のロックサーバを構成する各手段としてコンピュータを機能させるためのメッセージキュー管理プログラムである。   The present invention (Claim 10) is a message queue management program for causing a computer to function as each means constituting the lock server according to any one of Claims 4 to 6.

上記のように本発明によれば、安価なハードウェアを用いた信頼性の低いネットワーク・コンピュータ・クラスタ環境において、予め決められた候補の中から多数決によって一意なマスタを選出することにより、マルチマスタ状態となることを回避する。   As described above, according to the present invention, in a network computer cluster environment with low reliability using inexpensive hardware, a multi-master is selected by selecting a unique master by majority from predetermined candidates. Avoid getting into a state.

また、レプリケーションとフェイルオーバによりマスタが故障しても新しいマスタに役割を引き継ぐのみで動作を継続するため、クラスタ内の一部のサーバが故障した場合であっても、キューのトランザクション状態が導入されているシステムにおいて、キュー内の情報が矛盾する問題を防止する。   In addition, even if the master fails due to replication and failover, the operation is continued just by taking over the role of the new master. Therefore, even if some servers in the cluster fail, the queue transaction state is introduced. In a system where the information in the queue is inconsistent.

同期している複数サーバ間でネットワーク分断が発生した場合であっても、読み出されるキューの状態が不一致となる問題を防止できる。即ち、マスタキューを保持しているサーバが故障し、フェイルオーバした場合にキュー内の情報が矛盾する問題を防止することができる。   Even when network partitioning occurs between a plurality of synchronized servers, it is possible to prevent a problem that the read queue states do not match. That is, it is possible to prevent a problem in which the information in the queue is inconsistent when the server holding the master queue fails and fails over.

クライアントが故障した場合に、マスタ上のキュー内のエントリが永久に残留することを防止することができる。   When a client fails, it is possible to prevent the entries in the queue on the master from remaining permanently.

また、ネットワーク故障、サーバ故障、クライアント故障、これらのいずれの故障が同時に起きた場合でも、過半数のサーバが互いに通信可能な状態である限り、サーバとして動作を継続し、キューの状態を正常に維持することができる。   In addition, even if a network failure, server failure, or client failure occurs at the same time, as long as the majority of servers can communicate with each other, they continue to operate as servers and maintain the queue status normally. can do.

また、クラスタ内の一部のサーバが故障した場合であっても、キューのトランザクション状態が導入されているシステムにおいて、当該状態を保持できる。即ち、タスクキューに適用した場合、タスクの再実行を防ぐことにより、システムの処理効率が向上する。   Even when some servers in the cluster fail, the state can be maintained in a system in which the transaction state of the queue is introduced. That is, when applied to a task queue, the processing efficiency of the system is improved by preventing task re-execution.

本発明の原理構成図である。It is a principle block diagram of this invention. 本発明を適用するシステム構成図である。1 is a system configuration diagram to which the present invention is applied. 本発明の一実施の形態における要部のシステム構成図である。It is a system configuration figure of the principal part in one embodiment of the present invention. 本発明の一実施の形態におけるセッション一覧記憶部のテーブルの例である。It is an example of the table of the session list memory | storage part in one embodiment of this invention. 本発明の一実施の形態における削除待ちセッション一覧記憶部のテーブルの例である。It is an example of the table of the deletion waiting session list memory | storage part in one embodiment of this invention. 本発明の一実施の形態におけるDBのテーブルの例である。It is an example of the table of DB in one embodiment of this invention. 本発明の一実施の形態におけるクライアントの動作のフローチャートである。It is a flowchart of operation | movement of the client in one embodiment of this invention. 本発明の一実施の形態におけるロックサーバのフローチャートである。It is a flowchart of the lock server in one embodiment of the present invention. 本発明の一実施の形態におけるクライアントとのセッション復元処理(S1060)のフローチャートである。It is a flow chart of session restoration processing (S1060) with a client in one embodiment of the present invention. 本発明の一実施の形態におけるクライアントからの要求受付開始処理(S1070)のフローチャートである。It is a flowchart of the request reception start process (S1070) from the client in one embodiment of this invention. 本発明の一実施の形態におけるキュー制御部のプッシュ操作のフローチャートである。It is a flowchart of push operation of the queue control part in one embodiment of this invention. 本発明の一実施の形態におけるキュー制御部のポップ操作のフローチャートである。It is a flowchart of the pop operation of the queue control unit in one embodiment of the present invention. 本発明の一実施の形態におけるキュー制御部のデリート操作のフローチャートである。It is a flowchart of delete operation of the queue control part in one embodiment of the present invention. 本発明の一実施の形態におけるキュー制御部のマーク操作のフローチャートである。It is a flowchart of mark operation of the queue control part in one embodiment of this invention. 本発明の一実施の形態におけるアンマーク操作のフローチャートである。It is a flowchart of unmark operation in one embodiment of this invention. 本発明の一実施の形態におけるクライアントからの要求受付閉塞処理(S1100,S2130)のフローチャートである。It is a flowchart of the request | requirement reception | blocking process (S1100, S2130) from the client in one embodiment of this invention. 本発明の一実施の形態におけるセッション削除処理(S5070,S2170)のフローチャートである。It is a flowchart of the session deletion process (S5070, S2170) in one embodiment of this invention. 本発明の一実施の形態における自動アンマーク操作(S4020)のフローチャートである。It is a flowchart of automatic unmark operation (S4020) in one embodiment of the present invention.

以下、図面と共に本発明の実施の形態を説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings.

図3は、本発明を適用するシステム構成を示す。   FIG. 3 shows a system configuration to which the present invention is applied.

本発明は、図2に示すように、分散ファイルシステムのデータ管理と制御を行うプライマリサーバ100、バックアップサーバ200、分散システムの可用性とシステムとしての一貫性を高めるための基本機能を提供するマスタまたはレプリカとしての動作モードを有するロックサーバ300、分散システムの分散ファイルシステムを利用するアプリケーションにリンクされるクライアント端末ライブラリを有する複数のクライアント端末10、物理的にデータを保持する複数のワーカ20から構成される、大規模分散処理システムに適用される技術である。   As shown in FIG. 2, the present invention provides a primary server 100 that performs data management and control of a distributed file system, a backup server 200, a master that provides basic functions for increasing the availability and consistency of the distributed system, or A lock server 300 having an operation mode as a replica, a plurality of client terminals 10 having client terminal libraries linked to an application using a distributed file system of a distributed system, and a plurality of workers 20 that physically hold data. This technology is applied to a large-scale distributed processing system.

プライマリサーバ100は、クライアント端末10からのファイルのメタ情報取得・更新要求を取得して、更新されたメタ情報を複製してバックアップサーバ200に送信し、メタ情報に基づいてワーカ20に対するデータ管理及び制御を行う。また、分散ファイルマスタの状態をロックサーバマスタ300に保存する。   The primary server 100 acquires a file meta-information acquisition / update request from the client terminal 10, copies the updated meta-information and transmits it to the backup server 200, and manages data for the worker 20 based on the meta-information. Take control. Further, the state of the distributed file master is stored in the lock server master 300.

クライアント端末10は、ロックサーバ300からプライマリサーバ100の位置情報を取得し、プライマリサーバ100からファイルのメタ情報を取得し、プライマリサーバ100から渡された、データを管理しているワーカ20のメタ情報に基づいてデータの読み出しを行う、または、データの書き込みを行う。   The client terminal 10 acquires the location information of the primary server 100 from the lock server 300, acquires the meta information of the file from the primary server 100, and the meta information of the worker 20 that manages the data passed from the primary server 100. Based on the above, data is read or data is written.

ワーカ20は、クライアント端末10からアクセスされることにより、データの登録、提供を行う。   The worker 20 registers and provides data by being accessed from the client terminal 10.

ロックサーバ(マスタ)300は、分散ファイルマスタ状態と分散マスタの位置情報を管理し、プライマリサーバ100、バックアップサーバ200からのロック獲得要求を受け、サーバ間の排他制御を行うと共に、死活状態の監視を行い、例えば、プライマリサーバ100に障害が発生した場合には、当該プライマリサーバ100の死活監視ファイルを削除する。ロックサーバ(レプリカ)300は、マスタとなっているロックサーバ300の複製された情報を保持する。   The lock server (master) 300 manages the distributed file master status and the location information of the distributed master, receives lock acquisition requests from the primary server 100 and the backup server 200, performs exclusive control between the servers, and monitors the alive state. For example, when a failure occurs in the primary server 100, the alive monitoring file of the primary server 100 is deleted. The lock server (replica) 300 holds the copied information of the lock server 300 that is the master.

図3は、本発明の一実施の形態における要部のシステム構成を示す。同図では、本実施の形態における要部としてロックサーバ300の構成を示す。
同図に示す「クライアント」とは、ロックサーバ300から見た通信相手を指し、図2に示すクライアント端末10のみならず、分散ファイルマスタのプライマリサーバ100、バックアップサーバ200、ワーカ20のいずれかを指すものとする。
FIG. 3 shows the system configuration of the main part in an embodiment of the present invention. In the figure, the configuration of the lock server 300 is shown as the main part in the present embodiment.
The “client” shown in the figure refers to a communication partner viewed from the lock server 300, and includes not only the client terminal 10 shown in FIG. 2 but also any of the primary server 100, backup server 200, and worker 20 of the distributed file master. Shall point to.

同図に示すロックサーバ300は、マスタ調停部301、マスタ管理部302、セッション管理部303、セッション一覧記憶部304、削除待ちセッション一覧記憶部305、要求処理部306、レプリケーション管理部307、データベース(DB)309、トランザクション管理部310を有する。   The lock server 300 shown in the figure includes a master arbitration unit 301, a master management unit 302, a session management unit 303, a session list storage unit 304, a deletion waiting session list storage unit 305, a request processing unit 306, a replication management unit 307, a database ( DB) 309 and a transaction management unit 310.

上記のセッション一覧記憶部304、削除待ちセッション一覧記憶部305は、メモリまたはハードディスク等の記憶媒体である。   The session list storage unit 304 and the deletion waiting session list storage unit 305 are storage media such as a memory or a hard disk.

セッション一覧記憶部304及び削除待ちセッション一覧記憶部305は、セッション管理部303から参照、更新されるテーブルであり、図4、図5にそれぞれ示すように、セッションID、IPアドレスなどのクライアント情報、及びマークしているキューのエントリからなるテーブルを格納している。なお、削除待ちセッション一覧記憶部305のテーブルはマスタ交代直後のみ保持される。   The session list storage unit 304 and the deletion waiting session list storage unit 305 are tables that are referred to and updated from the session management unit 303. As shown in FIGS. 4 and 5, client information such as a session ID and an IP address, And a table of queue entries that are marked. The table in the deletion waiting session list storage unit 305 is held only immediately after the master change.

DB309は、図6に示すように、キュー一覧(同図(A))とキューID毎のレコード一覧(同図(B))のテーブルを有する。   As shown in FIG. 6, the DB 309 has a table of a queue list (FIG. (A)) and a record list for each queue ID (FIG. (B)).

最初に、クライアント1の動作について説明する。   First, the operation of the client 1 will be described.

図7は、本発明の一実施の形態におけるクライアントの動作のフローチャートである。   FIG. 7 is a flowchart of the operation of the client according to the embodiment of the present invention.

ステップ101) クライアント1は、全てのマスタ候補(ロックサーバ300)に対して接続要求を送信する。   Step 101) The client 1 transmits a connection request to all master candidates (the lock server 300).

ステップ102) マスタとして動作しているロックサーバ300からセッションIDを受信する。   Step 102) The session ID is received from the lock server 300 operating as the master.

ステップ103) セッションID送信元のマスタに対して受信確認を送信する。   Step 103) A reception confirmation is transmitted to the master of the session ID transmission source.

ステップ104) 死活監視タイマをセットする。   Step 104) The alive monitoring timer is set.

ステップ105) 死活監視タイマがタイムアウトする前に上記のマスタ候補のロックサーバ300から応答を受信したかを判定し、受信した場合はステップ103に移行し、受信していない場合は、ステップ106に移行する。   Step 105) It is determined whether a response has been received from the master candidate lock server 300 before the alive monitoring timer times out. If received, the process proceeds to Step 103. If not received, the process proceeds to Step 106. To do.

ステップ106) 再接続タイマをセットする。   Step 106) Set the reconnection timer.

ステップ107) 全てのマスタ候補のロックサーバ300へセッションIDを含む再接続要求を送信する。   Step 107) A reconnection request including the session ID is transmitted to all master candidate lock servers 300.

ステップ108) 再接続タイマがタイムアウトする前にマスタとして動作しているロックサーバ300から返信が得られたかを判定し、得られた場合はステップ103に移行し、得られない場合は当該処理を終了する。   Step 108) It is determined whether a reply is obtained from the lock server 300 operating as the master before the reconnection timer times out. If it is obtained, the process proceeds to Step 103, and if not, the process is terminated. To do.

図8は、本発明の一実施の形態におけるロックサーバのフローチャートである。   FIG. 8 is a flowchart of the lock server according to the embodiment of the present invention.

同図に示す処理は、Paxosによるマスタの選出処理、レプリケーション及びフェイルオーバによるデータの冗長化、紛失防止キューのための処理が含まれる。   The processing shown in the figure includes master selection processing by Paxos, data redundancy by replication and failover, and processing for a loss prevention queue.

ステップ1010) オペレータがシステムを起動すると、マスタ調停部301は、Paxosによるマスタ選定処理を行う。当該処理は、例えば、文献1『Leslie Lamport, "Paxos Made Simpke, "ACM SIGACT News (Distributed Computing Column) 32, 4 (Whole Number 121, December 2001) 51-58』、文献2『Cary G. Gray and Davide R. Cheriton, "Leases: An Efficient Fault-Tolerant Mechanism for Distributed File Cache Coherency," Procs of 12th ACM SOSP '89, 202-210,1989』、及び前述の非特許文献2に開示されている方法を採用する。   Step 1010) When the operator activates the system, the master arbitration unit 301 performs a master selection process by Paxos. For example, Reference 1 “Leslie Lamport,“ Paxos Made Simpke, ”ACM SIGACT News (Distributed Computing Column) 32, 4 (Whole Number 121, December 2001) 51-58”, Reference 2 “Cary G. Gray and Davide R. Cheriton, “Leases: An Efficient Fault-Tolerant Mechanism for Distributed File Cache Coherency,” Procs of 12th ACM SOSP '89, 202-210, 1989 ” adopt.

当該方法は、システム上の予め決められたマスタ候補のロックサーバ300中から多数決によって一意なマスタを選出する。具体的には、マスタと同期できないサーバは停止する。これによりマルチマスタ状態とはなならい。これは、Paxosにより、一つの議題について、多数決の結論(=新しいマスタ)は必ず一つの値に収束するためである。   In this method, a unique master is selected by a majority vote from among the lock servers 300 of predetermined master candidates on the system. Specifically, servers that cannot be synchronized with the master are stopped. This is not a multi-master state. This is because Paxos ensures that the majority decision (= new master) converges to one value for one agenda item.

ステップ1020) マスタ管理部302は、自サーバ300が上記のステップ1010の処理によりマスタとして選出されたかを判定し、選出された場合はステップ1030に移行し、選出されない場合にはステップ1110に移行する。   Step 1020) The master management unit 302 determines whether the server 300 has been elected as a master by the processing of Step 1010 described above. If so, the process proceeds to Step 1030. If not, the process proceeds to Step 1110. .

ステップ1030) マスタリースタイマをセットする。ここで、「マスタリース」とは、マスタの状態を継続する期限を指す。   Step 1030) Set the master lease timer. Here, the “master lease” refers to a time limit for continuing the master state.

ステップ1040) 次回マスタを選出するためのタイマをセットする。   Step 1040) A timer for selecting the next master is set.

ステップ1050) マスタ管理部302は、自装置が以前もマスタであり、かつ、以前のマスタリースタイマがタイムアウトしていない場合はステップ1070に移行し、以前はマスタコンピュータではない、または、以前のマスタリースタイマがタイムアウトしている場合、つまり、マスタが交代した場合はステップ1060に移行する。   Step 1050) The master management unit 302 proceeds to step 1070 when the own device has been the master and the previous master lease timer has not timed out, and is not the master computer before or the previous master If the lease timer has timed out, that is, if the master has changed, the process proceeds to step 1060.

ステップ1060) セッション管理部303は、クライアント1とのセッションを復元し、ステップ1070に移行する。当該動作は、マスタが交代した際の処理であり、当該ロックサーバ300がマスタでない状態からマスタとなった契機において、マスタとして動作を開始するために必要な処理である。この詳細動作を図9に示す。   Step 1060) The session management unit 303 restores the session with the client 1, and proceeds to Step 1070. This operation is a process when the master is changed, and is a process necessary for starting the operation as a master when the lock server 300 becomes a master from a state that is not a master. This detailed operation is shown in FIG.

図9は、本発明の一実施の形態におけるクライアント端末とのセッション復元処理のフローチャートである。   FIG. 9 is a flowchart of a session restoration process with a client terminal according to an embodiment of the present invention.

ステップ5010) クライアント1とのセッションを復元する際に、セッション管理部303は、図4に示すセッション情報記憶部304からマスタ交代前のセッション情報を読み込み、全情報を図5に示す削除待ちセッション一覧記憶部305に書き込む。     Step 5010) When restoring the session with the client 1, the session management unit 303 reads the session information before the master change from the session information storage unit 304 shown in FIG. Write to the storage unit 305.

ステップ5020) セッション管理部303は、図4のセッション一覧記憶部304のテーブル内の前情報を削除する。     Step 5020) The session management unit 303 deletes the previous information in the table of the session list storage unit 304 of FIG.

ステップ5030) セッション管理部303は、セッション削除タイマをセットする。     Step 5030) The session management unit 303 sets a session deletion timer.

ステップ5040) セッション管理部303は、セッション削除タイマがタイムアウトしたならステップ5050に移行する。     Step 5040) If the session deletion timer times out, the session management unit 303 proceeds to step 5050.

ステップ5050) セッション管理部303は、削除待ちセッション一覧記憶部305のテーブルが空であれば当該処理を終了し、空でなければ、ステップ5060に移行する。     Step 5050) The session management unit 303 ends the processing if the table in the deletion waiting session list storage unit 305 is empty, and proceeds to step 5060 if the table is not empty.

ステップ5060) セッション管理部303は、削除待ちセッション一覧記憶部305の任意の1セッションを選択する。     Step 5060) The session management unit 303 selects any one session in the deletion waiting session list storage unit 305.

ステップ5070) セッション管理部303は、選択された当該セッションの削除処理を行う。具体的には、図17で詳述する。     Step 5070) The session management unit 303 deletes the selected session. Specifically, it will be described in detail with reference to FIG.

ステップ1070) 要求処理部306は、上記のステプ5010〜5070の処理が終了すると、クライアント1からの要求の受付を開始する。   Step 1070) The request processing unit 306 starts accepting a request from the client 1 when the processing of the above steps 5010 to 5070 is completed.

以下に当該クライアント1からの要求受付処理を図10に基づいて詳細に説明する。図10は、本発明の一実施の形態におけるクライアントからの要求受付開始処理のフローチャートである。   Hereinafter, a process for accepting a request from the client 1 will be described in detail with reference to FIG. FIG. 10 is a flowchart of a request reception start process from a client according to an embodiment of the present invention.

ステップ2020) 要求処理部306は、クライアント1から要求があった場合はステップ2030に移行し、ない場合は待機する。     Step 2020) The request processing unit 306 proceeds to Step 2030 when there is a request from the client 1, and waits when there is no request.

ステップ2030) 要求処理部306は、クライアント1からの要求を取得すると、当該要求が(最初の)接続要求か否かを判断し、接続要求である場合はステップ2040に移行し、それ以外の場合はステップ2070に移行する。     Step 2030) Upon obtaining the request from the client 1, the request processing unit 306 determines whether or not the request is a (first) connection request. If the request is a connection request, the request processing unit 306 proceeds to Step 2040; Goes to Step 2070.

ステップ2040) セッション管理部303は、セッションIDを発行し、セッション一覧記憶部304に追加格納する。     Step 2040) The session management unit 303 issues a session ID and additionally stores it in the session list storage unit 304.

ステップ2050) 要求処理部306は、セッション管理部303において発行されたセッションIDをクライアント1に通知する。     Step 2050) The request processing unit 306 notifies the client 1 of the session ID issued by the session management unit 303.

ステップ2060) クライアント監視プロセスを起動し、ステップ2140に移行する。     Step 2060) Start the client monitoring process and go to Step 2140.

ステップ2070) ステップ2030において、取得した要求が再接続要求である場合は、ステップ2080に移行し、それ以外の場合はステップ2100に移行する。     Step 2070) In step 2030, if the acquired request is a reconnection request, the process proceeds to step 2080. Otherwise, the process proceeds to step 2100.

ステップ2080) セッション管理部303は、受信した要求が再接続要求である場合は、削除待ちセッション一覧記憶部305から、当該要求に該当するセッションIDを削除する。     Step 2080) When the received request is a reconnection request, the session management unit 303 deletes the session ID corresponding to the request from the deletion waiting session list storage unit 305.

ステップ2090) セッション管理部303は、セッションIDをセッション一覧記憶部304に追加格納し、ステップ2050に移行する。     Step 2090) The session management unit 303 additionally stores the session ID in the session list storage unit 304, and proceeds to step 2050.

ステップ2100) ステップ2070において、要求処理部306によりクライアント1からの要求が再接続要求以外の要求であると判断された場合は、レプリケーション管理部307のキュー制御部308は、要求の内容に応じて、図6に示すDB309内のキューに対する処理を実行する。当該キューに対する各種の処理について、図11〜図15に基づいて説明する。     Step 2100) When the request processing unit 306 determines in Step 2070 that the request from the client 1 is a request other than the reconnection request, the queue control unit 308 of the replication management unit 307 determines whether the request is a request. , Processing for the queue in the DB 309 shown in FIG. 6 is executed. Various processes for the queue will be described with reference to FIGS.

ステップ2140) クライアント監視プロセスが起動されると、一定時間待機した後、クライアント1に対してpingコマンド(ノード到達性確認のためのコマンド)を実行する。     Step 2140) When the client monitoring process is started, after waiting for a predetermined time, a ping command (command for node reachability confirmation) is executed to the client 1.

ステップ2150) タイマをセットする。     Step 2150) Set the timer.

ステップ2160) タイムアウト前にクライアント1からpingコマンドに対する返信があった場合はステップ2140に移行し、ない場合はステップ2170に移行する。     Step 2160) If there is a reply to the ping command from the client 1 before the timeout, the procedure goes to Step 2140, and if there is no reply, the procedure goes to Step 2170.

ステップ2170) セッション削除処理を行う。詳細については、図17で後述する。     Step 2170) Session deletion processing is performed. Details will be described later with reference to FIG.

<プッシュ操作>
キュー制御部308のキューに対するプッシュ操作を図11に示す。
<Push operation>
FIG. 11 shows a push operation to the queue by the queue control unit 308.

ステップ11010) キュー制御部307は、クライアント1からプッシュ操作要求としてキューID、キー(K)、値(V)が入力されると、キューIDに基づいてDB309内のキュー一覧(図6(A))からキューの最後のレコード(Last)を取得する。       Step 11010) When the queue ID, key (K), and value (V) are input as a push operation request from the client 1, the queue control unit 307 lists the queues in the DB 309 based on the queue ID (FIG. 6A). ) To get the last record (Last) in the queue.

ステップ11020) 以下に示す入力された入力キー(K)、入力値(V)を用いてレコードを作成し、キューIDに対応付けてレコード一覧(図6(B))に挿入する。また、キュー一覧(図6(A))の最後尾キーの次のキーを入力キーとして最後尾レコードを更新する。       Step 11020) A record is created using the input key (K) and input value (V) shown below, and is inserted into the record list (FIG. 6B) in association with the queue ID. Also, the last record is updated using the key next to the last key in the queue list (FIG. 6A) as an input key.

ステップ11030) DB309内のキュー一覧表(図6(A))の当該キューの最後尾キーを入力キー(K)で更新する。       Step 11030) The last key of the queue in the queue list in DB 309 (FIG. 6A) is updated with the input key (K).

<ポップ操作>
次に、キュー制御部307のポップ操作を図12に示す。
<Pop operation>
Next, the pop operation of the queue control unit 307 is shown in FIG.

ステップ12010) キュー制御部308は、クライアント1からポップ操作要求としてキューIDが入力されると、キューIDを用いてDB309内のキュー一覧(図6(A))から当該キューの先頭レコード(Front)を取得する。       Step 12010) When a queue ID is input as a pop operation request from the client 1, the queue control unit 308 uses the queue ID to search from the queue list in the DB 309 (FIG. 6A) for the first record (Front) of the queue. To get.

ステップ12020) 当該先頭レコード(Front)をDB309のキュー一覧(図6(A))から削除する。       Step 12020) The head record (Front) is deleted from the queue list of DB 309 (FIG. 6A).

ステップ12030) キュー一覧(図6(A))上の当該キューIDに対応するキューの先頭キーを先頭キーの次のキー『Front.次キー』にて更新する。       Step 12030) The head key of the queue corresponding to the queue ID on the queue list (FIG. 6A) is updated with the key “Front.Next key” next to the head key.

<デリート操作>
次に、キュー制御部308のデリート操作を図13に示す。
<Delete operation>
Next, the delete operation of the queue control unit 308 is shown in FIG.

ステップ13010) キュー制御部308は、クライアント1からデリート操作要求としてキューIDとキー(K)が入力されると、DB309のレコード一覧(図6(B))から当該キューIDに対応する当該キーのレコードCを取得する。       Step 13010) When the queue ID and the key (K) are input as a delete operation request from the client 1, the queue control unit 308 determines the key corresponding to the queue ID from the record list in the DB 309 (FIG. 6B). Record C is acquired.

ステップ13020) レコードCの前キー「Prev」及び次キー「Next」を基に、レコードB、レコードAを取得する。       Step 13020) Based on the previous key “Prev” and next key “Next” of record C, record B and record A are acquired.

ステップ13030) レコードBの次キーをレコードAのキーで、レコードAの次キーをレコードBのキーで更新し、レコードCを削除する。       Step 13030) Update the next key of record B with the key of record A, update the next key of record A with the key of record B, and delete record C.

<マーク操作>
次に、キュー制御部308のマーク操作を図14に示す。ここで「マーク操作」とは、キューに対する途中状態の復元を指す。
<Mark operation>
Next, the mark operation of the queue control unit 308 is shown in FIG. Here, the “mark operation” refers to restoration of an intermediate state for the queue.

ステップ14010) キュー制御部308は、クライアント1からマーク操作要求としてセッションID,キューIDが入力されると、キューの先頭レコードをDB309のキュー一覧(図6(A))から取得し、現在レコードとする。       Step 14010) When the session ID and the queue ID are input from the client 1 as a mark operation request from the client 1, the queue control unit 308 acquires the first record of the queue from the queue list of the DB 309 (FIG. 6A), To do.

ステップ14020) 取得した現在レコードのセッションIDが空欄ならばステップ14040へ移行し、セッションIDが空欄でなかった場合はステップ14030に移行する。       Step 14020) If the session ID of the acquired current record is blank, the process proceeds to step 14040. If the session ID is not blank, the process proceeds to step 14030.

ステップ14030) 現在のレコードの次キーをもとに、次のレコードをキューのレコード一覧(図6(B))より取得し、現在レコードとし、ステップ14020に移行する。次キーが空欄だった場合には失敗とし、当該処理を終了する。       Step 14030) Based on the next key of the current record, the next record is obtained from the record list of the queue (FIG. 6B), made the current record, and the process proceeds to Step 14020. If the next key is blank, it is determined to be a failure and the process is terminated.

ステップ14040) 現在レコードのセッションIDを、入力されたセッションIDにより更新する。   Step 14040) The session ID of the current record is updated with the input session ID.

<アンマーク操作>
次に、キュー制御部308のアンマーク操作を図15に示す。ここで、「アンマーク操作」とは、キューに対する途中状態の復元を行わず、クライアント1が故障した際に、キュー内のエントリが永久に残留する問題を解決するものである。
<Unmark operation>
Next, the unmark operation of the queue control unit 308 is shown in FIG. Here, the “unmark operation” is to solve the problem that entries in the queue remain permanently when the client 1 fails without restoring the intermediate state of the queue.

ステップ15010) キュー制御部308は、クライアント1からアンマーク操作要求としてキー、キューIDが入力されると、キューIDに該当するレコード一覧(図6(B))から入力キーに該当するレコードを取得する。       Step 15010) When the key and the queue ID are input from the client 1 as the unmark operation request from the client 1, the queue control unit 308 obtains the record corresponding to the input key from the record list corresponding to the queue ID (FIG. 6B). To do.

ステップ15020) 当該レコードのセッションIDを空欄に更新する。       Step 15020) The session ID of the record is updated to a blank.

ステップ2110) レプリケーション管理部307は、上記のプッシュ操作、ポップ操作、デリート操作、マーク操作、アンマーク操作のいずれかの処理結果をレプリカ30に送信する。     Step 2110) The replication management unit 307 transmits the processing result of any one of the above push operation, pop operation, delete operation, mark operation, and unmark operation to the replica 30.

ステップ2120) レプリカ30から返信が得られた場合はステップ2020に移行し、得られない場合はステップ2130に移行する。     Step 2120) If a reply is obtained from the replica 30, the process proceeds to step 2020, and if not, the process proceeds to step 2130.

ステップ2130) 要求処理部306は、クライアント1からの要求の受付を閉塞する。当該ステップの詳細は図16にて詳述する。     Step 2130) The request processing unit 306 blocks reception of the request from the client 1. Details of this step will be described in detail with reference to FIG.

ステップ1080) 次回マスタ選出タイマがタイムアウトしたかを判定し、タイムアウトした場合は、ステップ1090に移行し、タイムアウトしていなければ当該処理を繰り返す。   Step 1080) It is determined whether or not the next master selection timer has timed out. If timed out, the process proceeds to Step 1090, and if not timed out, the process is repeated.

ステップ1090) マスタリースはタイムアウトしたかを判定し、タイムアウトした場合には、ステップ1100に移行し、タイムアウトしていなければ当該処理を繰り返す。   Step 1090) It is determined whether the master lease has timed out. If timed out, the process proceeds to Step 1100, and if not timed out, the process is repeated.

ステップ1100) 要求処理部306は、クライアント1からの要求受付を閉塞する。当該処理を図16を用いて説明する。   Step 1100) The request processing unit 306 blocks the request reception from the client 1. This process will be described with reference to FIG.

ステップ3010) クライアント1からの要求受付プロセスを停止する。     Step 3010) The process for accepting requests from the client 1 is stopped.

ステップ3020) 全てのクライアント端末監視プロセスを停止する。     Step 3020) Stop all client terminal monitoring processes.

ステップ3030) 全てのセッション情報をセッション一覧記憶部305から削除する。     Step 3030) All the session information is deleted from the session list storage unit 305.

ステップ1110) 次に、上記のステップ1020において、自身がマスタとして選出されなかった場合は、マスタリースタイマをセットする。   Step 1110) Next, in the above-described Step 1020, when the device itself is not elected as the master, the master lease timer is set.

ステップ1120) マスタからのレプリケーション要求受付を開始する。当該処理は、文献3『Jim Gray et al., "The Recovery Manager of the System R Database Manager", Computing Surveys, Vol. 13, No.2, 1981.』及び文献4『David K. Gifford, "Weighted Voting for Replicated Data", Proc of SIGOPS, pp. 150-162, 1979.』に示される処理を行うものとする。   Step 1120) Start receiving a replication request from the master. This process is described in Reference 3 “Jim Gray et al.,“ The Recovery Manager of the System R Database Manager ”, Computing Surveys, Vol. 13, No. 2, 1981.” and Reference 4 “David K. Gifford,“ Weighted ”. Voting for Replicated Data ", Proc of SIGOPS, pp. 150-162, 1979."

ステップ1130) マスタリースタイマがタイムアウトした場合はステップ1140に移行する。   Step 1130) If the master lease timer times out, go to Step 1140.

ステップ1140) マスタからのレプリケーション要求の受付を閉塞し、ステップ1010に移行する。当該処理は上記の文献3,4と同様の処理を行うものとする。   Step 1140) The reception of the replication request from the master is blocked, and the process proceeds to Step 1010. This processing is the same as that described in Documents 3 and 4 above.

次に、図8のステップ1100,図10の2130におけるクライアントからの要求受付の閉塞処理について説明する。   Next, the processing for blocking the reception of requests from clients in step 1100 in FIG. 8 and 2130 in FIG. 10 will be described.

図16は、本発明の一実施の形態におけるクライアントからの要求受付閉塞処理(S1100,S2130)のフローチャートである。   FIG. 16 is a flowchart of a process for blocking acceptance of requests from clients (S1100, S2130) according to an embodiment of the present invention.

ステップ3010) 要求処理部306は、クライアントからの要求受付プロセスを停止する。   Step 3010) The request processing unit 306 stops the request reception process from the client.

ステップ3020) 全てのクライアントの監視プロセスを停止する。   Step 3020) Stop all client monitoring processes.

ステップ3030) 全てのセッション情報を削除する。   Step 3030) Delete all session information.

次に、前述の図9のステップ5070及び図10のステップ2170のセッション削除処理について説明する。   Next, the session deletion process in step 5070 of FIG. 9 and step 2170 of FIG. 10 will be described.

図17は、本発明の一実施の形態におけるセッション削除処理(S5070、S2170)のフローチャートである。   FIG. 17 is a flowchart of session deletion processing (S5070, S2170) according to an embodiment of the present invention.

ステップ4010) セッション管理部303は、セッション一覧記憶部304のセッション一覧からセッションIDに関連するキューを全て取得する。   Step 4010) The session management unit 303 acquires all the queues related to the session ID from the session list in the session list storage unit 304.

ステップ4020) セッション管理部303は、取得されたキュー全てに対して、紛失防止キュー操作として、以下の図18に示す処理により自動アンマーク操作を行う。   Step 4020) The session management unit 303 performs an automatic unmark operation on all the acquired queues as a loss prevention queue operation by the process shown in FIG.

図18は、本発明の一実施の形態における自動アンマーク操作(S4020)のフローチャートである。   FIG. 18 is a flowchart of the automatic unmark operation (S4020) according to the embodiment of the present invention.

ステップ16010) セッション管理部303は、ステップ4010で取得したセッションIDに基づいて、セッション一覧記憶部304からキューの先頭レコードを取得する。   Step 16010) The session management unit 303 acquires the first record in the queue from the session list storage unit 304 based on the session ID acquired in step 4010.

ステップ16020) 当該レコードのセッションIDが、ステップ4010で取得したセッションIDである場合は、ステップ16030に移行し、そうでない場合はステップ16040に移行する。   Step 16020) If the session ID of the record is the session ID acquired in step 4010, the process proceeds to step 16030. Otherwise, the process proceeds to step 16040.

ステップ16030) 取得したレコードのセッションIDをnull(空欄)とする。   Step 16030) The session ID of the acquired record is null (blank).

ステップ16040) 次のレコードがセッション一覧記憶部304のセッション一覧に存在する場合はステップ16050に移行し、存在しない場合は当該処理を終了する。   Step 16040) If the next record exists in the session list of the session list storage unit 304, the process proceeds to step 16050, and if not, the process ends.

ステップ16050) 現在のレコードの次のレコードをセッション一覧記憶部304から取得し、ステップ16020に移行する。   Step 16050) The record next to the current record is acquired from the session list storage unit 304, and the process proceeds to Step 16020.

上記の一連のフローチャートにおいて、図8のステップ1010〜1100では、多数決プロトコルPaxosによるマスタ選出を行うことにより、マスタは常に1台であることが保証される。これにより、ネットワーク故障によるネットワーク分断状態(Split Brain状態)になっても、システムが管理しているキューのデータ構造が複数のマスタによって更新されることなないため、キューのデータ構造の整合性を維持することができる。   In the series of flowcharts described above, in steps 1010 to 1100 in FIG. 8, it is guaranteed that there is always one master by performing master selection using the majority vote protocol Paxos. This ensures that the queue data structure managed by the system is not updated by multiple masters even if the network breaks down due to a network failure (Split Brain state). Can be maintained.

また、マスタ故障によってマスタが存在しなくなった場合にも、このマスタに代わる次のマスタを選出する機能が含まれているため、新しいマスタが動作を引き継ぐことができる。   Further, even when the master no longer exists due to a master failure, the function of selecting the next master in place of this master is included, so that the new master can take over the operation.

マスタが動作を引き継ぐ場合は、図8のステップ1070及び図10のフローチャートに示す処理を行う。ここでは、サーバがマスタでない状態からマスタとなった契機において、マスタとして動作を開始するために必要な処理を行っている。   When the master takes over the operation, the processing shown in step 1070 in FIG. 8 and the flowchart in FIG. 10 is performed. Here, when the server becomes a master from a state where it is not the master, processing necessary to start the operation as the master is performed.

新しくマスタとなったロックサーバ300は、図10のステップ2100〜ステップ2120によって予め復元されていた図4、図5、図6及び図7に示すクライアントから再接続処理(ステップ107)によって、有効なセッションの確認を行う。これにより、キュー内のデータの仕掛かり中(図6(B)マーク済)状態が正当であること(=マークされているが、マークしているセッションが存在しない状態となっているキュー内のレコード)を確認し、サーバ故障状態及びネットワーク故障状態からの復帰を行う。   The new lock server 300 becomes effective by the reconnection process (step 107) from the client shown in FIGS. 4, 5, 6 and 7 that has been restored in advance in steps 2100 to 2120 of FIG. Check the session. As a result, the data in the queue (marked in FIG. 6B) is valid (= marked, but the marked session does not exist). Record) and recover from the server failure state and network failure state.

このとき、前述の非特許文献1のように、データ変更が仕掛り中であることを示すためにトランザクションを用いるのでは、トランザクションの途中の状態を復元(レプリケーション)しなければならない。しかし、トランザクションの途中状態(各種データに対する全てのロック状態)を汎用的に復元していたのでは性能向上は難しい。そこで、本発明では、図6(B),図14、図15にあるように、トランザクションの途中状態を「マーク状態」として、キュー内の一つにエントリに限るものとして限定することにより、途中状態の復元を容易にした。これによって、キュー内に対する操作の途中状態を復元することが可能となる。図6(B)、図14、図15の詳細については上記のフローチャートのステップ14010〜14040、ステップ1510,1520に示すとおりである。   At this time, as in Non-Patent Document 1 described above, if a transaction is used to indicate that a data change is in progress, the state in the middle of the transaction must be restored (replicated). However, it is difficult to improve performance if the intermediate state of the transaction (all lock states for various data) is restored for general purposes. Therefore, in the present invention, as shown in FIG. 6B, FIG. 14 and FIG. 15, the intermediate state of the transaction is defined as “mark state” and is limited to one entry in the queue. State restoration was made easier. As a result, it is possible to restore the mid-operation state in the queue. Details of FIGS. 6B, 14 and 15 are as shown in steps 14010 to 14040 and steps 1510 and 1520 of the above flowchart.

さらに、図10のステップ2140〜2170、図17、図18に示す処理を行うことにより、クライアント1が故障した場合に、セッション一覧のレコードにセッションIDが残っている場合には、自動的に当該セッションIDを空欄(null)とする自動アンマーク操作を行うことにより、ロックサーバ上のキュー内のエントリが残留することを防止すると共に、キューのトランザクション状態が導入されているシステムにおいて、当該状態を保持できる。   Furthermore, by performing the processing shown in steps 2140 to 2170, FIG. 17 and FIG. 18 in FIG. 10, when the client 1 fails and the session ID remains in the record of the session list, the processing is automatically performed. By performing an automatic unmark operation that sets the session ID to blank (null), it is possible to prevent the entries in the queue on the lock server from remaining, and in the system in which the transaction state of the queue is introduced, Can hold.

また、マスタ交代に備えてデータを復元(レプリケーション)する処理は、上記のフローチャートの図10のステップ2070〜2080に示す。ここでの論理的な処理は図11から図15に示すとおりである。図11〜図15の処理の背後で、文献3と同様のアルゴリズムを用いてデータを永続化し、文献4と同様のアルゴリズムを用いてデータを復元している。これにより、サーバ故障及びネットワーク故障に由来するマスタ交代への対故障性を担保している。   The process of restoring (replicating) data in preparation for the master change is shown in steps 2070 to 2080 of FIG. 10 in the above flowchart. The logical processing here is as shown in FIGS. Behind the processing of FIG. 11 to FIG. 15, the data is made permanent using the same algorithm as that of Reference 3, and the data is restored using the same algorithm as that of Reference 4. Thereby, the fault tolerance to the master change resulting from the server failure and the network failure is secured.

クライアント1は、セッションが正常な状態にあるときのみ(図7に示すステップ103〜105)、プッシュ・ポップ・デリート・マーク・アンマークのいずれかのキュー操作要求をマスタに送信し、マスタはクライアント1の操作要求に基づいて、図10に示すステップ2100〜2120のキュー操作を行う。図6(B)のデータ構造及び図11〜図15によってキューの操作を定義する。   Only when the session is in a normal state (steps 103 to 105 shown in FIG. 7), the client 1 transmits a queue operation request of push, pop, delete, mark, or unmark to the master. Based on the operation request 1, the queue operations in steps 2100 to 2120 shown in FIG. 10 are performed. The queue operation is defined by the data structure of FIG. 6B and FIGS.

このように、キューに対してこれらのKey-Value形式の1レコードをキューの1エントリに対応させることにより、キューの論理的なデータ構造を実現する
なお、上記のロックサーバ300の処理をプログラムとして構築し、これらのコンピュータにインストールして実行させる、または、ネットワークを介して流通させることも可能である。
In this way, the logical data structure of the queue is realized by associating one record in the key-value format with one entry of the queue for the queue. Note that the processing of the lock server 300 is performed as a program. It can be constructed and installed on these computers for execution, or distributed via a network.

また、構築されたプログラムをハードディスクや、フレキシブルディスク・CD−ROM等の可搬記憶媒体に格納し、コンピュータにインストールする、または、配布することが可能である。   Further, the constructed program can be stored in a portable storage medium such as a hard disk, a flexible disk, or a CD-ROM, and can be installed or distributed in a computer.

なお、本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において種々変更・応用が可能である。   The present invention is not limited to the above-described embodiment, and various modifications and applications can be made within the scope of the claims.

1 クライアント
10 クライアント端末
20 ワーカ
100 プライマリサーバ
200 バックアップサーバ
300 ロックサーバ
301 マスタ調整手段
302 マスタ管理部
303 セッション管理部
304 セッション一覧記憶部
305 削除待ちセッション一覧記憶部
306 要求処理部
307 レプリケーション手段、レプリケーション部
309 データベース
1 Client 10 Client Terminal 20 Worker 100 Primary Server 200 Backup Server 300 Lock Server 301 Master Adjustment Unit 302 Master Management Unit 303 Session Management Unit 304 Session List Storage Unit 305 Delete Waiting Session List Storage Unit 306 Request Processing Unit 307 Replication Unit, Replication Unit 309 database

Claims (10)

ットワーク・コンピュータ・クラスタ環境での、複数のクライアント端末、複数のワーカ、プライマリサーバ、バックアップサーバ、マスタまたはレプリカの動作モードを有する複数のロックサーバを含む大規模分散処理システムにおいて、該クライアント端末、該ワーカ、該プライマリサーバ、該バックアップサーバをクライアントとし、該クライアントと該複数のロックサーバからなるメッセージキュー管理システムであって、
前記クライアントは、
全てのマスタ候補に対して接続要求を送信し、該マスタ候補からセッションIDを取得し、該セッションIDに対するキュー操作要求を行う手段と、
前記セッションIDの送信元の該マスタ候補から所定の時間内にメッセージを受信できない場合には、全てのマスタ候補に該セッションIDを送信することにより再接続要求を送信する手段と、を有し、
前記ロックサーバは、
キュー及び該キューの情報を格納したデータベースと、
セッション情報を格納したセッション情報記憶手段と、
マスタは常に一台であることを保証する多数決プロトコルであるPaxosを用いて自装置がマスタか否かを判定するマスタ調整手段と、
前記マスタ調整手段の結果、マスタが交代した場合には、前記データベース内に予め複製されていたキューの情報及び前記クライアントからの再接続要求によって有効なセッションの確認を行い、キューに対する操作の途中状態を復元し、自装置がマスタになれば非マスタにデータ複製を要求し、自装置がマスタでなければマスタからのデータ復元要求に応じて、自装置内にデータを複製するレプリケーション手段と、
前記クライアントから前記接続要求受信後、該クライアントに対してセッションIDを送信し、前記セッション情報記憶手段に該クライアントの情報と共にセッションIDを格納するセッション管理手段と、
前記クライアントが故障した場合は、前記セッション情報記憶手段からセッションIDに対応する全てのキューを取得し、該全てのキューのレコードにセッションIDが存在する場合は、該セッションIDを空欄として該セッション情報記憶手段を更新する自動アンマーク手段と、
を有することを特徴とするメッセージキュー管理システム。
In network computer cluster environment, a plurality of client terminals, a plurality of workers, the primary server, a backup server, in a large distributed processing system including a plurality of lock server having an operating mode of the Master or replica, said client terminal, A message queue management system comprising the worker, the primary server, and the backup server as a client, the client and the plurality of lock servers,
The client
Means for transmitting a connection request to all master candidates, obtaining a session ID from the master candidate, and performing a queue operation request for the session ID;
Means for transmitting a reconnection request by transmitting the session ID to all master candidates when a message cannot be received within a predetermined time from the master candidate of the session ID transmission source;
The lock server is
A queue and a database storing information about the queue;
Session information storage means for storing session information;
Master adjustment means for determining whether or not the device is a master using Paxos, which is a majority protocol that guarantees that there is always one master,
If the master is changed as a result of the master adjustment means, the queue information that has been replicated in the database in advance and the reconnection request from the client are checked for a valid session, and the queue is in the middle of operation. Replication means for requesting data replication to a non-master if the own device becomes the master, and replicating data in the own device in response to a data restoration request from the master if the own device is the master,
Session management means for transmitting a session ID to the client after receiving the connection request from the client, and storing the session ID together with the client information in the session information storage means;
When the client fails, all the queues corresponding to the session ID are acquired from the session information storage unit, and when the session ID is present in the records of all the queues, the session information is left blank as the session ID. Automatic unmarking means for updating the storage means;
A message queue management system comprising:
削除待ちのセッション情報を格納した削除待ちセッション記憶手段と、
を更に有し、
前記レプリケーション手段は、
前記自装置が以前マスタではなかった場合は、前記セッション情報記憶手段からマスタ交代前のセッション情報を読み込んで、前記削除待ちセッション記憶手段に格納し、該セッション情報記憶手段のセッション情報を削除し、所定の時間が経過後、該削除待ちセッション記憶手段にセッションがある場合には、該削除待ちセッション記憶手段からセッションIDを取得し、該セッション情報記憶手段の該セッションIDを空欄として該セッション情報記憶手段を更新する第1のセッション制御手段と、
前記クライアントからの再接続要求に対しては、前記削除待ちセッション情報記憶手段から該再接続要求に該当するセッションIDを削除し、該セッションIDを該セッション情報記憶手段に追加し、該セッションIDを該クライアントに送信する再接続要求処理手段と、該クライアントからの要求が該接続要求及び該再接続要求以外であれば、要求内容に応じて前記データベース内のキューに対する処理を行い、レプリカとして動作するロックサーバに送信する要求処理手段と、を含む第2のセッション制御手段と、
を含む請求項1記載のメッセージキュー管理システム。
A deletion waiting session storage means storing session information waiting for deletion;
Further comprising
The replication means includes
If the device itself was not previously a master, read the session information before the master change from the session information storage means, store it in the deletion waiting session storage means, delete the session information of the session information storage means, If there is a session in the deletion waiting session storage means after a predetermined time has elapsed, a session ID is acquired from the deletion waiting session storage means, and the session information storage means stores the session ID as a blank. First session control means for updating the means;
In response to the reconnection request from the client, the session ID corresponding to the reconnection request is deleted from the deletion waiting session information storage means, the session ID is added to the session information storage means, and the session ID is If the request from the reconnection request processing means to be transmitted to the client and the request from the client is other than the connection request and the reconnection request, the queue is processed according to the request content and operates as a replica Second session control means including request processing means for transmitting to the lock server;
The message queue management system according to claim 1, comprising:
前記第2のセッション制御手段の前記要求処理手段は、
前記クライアントからの要求がキューのプッシュ操作要求である場合は、取得したキューID、キー、及びキー値を用いて前記データベースのキューに対してプッシュ操作を行うプッシュ手段と、
前記クライアントからの要求がキューのポップ操作要求である場合は、取得したキューIDに基づいて前記データベースのキューについてポップ操作を行うポップ手段と、
前記クライアントからの要求が削除要求である場合は、取得したキューID、キーを用いて前記データベースのキューについて削除操作を行う削除手段と、
前記クライアントからの要求が、キューに対する操作の途中状態の復元のための要求であるマーク要求である場合は、キューIDとセッションIDを取得し、前記データベースから該キューIDに該当するキューの先頭レコードを取得し、該レコードにセッションIDが設定されていなければ、取得した該セッションIDを設定するマーク手段と、
前記クライアントからの要求が、キューに対する操作の途中状態を復元しない要求であるアンマーク要求である場合は、キューIDとキーを取得し、前記データベースから該キューIDに該当するレコード一覧から該キーに対応するレコードを取得して、該レコードのセッションIDを削除するアンマーク手段と、
を含む請求項2記載のメッセージキュー管理システム。
The request processing means of the second session control means is:
If the request from the client is a queue push operation request, push means for performing a push operation on the queue of the database using the acquired queue ID, key, and key value;
If the request from the client is a queue pop operation request, pop means for performing a pop operation on the database queue based on the acquired queue ID;
If the request from the client is a deletion request, a deletion unit that performs a deletion operation on the queue of the database using the acquired queue ID and key;
When the request from the client is a mark request that is a request for restoring an intermediate state of an operation on the queue, a queue ID and a session ID are acquired, and the first record of the queue corresponding to the queue ID is obtained from the database. And if the session ID is not set in the record, mark means for setting the acquired session ID;
When the request from the client is an unmark request that is a request that does not restore the mid-operation state of the queue, the queue ID and key are acquired, and the key is obtained from the record list corresponding to the queue ID from the database. Unmarking means for acquiring a corresponding record and deleting the session ID of the record;
The message queue management system according to claim 2, comprising:
ットワーク・コンピュータ・クラスタ環境での、複数のクライアント端末、複数のワーカ、プライマリサーバ、バックアップサーバ、マスタまたはレプリカの動作モードを有する複数のロックサーバを含む大規模分散処理システムにおいて、該クライアント端末、該ワーカ、該プライマリサーバ、該バックアップサーバをクライアントとするシステムにおけるロックサーバであって、
キュー及び該キューの情報を格納したデータベースと、
セッション情報を格納したセッション情報記憶手段と、
マスタは常に一台であることを保証する多数決プロトコルであるPaxosを用いて自装置がマスタか否かを判定するマスタ調整手段と、
前記マスタ調整手段の結果、マスタが交代した場合には、前記データベース内に予め複製されていたキューの情報及び前記クライアントからの再接続要求によって有効なセッションの確認を行い、キューに対する操作の途中状態を復元し、自装置がマスタになれば非マスタにデータ複製を要求し、自装置がマスタでなければマスタからのデータ復元要求に応じて、自装置内にデータを複製するレプリケーション手段と、
前記クライアントから接続要求受信後、該クライアントに対してセッションIDを送信し、前記セッション情報記憶手段に該クライアントの情報と共にセッションIDを格納するセッション管理手段と、
前記クライアントが故障した場合は、前記セッション情報記憶手段からセッションIDに対応する全てのキューを取得し、該全てのキューのレコードにセッションIDが存在する場合は、該セッションIDを空欄として該セッション情報記憶手段を更新する自動アンマーク手段と、
を有することを特徴とするロックサーバ。
In network computer cluster environment, a plurality of client terminals, a plurality of workers, the primary server, a backup server, in a large distributed processing system including a plurality of lock server having an operating mode of the Master or replica, said client terminal, A lock server in a system in which the worker, the primary server, and the backup server are clients,
A queue and a database storing information about the queue;
Session information storage means for storing session information;
Master adjustment means for determining whether or not the device is a master using Paxos, which is a majority protocol that guarantees that there is always one master,
If the master is changed as a result of the master adjustment means, the queue information that has been replicated in the database in advance and the reconnection request from the client are checked for a valid session, and the queue is in the middle of operation. Replication means for requesting data replication to a non-master if the own device becomes the master, and replicating data in the own device in response to a data restoration request from the master if the own device is the master,
Session management means for transmitting a session ID to the client after receiving a connection request from the client and storing the session ID together with the client information in the session information storage means;
When the client fails, all the queues corresponding to the session ID are acquired from the session information storage unit, and when the session ID is present in the records of all the queues, the session information is left blank as the session ID. Automatic unmarking means for updating the storage means;
A lock server characterized by comprising:
削除待ちのセッション情報を格納した削除待ちセッション記憶手段と、
を更に有し、
前記レプリケーション手段は、
前記自装置が以前マスタではなかった場合は、前記セッション情報記憶手段からマスタ交代前のセッション情報を読み込んで、前記削除待ちセッション記憶手段に格納し、該セッション情報記憶手段のセッション情報を削除し、所定の時間が経過後、該削除待ちセッション記憶手段にセッションがある場合には、該削除待ちセッション記憶手段からセッションIDを取得し、該セッション情報記憶手段の該セッションIDを空欄として該セッション情報記憶手段を更新する第1のセッション制御手段と、
前記クライアントからの前記再接続要求に対しては、前記削除待ちセッション情報記憶手段から該再接続要求に該当するセッションIDを削除し、該セッションIDを該セッション情報記憶手段に追加し、該セッションIDを該クライアントに送信する再接続要求処理手段と、該クライアントからの要求が該接続要求及び該再接続要求以外であれば、要求内容に応じて前記データベース内のキューに対する処理を行い、レプリカとして動作するロックサーバに送信する要求処理手段と、を含む第2のセッション制御手段と、
を含む請求項4記載のロックサーバ。
A deletion waiting session storage means storing session information waiting for deletion;
Further comprising
The replication means includes
If the device itself was not previously a master, read the session information before the master change from the session information storage means, store it in the deletion waiting session storage means, delete the session information of the session information storage means, If there is a session in the deletion waiting session storage means after a predetermined time has elapsed, a session ID is acquired from the deletion waiting session storage means, and the session information storage means stores the session ID as a blank. First session control means for updating the means;
In response to the reconnection request from the client, the session ID corresponding to the reconnection request is deleted from the deletion waiting session information storage means, the session ID is added to the session information storage means, and the session ID A reconnection request processing means for transmitting to the client, and if the request from the client is other than the connection request and the reconnection request, it performs processing for the queue in the database according to the request content and operates as a replica Second session control means including request processing means for transmitting to the lock server
The lock server according to claim 4, including:
前記第2のセッション制御手段の前記要求処理手段は、
前記クライアントからの要求がキューのプッシュ操作要求である場合は、取得したキューID、キー、及びキー値を用いて前記データベースのキューに対してプッシュ操作を行うプッシュ手段と、
前記クライアントからの要求がキューのポップ操作要求である場合は、取得したキューIDに基づいて前記データベースのキューについてポップ操作を行うポップ手段と、
前記クライアントからの要求が削除要求である場合は、取得したキューID、キーを用いて前記データベースのキューについて削除操作を行う削除手段と、
前記クライアントからの要求が、キューに対する操作の途中状態の復元のための要求であるマーク要求である場合は、キューIDとセッションIDを取得し、前記データベースから該キューIDに該当するキューの先頭レコードを取得し、該レコードにセッションIDが設定されていなければ、取得した該セッションIDを設定するマーク手段と、
前記クライアントからの要求が、キューに対する途中状態を復元しない要求であるアンマーク要求である場合は、キューIDとキーを取得し、前記データベースから該キューIDに該当するレコード一覧から該キーに対応するレコードを取得して、該レコードのセッションIDを削除するアンマーク手段と、
を含む請求項5記載のロックサーバ。
The request processing means of the second session control means is:
If the request from the client is a queue push operation request, push means for performing a push operation on the queue of the database using the acquired queue ID, key, and key value;
If the request from the client is a queue pop operation request, pop means for performing a pop operation on the database queue based on the acquired queue ID;
If the request from the client is a deletion request, a deletion unit that performs a deletion operation on the queue of the database using the acquired queue ID and key;
When the request from the client is a mark request that is a request for restoring an intermediate state of an operation on the queue, a queue ID and a session ID are acquired, and the first record of the queue corresponding to the queue ID is obtained from the database. And if the session ID is not set in the record, mark means for setting the acquired session ID;
When the request from the client is an unmark request that is a request that does not restore an intermediate state with respect to the queue, the queue ID and key are obtained, and the corresponding key is obtained from the record list corresponding to the queue ID from the database. Unmarking means for acquiring a record and deleting the session ID of the record;
The lock server according to claim 5, comprising:
ットワーク・コンピュータ・クラスタ環境での、複数のクライアント端末、複数のワーカ、プライマリサーバ、バックアップサーバ、マスタまたはレプリカの動作モードを有する複数のロックサーバを含む大規模分散処理システムにおいて、該クライアント端末、該ワーカ、該プライマリサーバ、該バックアップサーバをクライアントとし、該複数のロックサーバのうちのいずれかをマスタとするメッセージキュー管理方法であって、
前記クライアントは、
全てのマスタ候補となる前記ロックサーバに対して接続要求を送信し、該マスタ候補からセッションIDを取得し、該セッションIDに対するキュー操作要求を行うステップと、
前記セッションIDの送信元の該マスタ候補から所定の時間内にメッセージを受信できない場合には、全てのマスタ候補に該セッションIDを送信することにより再接続要求を送信するステップと、を行い、
前記ロックサーバは、
マスタは常に一台であることを保証する多数決プロトコルであるPaxosを用いて自装置がマスタか否かを判定するマスタ調整ステップと、
前記マスタ調整ステップの結果、マスタが交代した場合には、データベース内に予め複製されていたキューの情報及び前記クライアントからの再接続要求によって有効なセッションの確認を行い、キューに対する操作の途中状態を復元し、自装置がマスタになれば非マスタにデータ複製を要求し、自装置がマスタでなければマスタからのデータ復元要求に応じて、自装置内にデータを複製するレプリケーションステップと、
前記クライアントから接続要求受信後、該クライアントに対してセッションIDを送信し、前記セッション情報記憶手段に該クライアントの情報と共にセッションIDを格納するセッション管理ステップと、
前記クライアントが故障した場合は、前記セッション情報記憶手段からセッションIDに対応する全てのキューを取得し、該全てのキューのレコードにセッションIDが存在する場合は、該セッションIDを空欄として該セッション情報記憶手段を更新する自動アンマークステップと、
を行うことを特徴とするメッセージキュー管理方法。
In network computer cluster environment, a plurality of client terminals, a plurality of workers, the primary server, a backup server, in a large distributed processing system including a plurality of lock server having an operating mode of the Master or replica, said client terminal, A message queue management method in which the worker, the primary server, and the backup server are clients, and any one of the plurality of lock servers is a master,
The client
Transmitting a connection request to all the master candidates as the lock server, obtaining a session ID from the master candidate, and performing a queue operation request for the session ID;
If a message cannot be received within a predetermined time from the master candidate of the session ID transmission source, a step of transmitting a reconnection request by transmitting the session ID to all master candidates, and
The lock server is
A master adjustment step of determining whether or not the own device is a master using Paxos, which is a majority protocol that guarantees that the master is always one;
As a result of the master adjustment step, when the master is changed, a valid session is confirmed by information on the queue that has been replicated in the database in advance and a reconnection request from the client, and an intermediate state of the operation on the queue is confirmed. A replication step for requesting data replication to a non-master if the local device becomes a master, and replicating data in the local device in response to a data recovery request from the master if the local device is not the master;
A session management step of transmitting a session ID to the client after receiving a connection request from the client, and storing the session ID together with the client information in the session information storage means;
When the client fails, all the queues corresponding to the session ID are acquired from the session information storage unit, and when the session ID is present in the records of all the queues, the session information is left blank as the session ID. An automatic unmark step for updating the storage means;
A message queue management method characterized by:
前記レプリケーションステップにおいて、
前記自装置が以前マスタではなかった場合は、
セッション情報を格納したセッション情報記憶手段からマスタ交代前のセッション情報を読み込んで、削除待ちのセッション情報を格納した削除待ちセッション記憶手段に格納し、該セッション情報記憶手段のセッション情報を削除し、所定の時間が経過後、該削除待ちセッション記憶手段にセッションがある場合には、該削除待ちセッション記憶手段からセッションIDを取得し、前記データベースの該セッションIDに該当するクライントが保持していたキューの途中状態を無効化する第1のセッション制御ステップと、
前記クライアントからの再接続要求に対しては、前記削除待ちセッション情報記憶手段から該再接続要求に該当するセッションIDを削除し、該セッションIDを該セッション情報記憶手段に追加し、該セッションIDを該クライアントに送信し、
前記クライアントからの要求が該接続要求及び該再接続要求以外であれば、要求内容に応じて前記データベース内のキューに対する処理を行い、他の前記ロックサーバに送信する第2のセッション制御ステップと、
を含む請求項7記載のメッセージキュー管理方法。
In the replication step,
If the device is not the master before,
Reads the session information before the master change from the session information storage means storing the session information, stores the session information waiting for deletion in the deletion waiting session storage means, deletes the session information in the session information storage means, If there is a session in the deletion-waiting session storage means after the elapse of time, a session ID is obtained from the deletion-waiting session storage means, and the queue of the queue held by the client corresponding to the session ID in the database is acquired. A first session control step for invalidating the intermediate state;
In response to the reconnection request from the client, the session ID corresponding to the reconnection request is deleted from the deletion waiting session information storage means, the session ID is added to the session information storage means, and the session ID is Send to the client,
If the request from the client is other than the connection request and the reconnection request, a second session control step of processing the queue in the database according to the request content and transmitting to the other lock server;
The message queue management method according to claim 7, comprising:
前記第2のセッション制御ステップにおいて、
前記クライアントからの要求がキューのプッシュ操作要求である場合は、取得したキューID、キー、及びキー値を用いて前記データベースのキューに対してプッシュ操作を行い、
前記クライアントからの要求がキューのポップ操作要求である場合は、取得したキューIDに基づいて前記データベースのキューについてポップ操作を行い、
前記クライアントからの要求が削除要求である場合は、取得したキューID、キーを用いて前記データベースのキューについて削除操作を行い、
前記クライアントからの要求が、キューに対する操作の途中状態の復元のための要求であるマーク要求である場合は、キューIDとセッションIDを取得し、前記データベースから該キューIDに該当するキューの先頭レコードを取得し、該レコードにセッションIDが設定されていなければ、取得した該セッションIDを設定するマーク操作を行い、
前記クライアントからの要求が、キューに対する途中状態を復元しない要求であるアンマーク要求である場合は、キューIDとキーを取得し、前記データベースから該キューIDに該当するレコード一覧から該キーに対応するレコードを取得して、該レコードのセッションIDを削除するアンマーク操作を行う、
請求項8記載のメッセージキュー管理方法。
In the second session control step,
When the request from the client is a queue push operation request, a push operation is performed on the queue of the database using the acquired queue ID, key, and key value,
If the request from the client is a queue pop operation request, perform a pop operation on the database queue based on the acquired queue ID;
If the request from the client is a delete request, perform a delete operation on the queue of the database using the acquired queue ID and key,
When the request from the client is a mark request that is a request for restoring an intermediate state of an operation on the queue, a queue ID and a session ID are acquired, and the first record of the queue corresponding to the queue ID is obtained from the database. If the session ID is not set in the record, a mark operation is performed to set the acquired session ID.
When the request from the client is an unmark request that is a request that does not restore an intermediate state with respect to the queue, the queue ID and key are obtained, and the corresponding key is obtained from the record list corresponding to the queue ID from the database. Obtain a record and perform an unmark operation to delete the session ID of the record.
The message queue management method according to claim 8.
請求項4乃至6のいずれか1項に記載のロックサーバを構成する各手段としてコンピュータを機能させるためのメッセージキュー管理プログラム。   A message queue management program for causing a computer to function as each means constituting the lock server according to any one of claims 4 to 6.
JP2010078784A 2010-03-30 2010-03-30 Message queue management system, lock server, message queue management method, and message queue management program Expired - Fee Related JP5292351B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010078784A JP5292351B2 (en) 2010-03-30 2010-03-30 Message queue management system, lock server, message queue management method, and message queue management program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010078784A JP5292351B2 (en) 2010-03-30 2010-03-30 Message queue management system, lock server, message queue management method, and message queue management program

Publications (2)

Publication Number Publication Date
JP2011210107A JP2011210107A (en) 2011-10-20
JP5292351B2 true JP5292351B2 (en) 2013-09-18

Family

ID=44941074

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010078784A Expired - Fee Related JP5292351B2 (en) 2010-03-30 2010-03-30 Message queue management system, lock server, message queue management method, and message queue management program

Country Status (1)

Country Link
JP (1) JP5292351B2 (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8595546B2 (en) * 2011-10-28 2013-11-26 Zettaset, Inc. Split brain resistant failover in high availability clusters
JP6043742B2 (en) * 2014-02-18 2016-12-14 日本電信電話株式会社 Lock manager device
KR101750601B1 (en) 2014-08-28 2017-06-27 네이버 주식회사 Cluster management method and data storage system for watching state and changing form of cluster having fault tolerance
CN109299046B (en) * 2018-08-30 2023-08-15 湖北工业大学 Collaborative editing method based on TCP WebSocket protocol
CN111538600B (en) * 2020-02-25 2023-09-12 远景智能国际私人投资有限公司 Message processing method, device, computer equipment and storage medium
CN113297231A (en) * 2020-07-28 2021-08-24 阿里巴巴集团控股有限公司 Database processing method and device
CN112291307A (en) * 2020-10-12 2021-01-29 北京思明启创科技有限公司 Data request processing method and device and electronic equipment
CN113269590B (en) * 2021-05-31 2023-06-06 五八到家有限公司 Data processing method, device and system for resource subsidy
CN114745571B (en) * 2022-04-15 2024-01-23 网易(杭州)网络有限公司 Live state information synchronization method and device, electronic equipment and readable storage medium

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH086910A (en) * 1994-06-23 1996-01-12 Hitachi Ltd Cluster type computer system
JPH08335206A (en) * 1995-06-08 1996-12-17 Nec Corp Automatic transaction restoration system of loosely coupled multicomputer system
JPH10326207A (en) * 1997-05-26 1998-12-08 Hitachi Ltd Session maintenance control system for www server
JP3307337B2 (en) * 1998-09-16 2002-07-24 日本電気株式会社 WWW gateway and WWW communication system
AU2002332845B2 (en) * 2001-09-06 2008-06-12 Oracle International Corporation Exactly once cache framework
GB0308264D0 (en) * 2003-04-10 2003-05-14 Ibm Recovery from failures within data processing systems
JP4551662B2 (en) * 2003-07-11 2010-09-29 新日鉄ソリューションズ株式会社 Computer system, computer, data communication method and program
KR20070083482A (en) * 2004-08-13 2007-08-24 사이트릭스 시스템스, 인크. A method for maintaining transaction integrity across multiple remote access servers

Also Published As

Publication number Publication date
JP2011210107A (en) 2011-10-20

Similar Documents

Publication Publication Date Title
JP5292351B2 (en) Message queue management system, lock server, message queue management method, and message queue management program
US20220171544A1 (en) Enabling data integrity checking and faster application recovery in synchronous replicated datasets
US11836155B2 (en) File system operation handling during cutover and steady state
US11461280B2 (en) Handling metadata operations and timestamp changes during resynchronization
JP5559821B2 (en) Method for storing data, method for mirroring data, machine-readable medium carrying an instruction sequence, and program for causing a computer to execute the method
US10095708B2 (en) Data mobility, accessibility, and consistency in a data storage system
US8464101B1 (en) CAS command network replication
JP5254611B2 (en) Metadata management for fixed content distributed data storage
JP4668763B2 (en) Storage device restore method and storage device
JP2021002369A (en) Index update pipeline
US11360867B1 (en) Re-aligning data replication configuration of primary and secondary data serving entities of a cross-site storage solution after a failover event
US8028192B1 (en) Method and system for rapid failback of a computer system in a disaster recovery environment
JP4461147B2 (en) Cluster database using remote data mirroring
CN105814544B (en) System and method for supporting persistent partition recovery in a distributed data grid
CN105493474B (en) System and method for supporting partition level logging for synchronizing data in a distributed data grid
JP2005196683A (en) Information processing system, information processor and control method of information processing system
JP2016524750A5 (en)
JP5292350B2 (en) Message queue management system, lock server, message queue management method, and message queue management program
US10452680B1 (en) Catch-up replication with log peer
US20120084260A1 (en) Log-shipping data replication with early log record fetching
CN110402429B (en) Copying storage tables for managing cloud-based resources to withstand storage account interruptions
US11768624B2 (en) Resilient implementation of client file operations and replication
US20230273742A1 (en) Recovery of clustered storage systems
US7543017B1 (en) Cluster file system node failure file recovery by reconstructing file state
JP2013120463A (en) Information processing method, information processing system, information processing apparatus, and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110831

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130319

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130520

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130610

R150 Certificate of patent or registration of utility model

Ref document number: 5292351

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees