JP7351679B2 - Computer, data control method and data store system - Google Patents

Computer, data control method and data store system Download PDF

Info

Publication number
JP7351679B2
JP7351679B2 JP2019161075A JP2019161075A JP7351679B2 JP 7351679 B2 JP7351679 B2 JP 7351679B2 JP 2019161075 A JP2019161075 A JP 2019161075A JP 2019161075 A JP2019161075 A JP 2019161075A JP 7351679 B2 JP7351679 B2 JP 7351679B2
Authority
JP
Japan
Prior art keywords
determination key
priority
priority determination
data
identifier
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.)
Active
Application number
JP2019161075A
Other languages
Japanese (ja)
Other versions
JP2021040259A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2019161075A priority Critical patent/JP7351679B2/en
Publication of JP2021040259A publication Critical patent/JP2021040259A/en
Application granted granted Critical
Publication of JP7351679B2 publication Critical patent/JP7351679B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、クライアントから受信したデータをサービス提供サーバへ転送するキューシステム及びデータストアシステムに関する。 The present invention relates to a queue system and a data store system that transfer data received from a client to a service providing server.

近年において、ユーザが所有する通信端末やIoTデバイスの増加に伴い、これらのデバイスから送信されるデータが増大している。これらのデータを処理するシステムとして、キューサーバを含むシステムがある。 In recent years, as the number of communication terminals and IoT devices owned by users has increased, the amount of data transmitted from these devices has increased. As a system for processing these data, there is a system including a queue server.

従来のキューを保持するシステムは、各用途においてキューを設定し、キュー毎に、各リクエストをメッセージとして扱い、FIFO(ファーストインファーストアウト)で制御している。 A conventional system that maintains a queue sets a queue for each application, handles each request as a message for each queue, and controls the queue using FIFO (first-in-first-out).

また、上記キューサーバに関連する技術として、キュー内部ではなく、キュー間で優先順位を設定して処理する技術がある。複数のキューを設定し、キュー間での優先順位を管理させることにより、キュー間での、リクエストの優先順位を決定し、優先順位どおりに処理をするものも知られている。ただし、このように複数のキューを設けると各サービス提供システム毎にキューの設計が必要となり、運用面においても複雑な運用となる。 Further, as a technology related to the above-mentioned queue server, there is a technology in which priority is set and processed not within a queue but between queues. There is also known a system that sets a plurality of queues and manages the priorities among the queues, thereby determining the priorities of requests among the queues and processing them according to the priorities. However, if a plurality of queues are provided in this way, it will be necessary to design the queues for each service providing system, and the operation will be complicated.

上記課題をふまえ、特許文献1には、同一キュー内において、キュー格納時に、相互関係のあるメッセージを関連付けるキーを付与し、他のメッセージとの相互関係に基づいたキュー処理順序の制御を行う発明が開示されている。 In view of the above problems, Patent Document 1 discloses an invention for controlling the queue processing order based on the correlation with other messages by assigning a key for associating mutually related messages in the same queue when the queue is stored. is disclosed.

特開2016-18222号公報JP2016-18222A

近年において、ユーザが所有する通信端末やIoTデバイスの増加に伴い、これらのデバイスから送信されるデータが増大している。メッセージキューもビックデータの受け皿となるよう大量のデータを格納、取り出しを行う機能が要求されている。 In recent years, as the number of communication terminals and IoT devices owned by users has increased, the amount of data transmitted from these devices has increased. Message queues are also required to have the ability to store and retrieve large amounts of data in order to serve as a receptacle for big data.

また、単に大量のデータを処理するだけではなく、処理するデータの特性に応じて複数の種別の優先度を付与し、複数の条件によって特定されたデータをより速くサービス実現サーバへ送信する機会も要求されるようになってきた。 In addition to simply processing large amounts of data, there is also an opportunity to assign priorities to multiple types of data depending on the characteristics of the data to be processed, and to send data identified based on multiple conditions to the service realization server more quickly. It's starting to be demanded.

そこで本発明は、上記問題点に鑑みてなされたもので、複数の優先度を有するリクエストを受け付けて、高効率で処理することを目的とする。 The present invention has been made in view of the above-mentioned problems, and an object of the present invention is to receive requests having multiple priorities and process them with high efficiency.

プロセッサと、メモリと、通信装置を含む計算機であって、前記通信装置が受信した複数の優先度として第1優先順位決定キーと第2優先順位決定キーを含むデータを制御する制御部と、前記データを到着順で格納する受信データ格納部と、前記データの前記第1優先順位決定キーと第2優先順位決定キーと前記データの識別子を対応付けて管理する格納管理テーブルと、1以上の前記データの識別子を、前記第1優先順位決定キーと第2優先順位決定キーの優先度に関連付けて格納する優先順位制御情報テーブルと、を有し、前記制御部は、前記通信装置が受信した複数の優先度を含むデータを、到着順で前記受信データ格納部に格納し、前記受信したデータから複数の優先度として第1優先順位決定キーと第2優先順位決定キーを取得して前記受信したデータに識別子を設定して前記格納管理テーブルへ格納する際には、前記第1優先順位決定キーと第2優先順位決定キーが優先順位制御テーブルに登録済みの場合には第1優先順位決定キーと第2優先順位決定キーのエントリに前記データの識別子を格納管理テーブルへ追加し、第1優先順位決定キーのみが前記優先順位制御テーブルに登録済みの場合には第1の優先順位決定キーと前記データの識別子を格納管理テーブルへ追加し、第1優先順位決定キーが無ければ前記データの識別子のみを格納管理テーブルへ格納し、前記第1優先順位決定キーと第2優先順位決定キーと前記データの識別子を優先順位制御テーブルへ格納する際には、第1優先順位決定キーと第2優先順位決定キーが当該優先順位制御テーブルに登録済みの場合は、第1優先順位決定キーと第2優先順位決定キーのエントリに前記データの識別子を優先順位制御テーブルへ追加し、第1優先順位決定キーのみが当該優先順位制御テーブルに登録済みの場合は、第2優先順位決定キーと前記データの識別子を優先順位制御テーブルへ格納し、前記受信データ格納部から前記データを取り出す際には、前記第1優先順位決定キーと第2優先順位決定キーが格納管理テーブルに登録済みで、かつ、前記優先順位制御テーブルの第1優先順位決定キーと第2優先順位決定キーのエントリの前記識別子と、格納管理テーブルの第1優先順位決定キーと第2優先順位決定キーのエントリの前記識別子が一致していれば当該識別子に対応するデータを前記受信データ格納部から取得して送信し、前記優先順位制御テーブルの第1優先順位決定キーと第2優先順位決定キーの前記識別子と、前記格納管理テーブルの第1優先順位決定キーと第2優先順位決定キーのエントリの前記識別子が一致しない場合には前記識別子に対応するデータの送信を保留する。 A computer including a processor, a memory, and a communication device, the control unit controlling data including a first priority determination key and a second priority determination key as a plurality of priorities received by the communication device ; a received data storage unit that stores data in the order of arrival; a storage management table that manages the first priority determination key, the second priority determination key of the data, and the identifier of the data in association with each other; a priority control information table that stores data identifiers in association with the priorities of the first priority determination key and the second priority determination key; The data including the priorities of the received data are stored in the received data storage unit in the order of arrival, and a first priority determination key and a second priority determination key are obtained from the received data as a plurality of priorities. When setting an identifier to data and storing it in the storage management table, if the first priority determination key and the second priority determination key are already registered in the priority control table, the first priority determination key and the identifier of the data is added to the storage management table in the entry of the second priority determination key, and if only the first priority determination key is already registered in the priority control table, it is added as the first priority determination key. The identifier of the data is added to the storage management table, and if there is no first priority determination key, only the identifier of the data is stored in the storage management table, and the first priority determination key, the second priority determination key, and the When storing the data identifier in the priority control table, if the first priority determination key and the second priority determination key have already been registered in the priority control table, the first priority determination key and the second priority determination key must be stored. Add the identifier of the data to the priority control table in the priority order determination key entry, and if only the first priority determination key is registered in the priority control table, the second priority determination key and the data When storing the identifier in the priority order control table and retrieving the data from the received data storage section, the first priority order determination key and the second priority order determination key are already registered in the storage management table, and the The identifiers of the entries for the first priority determination key and the second priority determination key in the priority control table match the identifiers for the entries for the first priority determination key and the second priority determination key in the storage management table. If so, data corresponding to the identifier is acquired from the received data storage unit and transmitted, and the data corresponding to the identifier of the first priority determination key and second priority determination key of the priority control table and the storage management table are transmitted. If the identifiers of the entries of the first priority determination key and the second priority determination key do not match, transmission of data corresponding to the identifiers is suspended.

本発明により、受信データ格納部が到着順で受け付けたデータを、前記データに含まれる複数の優先度に基づいて効率よく処理することが可能となる。 According to the present invention, it becomes possible to efficiently process data received by the received data storage unit in the order of arrival based on a plurality of priorities included in the data.

本明細書において開示される主題の、少なくとも一つの実施の詳細は、添付されている図面と以下の記述の中で述べられる。開示される主題のその他の特徴、態様、効果は、以下の開示、図面、請求項により明らかにされる。 The details of at least one implementation of the subject matter disclosed herein are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the disclosed subject matter will be apparent from the following disclosure, drawings, and claims.

本発明の実施例1を示し、チケットの予約販売で行われる処理の一例を示す図である。1 is a diagram illustrating a first embodiment of the present invention and illustrating an example of processing performed in ticket reservation sales; FIG. 本発明の実施例1を示し、計算機システムの構成の一例を示すブロック図である。1 is a block diagram showing an example of the configuration of a computer system according to a first embodiment of the present invention; FIG. 本発明の実施例1を示し、キュー情報管理部の構成の一例を示すブロック図である。FIG. 1 is a block diagram showing an example of the configuration of a queue information management unit according to a first embodiment of the present invention. 本発明の実施例1を示し、優先順位保証サーバで行われるリクエスト格納処理の一例を示すフローチャートである。1 is a flowchart illustrating a first embodiment of the present invention and illustrating an example of a request storage process performed by a priority guarantee server. 本発明の実施例1を示し、優先順位保証サーバで行われるリクエスト出力処理の一例を示すフローチャートである。1 is a flowchart illustrating an example of request output processing performed by a priority guarantee server according to a first embodiment of the present invention. 本発明の実施例1を示し、リクエスト出力処理で行われる優先順位制御テーブルの削除処理の一例を示すフローチャートである。2 is a flowchart showing an example of priority control table deletion processing performed in request output processing according to the first embodiment of the present invention. 本発明の実施例2を示し、データストアシステムの構成の一例を示すブロック図である。FIG. 2 is a block diagram illustrating a second embodiment of the present invention and illustrating an example of the configuration of a data store system. 本発明の実施例2を示し、統計情報操作部に含まれるキュー情報管理部の構成の一例を示す図である。FIG. 7 is a diagram illustrating a second embodiment of the present invention and illustrating an example of the configuration of a queue information management section included in a statistical information operation section. 本発明の実施例3を示し、優先順位保証サーバで行われる優先順位更新処理の一例を示すフローチャートである。12 is a flowchart showing an example of priority update processing performed by a priority guarantee server according to a third embodiment of the present invention. 本発明の実施例3を示し、優先順位保証サーバで行われるリクエスト出力処理の一例を示すフローチャートである。12 is a flowchart illustrating a third embodiment of the present invention and illustrating an example of request output processing performed by a priority guarantee server.

以下、本発明の実施形態を添付図面に基づいて説明する。 Embodiments of the present invention will be described below based on the accompanying drawings.

前述したように、ユーザ等のデバイスから送信されるデータが増大しても大量のデータを処理することが要求さている。また、処理するデータの特性に応じて複数の種別の優先度を付与し、複数の条件によって特定されたデータをより速くサービス実現サーバへ送信する機会も要求されるようになってきた。 As mentioned above, even as the amount of data transmitted from devices such as users increases, there is a need to process large amounts of data. Additionally, there is a growing demand for opportunities to assign priorities to multiple types of data depending on the characteristics of the data to be processed, and to more quickly transmit data specified by multiple conditions to a service implementation server.

本発明が適用される具体例としては、スマートメーターに代表されるIoTデバイスからの頻繁なデータ受信が挙げられる。また、災害時や不具合発生時に代表されるメールサービスや、サーバへのアクセス集中時におけるチケット予約販売システムにも適用される。 A specific example to which the present invention is applied is frequent data reception from an IoT device typified by a smart meter. It can also be applied to email services during disasters or malfunctions, and to ticket reservation and sales systems when servers are heavily accessed.

図1は、本発明の実施例1を示し、チケットの予約販売で行われる処理の一例を示す図である。 FIG. 1 shows a first embodiment of the present invention, and is a diagram showing an example of processing performed in ticket reservation sales.

図1では、チケットの日程が3種類(12/10、12/20、12/30)、予約を希望するユーザの属性として3属性(ゴールド会員、シルバー会員、ブロンズ会員)がある場合を示している。 Figure 1 shows a case where there are three types of ticket dates (12/10, 12/20, 12/30) and three attributes of the user who wishes to make a reservation (gold member, silver member, bronze member). There is.

