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 PDFInfo
- 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
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
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
しかしながら、上記の第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 (
本発明は、上記の点に鑑みなされたもので、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
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
A
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
A
When the
また、本発明(請求項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
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
In response to the reconnection request from the
また、本発明(請求項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
When the request from the
When the request from the
If the request from the
When the request from the
If the request from the
本発明(請求項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.
以下、図面と共に本発明の実施の形態を説明する。 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
プライマリサーバ100は、クライアント端末10からのファイルのメタ情報取得・更新要求を取得して、更新されたメタ情報を複製してバックアップサーバ200に送信し、メタ情報に基づいてワーカ20に対するデータ管理及び制御を行う。また、分散ファイルマスタの状態をロックサーバマスタ300に保存する。
The
クライアント端末10は、ロックサーバ300からプライマリサーバ100の位置情報を取得し、プライマリサーバ100からファイルのメタ情報を取得し、プライマリサーバ100から渡された、データを管理しているワーカ20のメタ情報に基づいてデータの読み出しを行う、または、データの書き込みを行う。
The client terminal 10 acquires the location information of the
ワーカ20は、クライアント端末10からアクセスされることにより、データの登録、提供を行う。
The
ロックサーバ(マスタ)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
図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
The “client” shown in the figure refers to a communication partner viewed from the
同図に示すロックサーバ300は、マスタ調停部301、マスタ管理部302、セッション管理部303、セッション一覧記憶部304、削除待ちセッション一覧記憶部305、要求処理部306、レプリケーション管理部307、データベース(DB)309、トランザクション管理部310を有する。
The
上記のセッション一覧記憶部304、削除待ちセッション一覧記憶部305は、メモリまたはハードディスク等の記憶媒体である。
The session
セッション一覧記憶部304及び削除待ちセッション一覧記憶部305は、セッション管理部303から参照、更新されるテーブルであり、図4、図5にそれぞれ示すように、セッションID、IPアドレスなどのクライアント情報、及びマークしているキューのエントリからなるテーブルを格納している。なお、削除待ちセッション一覧記憶部305のテーブルはマスタ交代直後のみ保持される。
The session
DB309は、図6に示すように、キュー一覧(同図(A))とキューID毎のレコード一覧(同図(B))のテーブルを有する。
As shown in FIG. 6, the
最初に、クライアント1の動作について説明する。
First, the operation of the
図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
ステップ102) マスタとして動作しているロックサーバ300からセッションIDを受信する。
Step 102) The session ID is received from the
ステップ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
ステップ106) 再接続タイマをセットする。 Step 106) Set the reconnection timer.
ステップ107) 全てのマスタ候補のロックサーバ300へセッションIDを含む再接続要求を送信する。
Step 107) A reconnection request including the session ID is transmitted to all master
ステップ108) 再接続タイマがタイムアウトする前にマスタとして動作しているロックサーバ300から返信が得られたかを判定し、得られた場合はステップ103に移行し、得られない場合は当該処理を終了する。
Step 108) It is determined whether a reply is obtained from the
図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
当該方法は、システム上の予め決められたマスタ候補のロックサーバ300中から多数決によって一意なマスタを選出する。具体的には、マスタと同期できないサーバは停止する。これによりマルチマスタ状態とはなならい。これは、Paxosにより、一つの議題について、多数決の結論(=新しいマスタ)は必ず一つの値に収束するためである。
In this method, a unique master is selected by a majority vote from among the
ステップ1020) マスタ管理部302は、自サーバ300が上記のステップ1010の処理によりマスタとして選出されたかを判定し、選出された場合はステップ1030に移行し、選出されない場合にはステップ1110に移行する。
Step 1020) The
ステップ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
ステップ1060) セッション管理部303は、クライアント1とのセッションを復元し、ステップ1070に移行する。当該動作は、マスタが交代した際の処理であり、当該ロックサーバ300がマスタでない状態からマスタとなった契機において、マスタとして動作を開始するために必要な処理である。この詳細動作を図9に示す。
Step 1060) The
図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
ステップ5020) セッション管理部303は、図4のセッション一覧記憶部304のテーブル内の前情報を削除する。
Step 5020) The
ステップ5030) セッション管理部303は、セッション削除タイマをセットする。
Step 5030) The
ステップ5040) セッション管理部303は、セッション削除タイマがタイムアウトしたならステップ5050に移行する。
Step 5040) If the session deletion timer times out, the
ステップ5050) セッション管理部303は、削除待ちセッション一覧記憶部305のテーブルが空であれば当該処理を終了し、空でなければ、ステップ5060に移行する。
Step 5050) The
ステップ5060) セッション管理部303は、削除待ちセッション一覧記憶部305の任意の1セッションを選択する。
Step 5060) The
ステップ5070) セッション管理部303は、選択された当該セッションの削除処理を行う。具体的には、図17で詳述する。
Step 5070) The
ステップ1070) 要求処理部306は、上記のステプ5010〜5070の処理が終了すると、クライアント1からの要求の受付を開始する。
Step 1070) The
以下に当該クライアント1からの要求受付処理を図10に基づいて詳細に説明する。図10は、本発明の一実施の形態におけるクライアントからの要求受付開始処理のフローチャートである。
Hereinafter, a process for accepting a request from the
ステップ2020) 要求処理部306は、クライアント1から要求があった場合はステップ2030に移行し、ない場合は待機する。
Step 2020) The
ステップ2030) 要求処理部306は、クライアント1からの要求を取得すると、当該要求が(最初の)接続要求か否かを判断し、接続要求である場合はステップ2040に移行し、それ以外の場合はステップ2070に移行する。
Step 2030) Upon obtaining the request from the
ステップ2040) セッション管理部303は、セッションIDを発行し、セッション一覧記憶部304に追加格納する。
Step 2040) The
ステップ2050) 要求処理部306は、セッション管理部303において発行されたセッションIDをクライアント1に通知する。
Step 2050) The
ステップ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
ステップ2090) セッション管理部303は、セッションIDをセッション一覧記憶部304に追加格納し、ステップ2050に移行する。
Step 2090) The
ステップ2100) ステップ2070において、要求処理部306によりクライアント1からの要求が再接続要求以外の要求であると判断された場合は、レプリケーション管理部307のキュー制御部308は、要求の内容に応じて、図6に示すDB309内のキューに対する処理を実行する。当該キューに対する各種の処理について、図11〜図15に基づいて説明する。
Step 2100) When the
ステップ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
ステップ2150) タイマをセットする。 Step 2150) Set the timer.
ステップ2160) タイムアウト前にクライアント1からpingコマンドに対する返信があった場合はステップ2140に移行し、ない場合はステップ2170に移行する。
Step 2160) If there is a reply to the ping command from the
ステップ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
ステップ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
ステップ12010) キュー制御部308は、クライアント1からポップ操作要求としてキューIDが入力されると、キューIDを用いてDB309内のキュー一覧(図6(A))から当該キューの先頭レコード(Front)を取得する。
Step 12010) When a queue ID is input as a pop operation request from the
ステップ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
ステップ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
ステップ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
ステップ15010) キュー制御部308は、クライアント1からアンマーク操作要求としてキー、キューIDが入力されると、キューIDに該当するレコード一覧(図6(B))から入力キーに該当するレコードを取得する。
Step 15010) When the key and the queue ID are input from the
ステップ15020) 当該レコードのセッションIDを空欄に更新する。 Step 15020) The session ID of the record is updated to a blank.
ステップ2110) レプリケーション管理部307は、上記のプッシュ操作、ポップ操作、デリート操作、マーク操作、アンマーク操作のいずれかの処理結果をレプリカ30に送信する。
Step 2110) The
ステップ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
ステップ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
ステップ3010) クライアント1からの要求受付プロセスを停止する。
Step 3010) The process for accepting requests from the
ステップ3020) 全てのクライアント端末監視プロセスを停止する。 Step 3020) Stop all client terminal monitoring processes.
ステップ3030) 全てのセッション情報をセッション一覧記憶部305から削除する。
Step 3030) All the session information is deleted from the session
ステップ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
ステップ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
次に、図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
ステップ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
図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
ステップ4020) セッション管理部303は、取得されたキュー全てに対して、紛失防止キュー操作として、以下の図18に示す処理により自動アンマーク操作を行う。
Step 4020) The
図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
ステップ16020) 当該レコードのセッションIDが、ステップ4010で取得したセッションIDである場合は、ステップ16030に移行し、そうでない場合はステップ16040に移行する。
Step 16020) If the session ID of the record is the session ID acquired in
ステップ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
ステップ16050) 現在のレコードの次のレコードをセッション一覧記憶部304から取得し、ステップ16020に移行する。
Step 16050) The record next to the current record is acquired from the session
上記の一連のフローチャートにおいて、図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
新しくマスタとなったロックサーバ300は、図10のステップ2100〜ステップ2120によって予め復元されていた図4、図5、図6及び図7に示すクライアントから再接続処理(ステップ107)によって、有効なセッションの確認を行う。これにより、キュー内のデータの仕掛かり中(図6(B)マーク済)状態が正当であること(=マークされているが、マークしているセッションが存在しない状態となっているキュー内のレコード)を確認し、サーバ故障状態及びネットワーク故障状態からの復帰を行う。
The
このとき、前述の非特許文献1のように、データ変更が仕掛り中であることを示すためにトランザクションを用いるのでは、トランザクションの途中の状態を復元(レプリケーション)しなければならない。しかし、トランザクションの途中状態(各種データに対する全てのロック状態)を汎用的に復元していたのでは性能向上は難しい。そこで、本発明では、図6(B),図14、図15にあるように、トランザクションの途中状態を「マーク状態」として、キュー内の一つにエントリに限るものとして限定することにより、途中状態の復元を容易にした。これによって、キュー内に対する操作の途中状態を復元することが可能となる。図6(B)、図14、図15の詳細については上記のフローチャートのステップ14010〜14040、ステップ1510,1520に示すとおりである。
At this time, as in
さらに、図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
また、マスタ交代に備えてデータを復元(レプリケーション)する処理は、上記のフローチャートの図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
クライアント1は、セッションが正常な状態にあるときのみ(図7に示すステップ103〜105)、プッシュ・ポップ・デリート・マーク・アンマークのいずれかのキュー操作要求をマスタに送信し、マスタはクライアント1の操作要求に基づいて、図10に示すステップ2100〜2120のキュー操作を行う。図6(B)のデータ構造及び図11〜図15によってキューの操作を定義する。
Only when the session is in a normal state (
このように、キューに対してこれらの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
また、構築されたプログラムをハードディスクや、フレキシブルディスク・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
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:
前記クライアントからの要求がキューのプッシュ操作要求である場合は、取得したキュー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:
前記クライアントからの要求がキューのプッシュ操作要求である場合は、取得したキュー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:
前記クライアントからの要求がキューのプッシュ操作要求である場合は、取得したキュー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.
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)
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)
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 |
-
2010
- 2010-03-30 JP JP2010078784A patent/JP5292351B2/en not_active Expired - Fee Related
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 |