チケットの日程として12/10が最も近いため、12/10の予約を優先して処理する方針とする。また、ユーザもゴールド会員を優先して受け付けることが本サービスを提供するうえで重要な方針となる。これら2つの方針を優先度に対応させて説明する。 Since 12/10 is the closest ticket date, we will prioritize reservations for 12/10. Furthermore, it is an important policy in providing this service that users should be given priority to gold members. These two policies will be explained in correspondence with priorities.

なお、複数の優先度を有する予約を本発明のように1本のキューで設計せずに、従来のような複数のキューで設計した場合との比較も下記に説明する。 A comparison with a case where reservations having multiple priorities are designed using multiple queues as in the prior art instead of using one queue as in the present invention will be described below.

複数のキューの構成を採用する際は、複数の各サービス提供サーバへリクエストを送信する場合に、各サービス提供サーバ(図2参照)分のキューが必要となり、設計の管理コストが増加する。 When adopting a configuration of multiple queues, when sending requests to multiple service providing servers, queues for each service providing server (see FIG. 2) are required, increasing design management costs.

すなわち、優先順位に応じてキューの本数を増加させないことが好ましいがそのような構成が取れない。また、新規に各サービス提供サーバが追加となり、既存のサービスと順序の保証が必要になった場合に、キューの設計をやり直すなどの開発コストがかかってしまう。この際にもキューの本数が多いとキュー設計のやり直しが煩雑となる。 That is, although it is preferable not to increase the number of queues according to the priority order, such a configuration is not possible. Furthermore, when a new service providing server is added and it becomes necessary to guarantee the order of existing services, development costs such as re-designing the queue are incurred. In this case, too, if the number of queues is large, re-designing the queues becomes complicated.

また、キューの設計によってはキューが格納される際(キューイン)に、その後の取り出し順が確定する場合があり、キューからデータを取り出す際(キューアウト、もしくはデキュー)には判定を行わない。言い換えるならば、キューにデータが格納された後においては取り出し順を変更していない。 Furthermore, depending on the design of the queue, the subsequent order of retrieval may be determined when the queue is stored (queue in), and no determination is made when data is retrieved from the queue (queue out or dequeue). In other words, after data is stored in the queue, the order of retrieval is not changed.

上記の場合、キューにデータが格納された後に、取り出し順を変更できないため、時間の経過によって状態(負荷やリソース)が変化するキューサーバ(図2の優先順位保証サーバ)の状態に合わせて特定のデータを優先して取り出すことができないことになる。 In the above case, the retrieval order cannot be changed after data is stored in the queue, so it is specified according to the state of the queue server (priority guarantee server in Figure 2) whose state (load and resources) changes over time. This means that the data cannot be retrieved with priority.

本発明は、1つのキューに入ったメッセージでも、優先順位の制御キーを設定することにより、相互関係があるメッセージのみを順序制御し、同一キュー内であっても、キュー設計の複雑化を回避し柔軟な順序制御を可能とする。 By setting a priority control key for messages in one queue, the present invention controls the order of only messages that are related to each other, thereby avoiding complication in queue design even in the same queue. This enables flexible order control.

図2は、本発明の実施例1における計算機システムのブロック図を示す。本実施例ではやり取りするデータをメッセージとして説明しているが他のデータでもよい。 FIG. 2 shows a block diagram of a computer system according to the first embodiment of the present invention. In this embodiment, the data to be exchanged is explained as a message, but other data may be used.

本実施例1における計算機システムはクライアントサーバ102から送られてきたリクエスト(メッセージ)を優先順位保証サーバ300が入力インタフェース302にて受信し、キュー303に格納する。 In the computer system according to the first embodiment, a priority guarantee server 300 receives a request (message) sent from a client server 102 through an input interface 302 and stores it in a queue 303 .

キュー制御部320はキュー情報管理部304の情報に基づいてキュー303に格納されたリクエストに優先順位を付与し、キュー制御部320は優先順位に応じて出力インタフェース305から各サービス提供サーバ104-A~104-Cにリクエストを送信する。 The queue control unit 320 gives priority to the requests stored in the queue 303 based on the information of the queue information management unit 304, and the queue control unit 320 assigns priorities to the requests stored in the queue 303 from the output interface 305 to each service providing server 104-A based on the information of the queue information management unit 304. ~ Send a request to 104-C.

その後、優先順位保証サーバ300は、サービス提供サーバ104-A~104-Cから送られたリクエストに対する応答を受け付けると、クライアントサーバ102へ転送する。なお、以下ではサービス提供サーバを個々に特定しない場合には、「-」以降を省略した符号「104」を使用する。 Thereafter, upon receiving a response to the request sent from the service providing servers 104-A to 104-C, the priority guarantee server 300 transfers the response to the client server 102. Note that in the following, when a service providing server is not individually specified, the code "104" will be used, omitting the characters after "-".

優先順位保証サーバ300は、ネットワーク35を介して各サービス提供サーバ104へのリクエストを送信するクライアントサーバ102と優先順位保証サーバ300が中継するリクエストに基づいて、要求されたサービスを提供するサービス提供サーバ104と接続される。 The priority guarantee server 300 is a service providing server that provides a requested service based on the request relayed by the client server 102 that sends a request to each service providing server 104 via the network 35 and the priority guarantee server 300. 104.

優先順位保証サーバ300は、プロセッサ31と、メモリ32と、ストレージ装置33と、通信装置34を含む計算機である。メモリ32には、リクエストを格納するキュー303が設定され、キュー制御部320と入力インタフェース302及び出力インタフェース305がプログラムとして格納され、キュー制御部320が利用する各種テーブルがキュー情報管理部304に保持される。 The priority guarantee server 300 is a computer including a processor 31, a memory 32, a storage device 33, and a communication device 34. A queue 303 for storing requests is set in the memory 32, a queue control unit 320, an input interface 302, and an output interface 305 are stored as programs, and various tables used by the queue control unit 320 are held in a queue information management unit 304. be done.

入力インタフェース302は、クライアントサーバ102からのリクエストを受信する。キュー制御部320は、入力インタフェース302からのリクエストをキュー303へ格納し、後述するように優先順位に従ってキュー303のリクエストを出力インタフェース305を介してサービス提供サーバ104へ送信する。 Input interface 302 receives requests from client server 102 . The queue control unit 320 stores the requests from the input interface 302 in the queue 303, and transmits the requests in the queue 303 to the service providing server 104 via the output interface 305 in accordance with priority as described later.

キュー制御部320と、入力インタフェース302と、出力インタフェース305の各機能部はプログラムとしてメモリ32にロードされる。 Each functional unit of the queue control unit 320, input interface 302, and output interface 305 is loaded into the memory 32 as a program.

プロセッサ31は、各機能部のプログラムに従って処理を実行することによって、所定の機能を提供する機能部として稼働する。例えば、プロセッサ31は、キュー制御プログラムに従って処理を実行することでキュー制御部320として機能する。他のプログラムについても同様である。さらに、プロセッサ31は、各プログラムが実行する複数の処理のそれぞれの機能を提供する機能部としても稼働する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。 The processor 31 operates as a functional unit that provides predetermined functions by executing processing according to the programs of each functional unit. For example, the processor 31 functions as the queue control unit 320 by executing processing according to a queue control program. The same applies to other programs. Furthermore, the processor 31 also operates as a functional unit that provides functions for each of the plurality of processes executed by each program. A computer and a computer system are devices and systems that include these functional units.

ストレージ装置33は、不揮発性の記憶媒体で構成されて、プログラムやテーブル類を保持することができる。 The storage device 33 is composed of a non-volatile storage medium and can hold programs and tables.

図3は図2のキュー情報管理部304が保持するテーブルを示す図である。キュー情報管理部304は、キュー格納管理テーブル309と、優先順位制御テーブル310と、リクエスト取得管理テーブル313を含む。 FIG. 3 is a diagram showing a table held by the queue information management unit 304 of FIG. 2. The queue information management unit 304 includes a queue storage management table 309, a priority control table 310, and a request acquisition management table 313.

キュー格納管理テーブル309は、リクエストをキュー303へ格納する際に、リクエストID307と優先順位決定キー1(308a)と、優先順位決定キー2(308b)とを対応付けて管理する。キュー格納管理テーブル309は、リクエストID307をキーとしてリクエストの到着順で格納される。 When storing a request in the queue 303, the queue storage management table 309 manages the request ID 307, priority order determination key 1 (308a), and priority order determination key 2 (308b) in association with each other. The queue storage management table 309 stores requests in the order of arrival using the request ID 307 as a key.

なお、優先順位決定キー1(308a)は、例えば、予約日付であり、優先順位決定キー2(308b)は、例えば、会員の属性(ゴールド会員、シルバー会員、ブロンズ会員)である。本実施例では、クライアントサーバ102が送信するリクエストには、優先順位決定キー1と、優先順位決定キー2が付与されているものとする。 The priority order determination key 1 (308a) is, for example, the reservation date, and the priority order determination key 2 (308b) is, for example, the attribute of the member (gold member, silver member, bronze member). In this embodiment, it is assumed that a priority order determination key 1 and a priority order determination key 2 are assigned to the request sent by the client server 102.

本実施例では、優先順位決定キーを2つとした例を示すが、これに限定されるものではなく、複数の種類の優先順位決定キーを使用することができる。 Although this embodiment shows an example in which two priority order determination keys are used, the present invention is not limited to this, and multiple types of priority order determination keys can be used.

また、リクエストID307は、計算機システム内でユニークな値であればよく、優先順位保証サーバ300の入力インタフェース302で付与してもよいし、クライアントサーバ102で付与することもできる。 Further, the request ID 307 only needs to be a unique value within the computer system, and may be assigned by the input interface 302 of the priority guarantee server 300 or by the client server 102.

リクエスト取得管理テーブル313は、キュー303からリクエストを出力した際に、リクエストID314を格納し、キュー303から出力したリクエストを管理する。リクエスト取得管理テーブル313に格納されたリクエストID314は、所定時間経過後(又は所定のタイミング)に削除される。 The request acquisition management table 313 stores the request ID 314 when a request is output from the queue 303, and manages the request output from the queue 303. The request ID 314 stored in the request acquisition management table 313 is deleted after a predetermined period of time (or at a predetermined timing).

優先順位制御テーブル310は、優先順位決定キー1(315a)と、優先順位決定キー2(315b)をキーとして、それぞれの優先順位決定キー315a、315bに関連付けられたリクエストID307a、307bをリストとして保持するテーブルである。 The priority control table 310 holds a list of request IDs 307a and 307b associated with the priority determination keys 315a and 315b, using priority determination key 1 (315a) and priority determination key 2 (315b) as keys. This is a table where

キュー制御部320は、リクエストをキュー303へ格納する場合と、キュー303からリクエストを取得する場合に優先順位制御テーブル310を参照することにより、リクエストの送信順序の制御を行う。 The queue control unit 320 controls the transmission order of requests by referring to the priority control table 310 when storing requests in the queue 303 and when acquiring requests from the queue 303.

キュー格納管理テーブル309と、優先順位制御テーブル310とは扱うパラメーターが似ているが、優先順位制御テーブル310は、各リクエストが優先度毎にソートされた状態を示している。 The queue storage management table 309 and the priority control table 310 handle similar parameters, but the priority control table 310 shows a state in which requests are sorted by priority.

キュー303からリクエストを取得する場合は、キュー制御部320がキュー格納管理テーブル309を検索し、取得できるリクエストを抽出する。キュー制御部320は、取得しようとしたリクエストID307に優先順位決定キー1(308a)と、優先順位決定キー2(308b)が設定されている場合は、当該リクエストID307の取得の可否を判断するために、優先順位制御テーブル310を参照する。 When acquiring requests from the queue 303, the queue control unit 320 searches the queue storage management table 309 and extracts requests that can be acquired. When the priority determination key 1 (308a) and the priority determination key 2 (308b) are set for the request ID 307 that the queue control unit 320 attempts to acquire, the queue control unit 320 determines whether or not the request ID 307 can be acquired. Then, the priority control table 310 is referred to.

優先順位決定キー1(308a)と、優先順位決定キー2(308b)は、キュー制御部320がキュー303からリクエストを取り出す際に、取得するリクエストが、送信する際の順序制御の対象になるか否かを判定する情報となる。 The priority order determination key 1 (308a) and the priority order determination key 2 (308b) are used to determine whether the acquired requests are subject to order control when being transmitted when the queue control unit 320 takes out requests from the queue 303. This information is used to determine whether or not the

なお、キュー制御部320は、キュー303に格納されたリクエストのうち、同一の優先順位決定キー1と、優先順位決定キー2が付与されているリクエストは、格納順に送信する。 Note that among the requests stored in the queue 303, the queue control unit 320 transmits requests to which the same priority determination key 1 and priority determination key 2 are assigned in the order in which they are stored.

図4は、優先順位保証サーバ300で行われるリクエストの格納処理の一例を示すフローチャートである。この処理は、所定のタイミング、例えば、入力インタフェース302がリクエストを受信した場合に実行される。 FIG. 4 is a flowchart illustrating an example of a request storage process performed by the priority guarantee server 300. This process is executed at a predetermined timing, for example, when the input interface 302 receives a request.

キュー制御部320は、リクエストの格納処理において、受け付けたリクエストを優先順位制御するか否かを判定するために、優先順位決定キー1(308a)を取得し(ステップ500、優先順位決定キー1(308a)の値の有無を判定する(ステップ501)。 In the request storage process, the queue control unit 320 obtains the priority determination key 1 (308a) (step 500 ) in order to determine whether or not to perform priority control on the received request. The presence or absence of the value 308a) is determined (step 501).

優先順位決定キー1(308a)の値がある場合はステップ502へ進み、そうでない場合にはステップ514へ進む。ステップ502では、キュー制御部320が、優先順位制御テーブル310の情報を取得する。 If there is a value for priority determination key 1 (308a), the process advances to step 502; otherwise, the process advances to step 514. In step 502, the queue control unit 320 obtains information on the priority control table 310.

次に、キュー制御部320は、上記ステップ500で取得した優先順位決定キー1(308a)が優先順位制御テーブル310に登録済みか否かを判定する(ステップ503)。キュー制御部320は、登録済みの場合にはステップ505へ進み、未登録の場合にはステップ504へ進む。 Next, the queue control unit 320 determines whether the priority determination key 1 (308a) acquired in step 500 has been registered in the priority control table 310 (step 503). The queue control unit 320 proceeds to step 505 if it has been registered, and proceeds to step 504 if it has not been registered.

ステップ504では、キュー制御部320が、優先順位制御テーブル310へ新規に優先順位決定キー1、2(315a、315b)、とリクエストID307aを格納する。 In step 504, the queue control unit 320 newly stores the priority determination keys 1 and 2 (315a, 315b) and the request ID 307a in the priority control table 310.

そして、キュー制御部320は、新たなリクエストの情報を格納した優先順位制御テーブル310を優先順位決定キー1(315a)の昇順及び優先順位決定キー2(315b)の降順でソートする。 Then, the queue control unit 320 sorts the priority control table 310 storing information on new requests in ascending order of priority determination key 1 (315a) and descending order of priority determination key 2 (315b).

本実施例では、優先順位決定キー1(315a)の値は予約の日付を示すシリアル値であり、優先順位決定キー2(315b)は、会員の属性を示す値として、ゴールド会員=3、シルバー会員=2、ブロンズ会員=1とする。 In this embodiment, the value of the priority determination key 1 (315a) is a serial value indicating the reservation date, and the value of the priority determination key 2 (315b) is a value indicating the attributes of the member, such as gold member = 3, silver member = 3. Member = 2, Bronze member = 1.

次に、キュー制御部320は、優先順位決定キー2(308b)の値の有無を取得して(ステップ505)、優先順位決定キー2(308b)の値の有無を判定する(ステップ506)。キュー制御部320は、優先順位決定キー2(308b)の値がある場合はステップ507へ進み、値が無い場合にはステップ513へ進む。 Next, the queue control unit 320 acquires the presence or absence of the value of the priority order determination key 2 (308b) (step 505), and determines the presence or absence of the value of the priority order determination key 2 (308b) (step 506). The queue control unit 320 proceeds to step 507 if there is a value for priority determination key 2 (308b), and proceeds to step 513 if there is no value.

ステップ507では、キュー制御部320がキュー格納管理テーブル309にリクエストID(307a)優先順位決定キー1(308a)及び優先順位決定キー2(308b)を関連付けて格納する。 In step 507, the queue control unit 320 stores the request ID (307a), priority determination key 1 (308a), and priority determination key 2 (308b) in the queue storage management table 309 in association with each other.

ステップ513では、キュー制御部320が、キュー格納管理テーブル309にリクエストID(307)と優先順位決定キー1(308a)を関連付けて格納した後に、ステップ515へ進む。 In step 513, the queue control unit 320 stores the request ID (307) and priority order determination key 1 (308a) in association with each other in the queue storage management table 309, and then proceeds to step 515.

次に、キュー制御部320は、優先順位制御テーブル310の情報を取得する(ステップ508)。その後、キュー制御部320は、に優先順位決定キー2(315b)が優先順位制御テーブル310に登録済みか否かを判定する(ステップ509)。キュー制御部320は、登録済みの場合は、先に格納されているリクエストID307aの後ろに新たなリクエストID307bを追加する(ステップ510)。 Next, the queue control unit 320 obtains information on the priority control table 310 (step 508). Thereafter, the queue control unit 320 determines whether priority order determination key 2 (315b) has been registered in the priority order control table 310 (step 509). If the queue control unit 320 has already registered, it adds a new request ID 307b after the previously stored request ID 307a (step 510).

一方、登録されていない場合は、キュー制御部320が既に登録されている優先順位決定キー1(315a)と、新たな優先順位決定キー2(315b)のエントリを優先順位制御テーブル310へ新規に追加し、リクエストID307aを格納する(ステップ511)。 On the other hand, if they are not registered, the queue control unit 320 adds new entries for the already registered priority determination key 1 (315a) and the new priority determination key 2 (315b) to the priority control table 310. and stores the request ID 307a (step 511).

そして、キュー制御部320は、新たなリクエストの情報を格納した優先順位制御テーブル310を、優先順位決定キー1(315a)の昇順及び優先順位決定キー2(315b)の降順でソートする。 Then, the queue control unit 320 sorts the priority order control table 310 storing information on new requests in ascending order of priority order determination key 1 (315a) and descending order of priority order determination key 2 (315b).

また、ステップ501の判定で優先順位決定キー1の値が無い場合は、キュー制御部320がリクエストID307をキュー格納管理テーブル309に格納する(ステップ514)。 Further, if there is no value for the priority order determination key 1 in the determination in step 501, the queue control unit 320 stores the request ID 307 in the queue storage management table 309 (step 514).

上記処理の後に、キュー制御部320は、キュー303にリクエストを格納し(ステップ515)、上記処理をリクエストが入力される度に繰り返す。 After the above processing, the queue control unit 320 stores the request in the queue 303 (step 515), and repeats the above processing every time a request is input.

以上の処理によって、優先順位保証サーバ300がクライアントサーバ102から受け付けたリクエストは、優先順位制御テーブル310に優先順位決定キー1、2が登録されていなければ、キュー制御部320が新たな優先順位決定キー1、2(315a、315b)として優先順位制御テーブル310に登録し、リクエストID307aを付加する。そして、キュー制御部320は、優先順位制御テーブル310を優先順位決定キー1の昇順及び優先順位決定キー2の降順でソートしておく。 Through the above processing, the queue control unit 320 determines a new priority for a request that the priority guarantee server 300 receives from the client server 102 if the priority determination keys 1 and 2 are not registered in the priority control table 310. It is registered in the priority control table 310 as keys 1 and 2 (315a, 315b), and a request ID 307a is added. Then, the queue control unit 320 sorts the priority order control table 310 in ascending order of priority order determination key 1 and in descending order of priority order determination key 2.

また、キュー制御部320は、キュー格納管理テーブル309にリクエストID307と、優先順位決定キー1(308a)と優先順位決定キー2(308b)を登録し、クライアントサーバ102から受信したリクエストをキュー303に格納する。 The queue control unit 320 also registers the request ID 307, priority determination key 1 (308a), and priority determination key 2 (308b) in the queue storage management table 309, and stores the request received from the client server 102 in the queue 303. Store.

キュー制御部320は、リクエストを受け付ける度に、優先順位制御テーブル310に優先順位決定キー1、2の有無に応じてキーを追加してからリクエストID307aを付加し、優先順位決定キー1の昇順及び優先順位決定キー2の降順で優先順位制御テーブル310をソートしておく。 Every time the queue control unit 320 receives a request, it adds a key to the priority control table 310 according to the presence or absence of priority determination keys 1 and 2, and then adds a request ID 307a to the order of priority determination keys 1 and 2. The priority control table 310 is sorted in descending order of priority determination key 2.

図5Aは、優先順位保証サーバで行われるリクエスト出力処理の一例を示すフローチャートである。リクエスト出力処理では、キュー制御部320が、サービス提供サーバ104へ出力可能なリクエストを判定するために、キュー格納管理テーブル309の情報を取得する(ステップ601)。 FIG. 5A is a flowchart illustrating an example of request output processing performed by the priority guarantee server. In the request output process, the queue control unit 320 acquires information from the queue storage management table 309 in order to determine requests that can be output to the service providing server 104 (step 601).

キュー制御部320は、取得したキュー格納管理テーブル309の情報から先頭のエントリ(又はレコード)のリクエストID307と、優先順位決定キー1(308a)を取得し、優先順位決定キー1の有無を判定する(ステップ602)。キュー制御部320は、優先順位決定キー1がある場合にはステップ603へ進み、優先順位決定キー1が無い場合にはステップ616へ進む。 The queue control unit 320 acquires the request ID 307 of the first entry (or record) and the priority determination key 1 (308a) from the acquired information in the queue storage management table 309, and determines whether or not the priority determination key 1 exists. (Step 602). The queue control unit 320 proceeds to step 603 if the priority order determination key 1 exists, and proceeds to step 616 if the priority order determination key 1 does not exist.

ステップ603では、キュー制御部320が、取得したキュー格納管理テーブル309の先頭のレコードからリクエストID307と、優先順位決定キー2(308b)を取得し、優先順位決定キー2の有無を判定する(ステップ603)。キュー制御部320は、優先順位決定キー2がある場合にはステップ604へ進み、優先順位決定キー2が無い場合にはステップ610へ進む。 In step 603, the queue control unit 320 acquires the request ID 307 and the priority determination key 2 (308b) from the first record of the acquired queue storage management table 309, and determines the presence or absence of the priority determination key 2 (step 603). The queue control unit 320 proceeds to step 604 if the priority order determination key 2 exists, and proceeds to step 610 if the priority order determination key 2 does not exist.

ステップ604では、キュー制御部320が、各サービス提供サーバ104へリクエストの送信の優先順位を保つ必要がある。そのため、キュー制御部320は、優先順位制御テーブル310から情報を取得する(ステップ604)。 In step 604, the queue control unit 320 needs to maintain the priority order of request transmission to each service providing server 104. Therefore, the queue control unit 320 obtains information from the priority control table 310 (step 604).

次に、キュー制御部320は、優先順位制御テーブル310から取得するリクエストID307a(又は307b)が先頭のエントリであるか否かを判定する(ステップ605)。 Next, the queue control unit 320 determines whether the request ID 307a (or 307b) obtained from the priority control table 310 is the first entry (step 605).

キュー制御部320は、優先順位制御テーブル310の先頭のエントリのリクエストID307aが、キュー格納管理テーブル309の先頭のエントリのリクエストID307と一致していればステップ606へ進み、一致していなければ処理を終了する。 If the request ID 307a of the first entry in the priority control table 310 matches the request ID 307 of the first entry in the queue storage management table 309, the queue control unit 320 proceeds to step 606; otherwise, the process proceeds to step 606. finish.

ステップ606では、キュー制御部320は、優先順位制御テーブル310の先頭のエントリのリクエストID307aがキュー格納管理テーブル309の先頭のエントリのリクエストID307と一致しているので、キュー303に格納されているリクエストの中でリクエストID307aと一致するリクエストIDのリクエストをキュー303から取得する。 In step 606, the queue control unit 320 detects the request stored in the queue 303 because the request ID 307a of the first entry in the priority control table 310 matches the request ID 307 of the first entry in the queue storage management table 309. A request with a request ID matching the request ID 307a is acquired from the queue 303.

次に、キュー制御部320は、出力インタフェース305を介してリクエストを各サービス提供サーバ104へ送信し(ステップ607)、送信済みのリクエストID314をリクエスト取得管理テーブル313に格納する(ステップ608)。 Next, the queue control unit 320 transmits the request to each service providing server 104 via the output interface 305 (step 607), and stores the transmitted request ID 314 in the request acquisition management table 313 (step 608).

そして、キュー制御部320は、キュー格納管理テーブル309から送信済みのリクエストID307のエントリ(優先順位決定キー1(308a)、優先順位決定キー2(308b))を削除する(ステップ609)。 Then, the queue control unit 320 deletes the entry of the transmitted request ID 307 (priority determination key 1 (308a), priority determination key 2 (308b)) from the queue storage management table 309 (step 609).

次に、キュー制御部320は、送信済みのリクエストID307a(又は307b)を優先順位制御テーブル310から削除してから処理を終了する(ステップ650)。この処理については、図5Bで後述する。 Next, the queue control unit 320 deletes the transmitted request ID 307a (or 307b) from the priority control table 310, and then ends the process (step 650). This process will be described later with reference to FIG. 5B.

なお、ステップ605の判定結果がNOの場合は、取得しようとしたリクエストが優先順位制御テーブル310の先頭のエントリに格納されていないこととなり、他に優先的に送信するリクエストがあると判定されたため、その後はなにも実行せずに処理を終了する。 Note that if the determination result in step 605 is NO, it means that the request to be obtained is not stored in the first entry of the priority control table 310, and it is determined that there are other requests to be sent with priority. , then the process ends without executing anything.

また、ステップ603の判定結果がNOの場合、キュー格納管理テーブル309の先頭のエントリは、優先順位決定キー2が無く、優先順位決定キー1があるため、各サービス提供サーバ104へリクエストの送信の優先順位を保つ必要がある。そのため、優先順位制御テーブル310から情報を取得する(ステップ610)。 Further, if the determination result in step 603 is NO, the first entry in the queue storage management table 309 does not have a priority determination key 2 but has a priority determination key 1, so that requests cannot be sent to each service providing server 104. Need to maintain priorities. Therefore, information is obtained from the priority control table 310 (step 610).

次に、キュー制御部320は、優先順位制御テーブル310から取得するリクエストID307a(又は307b)が先頭のエントリであるか否かを判定する(ステップ611)。 Next, the queue control unit 320 determines whether the request ID 307a (or 307b) obtained from the priority control table 310 is the first entry (step 611).

キュー制御部320は、優先順位制御テーブル310の先頭のエントリのリクエストID307aが、キュー格納管理テーブル309の先頭のエントリのリクエストID307と一致していればステップ612へ進み、一致していなければ処理を終了する。 If the request ID 307a of the first entry in the priority control table 310 matches the request ID 307 of the first entry in the queue storage management table 309, the queue control unit 320 proceeds to step 612; otherwise, the process proceeds to step 612. finish.

ステップ612では、キュー制御部320は、優先順位制御テーブル310の先頭のエントリのリクエストID307aがキュー格納管理テーブル309の先頭のエントリのリクエストID307と一致しているので、キュー303に格納されているリクエストの中でリクエストID307aと一致するリクエストIDのリクエストをキュー303から取得する。 In step 612, the queue control unit 320 detects the request stored in the queue 303 because the request ID 307a of the first entry in the priority control table 310 matches the request ID 307 of the first entry in the queue storage management table 309. A request with a request ID matching the request ID 307a is acquired from the queue 303.

次に、キュー制御部320は、出力インタフェース305を介してリクエストを各サービス提供サーバ104へ送信し(ステップ613)、送信済みのリクエストID314をリクエスト取得管理テーブル313に格納する(ステップ614)。 Next, the queue control unit 320 transmits the request to each service providing server 104 via the output interface 305 (step 613), and stores the transmitted request ID 314 in the request acquisition management table 313 (step 614).

そして、キュー制御部320は、キュー格納管理テーブル309から送信済みのリクエストID307のエントリを削除し(ステップ615)、その後、ステップ650へ進む。 The queue control unit 320 then deletes the entry of the transmitted request ID 307 from the queue storage management table 309 (step 615), and then proceeds to step 650.

なお、ステップ611の判定結果がNOの場合は、取得しようとしたリクエストIDが先頭に格納されていないこととなり、他に優先的に送信するリクエストがあると判定されたため、その後はなにも実行せずに処理を終了する。 Note that if the determination result in step 611 is NO, it means that the request ID that you attempted to obtain is not stored at the beginning, and it is determined that there are other requests that should be sent with priority, so nothing can be done after that. Terminate processing without doing so.

また、ステップ602の判定結果がNOの場合は、優先順位決定キー1、優先順位決定キー2が無いリクエストのため、各サービス提供サーバ104へ送信するリクエストの優先順位は無い。 Further, if the determination result in step 602 is NO, the request does not have priority order determination key 1 or priority order determination key 2, so there is no priority order for the request to be transmitted to each service providing server 104.

このため、キュー制御部320は、キュー格納管理テーブル309の先頭のリクエストID307に対応するリクエストをキュー303から取得する(ステップ616)。次に、キュー制御部320は、取得したリクエストを各サービス提供サーバ104へ送信し(ステップ617)、キュー制御部320は、送信済みのリクエストIDをリクエスト取得管理テーブル313に格納する(ステップ618)。最後にキュー制御部320は、キュー格納管理テーブル309からリクエストIDのエントリを削除し(ステップ619)、その後、ステップ700へ進む。 Therefore, the queue control unit 320 obtains the request corresponding to the first request ID 307 of the queue storage management table 309 from the queue 303 (step 616). Next, the queue control unit 320 transmits the acquired request to each service providing server 104 (step 617), and the queue control unit 320 stores the transmitted request ID in the request acquisition management table 313 (step 618). . Finally, the queue control unit 320 deletes the entry of the request ID from the queue storage management table 309 (step 619), and then proceeds to step 700.

ステップ650では、図5Bで示すように、まず、ステップ651でキュー制御部320が、優先順位制御テーブル310で送信済みのリクエストID307aを含むエントリを参照し、当該エントリに他のリクエストID307bがあるか否かを判定する(ステップ652)。 In step 650, as shown in FIG. 5B, first, in step 651, the queue control unit 320 refers to the entry including the transmitted request ID 307a in the priority control table 310, and determines whether there is another request ID 307b in the entry. It is determined whether or not (step 652).

他のリクエストID307bがある場合には、ステップ653へ進んで、キュー制御部320は、送信済みのリクエストID307aのみを削除する。一方、他のリクエストID307bが無い場合には、ステップ704へ進んで、キュー制御部320は、送信済みのリクエストID307aを含むエントリを削除する。 If there is another request ID 307b, the process proceeds to step 653, and the queue control unit 320 deletes only the transmitted request ID 307a. On the other hand, if there is no other request ID 307b, the process proceeds to step 704, and the queue control unit 320 deletes the entry including the transmitted request ID 307a.

上記処理によって、キュー制御部320は、受信したリクエストを到着順でキュー303へ一時的に格納し、キュー303から取り出す際には、優先順位決定キー1(315a)と優先順位決定キー2(315b)で所定の順序でソートされた優先順位制御テーブル310の先頭のエントリから順次出力され、サービス提供サーバ104に送信される。 Through the above processing, the queue control unit 320 temporarily stores the received requests in the queue 303 in the order of arrival, and when taking out the requests from the queue 303, the priority determination key 1 (315a) and the priority determination key 2 (315b) ) are sequentially output from the first entry of the priority control table 310 sorted in a predetermined order and transmitted to the service providing server 104.

これにより、優先順位保証サーバ300は、受け付けたリクエストを優先順位決定キー1、2の順序を維持して高効率で処理することが可能となる。本実施例では、クライアントサーバ102からのリクエストには優先順位決定キー1、2が付与されていることが前提であり、ステップ610~615、616~619の優先順位決定キーが無い場合の処理は例外処理となる。 This allows the priority guarantee server 300 to process received requests with high efficiency while maintaining the order of the priority determination keys 1 and 2. In this embodiment, it is assumed that priority determination keys 1 and 2 are assigned to requests from the client server 102, and the processing in steps 610 to 615 and 616 to 619 when there is no priority determination key is This will be an exception handling.

なお、本実施例では、キュー303にリクエストを格納する例を示したが、これに限定されるものではない。キュー303に代わってメモリ32にバッファを設定し、このバッファに受信したリクエストを格納するようにしてもよい。 Note that although this embodiment shows an example in which requests are stored in the queue 303, the present invention is not limited to this. A buffer may be set in the memory 32 instead of the queue 303, and received requests may be stored in this buffer.

すなわち、優先順位保証サーバ300では、受信したリクエストを到着順に格納する領域(受信データ格納部)をメモリ32上に設定すればよく、FIFO(First In First Out)の機能が無い格納領域を使用することができる。 That is, the priority guarantee server 300 only needs to set an area (received data storage unit) on the memory 32 for storing received requests in the order of arrival, and uses a storage area that does not have a FIFO (First In First Out) function. be able to.

また、本実施例では、優先順位保証サーバ300が複数の種類の優先度を含むリクエストを受け付ける例を示したが、リクエストに限定されるものではない。例えば、優先順位保証サーバ300が、複数の種類の優先度を含むデータを受け付けて受信データ格納部へ一時的に格納し、複数の種類の優先度に応じて受信データ格納部のデータを取り出せばよい。 Further, in this embodiment, an example has been shown in which the priority guarantee server 300 receives requests including a plurality of types of priorities, but the priority level guarantee server 300 is not limited to requests. For example, if the priority guarantee server 300 accepts data including multiple types of priorities, temporarily stores it in the received data storage unit, and retrieves the data from the received data storage unit according to the multiple types of priorities. good.

図6は、本発明の実施例2を示し、データストアシステムの構成の一例を示すブロック図である。データストアシステムは拡張型メッセージキュー(Advanced Message Queue(AMQ))を含み、複数のメッセージキューサーバ730a、730bにまたがるインメモリキューを分散管理することにより、突発的なトラフィックの平準化や無停止、高速な大量データ処理システムに有効なシステムである。本実施例では拡張型メッセージキューに前記実施例1と同様のキュー制御を適用して、複数の種類の優先度を含むリクエストを効率よく処理する例を示す。 FIG. 6 is a block diagram showing an example of the configuration of a data store system according to a second embodiment of the present invention. The data store system includes an Advanced Message Queue (AMQ), and by distributing and managing in-memory queues that span multiple message queue servers 730a and 730b, it is possible to smooth out sudden traffic and to prevent uninterrupted traffic. This system is effective for high-speed, large-volume data processing systems. This embodiment shows an example of applying queue control similar to that of the first embodiment to an extended message queue to efficiently process requests including a plurality of types of priorities.

データストアシステムは、クライアント700aと、700bと、ロードバランサー720と、メッセージキューサーバ730a、730bと、ロードバランサー770、及びサービス提供サーバ780a、780bを含む。 The data store system includes clients 700a, 700b, a load balancer 720, message queue servers 730a, 730b, a load balancer 770, and service providing servers 780a, 780b.

なお、ロードバランサー720とクライアント700a、700b及びロードバランサー770とサービス提供サーバ780a、780bは、図示しないネットワークを介して接続される。また、メッセージキューサーバ730a、730bは図示しないネットワークを介して相互に接続される。 Note that the load balancer 720 and clients 700a and 700b and the load balancer 770 and service providing servers 780a and 780b are connected via a network (not shown). Furthermore, the message queue servers 730a and 730b are connected to each other via a network (not shown).

サービス提供サーバ780a、780bは、クライアント700a、700bに所定のサービスを提供するサーバである。サービス提供サーバ780aとサービス提供サーバ780bは同じ構成であり、負荷を分散している。サービス提供サーバ780aではサービス提供プログラム790aが稼働している。サービス提供サーバ780bではサービス提供プログラム790bが稼働している。 The service providing servers 780a and 780b are servers that provide predetermined services to the clients 700a and 700b. The service providing server 780a and the service providing server 780b have the same configuration and distribute the load. A service providing program 790a is running on the service providing server 780a. A service providing program 790b is running on the service providing server 780b.

クライアント700a、700bは、サービス提供サーバ780a、780bのサービスを利用するクライアントである。クライアント700aとクライアント700bは同じ構成である。クライアント700aは、クライアントプログラム710aを稼働させている。クライアント700bは、クライアントプログラム710bを稼働させている。 The clients 700a and 700b are clients that use the services of the service providing servers 780a and 780b. Client 700a and client 700b have the same configuration. The client 700a is running a client program 710a. The client 700b is running a client program 710b.

ロードバランサー720は、クライアント700a、700bのクライアントプログラム710a、710bが送信するリクエストを複数のメッセージキューサーバ730a、730bに振り分ける。 The load balancer 720 distributes requests sent by the client programs 710a and 710b of the clients 700a and 700b to the plurality of message queue servers 730a and 730b.

メッセージキューサーバ730a、730bは、クライアント700a、700bからサービス提供サーバ780a、780bへのリクエストのメッセージデータを一時的に蓄積し、メッセージキューのキュー制御を行う計算機である。メッセージキューサーバ730aとメッセージキューサーバ730bは同じ構成であり、負荷を分散している。 Message queue servers 730a and 730b are computers that temporarily store message data of requests from clients 700a and 700b to service providing servers 780a and 780b, and perform queue control of message queues. The message queue server 730a and the message queue server 730b have the same configuration, and the load is distributed.

メッセージキューサーバ730aは、データストアシステムを構成するサーバであり、ストレージデバイス760aと、分散データストア750a、及びメッセージキュー制御部740aを有している。 The message queue server 730a is a server that constitutes a data store system, and includes a storage device 760a, a distributed data store 750a, and a message queue control unit 740a.

同様に、メッセージキューサーバ730bは、データストアシステムを構成するサーバであり、ストレージデバイス760bと、分散データストア750b、及びメッセージキュー制御部740bを有している。 Similarly, the message queue server 730b is a server that constitutes a data store system, and includes a storage device 760b, a distributed data store 750b, and a message queue control unit 740b.

メッセージキュー制御部740a、740bは、図示を省略したプロセッサにてソフトウェアプログラムを実行することにより実現され、リクエスト(メッセージデータ)のキューイングを制御する。メッセージキュー制御部740a、740bの内部構成及び処理については後述する。 The message queue control units 740a and 740b are realized by executing a software program on a processor (not shown), and control queuing of requests (message data). The internal configuration and processing of the message queue control units 740a and 740b will be described later.

分散データストア750a、750bは、メッセージキューサーバ730a、730bのストレージデバイス760a、760bを共有化し、図示しないメッセージキューを相互に利用可能にする。なお、メッセージキューは共有化されたストレージデバイス760a、760bの分散データストア750a、750bに設定される。 Distributed data stores 750a, 750b share storage devices 760a, 760b of message queue servers 730a, 730b, and make message queues (not shown) mutually usable. Note that the message queue is set in the distributed data stores 750a, 750b of the shared storage devices 760a, 760b.

ロードバランサー770は、メッセージキューサーバ730a、730bのメッセージキュー制御部740a、740bが送信するメッセージデータをサービス提供サーバ780a、780bに振り分ける。 The load balancer 770 distributes message data sent by the message queue control units 740a and 740b of the message queue servers 730a and 730b to the service providing servers 780a and 780b.

なお、図6ではクライアント700a、700b、メッセージキューサーバ、サービス提供サーバをそれぞれ2台としているが、あくまで構成の一例であり、2台以上のクライアント、メッセージキューサーバ、サービス提供サーバが存在してもよい。 Note that in FIG. 6, there are two clients 700a and 700b, two message queue servers, and two service providing servers, but this is just an example of the configuration, and even if two or more clients, message queue servers, and service providing servers exist. good.

次に、メッセージキューサーバ730a、730bの詳細について説明する。本実施例ではメッセージキューサーバ730aを例に説明する。 Next, details of the message queue servers 730a and 730b will be explained. This embodiment will be explained using the message queue server 730a as an example.

メッセージキュー制御部740aは、図示しないプロセッサがソフトウェアプログラムを実行し、主記憶装置及び補助記憶装置といったハードウェアリソースを利用することにより機能する。 The message queue control unit 740a functions by a processor (not shown) executing a software program and using hardware resources such as a main storage device and an auxiliary storage device.

メッセージキュー制御部740aは、リクエスト送受信部741と、統計情報操作部742と、メッセージデータ情報サマリ操作部743と、レジストリ更新部745と、メッセージデータ情報操作部746と、メッセージデータ情報選択部749を含んでいる。 The message queue control section 740a includes a request transmission/reception section 741, a statistical information operation section 742, a message data information summary operation section 743, a registry update section 745, a message data information operation section 746, and a message data information selection section 749. Contains.

リクエスト送受信部741は、複数のクライアント700a、700b及びサービス提供サーバ780a、780bとリクエストのメッセージデータを送受信する。 The request transmitting/receiving unit 741 transmits and receives request message data to and from a plurality of clients 700a and 700b and service providing servers 780a and 780b.

統計情報操作部742は、クライアント700a、700bから受信したリクエストのメッセージデータの統計情報を算出し、レジストリ更新部745を介して統計情報レジストリ747へ保存する。メッセージデータの統計情報は、ストレージデバイス760a、760bへのメッセージデータの追加、及びストレージデバイス760a、760bからのメッセージデータの取得を集計した情報である。 The statistical information operation unit 742 calculates statistical information of message data of requests received from the clients 700a and 700b, and stores it in the statistical information registry 747 via the registry update unit 745. The statistical information of message data is information summarizing the addition of message data to the storage devices 760a and 760b and the acquisition of message data from the storage devices 760a and 760b.

また、取得先決定要求を受信したメッセージデータ情報選択部749は、統計情報レジストリ747と、メッセージデータ情報サマリレジストリ751、及びメッセージキュー設定レジストリ748にアクセスし、平均取得メッセージデータ数と、メッセージデータ情報サマリ、及びメッセージキュー制御主体数を取得する。 In addition, the message data information selection unit 749 that has received the acquisition source determination request accesses the statistical information registry 747, the message data information summary registry 751, and the message queue setting registry 748, and determines the average number of acquired message data and the message data information. Get the summary and the number of message queue control subjects.

そして、メッセージキュー設定レジストリ748には、メッセージキューに関する各種設定情報が予め登録されている。設定情報の一つとして、メッセージキュー制御主体数が登録されている。メッセージキュー制御主体数は、メッセージキューを制御する主体の個数を示す情報である。 In the message queue setting registry 748, various setting information regarding message queues is registered in advance. The number of message queue control subjects is registered as one of the setting information. The number of message queue control subjects is information indicating the number of subjects that control the message queue.

メッセージキュー制御の主体となるのは、メッセージキュー制御部740a、740bであり、言い換えれば、メッセージキューサーバ730a、730bにてプロセッサにより実行されるメッセージキュー制御プログラムと言ってもよい。 The main body of message queue control is the message queue control units 740a and 740b.In other words, it can be said to be a message queue control program executed by a processor in the message queue servers 730a and 730b.

図7は、統計情報操作部742に含まれるキュー情報管理部304の構成の一例を示す図である。 FIG. 7 is a diagram showing an example of the configuration of the queue information management section 304 included in the statistical information operation section 742.

キュー情報管理部304は、メッセージキューが分散データストア750a、750b(AMQ)によって実現された優先順位を制御するデータ構造を含む。前記実施例1の図3と同様にキュー情報管理部304は、キュー格納管理テーブル309と、優先順位制御テーブル310と、リクエスト取得管理テーブル313を含む。 The queue information manager 304 includes data structures that control the priority of message queues implemented by distributed data stores 750a, 750b (AMQ). Similar to FIG. 3 of the first embodiment, the queue information management unit 304 includes a queue storage management table 309, a priority control table 310, and a request acquisition management table 313.

キュー格納管理テーブル309は、前記実施例1の構成にメッセージキューサーバ730a、730bのアドレス800を加えた点が相違する。その他の構成については前記実施例1と同様である。本実施例のキューシステムはFIFOで制御しているが、データストアシステムを用いることにより、各リクエストIDをアドレス800で管理することが可能である。アドレス800は、メッセージキューサーバ730a、730bのIPアドレスやMACアドレスなどを用いることができる。 The queue storage management table 309 differs from the configuration of the first embodiment in that addresses 800 of the message queue servers 730a and 730b are added. The other configurations are the same as those of the first embodiment. Although the queue system of this embodiment is controlled using FIFO, each request ID can be managed using an address 800 by using a data store system. The address 800 can be the IP address or MAC address of the message queue servers 730a, 730b.

優先順位制御テーブル310は、優先順位決定キー1(308a)と、優先順位決定キー2(308b)をキーとして、それぞれの優先順位決定キーに関連付くリクエストID307a、307bをリストとして含むテーブルである。 The priority order control table 310 is a table that uses priority order determination key 1 (308a) and priority order determination key 2 (308b) as keys, and includes a list of request IDs 307a and 307b associated with each priority order determination key.

メッセージキュー制御部740aは、リクエストをメッセージキューへ格納する場合とメッセージキューから取得する場合に優先順位制御テーブル310を参照することにより、リクエストの送信順序の制御を行う。 The message queue control unit 740a controls the transmission order of requests by referring to the priority control table 310 when storing requests in the message queue and when acquiring requests from the message queue.

メッセージキューからリクエストを取得する場合、メッセージキュー制御部740aはキュー格納管理テーブル309を検索し、取得できるリクエストを抽出する。取得しようとしたリクエストID307に優先順位決定キー1(308a)、優先順位決定キー2(308b)が設定されている場合は、当該リクエストID307の取得可否を判断するために、優先順位制御テーブル310を参照する。 When acquiring requests from the message queue, the message queue control unit 740a searches the queue storage management table 309 and extracts requests that can be acquired. If priority order determination key 1 (308a) and priority order determination key 2 (308b) are set for the request ID 307 that is attempted to be obtained, the priority order control table 310 is used to determine whether or not the request ID 307 can be obtained. refer.

本実施例では、メッセージキュー制御部740aがメッセージキューからリクエストを取り出す際には、取り出すべきリクエストに対応したアドレス800を指定し、メッセージキューからリクエストを取り出すことでデータストアシステムにおいて、メッセージキューから送信するリクエストの優先順位を制御することができる。また、メッセージキュー制御部740bについても同様である。 In this embodiment, when the message queue control unit 740a takes out a request from the message queue, it specifies the address 800 corresponding to the request to be taken out, and by taking out the request from the message queue, the data store system sends the request from the message queue. You can control the priority of requests. The same applies to the message queue control unit 740b.

なお、本実施例では、メッセージキューに受信したリクエストを格納する例を示したが、これに限定されるものではない。メッセージキューに代わって分散データストア750a、750bにバッファを設定し、このバッファに受信したリクエストを格納するようにしてもよい。 Note that although this embodiment shows an example in which received requests are stored in a message queue, the present invention is not limited to this. Instead of a message queue, a buffer may be set up in the distributed data stores 750a, 750b, and received requests may be stored in this buffer.

すなわち、メッセージキューサーバ730a、730bでは、受信したリクエストを到着順に格納する領域(受信データ格納部)を分散データストア750a、750b上に設定すればよく、FIFOの機能が無い格納領域を使用することができる。 That is, in the message queue servers 730a and 730b, an area (received data storage unit) for storing received requests in the order of arrival may be set on the distributed data stores 750a and 750b, and a storage area without a FIFO function may be used. I can do it.

また、優先順位決定キー2の属性に対する優先度は、キュー303やバッファのサイズ(容量)に応じて設定することができる。例えば、キュー303のサイズが大きい場合には、上述した優先順位決定キー2の属性の優先度を設定し、キュー303のサイズが小さい場合には、メッセージキューサーバ730a、730bが受信してからサービス提供サーバ104へ出力するまでの遅延が大きい属性の優先度を高く設定することができる。 Furthermore, the priority for the attribute of the priority order determining key 2 can be set according to the size (capacity) of the queue 303 or buffer. For example, if the size of the queue 303 is large, the priority of the attribute of the priority determination key 2 described above is set, and if the size of the queue 303 is small, the message queue servers 730a and 730b receive the message and then provide service. It is possible to set a high priority for attributes that require a long delay before being output to the providing server 104.

また、優先順位決定キー2の属性に対する優先度は、受信データ格納部(キュー303やバッファ)のサイズに限定されるものではなく、メッセージキューサーバ730a、730bが受信してからサービス提供サーバ104へ出力するまでの遅延時間が大きい優先順位決定キー2の属性について優先度を高く設定してもよい。 Furthermore, the priority for the attribute of the priority order determination key 2 is not limited to the size of the received data storage unit (queue 303 or buffer), and the priority is not limited to the size of the received data storage unit (queue 303 or buffer), but after the message is received by the message queue servers 730a and 730b and sent to the service providing server 104. A high priority may be set for the attribute of the priority determination key 2 that has a long delay time until output.

図8は、本発明の実施例3を示し、優先順位保証サーバ300で行われる優先順位更新処理の一例を示すフローチャートである。本実施例では、前記実施例1に示した優先順位決定キー2の優先度を可変制御する例を示す。 FIG. 8 is a flowchart showing an example of priority update processing performed by the priority guarantee server 300 according to the third embodiment of the present invention. This embodiment shows an example in which the priority of the priority order determination key 2 shown in the first embodiment is variably controlled.

前記実施例1では、優先順位決定キー2の属性に対する優先度(優先順位)が、ブロンズ会員、シルバー会員及びゴールド会員となるにつれて優先度が順次高くなるように固定されていた。一時的にシルバー会員(又はブロンズ会員)からのリクエストが増大した場合、常にゴールド会員を優先していると、キュー303を効率よく運用できなくなる恐れがある。 In the first embodiment, the priority (priority order) for the attribute of the priority order determination key 2 is fixed so that the priority becomes higher as the member becomes a bronze member, a silver member, and a gold member. If the number of requests from silver members (or bronze members) increases temporarily, if priority is always given to gold members, there is a risk that the queue 303 will not be able to be operated efficiently.

そこで、本実施例では、優先順位決定キー2の属性毎のリクエストの数に応じて優先順位を動的に制御する例を示す。 Therefore, in this embodiment, an example will be shown in which the priority order is dynamically controlled according to the number of requests for each attribute of the priority order determination key 2.

図8の処理は所定の周期で繰り返して実行される。まず、キュー制御部320は、優先順位決定キー2の属性毎に予め設定された閾値Thを設定する(ステップ620)。閾値Thは、例えば、キュー303に占める優先順位決定キー2の属性毎のリクエストの比率とし、閾値Th=99%に設定する。 The process in FIG. 8 is repeatedly executed at a predetermined period. First, the queue control unit 320 sets a preset threshold Th for each attribute of the priority order determining key 2 (step 620). The threshold Th is, for example, the ratio of requests for each attribute of the priority determining key 2 to the queue 303, and is set to 99%.

キュー制御部320は、優先順位決定キー2の属性(優先度)毎にキュー303内のリクエストの数を算出し、優先順位決定キー2の属性毎のリクエスト数と、キュー303の最大格納数との比率(占有率)を算出する(ステップ621)。 The queue control unit 320 calculates the number of requests in the queue 303 for each attribute (priority) of the priority determination key 2, and calculates the number of requests for each attribute of the priority determination key 2 and the maximum storage number of the queue 303. The ratio (occupancy) is calculated (step 621).

次に、キュー制御部320は、属性毎の占有率のうち、閾値Thを超えた属性(優先度)があるか否かを判定する(ステップ622)。占有率が閾値Thを超えた属性がある場合にはステップ623へ進み、そうでない場合には処理を終了する。 Next, the queue control unit 320 determines whether there is an attribute (priority) that exceeds the threshold Th among the occupancy rates for each attribute (step 622). If there is an attribute whose occupancy rate exceeds the threshold Th, the process proceeds to step 623; otherwise, the process ends.

ステップ623では、キュー制御部320は、占有率が閾値Thを超えた属性の優先度を増大させる。前記実施例1と同様に、優先順位決定キー2の属性に対する優先度が、ブロンズ会員の場合は優先度=1、シルバー会員の場合は優先度=2、ゴールド会員の場合は、優先度=3としていた場合、キュー制御部320は、閾値Thを超えた属性の優先度に「3」を加算する。 In step 623, the queue control unit 320 increases the priority of the attribute whose occupancy rate exceeds the threshold Th. Similar to the first embodiment, the priority for the attribute of the priority order determination key 2 is priority = 1 for bronze members, priority = 2 for silver members, and priority = 3 for gold members. If so, the queue control unit 320 adds "3" to the priority of the attribute that exceeds the threshold Th.

そして、ステップ624では、キュー制御部320が、変更された優先度で優先順位制御テーブル310をソートして更新する。 Then, in step 624, the queue control unit 320 sorts and updates the priority control table 310 with the changed priorities.

上記処理によって、優先度が低いリクエストが一時的に急増した場合、優先度を動的に増大させることで、キュー303を効率よく利用することが可能となる。また、キュー制御部320は、占有率が閾値Th以下になると属性に対応する優先度を元の値に戻すようにしてもよい。 Through the above processing, when the number of requests with low priority temporarily increases, the priority can be dynamically increased, thereby making it possible to use the queue 303 efficiently. Furthermore, the queue control unit 320 may return the priority corresponding to the attribute to its original value when the occupancy rate becomes equal to or less than the threshold Th.

図9は、本発明の実施例3を示し、優先順位保証サーバ300で行われるリクエスト出力処理の一例を示すフローチャートである。本実施例では、前記実施例1の優先度に代わって、優先順位決定キー2の属性に対する処理個数を設定し、優先度が高い属性のリクエストが大量に送信された場合でも、優先度が低い属性のリクエストが殆ど処理されなくなるのを防止する例を示す。 FIG. 9 is a flowchart showing an example of request output processing performed by the priority guarantee server 300, according to the third embodiment of the present invention. In this embodiment, instead of the priority of the first embodiment, a processing number is set for the attribute of priority determination key 2, so that even if a large number of requests for an attribute with a high priority are sent, a request with a low priority is set. An example of preventing requests for attributes from being processed rarely is shown below.

図9の処理は、前記実施例1の図5A、図5Bに代わって実施される。本実施例では、優先順位決定キー2の属性に対する処理個数として、ゴールド会員の処理個数N1=7個、シルバー会員の処理個数N2=2個、ブロンズ会員の処理個数N3=1個とする例を示すが、これに限定されるものではない。例えば、ゴールド会員、シルバー会員、ブロンズ会員のリクエストを処理する比率が7:2:1であってもよい。 The process in FIG. 9 is performed in place of FIGS. 5A and 5B of the first embodiment. In this embodiment, as the number of items to be processed for the attribute of priority determination key 2, the number of items to be processed for gold members N1 = 7 items, the number of items to be processed for silver members N2 = 2 items, and the number of items to be processed for bronze members N3 = 1 item. shown, but not limited to. For example, the ratio of processing requests for gold members, silver members, and bronze members may be 7:2:1.

キュー制御部320は、優先順位制御テーブル310の先頭からN1個のゴールド会員のリクエストID307a(307b)を選択する(ステップ630)。なお、キュー制御部320は、キュー303内のゴールド会員のリクエストID307aがN1個未満の場合は、ゴールド会員の全てを選択する。 The queue control unit 320 selects N1 gold member request IDs 307a (307b) from the top of the priority control table 310 (step 630). Note that if the number of request IDs 307a of gold members in the queue 303 is less than N1, the queue control unit 320 selects all the gold members.

次に、キュー制御部320は、選択したN1個のゴールド会員のリクエストID307aの先頭から順にリクエストを送信する(ステップ631)。すなわち、キュー制御部320は、リクエストID307aに対応するリクエストをキュー303から取り出し、出力インタフェース305を介してサービス提供サーバ104へ送信する。 Next, the queue control unit 320 transmits requests in order from the beginning of the request ID 307a of the selected N1 gold members (step 631). That is, the queue control unit 320 takes out the request corresponding to the request ID 307a from the queue 303 and transmits it to the service providing server 104 via the output interface 305.

キュー制御部320は、送信済みのリクエストID307aをリクエスト取得管理テーブル313に格納し、送信済みのリクエストID307aを優先順位制御テーブル310から削除し、リクエストID307aに対応するキュー格納管理テーブル309のリクエストID307のエントリを削除する(ステップ632)。なお、キュー制御部320は、優先順位制御テーブル310で送信済みのリクエストID307aを含むエントリに他のリクエストID307bが格納されていなければ、当該エントリを削除する。 The queue control unit 320 stores the transmitted request ID 307a in the request acquisition management table 313, deletes the transmitted request ID 307a from the priority control table 310, and deletes the transmitted request ID 307a from the queue storage management table 309 corresponding to the request ID 307a. The entry is deleted (step 632). Note that, if no other request ID 307b is stored in the entry including the transmitted request ID 307a in the priority order control table 310, the queue control unit 320 deletes the entry.

キュー制御部320は、ゴールド会員の選択中のリクエストID307aに未送信のものがあるか否かを判定する(ステップ633)。未送信のリクエストID307aがあればステップ631に戻って上記処理を繰り返す。一方、未送信のリクエストID307aが無ければ、ステップ634へ進む。 The queue control unit 320 determines whether or not there is an unsent request ID 307a selected by the gold member (step 633). If there is an unsent request ID 307a, the process returns to step 631 and repeats the above process. On the other hand, if there is no unsent request ID 307a, the process advances to step 634.

キュー制御部320は、優先順位制御テーブル310の先頭からN2個のシルバー会員のリクエストID307a(307b)を選択する(ステップ634)。なお、キュー制御部320は、キュー303内のシルバー会員のリクエストID307aがN2個未満の場合は、シルバー会員の全てを選択する。 The queue control unit 320 selects N2 silver member request IDs 307a (307b) from the top of the priority control table 310 (step 634). Note that if the number of request IDs 307a of silver members in the queue 303 is less than N2, the queue control unit 320 selects all the silver members.

次に、キュー制御部320は、選択したN2個のリクエストID307aの先頭から順にリクエストを送信する(ステップ635)。すなわち、キュー制御部320は、リクエストID307aに対応するリクエストをキュー303から取り出し、出力インタフェース305を介してサービス提供サーバ104へ送信する。 Next, the queue control unit 320 transmits requests in order from the beginning of the selected N2 request IDs 307a (step 635). That is, the queue control unit 320 takes out the request corresponding to the request ID 307a from the queue 303 and transmits it to the service providing server 104 via the output interface 305.

キュー制御部320は、送信済みのリクエストID307aをリクエスト取得管理テーブル313に格納し、送信済みのリクエストID307aを優先順位制御テーブル310から削除し、リクエストID307aに対応するキュー格納管理テーブル309のリクエストID307のエントリを削除する(ステップ636)。なお、キュー制御部320は、優先順位制御テーブル310で送信済みのリクエストID307aを含むエントリに他のリクエストID307bが格納されていなければ、当該エントリを削除する。 The queue control unit 320 stores the transmitted request ID 307a in the request acquisition management table 313, deletes the transmitted request ID 307a from the priority control table 310, and deletes the transmitted request ID 307a from the queue storage management table 309 corresponding to the request ID 307a. The entry is deleted (step 636). Note that, if no other request ID 307b is stored in the entry including the transmitted request ID 307a in the priority order control table 310, the queue control unit 320 deletes the entry.

キュー制御部320は、シルバー会員の選択中のリクエストID307aに未送信のものがあるか否かを判定する(ステップ637)。未送信のリクエストID307aがあればステップ635に戻って上記処理を繰り返す。一方、未送信のリクエストID307aが無ければ、ステップ638へ進む。 The queue control unit 320 determines whether or not there is an unsent request ID 307a selected by the silver member (step 637). If there is an unsent request ID 307a, the process returns to step 635 and repeats the above process. On the other hand, if there is no unsent request ID 307a, the process advances to step 638.

キュー制御部320は、優先順位制御テーブル310の先頭からN3個のブロンズ会員のリクエストID307a(307b)を選択する(ステップ638)。なお、キュー制御部320は、キュー303内のブロンズ会員のリクエストID307aがN3個未満の場合は、ブロンズ会員の全てを選択する。 The queue control unit 320 selects N3 bronze member request IDs 307a (307b) from the top of the priority control table 310 (step 638). Note that, if the number of request IDs 307a of bronze members in the queue 303 is less than N3, the queue control unit 320 selects all of the bronze members.

次に、キュー制御部320は、選択したN3個のリクエストID307aの先頭から順にリクエストを送信する(ステップ639)。すなわち、キュー制御部320は、リクエストID307aに対応するリクエストをキュー303から取り出し、出力インタフェース305を介してサービス提供サーバ104へ送信する。 Next, the queue control unit 320 transmits requests in order from the beginning of the selected N3 request IDs 307a (step 639). That is, the queue control unit 320 takes out the request corresponding to the request ID 307a from the queue 303 and transmits it to the service providing server 104 via the output interface 305.

キュー制御部320は、送信済みのリクエストID307aをリクエスト取得管理テーブル313に格納し、送信済みのリクエストID307aを優先順位制御テーブル310から削除し、リクエストID307aに対応するキュー格納管理テーブル309のリクエストID307のエントリを削除する(ステップ640)。なお、キュー制御部320は、優先順位制御テーブル310で送信済みのリクエストID307aを含むエントリに他のリクエストID307bが格納されていなければ、当該エントリを削除する。 The queue control unit 320 stores the transmitted request ID 307a in the request acquisition management table 313, deletes the transmitted request ID 307a from the priority control table 310, and deletes the transmitted request ID 307a from the queue storage management table 309 corresponding to the request ID 307a. The entry is deleted (step 640). Note that, if no other request ID 307b is stored in the entry including the transmitted request ID 307a in the priority order control table 310, the queue control unit 320 deletes the entry.

キュー制御部320は、ブロンズ会員の選択中のリクエストID307aに未送信のものがあるか否かを判定する(ステップ641)。未送信のリクエストID307aがあればステップ639に戻って上記処理を繰り返す。一方、未送信のリクエストID307aが無ければ処理を終了する。 The queue control unit 320 determines whether or not there is an unsent request ID 307a selected by the bronze member (step 641). If there is an unsent request ID 307a, the process returns to step 639 and repeats the above process. On the other hand, if there is no unsent request ID 307a, the process ends.

上記処理によって、キュー303に格納された優先順位決定キー2の各属性のリクエストは、所定の比率でサービス提供サーバ104へ出力され、優先度が高い属性のリクエストが大量に送信された場合でも、優先度が低い属性のリクエストを確実に処理することが可能となる。 Through the above processing, requests for each attribute of the priority determination key 2 stored in the queue 303 are output to the service providing server 104 at a predetermined ratio, and even if a large number of requests for attributes with high priority are sent, It becomes possible to reliably process requests with low priority attributes.

なお、本実施例の処理は、N1+N2+N3のリクエストを処理するので、キュー303に格納されたリクエストが所定の数、又は所定の比率となる度に繰り返して実行するようにしてもよい。
<結び>
Note that since the process of this embodiment processes N1+N2+N3 requests, it may be repeatedly executed every time the number of requests stored in the queue 303 reaches a predetermined number or a predetermined ratio.
<Conclusion>

以上のように、上記実施例1~4の優先順位保証サーバ300及びデータストアシステムは、以下のような構成とすることができる。 As described above, the priority guarantee server 300 and data store system of the first to fourth embodiments described above can have the following configuration.

(1)プロセッサ(31)と、メモリ(32)と、通信装置(34)を含む計算機(優先順位保証サーバ300)であって、前記通信装置(34)が受信した複数の優先度(優先順位決定キー1、2(308a、308b))を含むデータ(リクエスト)を制御する制御部(キュー制御部320)を有し、前記制御部(320)は、前記通信装置(34)が受信した複数の優先度を含むデータを、到着順で受信データ格納部(キュー303)に格納し、前記受信データ格納部(303)から前記データを取り出す際には、前記複数の優先度(308a、308b)に基づいて取り出す順序を変更する。 (1) A computer (priority guarantee server 300) including a processor (31), a memory (32), and a communication device (34), wherein the computer (priority guarantee server 300) includes a plurality of priorities (priority It has a control unit (queue control unit 320) that controls data (requests) including decision keys 1 and 2 (308a, 308b), and the control unit (320) is configured to control data (queue control unit 320) that controls data (requests) including decision keys 1 and 2 (308a, 308b), The data including the priorities (308a, 308b) are stored in the received data storage unit (queue 303) in the order of arrival, and when the data is retrieved from the received data storage unit (303), the data including the priorities (308a, 308b) Change the order of retrieval based on

上記構成により、キュー制御部320は、受信したリクエストを到着順でキュー303へ一時的に格納し、キュー303から取り出す際には、優先順位決定キー1(315a)と優先順位決定キー2(315b)で所定の順序でソートされた優先順位制御テーブル310の先頭のエントリから順次出力され、サービス提供サーバ104に送信される。これにより、複数の優先度を有するリクエストを高効率で処理することが可能となる。 With the above configuration, the queue control unit 320 temporarily stores received requests in the queue 303 in the order of arrival, and when taking out requests from the queue 303, the priority determination key 1 (315a) and the priority determination key 2 (315b) ) are sequentially output from the first entry of the priority control table 310 sorted in a predetermined order and transmitted to the service providing server 104. This makes it possible to process requests with multiple priorities with high efficiency.

(2)上記(1)に記載の計算機(300)であって、前記複数の優先度(308a、308b)は、前記受信データ格納部(303)の容量に基づいて設定される。 (2) In the computer (300) according to (1) above, the plurality of priorities (308a, 308b) are set based on the capacity of the received data storage section (303).

上記構成により、例えば、キュー303のサイズが大きい場合には、予め設定された優先順位決定キー2の属性の優先度を設定し、キュー303のサイズが小さい場合には、優先順位保証サーバ300が受信してからサービス提供サーバ104へ出力するまでの遅延が大きい属性の優先度を高く設定することができる。 With the above configuration, for example, when the size of the queue 303 is large, the priority of the attribute of the preset priority determination key 2 is set, and when the size of the queue 303 is small, the priority guarantee server 300 It is possible to set a high priority to an attribute that requires a long delay from receiving to outputting to the service providing server 104.

(3)上記(1)に記載の計算機(300)であって、前記制御部(320)は、前記複数の優先度(308a、308b)に応じた比率を有し、前記受信データ格納部(303)から前記データを取り出す際には、前記比率に基づいて取り出す順序を変更する。 (3) The computer (300) according to (1) above, wherein the control unit (320) has a ratio according to the plurality of priorities (308a, 308b), and the received data storage unit ( 303), the order of extraction is changed based on the ratio.

上記構成により、キュー303に格納された優先順位決定キー2の各属性のリクエストは、所定の比率で出力され、優先度が高い属性のリクエストが大量に送信された場合でも、優先度が低い属性のリクエストを確実に処理することが可能となる。 With the above configuration, requests for each attribute of the priority determination key 2 stored in the queue 303 are output at a predetermined ratio, and even if a large number of requests for attributes with high priority are sent, requests for attributes with low priority are output. requests can be reliably processed.

(4)上記(1)に記載の計算機(300)であって、前記制御部(320)は、前記受信したデータから複数の優先度(308a、308b)を取得して、前記受信したデータに識別子(リクエストID307)を設定し、前記複数の優先度(308a、308b)をキーとして前記データの識別子(307)を前記複数の優先度(308a、308b)に関連付けて優先順位制御情報(優先順位制御テーブル310)に格納し、前記複数の優先度(308a、308b)に予め設定した順序で前記優先順位制御情報(310)をソートする。 (4) In the computer (300) according to (1) above, the control unit (320) acquires a plurality of priorities (308a, 308b) from the received data and applies the received data to the computer (300). An identifier (request ID 307) is set, the identifier (307) of the data is associated with the plurality of priorities (308a, 308b) using the plurality of priorities (308a, 308b) as keys, and priority control information (priority order control table 310), and the priority control information (310) is sorted in the order preset for the plurality of priorities (308a, 308b).

上記構成により、リクエストを格納する際には、優先順位決定キー1、2に設定された順序で優先順位制御テーブル310がソートされてリクエストID307の順序が更新される。これにより、優先順位保証サーバ300は、受け付けたリクエストを優先順位決定キー1、2の順序を維持して高効率で処理することが可能となる。 With the above configuration, when storing requests, the priority control table 310 is sorted in the order set in the priority determination keys 1 and 2, and the order of the request IDs 307 is updated. This allows the priority guarantee server 300 to process received requests with high efficiency while maintaining the order of the priority determination keys 1 and 2.

(5)上記(4)に記載の計算機(300)であって、前記制御部(320)は、前記受信したデータの識別子(307)に前記複数の優先度(308a、308b)を関連付けて、前記識別子(307)をキーとしてデータ管理情報(キュー格納管理テーブル309)に前記データの到着順で格納する。 (5) In the computer (300) according to (4) above, the control unit (320) associates the plurality of priorities (308a, 308b) with the identifier (307) of the received data, Using the identifier (307) as a key, the data is stored in the data management information (queue storage management table 309) in the order of arrival of the data.

上記構成により、キュー格納管理テーブル309では、リクエストID307と優先順位決定キー1、2を対応付けて到着順で管理することが可能となる。 With the above configuration, in the queue storage management table 309, it is possible to associate the request ID 307 with the priority order determination keys 1 and 2 and manage them in the order of arrival.

(6)上記(1)に記載の計算機(300)であって、前記制御部(320)は、前記受信データ格納部(303)内のデータの数を前記優先度(308a、308b)毎に計数し、前記データの数が予め設定した閾値を超えた優先度(308a、308b)の優先順位を変更する。 (6) In the computer (300) according to (1) above, the control unit (320) controls the number of data in the received data storage unit (303) for each priority (308a, 308b). The priority order of the priority data (308a, 308b) whose number of data exceeds a preset threshold is changed.

上記構成により、優先度が低いリクエストが一時的に急増した場合、優先度を動的に増大させることで、キュー303を効率よく利用することが可能となる。 With the above configuration, when the number of low-priority requests temporarily increases, the queue 303 can be used efficiently by dynamically increasing the priority.

なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。 Note that the present invention is not limited to the above-described embodiments, and includes various modifications. For example, the embodiments described above are described in detail to explain the present invention in an easy-to-understand manner, and the present invention is not necessarily limited to having all the configurations described. Furthermore, it is possible to replace a part of the configuration of one embodiment with the configuration of another embodiment, and it is also possible to add the configuration of another embodiment to the configuration of one embodiment. Furthermore, addition, deletion, or replacement of other configurations to some of the configurations of each embodiment may be applied singly or in combination.

また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、又は、ICカード、SDカード、DVD等の記録媒体に置くことができる。 Further, each of the above-mentioned configurations, functions, processing units, processing means, etc. may be partially or entirely realized in hardware by designing, for example, an integrated circuit. Moreover, each of the above-mentioned configurations, functions, etc. may be realized by software by a processor interpreting and executing a program that realizes each function. Information such as programs, tables, files, etc. that implement each function can be stored in a memory, a recording device such as a hard disk, an SSD (Solid State Drive), or a recording medium such as an IC card, an SD card, or a DVD.

また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。 Further, the control lines and information lines are shown to be necessary for explanation purposes, and not all control lines and information lines are necessarily shown in the product. In reality, almost all components may be considered to be interconnected.

31 プロセッサ
32 メモリ
34 通信装置
303 キュー
307 リクエストID
308a、308b 優先順位決定キー1、2
309 キュー格納管理テーブル
310 優先順位制御テーブル
320 キュー制御部
313 リクエスト取得管理テーブル
740a、740b メッセージキューサーバ
31 Processor 32 Memory 34 Communication device 303 Queue 307 Request ID
308a, 308b Priority determination keys 1, 2
309 Queue storage management table 310 Priority control table 320 Queue control unit 313 Request acquisition management table 740a, 740b Message queue server

Claims (5)

プロセッサと、メモリと、通信装置を含む計算機であって、
前記通信装置が受信した複数の優先度として第1優先順位決定キーと第2優先順位決定キーを含むデータを制御する制御部と、
前記データを到着順で格納する受信データ格納部と、
前記データの前記第1優先順位決定キーと第2優先順位決定キーと前記データの識別子を対応付けて管理する格納管理テーブルと、
1以上の前記データの識別子を、前記第1優先順位決定キーと第2優先順位決定キーの優先度に関連付けて格納する優先順位制御情報テーブルと、
を有し、
前記制御部は、
前記通信装置が受信した複数の優先度を含むデータを、到着順で前記受信データ格納部に格納し、
前記受信したデータから複数の優先度として第1優先順位決定キーと第2優先順位決定キーを取得して前記受信したデータに識別子を設定して前記格納管理テーブルへ格納する際には、
前記第1優先順位決定キーと第2優先順位決定キーが優先順位制御テーブルに登録済みの場合には第1優先順位決定キーと第2優先順位決定キーのエントリに前記データの識別子を格納管理テーブルへ追加し、
第1優先順位決定キーのみが前記優先順位制御テーブルに登録済みの場合には第1の優先順位決定キーと前記データの識別子を格納管理テーブルへ追加し、
第1優先順位決定キーが無ければ前記データの識別子のみを格納管理テーブルへ格納し、 前記第1優先順位決定キーと第2優先順位決定キーと前記データの識別子を優先順位制御テーブルへ格納する際には、
第1優先順位決定キーと第2優先順位決定キーが当該優先順位制御テーブルに登録済みの場合は、第1優先順位決定キーと第2優先順位決定キーのエントリに前記データの識別子を優先順位制御テーブルへ追加し、
第1優先順位決定キーのみが当該優先順位制御テーブルに登録済みの場合は、第2優先順位決定キーと前記データの識別子を優先順位制御テーブルへ格納し、
前記受信データ格納部から前記データを取り出す際には、
前記第1優先順位決定キーと第2優先順位決定キーが格納管理テーブルに登録済みで、かつ、前記優先順位制御テーブルの第1優先順位決定キーと第2優先順位決定キーのエントリの前記識別子と、格納管理テーブルの第1優先順位決定キーと第2優先順位決定キーのエントリの前記識別子が一致していれば当該識別子に対応するデータを前記受信データ格納部から取得して送信し、
前記優先順位制御テーブルの第1優先順位決定キーと第2優先順位決定キーの前記識別子と、前記格納管理テーブルの第1優先順位決定キーと第2優先順位決定キーのエントリの前記識別子が一致しない場合には前記識別子に対応するデータの送信を保留することを特徴とする計算機。
A computer including a processor, a memory, and a communication device,
a control unit that controls data including a first priority determination key and a second priority determination key as the plurality of priorities received by the communication device ;
a received data storage unit that stores the data in the order of arrival;
a storage management table that manages the first priority determination key and second priority determination key of the data in association with the identifier of the data;
a priority control information table that stores one or more identifiers of the data in association with the priorities of the first priority determination key and the second priority determination key;
has
The control unit includes:
storing data including a plurality of priorities received by the communication device in the received data storage unit in the order of arrival;
When acquiring a first priority determination key and a second priority determination key as a plurality of priorities from the received data, setting an identifier to the received data, and storing it in the storage management table,
If the first priority determination key and the second priority determination key are already registered in the priority control table, the identifier of the data is stored in the entry of the first priority determination key and the second priority determination key in the management table. Add to
If only the first priority determination key has been registered in the priority control table, add the first priority determination key and the data identifier to the storage management table;
If there is no first priority determination key, only the identifier of the data is stored in the storage management table, and when storing the first priority determination key, the second priority determination key, and the identifier of the data in the priority control table. for,
If the first priority determination key and the second priority determination key have already been registered in the priority control table, the identifier of the data is assigned to the entry of the first priority determination key and the second priority determination key for priority control. add to table,
If only the first priority determination key has been registered in the priority control table, store the second priority determination key and the identifier of the data in the priority control table;
When retrieving the data from the received data storage section,
The first priority determination key and the second priority determination key have been registered in the storage management table, and the identifiers of the entries for the first priority determination key and the second priority determination key in the priority control table , if the identifiers of the entries of the first priority determination key and the second priority determination key of the storage management table match, acquiring data corresponding to the identifier from the received data storage unit and transmitting it;
The identifiers of the first priority determination key and second priority determination key of the priority control table do not match the identifiers of the entries of the first priority determination key and second priority determination key of the storage management table. A computer characterized in that, in this case, transmission of data corresponding to the identifier is suspended .
請求項1に記載の計算機であって、 The computer according to claim 1,
前記制御部が前記受信データ格納部から前記データを取り出す際には、 When the control unit retrieves the data from the received data storage unit,
前記第2優先順位決定キーが前記格納管理テーブルに登録済みでない場合には、前記優先順位制御テーブルの先頭のエントリの識別子が、格納管理テーブルの先頭のエントリの識別子と一致していれば送信することを特徴とする計算機。 If the second priority determination key has not been registered in the storage management table, transmit if the identifier of the first entry in the priority control table matches the identifier of the first entry in the storage management table. A calculator characterized by:
プロセッサと、メモリと、通信装置を含む計算機が受信したデータを制御するデータ制御方法であって、
前記計算機は、前記通信装置で受信した複数の優先度として第1優先順位決定キーと第2優先順位決定キーを含むデータを、受信データ格納部へ到着順で格納するデータ格納ステップと、
前記計算機は、前記受信したデータから複数の優先度として第1優先順位決定キーと第2優先順位決定キーを取得して前記受信したデータに識別子を設定して格納管理テーブルへ格納する格納管理テーブル格納ステップと、
前記計算機は、前記第1優先順位決定キーと第2優先順位決定キーと前記データの識別子を優先順位制御テーブルへ格納する優先順位制御テーブル格納ステップと、
前記計算機は、前記受信データ格納部から前記データを取り出すータ出力ステップと、
を含み
前記格納管理テーブル格納ステップは、
前記第1優先順位決定キーと第2優先順位決定キーが優先順位制御テーブルに登録済みの場合には第1優先順位決定キーと第2優先順位決定キーのエントリに前記データの識別子を格納管理テーブルへ追加し、
第1優先順位決定キーのみが前記優先順位制御テーブルに登録済みの場合には第1の優先順位決定キーと前記データの識別子を格納管理テーブルへ追加し、
第1優先順位決定キーが無ければ前記データの識別子のみを格納管理テーブルへ格納し、
前記優先順位制御テーブル格納ステップ
第1優先順位決定キーと第2優先順位決定キーが当該優先順位制御テーブルに登録済みの場合は、第1優先順位決定キーと第2優先順位決定キーのエントリに前記データの識別子を優先順位制御テーブルへ追加し、
第1優先順位決定キーのみが当該優先順位制御テーブルに登録済みの場合は、第2優先順位決定キーと前記データの識別子を優先順位制御テーブルへ格納し、
前記データ出力ステップは、
前記第1優先順位決定キーと第2優先順位決定キーが格納管理テーブルに登録済みで、かつ、前記優先順位制御テーブルの第1優先順位決定キーと第2優先順位決定キーのエントリの前記識別子と、格納管理テーブルの第1優先順位決定キーと第2優先順位決定キーのエントリの前記識別子が一致していれば当該識別子に対応するデータを前記受信データ格納部から取得して送信し、
前記優先順位制御テーブルの第1優先順位決定キーと第2優先順位決定キーの前記識別子と、前記格納管理テーブルの第1優先順位決定キーと第2優先順位決定キーのエントリの前記識別子が一致しない場合には前記識別子に対応するデータの送信を保留することを特徴とするデータ制御方法。
A data control method for controlling data received by a computer including a processor, a memory, and a communication device, the method comprising:
a data storage step in which the computer stores data including a first priority determination key and a second priority determination key as the plurality of priorities received by the communication device in the received data storage unit in the order of arrival;
The computer acquires a first priority determination key and a second priority determination key as a plurality of priorities from the received data, sets an identifier to the received data, and stores the same in a storage management table. a storage step;
a priority control table storage step in which the computer stores the first priority determination key, the second priority determination key, and the identifier of the data in a priority control table;
a data output step in which the computer retrieves the data from the received data storage unit;
including ;
The storing management table storing step includes:
If the first priority determination key and the second priority determination key are already registered in the priority control table, the identifier of the data is stored in the entry of the first priority determination key and the second priority determination key in the management table. Add to
If only the first priority determination key has been registered in the priority control table, add the first priority determination key and the data identifier to the storage management table;
If there is no first priority determination key, only the identifier of the data is stored in the storage management table,
The step of storing the priority control table
If the first priority determination key and the second priority determination key have already been registered in the priority control table, the identifier of the data is assigned to the entry of the first priority determination key and the second priority determination key for priority control. add to table,
If only the first priority determination key has been registered in the priority control table, store the second priority determination key and the identifier of the data in the priority control table;
The data output step includes:
The first priority determination key and the second priority determination key have been registered in the storage management table, and the identifiers of the entries for the first priority determination key and the second priority determination key in the priority control table , if the identifiers of the entries of the first priority determination key and the second priority determination key of the storage management table match, acquiring data corresponding to the identifier from the received data storage unit and transmitting it;
The identifiers of the first priority determination key and second priority determination key of the priority control table do not match the identifiers of the entries of the first priority determination key and second priority determination key of the storage management table. A data control method characterized by suspending transmission of data corresponding to the identifier in the case where the identifier is the identifier .
請求項3に記載のデータ制御方法であって、 4. The data control method according to claim 3,
前記データ出力ステップは、The data output step includes:
前記第2優先順位決定キーが前記格納管理テーブルに登録済みでない場合には、前記優先順位制御テーブルの先頭のエントリの識別子が、格納管理テーブルの先頭のエントリの識別子と一致していれば送信することを特徴とするデータ制御方法。 If the second priority determination key has not been registered in the storage management table, transmit if the identifier of the first entry in the priority control table matches the identifier of the first entry in the storage management table. A data control method characterized by:
プロセッサと、メモリと、通信装置を含むメッセージ制御サーバを複数有するデータストアシステムであって、
前記メッセージ制御サーバは、
前記複数のメッセージ制御サーバで共有された受信データ格納部と、
前記通信装置が受信した複数の優先度として第1優先順位決定キーと第2優先順位決定キーを含むデータを制御する制御部と、
前記データの前記第1優先順位決定キーと第2優先順位決定キーと前記データの識別子を対応付けて管理する格納管理テーブルと、
1以上の前記データの識別子を、前記第1優先順位決定キーと第2優先順位決定キーの優先度に関連付けて格納する優先順位制御情報テーブルと、
を有し、
前記制御部は、
前記通信装置が受信した複数の優先度を含むデータを、到着順で前記受信データ格納部に格納し、
前記受信したデータから複数の優先度として第1優先順位決定キーと第2優先順位決定キーを取得して前記受信したデータに識別子を設定して前記格納管理テーブルへ格納する際には、
前記第1優先順位決定キーと第2優先順位決定キーが優先順位制御テーブルに登録済みの場合には第1優先順位決定キーと第2優先順位決定キーのエントリに前記データの識別子を格納管理テーブルへ追加し、
第1優先順位決定キーのみが前記優先順位制御テーブルに登録済みの場合には第1の優先順位決定キーと前記データの識別子を格納管理テーブルへ追加し、
第1優先順位決定キーが無ければ前記データの識別子のみを格納管理テーブルへ格納し、
前記第1優先順位決定キーと第2優先順位決定キーと前記データの識別子を優先順位制御テーブルへ格納する際には、
第1優先順位決定キーと第2優先順位決定キーが当該優先順位制御テーブルに登録済みの場合は、第1優先順位決定キーと第2優先順位決定キーのエントリに前記データの識別子を優先順位制御テーブルへ追加し、
第1優先順位決定キーのみが当該優先順位制御テーブルに登録済みの場合は、第2優先順位決定キーと前記データの識別子を優先順位制御テーブルへ格納し、
前記受信データ格納部から前記データを取り出す際には、
前記第1優先順位決定キーと第2優先順位決定キーが格納管理テーブルに登録済みで、かつ、前記優先順位制御テーブルの第1優先順位決定キーと第2優先順位決定キーのエントリの前記識別子と、格納管理テーブルの第1優先順位決定キーと第2優先順位決定キーのエントリの前記識別子が一致していれば当該識別子に対応するデータを前記受信データ格納部から取得して送信し、
前記優先順位制御テーブルの第1優先順位決定キーと第2優先順位決定キーの前記識別子と、前記格納管理テーブルの第1優先順位決定キーと第2優先順位決定キーのエントリの前記識別子が一致しない場合には前記識別子に対応するデータの送信を保留することを特徴とするデータストアシステム。
A data store system having a plurality of message control servers including a processor, a memory, and a communication device,
The message control server includes:
a received data storage unit shared by the plurality of message control servers;
a control unit that controls data including a first priority determination key and a second priority determination key as the plurality of priorities received by the communication device;
a storage management table that manages the first priority determination key and second priority determination key of the data in association with the identifier of the data;
a priority control information table that stores one or more identifiers of the data in association with the priorities of the first priority determination key and the second priority determination key;
has
The control unit includes:
storing data including a plurality of priorities received by the communication device in the received data storage unit in the order of arrival;
When acquiring a first priority determination key and a second priority determination key as a plurality of priorities from the received data, setting an identifier to the received data, and storing it in the storage management table,
If the first priority determination key and the second priority determination key are already registered in the priority control table, the identifier of the data is stored in the entry of the first priority determination key and the second priority determination key in the management table. Add to
If only the first priority determination key has been registered in the priority control table, add the first priority determination key and the data identifier to the storage management table;
If there is no first priority determination key, only the identifier of the data is stored in the storage management table,
When storing the first priority determination key, the second priority determination key, and the data identifier in the priority control table,
If the first priority determination key and the second priority determination key have already been registered in the priority control table, the identifier of the data is assigned to the entry of the first priority determination key and the second priority determination key for priority control. add to table,
If only the first priority determination key has been registered in the priority control table, store the second priority determination key and the identifier of the data in the priority control table;
When retrieving the data from the received data storage section,
The first priority determination key and the second priority determination key have been registered in the storage management table, and the identifiers of the entries for the first priority determination key and the second priority determination key in the priority control table , if the identifiers of the entries of the first priority determination key and the second priority determination key of the storage management table match, acquiring data corresponding to the identifier from the received data storage unit and transmitting it;
The identifiers of the first priority determination key and second priority determination key of the priority control table do not match the identifiers of the entries of the first priority determination key and second priority determination key of the storage management table. A data store system characterized in that, in some cases, transmission of data corresponding to the identifier is suspended .
JP2019161075A 2019-09-04 2019-09-04 Computer, data control method and data store system Active JP7351679B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019161075A JP7351679B2 (en) 2019-09-04 2019-09-04 Computer, data control method and data store system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019161075A JP7351679B2 (en) 2019-09-04 2019-09-04 Computer, data control method and data store system

Publications (2)

Publication Number Publication Date
JP2021040259A JP2021040259A (en) 2021-03-11
JP7351679B2 true JP7351679B2 (en) 2023-09-27

Family

ID=74847476

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019161075A Active JP7351679B2 (en) 2019-09-04 2019-09-04 Computer, data control method and data store system

Country Status (1)

Country Link
JP (1) JP7351679B2 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020118387A1 (en) 2001-02-28 2002-08-29 Patton Ronnie N. Priority interruptible printing system
JP2004038758A (en) 2002-07-05 2004-02-05 Hitachi Ltd Storage controller, control method for storage controller, and program
JP2004220083A (en) 2003-01-09 2004-08-05 Hitachi Ltd Message queueing method and message queueing system
JP2016018222A (en) 2014-07-04 2016-02-01 株式会社日立製作所 Queue server
JP2018032115A (en) 2016-08-23 2018-03-01 株式会社日立製作所 Data store device and data management method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2933005B2 (en) * 1996-04-05 1999-08-09 日本電気株式会社 Management information storage device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020118387A1 (en) 2001-02-28 2002-08-29 Patton Ronnie N. Priority interruptible printing system
JP2004038758A (en) 2002-07-05 2004-02-05 Hitachi Ltd Storage controller, control method for storage controller, and program
JP2004220083A (en) 2003-01-09 2004-08-05 Hitachi Ltd Message queueing method and message queueing system
JP2016018222A (en) 2014-07-04 2016-02-01 株式会社日立製作所 Queue server
JP2018032115A (en) 2016-08-23 2018-03-01 株式会社日立製作所 Data store device and data management method

Also Published As

Publication number Publication date
JP2021040259A (en) 2021-03-11

Similar Documents

Publication Publication Date Title
JP4569846B2 (en) I / O node control method and method
US8171099B1 (en) Network acceleration device having persistent in-memory cache
US7979509B1 (en) Clustered network acceleration devices having shared cache
US8959226B2 (en) Load balancing workload groups
US9313153B2 (en) Dynamic subscription and message routing on a topic between publishing nodes and subscribing nodes
EP1330907B1 (en) Method and apparatus for real-time parallel delivery of segments of a large payload file
US20160292249A1 (en) Dynamic replica failure detection and healing
US8078574B1 (en) Network acceleration device cache supporting multiple historical versions of content
US8180730B2 (en) Arbitration token for managing data integrity and data accuracy of information services that utilize distributed data replicas
US8149846B2 (en) Data processing system and method
US20100138540A1 (en) Method of managing organization of a computer system, computer system, and program for managing organization
US20150074222A1 (en) Method and apparatus for load balancing and dynamic scaling for low delay two-tier distributed cache storage system
JP2019535072A (en) System and method for providing messages to multiple subscribers
US8661055B2 (en) File server system and storage control method
CN103312624A (en) Message queue service system and method
JPWO2018220708A1 (en) Resource allocation system, management device, method and program
US20040205069A1 (en) Attached file management system, program, information storage medium, and method of managing attached file
JP7351679B2 (en) Computer, data control method and data store system
US20110282923A1 (en) File management system, method, and recording medium of program
US8635256B2 (en) Network filesystem asynchronous I/O scheduling
US8539508B2 (en) Message ordering using dynamically updated selectors
GB2356473A (en) A distributed file system using autonomous disks
JP3672483B2 (en) Content distribution apparatus, content distribution method, and recording medium recording content distribution program
US20230176908A1 (en) Systems, methods and computer program products for job management
US20220100374A1 (en) Hierarchical file block variant tracking for performance in parallelism at multi-disk arrays

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220823

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230523

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230706

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230914

R150 Certificate of patent or registration of utility model

Ref document number: 7351679

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150