WO2014171413A1 - 処理性能低下を回避するメッセージシステム - Google Patents

処理性能低下を回避するメッセージシステム Download PDF

Info

Publication number
WO2014171413A1
WO2014171413A1 PCT/JP2014/060565 JP2014060565W WO2014171413A1 WO 2014171413 A1 WO2014171413 A1 WO 2014171413A1 JP 2014060565 W JP2014060565 W JP 2014060565W WO 2014171413 A1 WO2014171413 A1 WO 2014171413A1
Authority
WO
WIPO (PCT)
Prior art keywords
message
server
data store
store server
information
Prior art date
Application number
PCT/JP2014/060565
Other languages
English (en)
French (fr)
Inventor
木下 雅文
隆文 小池
衣津美 水谷
直規 原口
Original Assignee
株式会社日立製作所
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 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to JP2015512467A priority Critical patent/JP6117345B2/ja
Priority to US14/784,626 priority patent/US9967163B2/en
Publication of WO2014171413A1 publication Critical patent/WO2014171413A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0811Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/226Delivery according to priorities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/214Monitoring or handling of messages using selective forwarding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/23Reliability checks, e.g. acknowledgments or fault reporting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services

Definitions

  • the subject matter disclosed in this specification relates to a message server technology.
  • a message system that provides a message service includes a plurality of server devices that handle message processing (hereinafter, server devices are referred to as servers).
  • Patent Documents 1 and 2 have been proposed as methods for improving the availability and service quality of the message system.
  • a load balancer (or distribution device) is installed in front of a plurality of servers, and the load balancer measures the response time for requests to each server and distributes the server load (paragraph 0008 of Patent Document 1). , 0013), a load state of each server, a garbage collection state of Java (registered trademark) VM, and the like, and a method for distributing messages (paragraphs 0007 and 0028 of Patent Document 2) has been proposed.
  • M2M Machine to Machine
  • Patent Documents 1 and 2 have the following problems.
  • the first problem is that it is difficult to determine the degradation of processing performance in a short time, specifically, 1 second or less.
  • the maximum response waiting time (response timeout) is often set by a failure switching time (several seconds or more) of a switch or a router connected between servers. For example, if the response timeout is shorter than the failure switching time of the above switch, the message that can be saved by the failure switching will time out, and an error will occur in the processing of a large number of messages. There is a possibility that problems such as false detection and service stop may occur.
  • the switch failure switching operation when a failure is switched, the path between servers switches to a network that can communicate, and the message is retransmitted by retransmission processing such as TCP (Transmission Control Protocol). Can continue processing.
  • TCP Transmission Control Protocol
  • Patent Document 1 only mentions a simple response time processing performance degradation, and the method of Patent Literature 2 is limited to the case where the cause of the processing performance degradation is Java FullGC or the like.
  • Non-Patent Document 1 discloses a method in which a plurality of servers agree via a network. When processes that are multiple message servers are cooperating, if one server is degraded in processing performance, the cooperating servers are also degraded in processing performance. Since all the processes of the server cooperating with the server whose performance speed is reduced do not decrease uniformly, it depends on the speed reduction status of the cooperative process when it is related to the cooperative process. As described above, it may be difficult to detect the response time by simple threshold setting. In the method of Patent Document 2, since only a decrease in processing performance of one server can be detected, the above cannot be detected at all.
  • the server that distributes messages maintains thresholds such as time and the number of connections that are different from the response timeout for each distribution destination server.
  • thresholds such as time and the number of connections that are different from the response timeout for each distribution destination server.
  • processing performance degradation determination processing the server group whose processing performance has been degraded is identified from the correlation related to the cooperative processing between the servers (hereinafter referred to as processing performance degradation determination processing), and the server in which the distribution server has not degraded the processing performance
  • the distribution server prevents the double transmission of the message to the data store server by continuing to wait for the response of the message transmitted before the determination to the server group whose processing performance has deteriorated.
  • the message in this specification includes mobile phone e-mail, SNS message, sensor information, data transmitted by things such as cars, and the like.
  • the disclosed message system includes a distribution server that distributes messages and a server that processes a plurality of messages.
  • the distribution server constantly monitors parameters such as time and the number of connections for determining whether the processing performance has deteriorated for each server that is the distribution destination, and manages correlation information (configuration information) related to the cooperative processing of each server.
  • the server group whose processing performance is degraded is detected from this information.
  • the distribution server distributes messages by avoiding the server group whose processing performance is degraded from the next message distribution message.
  • One specific aspect is a system including a distribution server that distributes messages and a server that processes a plurality of messages, and the distribution server has a function of transferring messages to a server that processes messages, and message transfer A function for managing the time and the number of connections for each server, a function for determining that the processing performance is degraded when the time or connection exceeds a threshold, a function for acquiring correlation information related to the cooperative processing of each server, and the above It is characterized by having a function for identifying a server group whose processing performance is reduced from the processing performance drop and correlation information, and a function for distributing messages while avoiding the server group where the process is low.
  • a message system configured to include a plurality of servers, even if a part of the server falls into a failure or the processing speed is reduced, the processing performance of the entire system is prevented from being lowered or the service is partially stopped. Make it possible.
  • FIG. 1 is a block diagram illustrating a schematic system configuration in a first embodiment.
  • 2 is a block diagram illustrating a configuration of a message reception server 106 or a message transmission server 108.
  • FIG. 2 is a block diagram illustrating a configuration of a data store server 107.
  • FIG. An example of a message relay sequence of the message system is shown.
  • An example of the message acquisition sequence of a message system is shown. It is a block diagram which illustrates the schematic system structure in a 2nd Example.
  • a message receiving server having a message receiving function
  • a plurality of data store servers or key-value stores (Key-Value Stores)
  • a data grid for storing messages a message transmission server having a message transmission function
  • Data store server replicates the same data, and realizes data persistence by holding the same data multiple times in multiple data store servers.
  • the data store server performs processing such as storing, updating, and deleting data in cooperation between a plurality of data store servers that hold (or should hold) the data.
  • the data store server is a key-value store that manages data with key-value pairs.
  • Each server in Patent Documents 1 and 2 does not need to hold information such as the processing state of the server, that is, is stateless, whereas the data store server of the present embodiment holds information such as the processing state. Stateful.
  • a stateful server requires processing such as taking over the state (data) in the event of a failure, which complicates the system, but is often applied to systems that require availability.
  • Patent Literature 1 due to the difference in the configuration that the data store server is stateful, there are not mentioned in Patent Literature 1 and Patent Literature 2, but the problem at the time of processing performance degradation in a stateful server, a highly available system, and its solution method Also described.
  • messages such as e-mails of mobile communication carriers are targeted as examples of mass messages.
  • FIG. 1 is a block diagram showing the system configuration of the message system of this embodiment.
  • the message system is configured in the carrier equipment network 103, and includes a message reception server 106, a data store server 107, and a message transmission server 108.
  • the communication terminal 101 is a terminal device capable of data communication such as a mobile phone terminal, a tablet, and a PC, and is connected to the message system of the present embodiment in the carrier equipment network 103 via the wireless network 102.
  • the wireless network 102 is a wireless network managed by a mobile communication carrier.
  • the carrier equipment network 103 is a network and network equipment that relays communication from the wireless network 102 to the Internet 104 and the message receiving server 106.
  • the wireless network 102 and the carrier equipment network 103 are managed by a mobile communication carrier that manages the message receiving server 106 of this embodiment.
  • the message transfer server 105 also called MTA (Mail Transfer Agent), is connected to the message system of the present embodiment in the carrier equipment network 103 via the Internet 104, and exchanges messages with the message reception server 106.
  • the message transfer server 105 is installed in an equipment network managed by a communication provider such as an Internet provider or another mobile communication carrier.
  • the message transfer server 105 performs processing for transmitting a message from another communication carrier that manages the message transfer server 105 to the message receiving server 106.
  • the system of the message system of this embodiment includes a plurality of message reception servers 106, a data store server 107, and a message transmission server 108.
  • the message receiving server 106 and the data store server 107, the data store server 107 and the message transmitting server 108, the plurality of data store servers 107, and the like are connected in a mesh.
  • Each server of the logical configuration 110 may actually be a server device or a virtual machine.
  • a plurality of types of servers may be arranged on the same server device with each server of the logical configuration 110 as a server program.
  • the message receiving server 106 and the data store server 107 may be arranged on the same server device, or a plurality of data store servers 107 may be arranged on the same server.
  • the system configuration of the present embodiment is not limited to FIG. 1 and can be applied to messaging systems having other configurations.
  • the system of the message system relays a message received from the communication terminal 101 or the message transfer server 105 once in a storage area called a queue and then performs a transmission process sequentially, which is relayed by a so-called store-and-forward method. , Leveling the amount of information flowing into the system, and immediate response without waiting for the user.
  • the message reception server 106 is in charge of message reception processing
  • the data store server 107 is in charge of holding a queue
  • the message transmission server 108 is in charge of message transmission processing.
  • the message receiving server 106 performs processing for storing the message received from the communication terminal 101 or the message transfer server 105 in the data store server 107.
  • the message transmission server 108 acquires the message stored in the data store server 107 and transmits it to the message destination server such as the message transfer server 105 or a server that relays the message to the destination server.
  • the data store server 107 manages data with a pair of key and value (value), and multiple data store servers 107 hold the same data (key and value) in multiple, and the message receiving server 106 and the message transmitting server 108. The data requested from is processed.
  • the message system is a mobile communication carrier.
  • the message receiving server 106, the data store server 107, and the message sending process such as authentication processing, billing processing, message conversion processing, congestion control, etc. Any of the servers 108 may do so.
  • the message transmission path is the communication terminal 101, the message reception server 106, the data store server 107, and the message transmission server 108 in this order will be described as an example. It is also applicable to.
  • the applicable range of the messaging system disclosed in the present embodiment is not limited to e-mails and short messages, but can be applied to devices such as sensors, cars, and meters connected to the wireless network 102 and messages (or data) to be transmitted. Applicable. Further, this embodiment can be applied to a network form such as a wired network or a smart grid instead of the wireless network 102.
  • FIG. 2 shows a hardware configuration of an information processing apparatus that implements the message reception server 106 and the message transmission server 108.
  • An information processing apparatus that implements the message reception server 106 or the message transmission server 108 is used for transmitting and receiving data to and from the processor 202, the volatile memory 207, the disk 209 that is a nonvolatile storage unit, and the carrier equipment network 103. It includes an input / output circuit interface 203 and an internal communication line such as a bus for connecting them. In order to reduce the influence at the time of failure, the input / output circuit interface 203 may be connected to two or more networks.
  • the volatile memory 207 includes a message processing program 204 and a data group 205.
  • the message processing program 204 includes a distributed processing unit 210 that performs processing for distributing and storing messages (data) to a plurality of data store servers 107, and various control programs that implement message processing. It is executed by the processor 202.
  • the contents of the message processing program 204 differ between the message receiving server 106 and the message sending server 108, but the message processing program 204 can be configured to have both functions of the message receiving server 106 and the message sending server 108. is there.
  • the message processing program 204 may be stored in advance in the volatile memory 207 or the disk 209, or a removable storage medium or communication medium (that is, a network or a digital signal or carrier wave propagating through the network) (not shown). Via the volatile memory 207 or the disk 209.
  • the disk 209 further stores data such as a log output by the message processing program 204 and a setting file of the message processing program 204.
  • the contents described below are realized as functions of the message reception server 106 or the message transmission server 108 when the program included in the distributed processing unit 210 is executed by the processor 202.
  • the data group 205 used for processing by the message processing program 204 is illustrated as a separate component from the message processing program 204 from a functional viewpoint. It may be included in the message processing program 204.
  • the data group 205 includes data store server operation setting information 221, data store server configuration information 222, data store server conference information 223, processing performance degradation determination condition 231, resource regulation value information 232, virtual queue information 233, distribution method information 234, The acquisition method information 235 and the data store server state information 250 are included.
  • the data store server operation setting information 221 stores information such as a data holding method among the plurality of data store servers 107 and operation settings of the data store server 107. For example, how many data store servers 107 hold data (data multiplicity), how to store and manage data among multiple data store servers 107 (data Holding method), and an operation when the data store server 107 performs processing according to the received request (operation-specific operation setting).
  • the data retention method includes the consistency maintenance type that maintains data in the same state among multiple data store servers 107, and the service continuity of the data store server 107 instead of allowing the data states to be inconsistent.
  • a method that prioritizes (availability maintenance type) is set.
  • the data store server 107 cooperates with the number of data store servers 107 for each request such as data storage, acquisition, update, deletion, and comparison, and the processing of the number of data store servers 107 is performed. Information that determines that the request is successful is stored.
  • the data multiplicity of the data store server operation setting information 221 is 3 and is a consistency maintaining type.
  • the operation setting by request for the setting of the storage, update, and deletion request, the setting that the storage is successful when the data is stored in the three data store servers 107, and for the setting of the acquisition request, one data store is set. Set to acquire data from the server 107.
  • the multiplicity of data may be other than 3, and an availability maintaining system can be configured.
  • the distributed processing unit 210 can realize processing performance deterioration determination processing of the data store server 107, which will be described later, in accordance with the type and processing form of the data store server 107.
  • the correlation information between the data store servers 107 is information about which data store server 107 in the message system holds which key data (hereinafter, key range charge information), and the key range charge information. This is information related to the linkage processing between the data store servers 107, which indicates whether the data store server 107 is a master or a slave.
  • the correlation information may be generated based on conference information described later.
  • the operation information includes information indicating which key range currently holds the data at what multiplicity among the key ranges included in the correlation information in addition to the operation information of each data store server 107 (for example, even if the data multiplicity is 3). If one of the data store servers 107 holding the data stops due to a failure or the like, the data multiplicity becomes 2).
  • Data store server conference information 223 is information determined by a method called a gossip protocol, for example, based on information related to the data store server exchanged between the data store servers 107, and like the data store server configuration information 222, The operating status of the data store server 107 and correlation information are included.
  • the distributed processing unit 210 updates the data store server configuration information 222 by acquiring the data store server configuration information periodically transmitted by the data store server 107 by multicast or the like.
  • the distributed processing unit 210 uses one of the data store server conference information 223 and the data store server configuration information 222 to determine a decrease in processing performance of the data store server 107 to be described later, but both may be used.
  • the data store server configuration information 222 is used.
  • the processing performance deterioration determination condition 231 is a condition (threshold value) for the distributed processing unit 210 to determine the processing performance deterioration of the data store server 107.
  • the storage request processing performance deterioration determination condition 240A, the acquisition request processing performance deterioration determination A condition such as condition 240B is held for each request type.
  • the processing performance degradation determination condition 231 includes a processing elapsed time 241, a connection number 242, a simultaneous processing number 243, a transmission waiting number 244, and a response time 245 for each request type.
  • the distributed processing unit 210 compares the communication processing with the data store server 107 and the value acquired from the data store server configuration information 222 (the current value 255 to be determined (described later)) with the processing performance degradation determination condition 231. If this value is exceeded, it is determined that the processing performance of the data store server 107 has deteriorated.
  • Each parameter of the processing performance degradation determination condition 231 is a threshold value to be compared with the average value, and includes information on the minimum required number of times for the distributed processing unit 210 to determine that the processing performance degradation is determined.
  • the connection number 242 describes a threshold value of the number of connections that the distributed processing unit 210 connects to the data store server 107.
  • the simultaneous processing number 243 the number of processes simultaneously executed by the distributed processing unit 210, the threshold number of processes, and the number of threads are described.
  • the transmission wait number 244 a threshold value of the number of messages waiting to be transmitted to the data store server 107 of the distributed processing unit 210 is described.
  • the response time 245 is a threshold value of the time (average value) when the distributed processing unit 210 transmits a request to the data store server 107 and receives a response.
  • the processing elapsed time 241 is the elapsed time since the distributed processing unit 210 has not received a response from the data store server 107 and transmitted the request currently being processed, unlike the response time 245 that is the actual value.
  • the time is set shorter than the response time.
  • a server that processes a message has a response timeout value that continues to wait for a response by sending a message to an external server, and if it is within the response timeout at the time of reception, the response is normally received and added to the response time 245. If received after the response timeout, the response is determined to be an error.
  • This embodiment assumes a system in which the response time 245 is set in the order of several milliseconds to several seconds or less, and the response timeout is set in the order of several seconds to several minutes.
  • the processing elapsed time 241 is several microseconds. It is desirable to set in the order of seconds to 1 second.
  • the processing performance degradation determination condition 231 holds the condition for the request type because of the data store server operation setting information 221, the data store server 107 linkage processing and the processing performance are degraded for each request type such as storage and acquisition. This is because whether or not the request type can be executed differs depending on the cause and the operating status of the data store server 107.
  • the resource regulation value information 232 is a regulation value for protecting resources for the distributed processing unit 210 to transmit a request to the data store server 107.
  • the distributed processing unit 210 executes the request simultaneously with the request of the data store server 107. This is a regulation value such as the number of processes, the number of connections, and the number of requests waiting for transmission to the distributed processing unit 210.
  • the resource regulation value information 232 holds a plurality of values for each state such as normal time and processing performance degradation determination. Based on the resource regulation value information 232, the distributed processing unit 210 avoids using up all resources in request processing to the data store server 107 whose processing performance has deteriorated.
  • the virtual queue information 233 stores management information for centrally managing the queue data 340 (hereinafter sometimes referred to as a distributed queue) held by each of the plurality of data store servers 107 as virtual queues in the message system.
  • the queue data 340 hereinafter sometimes referred to as a distributed queue
  • the distribution method information 234 information on a distribution method (distribution method at the time of storage) to the distributed queue held by the data store server 107 by the distribution processing unit 210 is stored.
  • a virtual queue is provided for each message destination in the entire system.
  • the distributed processing unit 210 selects the same virtual queue if the messages have the same destination.
  • the actual data in the virtual queue is stored in the distributed queue of the data store server 107, and a plurality of distributed queues correspond to one virtual queue.
  • the virtual queue includes a plurality of distributed queues.
  • the virtual queue information 233 stores correspondence information between each virtual queue and a plurality of distributed queues corresponding thereto, and information for centrally managing information on the plurality of distributed queues.
  • the virtual queue information 233 is shared by the distributed processing unit 210 provided in each of a plurality of receiving servers and transmitting servers in the message system.
  • any one of the plurality of distributed processing units 210 of the message system updates the virtual queue information 233 and stores it as virtual queue information 331 in the data store server 107.
  • the other distributed processing unit 210 periodically acquires the virtual queue information 331 from the data store server 107 and updates the virtual queue information 233 in its own server. Note that the message system of this embodiment holds a plurality of types of virtual queues.
  • the distribution method information 234 stores a distribution method such as a key hash calculation, a round robin, and a least connection. Further, the distribution method information 234 may be dynamically changed when the processing performance degradation of the data store server 107 occurs due to the processing performance degradation determination process.
  • the acquisition method information 235 stores information for specifying the data store server 107 (data store server state information 250) from which the message receiving server 106 or the message sending server 108 can acquire a message, and the acquisition priority ( Details will be described with reference to FIG. Specifically, it is set to acquire from all or some of the data store servers 107 that can be acquired, or from which of the set multiple data store servers 107 the priority is acquired, for example, the data store server Information is set such that 107 is preferentially acquired from a large number of messages held.
  • a distributed queue (distributed queue data 340) held by the data store server 107 and an acquisition priority for each distributed queue may be set.
  • the data store server status information 250 includes the key range information 251, the operation server 252, the operation information 253, the distributed queue list 254, the current value 255 to be determined, and the data multiplicity 256.
  • the assigned key range information 251 describes the key range of the data held by each data store server 107, and the active server 252 includes the data store server 107 (including master and slave) that is currently in charge of the key range. Multiple IP addresses are described.
  • the responsible key range information 251 and the active server 252 are created by the distributed processing unit 210 based on the data store server configuration information 222, and are dynamically changed when the data store server 107 fails or the configuration is changed.
  • the operation information 253 stores server states of a plurality of data store servers 107 including a master and a slave.
  • the distributed queue list 254 describes a list of distributed queues included in the range of the assigned key range information 251, and is dynamically changed when the data store server 107 fails or the configuration is changed.
  • the distributed processing unit 210 selects the data store server state information 250 having the distributed queue list 254 corresponding to the virtual queue information 233 in the normal time.
  • the current value 255 of the determination target describes the parameter that is the target of the processing performance degradation determination condition 231, and the current value corresponding to the processing elapsed time 241 number of connections 242, simultaneous processing 243, number of waiting transmissions 244, and average response time 245 Is stored.
  • the data multiplicity 256 is the multiplicity of data (distributed queue) included in the range of the assigned key range information 251.
  • Data multiplicity 256 usually matches the number of operating data store servers 107 that hold the data included in the range of assigned key range information 251, but the data store server 107 is running in a virtual environment or the like Stores the number of operating data store servers 107 in the real environment.
  • the distributed processing unit 210 can hold the data multiplicity separately from the setting of the data store server 107, and there is a lot of data depending on the convenience of the application of the message receiving server 106 and the virtual environment. It is possible to perform flexible control on the severity (generally, the data store server 107 cannot perform control on the data multiplicity for each message).
  • the data store server status information 250 is created for each assigned key range information 251, but the present invention is not limited to this.
  • the data store server status information 250 may be created for each distributed queue. .
  • FIG. 3 shows the hardware configuration of the information processing apparatus that implements the data store server 107.
  • An information processing apparatus that implements the data store server 107 includes a processor 302, a volatile memory 307, a disk 309 that is a nonvolatile storage unit, and an input / output circuit interface 303 for transmitting and receiving data to and from the carrier equipment network 103. And an internal communication line such as a bus connecting them.
  • the volatile memory 307 or the disk 309 stores a data store server program 304 and includes a data group 305.
  • the data store server program 304 includes various control programs that implement message processing, and these control programs are executed by the processor 302.
  • the data store server program 304 may be stored in the volatile memory 207 or the disk 209 in advance, or a removable storage medium or communication medium (not shown) (that is, a network or a digital signal or a carrier wave that propagates the network). It may be introduced to the volatile memory 207 or the disk 209 via.
  • the disk 309 further stores data such as a log output by the data store server program 304 and a setting file of the data store server program 304.
  • the contents described below are realized as functions of the data store server 107 when various control programs included in the data store server program 304 are executed by the processor 302.
  • the data group 305 includes data store server configuration information 321, data store server consultation information 322, and a data store area 330.
  • the data store server configuration information 321 includes the same contents as the data store server configuration information 222 in FIG. However, the data store server configuration information 321 is created and used by the data store server 107, and the data format may differ from the data store server configuration information 222. Similarly, the data store server conference information 322 includes the same contents as the data store server conference information 222 in FIG.
  • the data store server program 304 exchanges data store server conference information 222 with other data store server programs 304 to create data store server configuration information 221.
  • the data store area 330 is an area for storing data (storage request) received by the data store server 107 from the message receiving server 106 (distribution processing unit 210).
  • each data stored in the data store 330 also stores a key corresponding to the data (value) at the same time. For simplicity, only data (value) is shown, and keys are omitted.
  • the function of the data store server program 304 can be realized even if each information of 321, 322, and 330 is stored in the nonvolatile storage unit 308.
  • the data store 330 includes virtual queue information 331 and a plurality of distributed queue data 340.
  • the virtual queue information 331 is the same information as the virtual queue information 233, and is held in the data store server 107 so that a plurality of distributed processing units 210 share virtual queue information in the entire message system.
  • the distributed queue data 340 (data store 330) is held in multiple by the plurality of data store servers 107.
  • the distributed queue data 340 includes one distributed queue management information 341, a plurality of message data 342, and message related information 343.
  • the distributed queue management information 341 is information for managing a plurality of message data 342 and message related information 343 included in the distributed queue data 340, and the data store server program 304 can realize a function as a queue based on this information.
  • the distributed queue management information 341 includes an identifier of the distributed queue data 340, information on whether the distributed queue data 340 is a master or a slave, information on processing order such as message storage order and retrieval order, and distributed queue data 340.
  • the maximum number of message data that can be stored (or the data size that can be used by the distributed queue data 340), the number of message data stored in the current distributed queue data 340 and the data size that is being used, from a plurality of distributed processing units 210 It includes information such as exclusive control for extracting messages one by one.
  • Message data 342 is message data received from the message receiving server 106 and stored.
  • the message related information 343 is information such as additional information related to the message data 342.
  • the message reception server 106 or the message transmission server 108 uses the message related information 343 to perform message processing.
  • FIG. 4 is a diagram showing an example of a message relay sequence of the message system.
  • Step 401 to Step 442 show a message reception sequence of the message reception server 106, and show an example in which the processing performance of the data store server 107a is deteriorated in Step 405.
  • the message receiving server 106 receives a message transmitted from the communication terminal 101 (step 401), selects a virtual queue to be stored from the message destination and the virtual queue information 233, and determines the virtual queue according to the distribution method information 234.
  • the data store server state information 250 that includes the distributed queue corresponding to is included in the distributed queue list 254 is selected (step 402), and a message storage request is transmitted to the data store server 107a (step 403).
  • the data store server 107a performs storage request processing cooperation (step 404) in order to multiplex messages (data) received between a plurality of data store servers 107 including the data store server 107b.
  • step 405 it is assumed that the processing performance deteriorates in the data store server 107a.
  • the message receiving server 106 is waiting for a response to the message storage request 403.
  • the message receiving server 106 receives another message transmitted from the communication terminal 101 (step 411), selects a distribution destination (storage destination) (step 412), and transmits a message storage request to the data store server 107. (Step 413).
  • the message receiving server 106 is in a state where it cannot send a response due to the processing performance degradation 405.
  • step 413 when the message receiving server 106 receives the message from the communication terminal 101 (step 431), the data receiving server 106 selects the distribution destination of the data store server state information 250 reflecting the processing result of step 433 (step 432).
  • step 432 the distributed processing unit 210 of the message receiving server 106 selects a virtual queue to be stored from the message destination and the virtual queue information 233, and sets the distributed queue corresponding to the virtual queue according to the distribution method information 234 to the distributed queue list.
  • the data store server 107a included in H.254 is selected.
  • Step 433 is an example in which the message receiving server 106 distributed processing unit 210 determines “processing performance degradation” in the processing performance degradation determination processing at regular intervals.
  • the processing performance degradation determination process is performed immediately before the distributed processing unit 210 transmits a request to the data store server 107 (step 403, step 413, step 452, and step 456). Checked at the timing of receiving a response from the store server 107 (steps 435, 441, and 453) and every regular time in the millisecond order, but omitted because it is not determined to be “processing performance degradation” is doing.
  • the distributed processing unit 210 performs the processing performance determination process even before the message storage request 413 immediately after the processing performance decrease 405, but the parameters included in the processing performance deterioration determination condition 231 exceed the average value (or the minimum number of determination times). In other words, it is not determined that the processing performance is degraded.
  • step 433 the distributed processing unit 210 of the message receiving server 106 performs the following processing. First, the distributed processing unit 210 of the message receiving server 106 compares the current value 255 of the determination target of the data store server state information 250 of the data store server 107a with the processing performance deterioration determination condition 231 to determine the processing performance deterioration ( Step 433).
  • the distributed processing unit 210 of the message receiving server 106 determines whether each parameter stored in the determination target current value 255 exceeds the threshold value of the corresponding parameter in the processing performance degradation determination condition 231. To do.
  • the processing performance degradation determination condition 231 used in step 433 is the setting of the storage request type.
  • the processing performance degradation determination condition 240A of the storage request is used, although not explicitly shown.
  • the distributed processing unit 210 compares the processing elapsed time 241 with the current value of the processing elapsed time included in the determination target current value 255 (the average value of the processing elapsed time of the message storage requests 403 and 413).
  • the distributed processing unit 210 compares the number of connections 242 with the current value of the number of connections (number of connections) included in the current value 255 to be determined (two connections of message storage requests 403 and 413).
  • the distributed processing unit 210 compares the concurrent processing number 243 with the current value (two connections of message storage requests 403 and 413) of the concurrent processing number (the number of processes of the distributed processing unit 210) included in the current value 255 to be determined. To do.
  • the distributed processing unit 210 compares the transmission waiting number 244 with the current value of the message transmission waiting number to the data store server 107 included in the current value 255 to be determined.
  • the processing performance deterioration determination is performed by checking at the timing when the distributed processing unit 210 receives a response from the data store server 107 or at regular intervals.
  • the distributed processing unit 210 determines that the data store server 107 (the master of the active server 252) corresponding to the data store server status information 250 determined to have degraded processing performance.
  • the data store that describes the “degraded processing performance” state in the registered operation information 253, and that is linked to the data store server 107a that is included in the active server 252 or the data store server configuration information 222 and that has degraded processing performance
  • the operation information 253 of the data store server status information 250 corresponding to the server 107b it is described that “the processing performance is degraded by the cooperation destination”.
  • the distributed processing unit 210 determines that the data store server 107a selected in Step 432 is in the “processing performance deteriorated state” and the data store server 107b is in the “processing performance deteriorated state due to cooperation destination”. Change the destination to 107c.
  • the operation information 253 of the data store server status information 250 indicates “processing performance degraded state” and “processing performance degraded status by the cooperation destination” indicates that the data store server 107 receives a response, checks at regular intervals, and the distributed processing unit 210 Is canceled if the processing performance deterioration determination at the time of transmitting the request to the data store server 107 is below the threshold value of the processing performance deterioration determination condition 231.
  • the parameter at the time of the processing performance degradation state of the resource regulation value information 232 is applied to the data store server 107 that is in the “processing performance degradation state” or “the processing performance degradation state by the cooperation destination”.
  • the message receiving server 106 consumes resources such as the number of connections 242 and the number of simultaneous processes 243 with respect to the data store server 107a.
  • the distributed processing unit 210 realizes resource protection when the processing performance is deteriorated by applying the parameter in the processing performance deterioration state that is lower than the normal value of the resource regulation value information 232.
  • the message receiving server 106 transmits a message storage request to the data store server 107c (step 434), and the data store server 107c stores the distributed queue data 340 that matches the distributed queue of the storage destination included in the received message storage request.
  • the message data 342 and the message related information 343 are stored, and a response indicating successful storage is transmitted (step 435) (Note that the data store server 107c also cooperates with other data store servers 107, but is omitted in FIG. 4). ).
  • the message reception server 106 transmits a normal response 436 to the message 431 to the communication terminal 101, and normally ends the message reception sequence.
  • Steps 441 and 442 are behaviors of the message receiving server 106 when the data store server 107a whose processing performance has deteriorated in Step 405 returns in a short time.
  • the message reception server 106 receives a response 441 that has been successfully stored before the message storage request 403 times out, the message reception server 106 continues processing, sends a normal response 442 to the message 401 to the communication terminal 101, and normalizes the message reception sequence. finish.
  • the distributed processing unit 210 of the message receiving server 106 manages parameters different from the response time 245 for the processing performance degradation determination condition 231 such as the processing elapsed time 241, a response store and a data store that is shorter than the response timeout
  • the linkage processing timeout value between the servers 107 can be set higher than that of the network device.
  • step 441 when the distributed processing unit 210 makes a determination based on the response time 245 as in the prior art, even if the distributed processing unit 210 determines that a response time-out has not been detected from step 403 to step 441, the step is not possible. It cannot be detected from 403 until after the response timeout elapses (after step 441). If the distributed processing unit 210 makes a determination based on a response timeout and if the response timeout is shorter than between step 403 and step 441, step 441, which is normally a normal response, is treated as an error, and errors tend to occur frequently. There is a problem.
  • Whether the distributed processing unit 210 delays the response to the message currently being processed by the distributed processing unit 210 based on the processing elapsed time 241, the number of connections 242, the number of simultaneous processes 243, and the number of waiting transmissions 244 of the processing performance degradation determination condition 231 can be monitored, and it is possible to prevent the occurrence of a large number of errors and to avoid the service stop of the data store server 107 by reducing the probability of occurrence of a response timeout.
  • Steps 451 to 456 are a message system transmission sequence.
  • the distributed processing unit 210 of the message transmission server 108 selects the data store server 107 that periodically acquires messages (step 451).
  • the acquisition destination selection 451 is a process similar to the distribution destination selection 403, and the distributed processing unit 210 follows the acquisition method information 235, and the message transmission server 108 can acquire “processing performance degradation” in the data store server state information 250 that can be acquired.
  • a data store server 107c that does not include "status" is selected. Note that in step 451, the distributed processing unit 210 of the message transmission server 108 may start processing upon receiving an acquisition (event) from another server.
  • the distributed processing unit 210 of the message transmission server 108 transmits a message acquisition request to the data store server 107c (step 452), and receives a plurality of messages from the data store server 107 (step 453).
  • the message transmission server 108 can collectively acquire the message data 342 and the message related information 343 stored in the plurality of distributed queue data 340 of the data store server 107.
  • steps 451 to 453 are executed by the distributed processing unit 210 of the plurality of message transmission servers 108 in the message system (details will be described with reference to FIG. 5).
  • the distributed processing unit of the message transmission server 108 attempts to access a plurality of data store servers 107 connected in a mesh form in the message system and acquire a message.
  • the distributed processing units 210 of the plurality of message transmission servers 108 receive the message acquisition request 452, and process the message acquisition request 452 on a first-come-first-served basis.
  • the message transmission server 108 converts the message received in step 453 so that it can be transmitted to the mail transfer server 105 and transmits it (step 454).
  • the message receiving server 106 receives a normal response from the message transfer server 105 (step 454) and confirms the successful transmission of the message, the message receiving server 106 transmits a message deletion request 456 to the data store server 107, and ends the message transmission sequence.
  • FIG. 5 is a diagram showing an example of a message acquisition sequence of the message system.
  • FIG. 5 is a part of the message relay sequence of the message system shown in FIG. 4, and the distributed processing unit 210 of the plurality of message transmission servers 108 uses the data store server according to the contents stored in the acquisition method information 235. The sequence which acquires a message from 107 queues is illustrated.
  • the data store server 107 specified by the acquisition method information 235 is set statically or dynamically according to the status of the server and the network. For example, in order to reduce the network load between the data store server 107 and the message transmission server 108, priority is given to acquisition from the data store server 107 on the same device or the data store server 107 with a short distance (for example, the number of hops) on the network.
  • a short distance for example, the number of hops
  • Correspondence between a plurality of queues or a plurality of data store servers 107 and a plurality of message transmission servers 108 at the time of message acquisition can be freely set, for example, network load, server network It is set according to conditions such as the upper distance (for example, the number of hops) and server load. Also, the correspondence relationship can be dynamically changed according to the situation at the time of failure.
  • the distributed processing unit 210 of the message transmission server 108a selects the data store server 107a that is set to be acquired preferentially from the plurality of data store servers 107 that are associated with each other ( Step 470), a message acquisition request is transmitted (Step 471), and a message is acquired (Step 472).
  • “priority acquisition is set” means that the acquisition order is first, the number of acquisitions is large, the acquisition interval (interval between steps 471 and 474) is short, and the number of messages that can be acquired at one time is A state in which one or more items related to acquisition, such as many, are set to have higher priority than other message transmission servers. As described above, these items are set in the acquisition method information 235.
  • each data store server 107 holds priority information corresponding to the acquisition method information 235, and changes the response content (for example, the number of messages to be responded) to the acquisition from each message transmission server 108. As a result, the priority may be controlled.
  • FIG. 5 assumes a system configuration in which the data store server 107a is on the same device as the message transmission server 108a and on a different device from the other message transmission servers 108b and 108c.
  • the distributed processing unit 210 of the message transmission server 108a sets the interval of the message acquisition request 474 so that the data store server 107a on the same device obtains preferentially. It is desirable to set a shorter priority than other message transmission servers 108 on other devices, and to increase the priority.
  • the distribution processing unit 210 of the message transmission server 108b and the message transmission server 108c which is not a priority acquisition target and has a normal priority, acquires a message from the data store server 107a at a normal acquisition interval.
  • the message processing server 108b and the distributed processing unit 210 of the message transmission server 108c acquire the message by acquiring the message of the data store server 107a. That is, it is possible to construct a system in which the service does not stop.
  • the message transmission server 108a stops and the message is stored in the queue of the data store server 107a. Even if a large amount of messages are accumulated, the number of messages to be acquired is increased without newly setting, and the influence on the processing performance (throughput) of the service can be reduced.
  • a number of messages smaller than the number of messages that can be acquired at one time is set as a normal acquisition number, and the message transmission server 108b or 108c The number of messages acquired at one time may be increased to the upper limit. In this way, as in the above example, even if the message transmission server 108a is stopped and a large amount of messages are accumulated in the queue of the data store server 107a, the service processing performance (throughput) is affected. Less.
  • the data store server 107 is operated by being divided into two groups of different networks, and the message system is made more highly available than in the first embodiment. Differences between the second embodiment and the first embodiment will be described below with reference to FIG.
  • the second embodiment adopts the system configuration shown in FIG. 6 instead of FIG.
  • the data store server 107 includes 107-1 group and 107-2 group, and each group is connected by different networks (different network devices).
  • the message reception server 106 and the message transmission server 108 recognize each group of the data store servers 107-1 and 107-2, and access the data store server 107 by switching the network.
  • the data store server 107 cooperates with other data store servers 107 via a network, if the network is divided due to a failure of some network devices, all the data store servers 107 in that network (group) are in service. There is a possibility of suspension.
  • the probability of total service stoppage is reduced, and either the message reception server 106 or the message transmission server 108 is operating. Access to the data store server 107 of the group can avoid service stoppage.
  • the queue held by each data store server 107 has a master or slave in the group to which the queue belongs, as shown in the assigned key range information 251, and a master if there are a plurality of slaves. Set the order.
  • one of the data store servers 107 having other queues set as slaves becomes the master for the queue according to the order in the group (to be promoted to the master). Instead of the failed data store server 107, the processing is continued.
  • the data store servers 107 of different groups may be combined and arranged on the same server device, and the promotion order to the master may be set differently for different groups.
  • data store servers 107 of different groups are arranged one by one on the same device.
  • the data store server 107-1a and the data store server 107-2a are arranged on the same device, and the data store server 107-1b and the data store server 107-2b are similarly arranged on the other same device.
  • the order of promotion of the group of one data store server 107 and the master of the queue set as the slave of the other group is set to be different (for example, in the reverse direction).
  • the next master is the data store server 107 on a different device. Therefore, the processing can be continued while suppressing an increase in load.
  • the distribution method information 234 stores the distribution method by the hash calculation of the key, the distribution method to the data store server 107 of the same group such as round robin, least connection, etc. In the embodiment, the distribution method between groups of the data store server 107 is also stored.
  • a method of determining the group of data store servers 107 that are the distribution destinations (storage destinations) and which data store server 107 in the group is to be distributed and stored by the hash calculation of the key, round robin or least connection There is a method of storing in such a way that the group which becomes the distribution destination (storage destination) is different every time.
  • the active server 252 of the data store server status information 250 stores the IP address of the data store server 107 of the data store server 107-1, 107-2 group.
  • the distributed processing unit 210 manages the data store server status information 250 in units of the key range information 251 and the active server 252 as a set, and the data store server 107 (active server 252) of a different network is used when determining the processing performance.
  • the service stop of the data store server 107 can be avoided.
  • the distributed processing unit 210 can detect a temporary stop of the data store server 107 in units of groups from the data store server configuration information 222 or the data store server conference information 223, and can switch to the other group. Is possible.
  • 101 Communication terminal
  • 103 Carrier equipment network
  • 105 Message transfer server
  • 106 Message reception server
  • 107 Data store server
  • 108 Message transmission server.

Abstract

 メッセージを振り分けるサーバが、応答タイムアウトとは別の時間やコネクション数などの閾値を振り分け先のサーバ毎に保持し、前記閾値を超過した場合に処理性能低下と判定する方法により、後段のサーバの処理性能低下を高速に検出する。また、振り分けサーバが処理性能低下した場合にサーバ間の協調処理に関する相関から処理性能低下したサーバ群を特定し、振り分けサーバがメッセージを処理性能低下していないサーバへ振り分けることにより、システムの可用性を向上する。

Description

処理性能低下を回避するメッセージシステム 参照による取り込み
 本出願は、2013年4月16日に出願された日本特許出願第2013-085353号の優先権を主張し、その内容を、参照により本出願に取り込む。
 本明細書で開示される主題は、メッセージサーバの技術に関する。
 携帯電話や通信端末(以下、携帯電話という)から利用される電子メールサービスやSNS(Social Network Service)などのメッセージサービスは、コミュニケーション手段として欠かせないものになっており、メッセージサービスを提供するメッセージシステムには24時間365日サービス無停止の高可用性と高いサービス品質が求められている。メッセージサービスを提供するメッセージシステムは、複数台のメッセージ処理を担うサーバ装置(以下、サーバ装置をサーバという)を含んで構成される。
 メッセージシステムの可用性やサービス品質を向上する方法として、特許文献1、2の方法が提案されている。
 具体的には、複数のサーバの前段にロードバランサ(または振り分け装置)を設置し、ロードバランサが各サーバへのリクエストに対する応答時間を計測し、サーバの負荷を分散する(特許文献1の段落0008、0013)方法や、各サーバの負荷状態やJava(登録商標)VMのガベッジコレクションの状態などを取得し、メッセージを振り分ける(特許文献2の段落0007、0028)方法が提案されている。
 これらの方法は、システムの一部のサーバが障害や処理速度低下に陥った場合でも、システム全体の処理性能低下やサービスの部分停止を回避することを狙っている。
特開2011-197796号公報 特開2011-170772号公報
Leslie Lamport、" Paxos made simple"、online、2001年11月、ACM SIGACT News 32、[2013年4月11日検索]、インターネット< http://www.cs.utexas.edu/users/lorenzo/corsi/cs380d/past/03F/notes/paxos-simple.pdf
 近年、スマートフォンなどの普及により、携帯電話の電子メールやSNSのメッセージのトラフィック量は膨大化している。さらに、今後センサ、車などの大量のモノがネットワークに接続され、モノが情報(メッセージ)交換を行う通信形態M2M(Machine to Machine)の普及が予測されており、さらなる膨大なメッセージトラフィックの発生が予測されている。
 上記のような大量メッセージ処理が必要な状況において、特許文献1、2には以下の課題があった。
 第一の課題は、短時間、具体的には1秒以下の処理性能低下の判定が困難であることである。一般的に応答の最大待ち時間(応答タイムアウト)は、サーバー間を接続しているスイッチやルーターなどの障害切り替え時間(数秒以上)で設定されることが多い。たとえば、応答タイムアウトが上記スイッチの障害切替時間よりも短いと、本来障害切替えにより救えるメッセージが応答タイムアウトしてしまい、大量メッセージの処理でエラーが発生するのと、各サーバがネットワークが障害になったと誤検知し、サービスが停止するなどの問題が発生する可能性がある。
 なお、スイッチの障害切替え動作を補足説明すると、障害切替時にサーバ間のパスが通信可能なネットワークに切り替わり、TCP(Transmission Control Protocol)などの再送処理によりメッセージが再送されることにより、エラーにならずに処理継続できる。
 そのため、可用性が求められるシステムでは、スイッチなどのネットワークの切り替え時間以上の応答タイムアウトが設定される。上記課題に対し、特許文献1では単純な応答時間処理性能低下を判断しか言及されておらず、特許文献2の方法では処理性能低下の原因がJavaのFullGCなどの場合に限られる。
 第二の課題は、メッセージサーバーが協調している場合、処理時間低下を検出や検出のための閾値設定が困難であることである。複数のサーバーが協調する例として、非特許文献1には、複数のサーバがネットワークを介して合意する方法が開示されている。複数のメッセージサーバーである処理が協調している場合、1台のサーバーが処理性能低下した場合、協調しているサーバーも処理性能低下する。性能速度低下したサーバーと協調しているサーバの全ての処理が一様に処理性能低下するわけではなく、協調処理に関連した場合かつ、協調処理の速度低下状況に依存するため、特許文献1のように単純な閾値設定による応答時間の判定では、検出困難になる場合がある。特許文献2の方法では、1台のサーバーの処理性能低下しか検出できないため、上記は全く検出できない。
 すなわち、大量メッセージ処理を行うメッセージシステムにおいて、以上の2つの課題を解決する技術が求められている。
 本明細書では、メッセージを振り分けるサーバ(以下、振り分けサーバ)が、応答タイムアウトとは別の時間やコネクション数などの閾値を振り分け先のサーバ毎に保持し、前期閾値を超過した場合に処理性能低下と判定する方法により、従来より短時間でサーバの処理性能低下を検出する技術が開示される。
 また、振り分けサーバが処理性能低下した場合にサーバ間の協調処理に関する相関から処理性能低下したサーバ群を特定(以下、処理性能低下判定処理)し、振り分けサーバがメッセージを処理性能低下していないサーバへ振り分けることにより、システムの可用性とサービス品質を向上する技術が開示される。
 このとき、振り分けサーバは、処理性能が低下したサーバ群へ上記判定前に送信したメッセージの応答待ちを継続することにより、データストアサーバへのメッセージの二重送信を防ぐ。
 なお、本明細書でのメッセージとは、携帯電話の電子メール、SNSのメッセージ、センサ情報、車などモノが発信するデータ等を含む。
 開示されるメッセージシステムは、メッセージを振り分ける振り分けサーバと複数のメッセージを処理するサーバを含んで構成する。振り分けサーバは、振り分け先であるサーバ毎に処理性能低下しているか判定するための時間やコネクション数などのパラメータを常時監視し、各サーバの協調処理に関する相関情報(構成情報)を管理し、それらの情報から処理性能低下しているサーバ群を検出する。振り分けサーバは、次にメッセージを振り分けるメッセージから、処理性能低下しているサーバ群を回避してメッセージを振り分ける。
 具体的な一つの態様は、メッセージを振り分ける振り分けサーバと複数のメッセージを処理するサーバを含んで構成されるシステムであって、当該振り分けサーバは、メッセージを処理するサーバへ転送する機能と、メッセージ転送の時間やコネクション数などをサーバ毎に管理する機能と、上記時間やコネクションが閾値を超過した場合に処理性能低下と判定する機能と、各サーバの協調処理に関する相関情報を取得する機能と、上記処理性能低下と相関情報から処理性能低下しているサーバ群を特定する機能と、上記処理低下しているサーバ群を避けてメッセージを振り分ける機能と、を備えることを特徴とする。
 開示によれば、複数のサーバを含んで構成されるメッセージシステムにおいて、システムの一部のサーバが障害や処理速度低下に陥った場合でも、システム全体の処理性能低下やサービスの部分停止を回避することを可能にする。
第一の実施例における概略システム構成を例示するブロック図である。 メッセージ受信サーバ106またはメッセージ送信サーバ108の構成を例示するブロック図である。 データストアサーバ107の構成を例示するブロック図である。 メッセージシステムのメッセージ中継シーケンスの一例を示す。 メッセージシステムのメッセージ取得シーケンスの一例を示す。 第二の実施例における概略システム構成を例示するブロック図である。
 以下、実施例について図面を参照して説明する。
 本実施例では、大量メッセージを処理するメッセージシステムの例として、メッセージの受信機能を持つメッセージ受信サーバと、メッセージを格納する複数のデータストアサーバ(またはキーバリューストア(Key-Value Store),データグリッドなど)と、メッセージの送信機能を持つメッセージ送信サーバと、を含んで構成されるメッセージシステムについて説明する。
 データストアサーバは同一のデータを複製し、複数のデータストアサーバで上記同一データを多重に保持することによりデータの永続性を実現する。データストアサーバは、データの格納、更新、削除等の処理を、そのデータを保持する(もしくは保持すべき)複数のデータストアサーバ間で協調して行う。また、本実施例では、データストアサーバはキーと値(バリュー)のペアでデータを管理する、キーバリューストアである。
 なお、特許文献1、2の各サーバがサーバの処理状態などの情報を保持する必要がない、すなわちステートレスであるのに対し、本実施例のデータストアサーバは処理状態などの情報を保持する、ステートフルである。ステートフルのサーバは障害時に状態(データ)を引き継ぐなどの処理が必要であり、システムが複雑化するが、可用性が要求されるシステムなどに多く適用されている。
 本実施例では、データストアサーバがステートフルである構成上の違いにより、特許文献1、特許文献2に言及されていない、ステートフルなサーバ、高可用システムにおける処理性能低下時の課題およびその解決手法についても述べる。
 また、本実施例では大量メッセージの例として、携帯通信キャリアのメールなどのメッセージを対象とする。
 図1は、本実施形態のメッセージシステムのシステム構成を示すブロック図である。
 本実施の形態のメッセージシステムは、キャリア設備網103内に構成されており、メッセージ受信サーバ106、データストアサーバ107、メッセージ送信サーバ108を備える。
 通信端末101は、携帯電話端末やタブレット、PC等のデータ通信可能な端末装置を示し、無線網102を介して、キャリア設備網103内の本実施形態のメッセージシステムと接続している。無線網102は、携帯通信キャリアが管理する無線ネットワークである。キャリア設備網103は、無線網102からの通信をインターネット104、およびメッセージ受信サーバ106へ中継するネットワークおよびネットワーク設備である。無線網102とキャリア設備網103は、本実施例のメッセージ受信サーバ106を管理する携帯通信キャリアによって管理される。
 メッセージ転送サーバ105は、MTA(Mail Transfer Agent)とも呼ばれ、インターネット104を経由して、キャリア設備網103内の本実施形態のメッセージシステムと接続し、メッセージ受信サーバ106とメッセージの送受信を行う。メッセージ転送サーバ105は、インターネットプロバイダや、他の携帯通信キャリア等の通信事業者が管理する設備網に設置される。メッセージ転送サーバ105は、メッセージ転送サーバ105を管理する他の通信事業者のメッセージを、メッセージ受信サーバ106へ送信する処理を行う。
 本実施形態のメッセージシステムのシステムは、複数のメッセージ受信サーバ106、データストアサーバ107、メッセージ送信サーバ108を含んで構成される。メッセージシステムの論理構成110で示すようにメッセージ受信サーバ106とデータストアサーバ107間、データストアサーバ107とメッセージ送信サーバ108間、複数のデータストアサーバ107間などがメッシュ状に接続される。論理構成110の各サーバは、実際にサーバ装置であってもよいし、仮想マシンであってもよい。
 また、論理構成110の各サーバをサーバプログラムとして、同一のサーバ装置上に複数の種類のサーバを配置してもよい。たとえば、メッセージ受信サーバ106とデータストアサーバ107を同一サーバ装置に配置したり、複数のデータストアサーバ107を同一サーバに配置してもよい。本実施例のシステム構成は、図1に限定されること無く、他の構成のメッセージングシステムにも適用可能である。
 本実施形態のメッセージシステムのシステムは、通信端末101やメッセージ転送サーバ105から受信したメッセージを一度キューと呼ばれる格納領域に蓄積してから順次送信処理を行う、いわゆるストアアンドフォワード方式で中継することにより、システムへ流入する情報量の平準化や、ユーザを待たせない即時応答などを実現する。
 本実施形態では、メッセージの受信処理をメッセージ受信サーバ106を担当し、キューの保持をデータストアサーバ107が担当し、メッセージの送信処理をメッセージ送信サーバ108が担当する。
 メッセージ受信サーバ106は、通信端末101やメッセージ転送サーバ105から受信したメッセージをデータストアサーバ107へ格納するする処理を行う。
 メッセージ送信サーバ108は、データストアサーバ107に格納されたメッセージを取得し、メッセージ転送サーバ105などメッセージの宛先サーバ、またはメッセージを宛先サーバへ中継するサーバに送信する。
 データストアサーバ107は、キーと値(バリュー)のペアでデータを管理し、複数のデータストアサーバ107で同一のデータ(キーとバリュー)を多重に保持し、メッセージ受信サーバ106やメッセージ送信サーバ108から要求されたデータの処理を行う。
 なお、本実施例では携帯通信キャリアのメッセージシステムであり、上記以外に認証処理、課金処理等、メッセージの変換処理、輻輳制御などの処理を、メッセージ受信サーバ106、データストアサーバ107、およびメッセージ送信サーバ108のいずれかが行ってもよい。
 本実施例では、メッセージの送信経路が順に通信端末101、メッセージ受信サーバ106、データストアサーバ107、メッセージ送信サーバ108であるシーケンスを例として説明するが、これに限定されること無く、他のシーケンスにも適用可能である。また、本実施例で開示するメッセージングシステムの適応範囲は、メールやショートメッセージに限定されることなく、無線網102に接続されたセンサ、車、メータなどのデバイスや送信するメッセージ(もしくはデータ)に適用可能である。また、本実施例は無線網102の代わりに有線網やスマートグリッドなどのネットワーク形態にも適用可能である。
 図2は、メッセージ受信サーバ106、メッセージ送信サーバ108を実現する情報処理装置のハードウェア構成である。メッセージ受信サーバ106または、メッセージ送信サーバ108を実現する情報処理装置は、プロセッサ202と、揮発性メモリ207と、不揮発性の記憶部であるディスク209と、キャリア設備網103にデータを送受信するための入出力回路インタフェイス203と、これらを接続するバスなどの内部通信線と、を含んで構成される。なお、障害時の影響を低減するために、入出回路インターフェイス203を、2つ以上のネットワークに接続する構成にしても良い。
 揮発性メモリ207は、メッセージ処理プログラム204と、データ群205を備えている。メッセージ処理プログラム204には、複数のデータストアサーバ107へメッセージ(データ)を分散して格納する処理などを行う分散処理部210と、メッセージの処理を実現する各種制御プログラムなどが含まれ、これらがプロセッサ202により実行される。本実施例では、メッセージ処理プログラム204の内容は、メッセージ受信サーバ106とメッセージ送信サーバ108では異なるが、メッセージ処理プログラム204にメッセージ受信サーバ106とメッセージ送信サーバ108の両方機能を備えた構成も可能である。
 メッセージ処理プログラム204は、予め、揮発性メモリ207またはディスク209に格納されていてもよいし、図示していない着脱可能な記憶媒体または通信媒体(すなわちネットワークまたはそれを伝播するデジタル信号や搬送波)を介して、揮発性メモリ207またはディスク209に導入されてもよい。ディスク209には、さらにメッセージ処理プログラム204が出力したログやメッセージ処理プログラム204の設定ファイル等のデータを格納する。
 以下説明する内容は、分散処理部210に含まれるプログラムがプロセッサ202により実行されることにより、メッセージ受信サーバ106または、メッセージ送信サーバ108の機能として実現されるものである。なお、本実施例では、メッセージ処理プログラム204が処理のために使用するデータ群205を機能的な観点から、メッセージ処理プログラム204とは別の構成要素として図示しているが、上記データ群205はメッセージ処理プログラム204に含まれてもよい。
 データ群205は、データストアサーバ動作設定情報221、データストアサーバ構成情報222、データストアサーバ合議情報223、処理性能低下判定条件231、リソース規制値情報232、仮想キュー情報233、分散方式情報234、取得方式情報235、データストアサーバ状態情報250を含んで構成される。
 データストアサーバ動作設定情報221には、複数のデータストアサーバ107間でのデータの保持方法やデータストアサーバ107の動作設定等の情報が格納される。たとえば、何台のデータストアサーバ107でデータを保持するかの情報(データの多重度)、複数のデータストアサーバ107間でデータをどのように保持したり、管理したりするかの方式(データ保持方式)、データストアサーバ107が受信した要求に従って処理するときの動作(要求別動作設定)を含んで構成される。
 データ保持方式には、複数のデータストアサーバ107間でデータを同一の状態で保持する一貫性保持型と、データの状態が不一致していることを許容する代わりにデータストアサーバ107のサービス継続性を優先する方式(可用性保持型)などが設定される。要求別動作設定には、データの格納、取得、更新、削除、比較といった要求毎にデータストアサーバ107が何台のデータストアサーバ107と連携して、何台以上のデータストアサーバ107の処理が成功した場合を要求に対して成功と判定する情報が格納される。
 以下、本実施例では、データストアサーバ動作設定情報221のデータの多重度が3であり、一貫性保持型である場合について説明する。また、要求別動作設定では、格納、更新、削除要求の設定には3台のデータストアサーバ107にデータを格納したことをもって格納成功とする設定と、取得要求の設定には1台のデータストアサーバ107からデータを取得することを設定する。ただし、データの多重度は3以外でもよいし、また可用性保持型のシステムを構成することも可能である。
 データストアサーバ動作設定情報221により、分散処理部210はデータストアサーバ107の種類や処理形態に適応して、後述するデータストアサーバ107の処理性能低下判定処理などを実現できる。
 データストアサーバ構成情報222には、分散処理部210がデータストアサーバ107から定期的に取得するデータストアサーバ107間の相関情報および稼動情報を格納する。データストアサーバ107間の相関情報とは、メッセージシステム内のどのデータストアサーバ107がどのキーのデータを保持しているかの情報(以下、キーレンジ担当情報)と、そのキーレンジ担当情報に対してデータストアサーバ107がマスタであるかスレーブであるかという、データストアサーバ107間の連携処理に係る情報である。相関情報は後述する合議情報に基づき生成しても良い。
 稼動情報は、各データストアサーバ107の稼動情報に加え、相関情報に含まれるキーレンジのうち、どのキーレンジがデータを現在何多重度で保持しているかの情報(たとえばデータ多重度が3でもそのデータを保持するデータストアサーバ107の一台が障害等により停止すれば、データ多重度は2となる)を保持する。
 データストアサーバ合議情報223は、データストアサーバ107同士が交換するデータストアサーバに係る情報に基づき、例えばゴシッププロトコルと言われる方法で決定される情報であり、データストアサーバ構成情報222と同様に、データストアサーバ107の稼動状況や相関情報を含む。分散処理部210は、データストアサーバ107が定期的にマルチキャストなどで送信しているデータストアサーバ構成情報を取得して、データストアサーバ構成情報222を更新する。
 分散処理部210は、データストアサーバ合議情報223か、データストアサーバ構成情報222をどちらかを用いて、後述するデータストアサーバ107の処理性能低下を判定するが、両方を利用してもよい。以下、本実施例ではデータストアサーバ構成情報222を利用する。
 処理性能低下判定条件231は、分散処理部210がデータストアサーバ107の処理性能低下を判定するための条件(閾値)であり、格納要求の処理性能低下判定条件240A、取得要求の処理性能低下判定条件240Bなど、要求種別毎に条件を保持する。処理性能低下判定条件231は、要求種別毎に、処理経過時間241、接続数242、同時処理数243、送信待ち数244、応答時間245を含んで構成される。
 分散処理部210は、データストアサーバ107との通信処理や、データストアサーバ構成情報222から取得する値(判定対象の現在値255(後述する))を処理性能低下判定条件231と比較し、いずれかの値が超えていれば、データストアサーバ107の処理性能が低下していると判定する。処理性能低下判定条件231の各パラメータは、平均値と比較される閾値であり、分散処理部210が処理性能低下判定と判定するための最低必要回数の情報を含む。
 処理経過時間241には、分散処理部210がデータストアサーバ107へ要求を送信してからの経過時間の閾値が記述される。接続数242には、分散処理部210がデータストアサーバ107に接続するコネクション数の閾値が記述される。
 同時処理数243には、分散処理部210が同時実行している処理数や、プロセス数、スレッド数の閾値が記述される。
 送信待ち数244には、分散処理部210のデータストアサーバ107への送信待ちのメッセージ数の閾値が記述される。
 応答時間245は、分散処理部210がデータストアサーバ107へ要求を送信して応答を受信した時間(平均値)の閾値である。
 ここで処理経過時間241は、実績値である応答時間245と異なり、分散処理部210がデータストアサーバ107から応答を受信していない、現在処理中の要求を送信してからの経過時間であり、応答時間より短い時間に設定される。一般的にメッセージを処理するサーバは、外部サーバにメッセージを送信し応答を待ち続ける応答タイムアウト値を持ち、受信した時点で応答タイムアウト以内であれば正常に応答を受信して応答時間245に追加、応答タイムアウト以降に受信した場合は応答をエラーと判定する。
 本実施例が想定するのは、応答時間245が数ミリ秒から数秒以下オーダー、上記応答タイムアウトが数秒から数分のオーダーで設定されるシステムであって、この場合、処理経過時間241は数マイクロ秒から1秒以下のオーダーで設定されることが望ましい。
 また、処理性能低下判定条件231が要求種別に条件を保持するのは、データストアサーバの動作設定情報221により、格納、取得などの要求種別毎にデータストアサーバ107の連携処理、処理性能低下する要因、データストアサーバ107の稼働状況により要求種別で実行できるか否かなどが異なるためである。
 リソース規制値情報232は、分散処理部210がデータストアサーバ107へ要求を送信するためのリソースを保護するための規制値であり、分散処理部210がデータストアサーバ107の要求で、同時実行しているプロセス数、コネクション数、分散処理部210への送信待ち要求数等の規制値である。リソース規制値情報232は、通常時と、処理性能低下判定時などの状態別に複数の値を保持する。分散処理部210は、リソース規制値情報232により、処理性能低下したデータストアサーバ107への要求処理で全リソースを使い切ってしまうことを回避する。
 仮想キュー情報233には、複数のデータストアサーバ107の各々が保持するキューデータ340(以下、分散キューということがある)をメッセージシステムで仮想キューとして一元管理するための管理用の情報が格納される。
 分散方式情報234には、分散処理部210がデータストアサーバ107の保持する分散キューへの分散方式(格納時の振り分け方式)の情報が格納される。本実施例では、システム全体でメッセージの宛先別に仮想キューを備え、たとえば分散処理部210は同一の宛先のメッセージであれば、同一の仮想キューを選択する。仮想キューの実際のデータは、データストアサーバ107の分散キューに格納され、ひとつの仮想キューに対し複数の分散キューが対応する。言い換えれば、仮想キューは複数の分散キューを含んで構成される。仮想キュー情報233には、各仮想キューとそれに対応する複数の分散キューの対応情報、および複数の分散キューの情報を一元管理するための情報が格納される。
 仮想キュー情報233は、メッセージシステム内の複数の受信サーバと送信サーバが各々備える分散処理部210で共有される。上記共有の仕組みは、最初にメッセージシステムの複数の分散処理部210のうちどれか1つが仮想キュー情報233を更新し、データストアサーバ107に仮想キュー情報331として格納する。他の分散処理部210は、定期的に仮想キュー情報331をデータストアサーバ107から取得し、自サーバ内の仮想キュー情報233を更新する。なお、本実施例のメッセージシステムは、複数の種類の仮想キューを保持する。
 分散方式情報234には、キーのハッシュ計算による分散方式、ラウンドロビン、リーストコネクションなどの分散方式が格納される。また、分散方式情報234は処理性能低下判定処理によりデータストアサーバ107の処理性能低下が発生した場合に、動的に変更されてもよい。
 取得方式情報235には、メッセージ受信サーバ106またはメッセージ送信サーバ108が、メッセージを取得可能なデータストアサーバ107(データストアサーバ状態情報250)を特定する情報と、その取得優先度が格納される(詳細は図5で説明する)。具体的には、取得可能な全台または一部のデータストアサーバ107から取得することを設定したり、設定した複数台のどのデータストアサーバ107から優先して取得するか、例えば、データストアサーバ107の保持するメッセージ数が多いところから優先して取得する、といった情報を設定する。
 なお、取得方式情報235には、データストアサーバ107の代わりに、データストアサーバ107の保持する分散キュー(分散キューデータ340)と、その分散キュー毎の取得優先度を設定してもよい。
 データストアサーバ状態情報250は、担当キーレンジ情報251、稼動サーバ252、稼動情報253、分散キューリスト254、判定対象の現在値255、データ多重度256を含んで構成される。
 担当キーレンジ情報251には、各データストアサーバ107が保持するデータのキーの範囲が記述され、稼動サーバ252には上記キーの範囲を現在担当しているデータストアサーバ107(マスタ、スレーブを含む複数台)のIPアドレスが記述される。
 担当キーレンジ情報251、稼動サーバ252は、分散処理部210がデータストアサーバ構成情報222を元に作成され、データストアサーバ107の障害や構成変更時には動的に変更される。
 稼動情報253には、マスタ、スレーブを含めた複数のデータストアサーバ107のサーバ状態が格納される。分散キューリスト254には、担当キーレンジ情報251の範囲に含まれる分散キューのリストが記述され、データストアサーバ107の障害や構成変更時には動的に変更される。
 分散処理部210は、通常時において、仮想キュー情報233に対応する分散キューリスト254がある、データストアサーバ状態情報250を選択する。
 判定対象の現在値255には、処理性能低下判定条件231の対象であるパラメータが記述され、処理経過時間241接続数242、同時処理243、送信待ち数244、平均応答時間245に対応する現在値が格納される。
 データ多重度256は、担当キーレンジ情報251の範囲に含まれるデータ(分散キュー)の多重度である。データ多重度256は、通常は担当キーレンジ情報251の範囲に含まれるデータを保持しているデータストアサーバ107の稼動台数と一致するが、データストアサーバ107が仮想環境等で実行されている場合は、実環境のデータストアサーバ107の稼動台数を格納する。
 データ多重度256により、分散処理部210はデータの多重度をデータストアサーバ107の設定とは別に保持することが可能になり、メッセージ受信サーバ106のアプリケーションの都合や仮想環境などで、データの多重度に対する柔軟な制御をおこなうことを可能にする(一般的にデータストアサーバ107がメッセージ毎にデータ多重度に対する制御が行えない)。
 なお、本実施例では、データストアサーバ状態情報250を担当キーレンジ情報251毎に作成しているが、これに限定されず、たとえば分散キュー毎にデータストアサーバ状態情報250を作成してもよい。
 図3は、データストアサーバ107を実現する情報処理装置のハードウェア構成である。データストアサーバ107を実現する情報処理装置は、プロセッサ302と、揮発性メモリ307と、不揮発性の記憶部であるディスク309と、キャリア設備網103にデータを送受信するための入出力回路インタフェイス303と、これらを接続するバスなどの内部通信線と、を含んで構成される。
 揮発性メモリ307またはディスク309は、データストアサーバプログラム304を格納しており、また、データ群305を備えている。データストアサーバプログラム304には、メッセージの処理を実現する各種制御プログラムが含まれ、これらの制御プログラムがプロセッサ302により実行される。
 データストアサーバプログラム304は、予め、揮発性メモリ207またはディスク209に格納されていてもよいし、図示していない着脱可能な記憶媒体または通信媒体(すなわちネットワークまたはそれを伝播するデジタル信号や搬送波)を介して、揮発性メモリ207またはディスク209に導入されてもよい。ディスク309には、さらに、データストアサーバプログラム304が出力したログやデータストアサーバプログラム304の設定ファイル等のデータを格納する。
 以下説明する内容は、データストアサーバプログラム304に含まれる各種制御プログラムがプロセッサ302により実行されることにより、データストアサーバ107の機能として実現されるものである。
 データ群305は、データストアサーバ構成情報321、データストアサーバ合議情報322、データストア領域330を含んで構成される。
 データストアサーバ構成情報321は、図2におけるデータストアサーバ構成情報222と同じ内容を含んで構成される。ただし、データストアサーバ構成情報321はデータストアサーバ107が作成して利用するものであり、データストアサーバ構成情報222とデータ形式は異なってもよい。同様にデータストアサーバ合議情報322は、図2におけるデータストアサーバ合議情報222と同じ内容を含んで構成される。データストアサーバプログラム304は、他のデータストアサーバプログラム304間でデータストアサーバ合議情報222を交換し、データストアサーバ構成情報221を作成する。
 データストア領域330は、データストアサーバ107がメッセージ受信サーバ106(の分散処理部210)から受信したデータ(格納要求)を格納する領域である。本実施例では、データストアサーバ107はキーバリューストアであるため、データストア330に格納される各データにはそのデータ(バリュー)に対応するキーも同時に格納されているが、本実施例では簡略化のためデータ(バリュー)のみ表記し、キーについては省略する。
 なお、321、322、330の各情報を不揮発性記憶部308に格納してもデータストアサーバプログラム304の機能は実現可能である。
 データストア330は、仮想キュー情報331と、複数の分散キューデータ340を含んで構成される。
 仮想キュー情報331は、仮想キュー情報233と同一の情報であり、複数の分散処理部210がメッセージシステム全体で仮想キューの情報を共有するために、データストアサーバ107に保持する。
 分散キューデータ340(データストア330)は、複数のデータストアサーバ107に多重に保持されている。分散キューデータ340は、1つの分散キュー管理情報341と、複数のメッセージデータ342とメッセージ関連情報343を含んで構成される。
 分散キュー管理情報341は、分散キューデータ340に含まれる複数のメッセージデータ342とメッセージ関連情報343を管理するための情報であり、この情報によりデータストアサーバプログラム304はキューとしての機能を実現できる。分散キュー管理情報341には、分散キューデータ340の識別子、分散キューデータ340がマスタであるかスレーブであるかの情報、メッセージの格納順や取り出し順などの処理順序の情報、分散キューデータ340に格納できる最大のメッセージデータ数(または、分散キューデータ340が利用できるデータサイズ)、現在の分散キューデータ340に格納されているメッセージデータ数および利用しているデータサイズ、複数の分散処理部210からメッセージを1つずつ取り出すための排他制御などの情報を含んで構成する。
 なお、上記排他制御により、ある分散処理部210取り出されたメッセージは、他の分散処理部210から一定時間メッセージを取り出せないようになり、1つのメッセージの多重処理を防ぐことができる。
 メッセージデータ342は、メッセージ受信サーバ106から受信し、格納したメッセージのデータである。メッセージ関連情報343は、メッセージデータ342に関連する付加情報などの情報である。メッセージ受信サーバ106または、メッセージ送信サーバ108はメッセージ関連情報343を利用して、メッセージ処理を行う。
 図4はメッセージシステムのメッセージ中継シーケンスの一例を示す図である。
 ステップ401からステップ442は、メッセージ受信サーバ106のメッセージ受信のシーケンスを示し、ステップ405においてデータストアサーバ107aの処理性能が低下した例を示す。
 最初に、メッセージ受信サーバ106は、通信端末101が発信したメッセージを受信し(ステップ401)、メッセージの宛先と仮想キュー情報233から格納する仮想キューを選択し、分散方式情報234に従い、上記仮想キューに対応する分散キューを分散キューリスト254に含む、データストアサーバ状態情報250を選択し(ステップ402)、メッセージ格納要求をデータストアサーバ107aに送信する(ステップ403)。データストアサーバ107aは、データストアサーバ107bを含む複数のデータストアサーバ107間で受信したメッセージ(データ)を多重化するため、格納要求の処理連携(ステップ404)を行う。次にステップ405でデータストアサーバ107aで処理性能低下が発生したとする。このとき、メッセージ受信サーバ106はメッセージ格納要求403に対する応答待ちの状態である。
 次に、メッセージ受信サーバ106は、通信端末101が発信した別のメッセージを受信し(ステップ411)、分散先(格納先)を選択し(ステップ412)、データストアサーバ107へメッセージ格納要求を送信する(ステップ413)。ここで、メッセージ受信サーバ106は処理性能低下405により応答を送信できなくなっている状態になっているとする。
 ステップ413後、メッセージ受信サーバ106は通信端末101からメッセージを受信(ステップ431)すると、ステップ433の処理結果を反映したデータストアサーバ状態情報250を分散先の選択(ステップ432)を行う。ステップ432において、メッセージ受信サーバ106の分散処理部210は、メッセージの宛先と仮想キュー情報233から格納する仮想キューを選択し、分散方式情報234に従い、上記仮想キューに対応する分散キューを分散キューリスト254に含むデータストアサーバ107aを選択する。
 次にメッセージ受信サーバ106は、処理性能低下判定処理433を行う。ステップ433は、メッセージ受信サーバ106分散処理部210が定期時間毎の処理性能低下判定処理において「処理性能低下」と判定する例である。
 なお、図4において処理性能低下判定処理は、分散処理部210がデータストアサーバ107へ要求を送信する直前のタイミング(ステップ403、ステップ413、ステップ452、ステップ456)と、分散処理部210がデータストアサーバ107から応答を受信したタイミング(ステップ435、ステップ441、ステップ453)と、ミリ秒オーダーの定期時間毎にチェックで行われているが、「処理性能低下」と判定されていないため、省略している。
 分散処理部210は、処理性能低下405直後のメッセージ格納要求413前にも処理性能判定処理を行っているが、処理性能低下判定条件231に含まれるパラメータは平均値(または最低判定回数を超過していない)として比較して「処理性能低下」と判定しなかったとする。
 ステップ 433において、メッセージ受信サーバ106の分散処理部210は以下の処理を行う。最初にメッセージ受信サーバ106の分散処理部210は、データストアサーバ107aのデータストアサーバ状態情報250の判定対象の現在値255と、処理性能低下判定条件231を比較して処理性能低下判定を行う(ステップ433)。
 具体的には、メッセージ受信サーバ106の分散処理部210は、判定対象の現在値255に格納されている、各パラメータが処理性能低下判定条件231内の対応するパラメータの閾値を超過しているか判定する。
 ステップ433で利用する処理性能低下判定条件231は、格納要求種別の設定であり、以下ステップ433では、明示しないが格納要求の処理性能低下判定条件240Aが利用される。最初に、分散処理部210は、処理経過時間241と、判定対象の現在値255に含まれる処理経過時間の現在値(メッセージ格納要求403、413の処理経過時間の平均値)を比較する。
 次に分散処理部210は接続数242と、判定対象の現在値255に含まれる接続数(コネクション数)の現在値(メッセージ格納要求403、413の2コネクション)を比較する。次に分散処理部210は同時処理数243と、判定対象の現在値255に含まれる同時処理数(分散処理部210のプロセス数)の現在値(メッセージ格納要求403、413の2コネクション)を比較する。次に、分散処理部210は、送信待ち数244と、判定対象の現在値255に含まれるデータストアサーバ107へのメッセージ送信待ち数の現在値を比較する。
 なお、応答時間245に関しては、分散処理部210がデータストアサーバ107から応答を受信したタイミングや、定期時間毎にチェックで処理性能低下判定が行われる。
 分散処理部210は、処理性能低下判定条件231の上記パラメータのいづれか閾値を超過した場合、処理性能低下と判定されたデータストアサーバ状態情報250に対応するデータストアサーバ107(稼動サーバ252のマスタに登録されている)の稼動情報253に「処理性能低下状態」であることを記述し、稼動サーバ252またはデータストアサーバ構成情報222に含まれる、処理性能低下したデータストアサーバ107aと連携するデータストアサーバ107bに対応するデータストアサーバ状態情報250の稼動情報253に「連携先による処理性能低下状態」であることを記述する。
 なお、本発明が対象とする処理性能低下を処理性能低下状態を1秒以下で検出するのは、判定条件231の上記パラメータの単一だけでは検出困難である場合は、上記パラメータの組み合わせにより、「処理性能低下状態」と判定してもよい。その後、分散処理部210は、ステップ432において選択されていたデータストアサーバ107aが「処理性能低下状態」であり、データストアサーバ107bが「連携先による処理性能低下状態」であるため、データストアサーバ107cに送信先を変更する。
 なお、データストアサーバ状態情報250の稼動情報253が「処理性能低下状態」を「連携先による処理性能低下状態」は、データストアサーバ107の応答受信時、定期時間毎のチェック、分散処理部210が要求をデータストアサーバ107へ送信するときの処理性能低下判定で、処理性能低下判定条件231の閾値を下回っていれば解除される。
 「処理性能低下状態」または「連携先による処理性能低下状態」であるデータストアサーバ107には、リソース規制値情報232の処理性能低下状態時のパラメータが適用される。図4ではメッセージ受信サーバ106がデータストアサーバ107aに対し、接続数242、同時処理数243などのリソースを消費している。
 通常時は、データストアサーバ107の処理性能を最大化する、接続数242、同時処理数243などのリソースを十分な値が設定されるが、あるデータストアサーバ107の処理性能が低下した場合は逆に分散処理部210のリソースの大部分を処理性能低下中のデータストアサーバ107に消費される可能性がある。そのため、リソース規制値情報232の通常時より低い値である処理性能低下状態時のパラメータを適用することにより、分散処理部210は処理性能低下状態時のリソース保護を実現する。
 次にメッセージ受信サーバ106は、データストアサーバ107cへメッセージ格納要求を送信し(ステップ434)、データストアサーバ107cは受信したメッセージ格納要求に含まれる格納先の分散キューに一致する分散キューデータ340にメッセージデータ342とメッセージ関連情報343を格納し、格納に成功した応答を送信する(ステップ435)(なお、データストアサーバ107cは他のデータストアサーバ107との処理連携も行うが、図4では省略)。次にメッセージ受信サーバ106は、メッセージ431に対する正常応答436を通信端末101へ送信し、メッセージ受信のシーケンスを正常終了する。
 ステップ441、442は、ステップ405において処理性能低下していたデータストアサーバ107aが短時間で復帰した場合のメッセージ受信サーバ106の挙動である。メッセージ受信サーバ106は、メッセージ格納要求403が応答タイムアウトするまえに格納に成功した応答441を受信すると処理を続行し、メッセージ401に対する正常応答442を通信端末101へ送信し、メッセージ受信のシーケンスを正常終了する。メッセージ受信サーバ106の分散処理部210は、処理経過時間241等の処理性能低下判定条件231を応答時間245とは別のパラメータを管理するため、応答タイムアウトと、応答タイムアウトより短い値であるデータストアサーバ107間の連携処理タイムアウトの値をネットワーク装置以上に設定できる。
 一方で、従来技術のように、分散処理部210が応答時間245で判定する場合、ステップ403からステップ441間まで処理性能低下を検知できず、分散処理部210が応答タイムアウトで判定する場合でもステップ403から応答タイムアウト経過後まで(ステップ441よりも後)まで検知できない。分散処理部210が応答タイムアウトで判定する場合かつ、応答タイムアウトをステップ403からステップ441間よりも短くした場合、本来なら正常応答であるステップ441をエラーとして扱うことになり、エラーが多発しやすくなるといった問題がある。
 分散処理部210は、処理性能低下判定条件231の処理経過時間241、接続数242、同時処理数243、送信待ち数244により、分散処理部210が現在処理中のメッセージに対し応答が遅延しないか(データストアサーバ107の処理性能が低下しないか)を監視でき、応答タイムアウトの発生確率を低減することによる大量のエラー発生防止や、データストアサーバ107のサービス停止の回避を可能とする。
 ステップ451からステップ456は、メッセージシステムの送信シーケンスである。メッセージ送信サーバ108の分散処理部210は、定期的にメッセージを取得するデータストアサーバ107を選択する(ステップ451)。取得先選択451は、分散先選択403と似た処理であり、分散処理部210が、取得方式情報235に従い、メッセージ送信サーバ108が取得対象にできるデータストアサーバ状態情報250のうち「処理性能低下状態」を含まないデータストアサーバ107cを選択する。なお、ステップ451は、メッセージ送信サーバ108の分散処理部210が他サーバから取得の契機(イベント)を受け付けて処理を開始してもよい。
 次にメッセージ送信サーバ108の分散処理部210は、メッセージ取得要求をデータストアサーバ107cへ送信し(ステップ452)、データストアサーバ107から複数のメッセージを受信する(ステップ453)。ステップ453において、メッセージ送信サーバ108はデータストアサーバ107の複数の分散キューデータ340に格納されているメッセージデータ342およびメッセージ関連情報343をまとめて取得可能である。
 なお、ステップ451~453は、メッセージシステム内の複数のメッセージ送信サーバ108の分散処理部210により実行されている(詳細は図5で説明する)。メッセージ送信サーバ108の分散処理部は、メッセージシステム内のメッシュ状に接続された複数のデータストアサーバ107へアクセスしメッセージを取得しようとする。1台のデータストアサーバ107は複数のメッセージ送信サーバ108の分散処理部210がメッセージ取得要求452を受信し、メッセージ取得要求452を先着順に処理する。
 次にメッセージ送信サーバ108はステップ453で受信したメッセージをメール転送サーバ105へ送信できるように変換して送信する(ステップ454)。メッセージ受信サーバ106は、メッセージ転送サーバ105から正常応答を受信し(ステップ454)、メッセージの送信成功を確認したら、データストアサーバ107へメッセージ削除要求456を送信し、メッセージ送信シーケンスを終了する。
 図5は、メッセージシステムのメッセージ取得シーケンスの一例を示す図である。図5は、図4で示したメッセージシステムのメッセージ中継シーケンスの一部であり、複数台のメッセージ送信サーバ108の分散処理部210が、取得方式情報235に格納されている内容に従い、データストアサーバ107のキューからメッセージを取得するシーケンスを例示する。
 取得方式情報235で指定するデータストアサーバ107は、サーバやネットワークの状況に応じて、静的または動的に設定する。たとえば、データストアサーバ107とメッセージ送信サーバ108間のネットワーク負荷を下げるために、同一装置上のデータストアサーバ107や、ネットワーク上の距離(例えばホップ数)が近いデータストアサーバ107からの取得を優先するように設定する。
 メッセージ取得時の、複数のキュー、または、複数のデータストアサーバ107と、複数のメッセージ送信サーバ108と、の対応関係は、自由に設定することが可能であり、例えば、ネットワーク負荷、サーバのネットワーク上の距離(例えばホップ数)、サーバ負荷などの条件によって、設定する。また、障害時の状況により、上記対応関係を動的に変更することも可能である。
 最初に、メッセージ送信サーバ108aの分散処理部210は、前述の対応づけられている複数のデータストアサーバ107の中で、優先的に取得することが設定されているデータストアサーバ107aを選択し(ステップ470)、メッセージ取得要求を送信し(ステップ471)、メッセージを取得する(ステップ472)。
 ここで、「優先的な取得が設定される」とは、取得の順番が先である、取得回数が多い、取得の間隔(ステップ471と474の間隔)が短い、一度に取得できるメッセージ数が多い、など、取得に係る一つ以上の項目について、他のメッセージ送信サーバより優先度が高い設定になっている状態をいう。上述の通り、これらの項目は、取得方式情報235に設定されている。
 また、取得方式情報235に相当する、優先度に係る情報を、各データストアサーバ107が保持し、各メッセージ送信サーバ108からの取得に対する応答内容(例えば、応答するメッセージ数)を変更することにより、結果的に、上記優先度を制御しても良い。
 図5では、データストアサーバ107aは、メッセージ送信サーバ108aと同じ装置上にあり、他のメッセージ送信サーバ108b、108cとは異なる装置上にあるというシステム構成を想定する。この場合、装置間のネットワークへの負荷を下げるために、メッセージ送信サーバ108aの分散処理部210は、同じ装置上にあるデータストアサーバ107aから優先的に取得するよう、メッセージ取得要求474の間隔を、他の装置上にある他のメッセージ送信サーバ108よりも短く設定し、優先度を高くすることが望ましい。この場合、優先的な取得対象ではない、優先度が通常のメッセージ送信サーバ108bおよびメッセージ送信サーバ108cの分散処理部210は、データストアサーバ107aから通常の取得間隔でメッセージを取得する。
 上記構成によれば、障害等でメッセージ送信サーバ108aが停止しても、メッセージ送信サーバ108bおよびメッセージ送信サーバ108cの分散処理部210が、データストアサーバ107aのメッセージを取得することにより、メッセージの取得、すなわち、サービス、が停止しないシステムの構築が可能になる。
 また、メッセージ送信サーバ108の分散処理部210に、キューに通常残っているメッセージ数より多いメッセージを取得出来る能力を持たせれば、メッセージ送信サーバ108aが停止して、データストアサーバ107aのキューにメッセージが多量に滞留している場合であっても、新たに設定することなく、取得するメッセージ数が増え、サービスの処理性能(スループット)への影響が少なくできる。
 あるいは、メッセージ送信サーバ108の分散処理部210に対して、一度に取得出来るメッセージ数より少ない数のメッセージを、通常の取得数として設定しておき、必要に応じて、メッセージ送信サーバ108bまたは108cの一度に取得するメッセージ数を上限まで増やしてもよい。このようにすれば、上記例と同様、メッセージ送信サーバ108aが停止していて、データストアサーバ107aのキューにメッセージが多量に滞留している場合でも、サービスの処理性能(スループット)への影響が少なくできる。
 以上の構成により、障害対応専用の処理を実装しなくても、障害発生時にもサービスを安定して提供できるシステムを実現できる。
 次に第二の実施例について説明する。第二の実施例は、データストアサーバ107を異なるネットワークの2つのグループに分けて運用し、メッセージシステムを第一の実施例より高可用にする方法である。第二の実施例と、第一の実施例との相違点を、図6を用いて以下説明する。
 第二の実施例は、図1ではなく、図6に示すシステム構成をとる。データストアサーバ107は107-1グループと、107-2グループで構成され、各グループは異なるネットワーク(異なるネットワーク装置)で接続される。メッセージ受信サーバ106とメッセージ送信サーバ108は、データストアサーバ107-1、107-2グループの各グループを認識し、ネットワークを切り替えてデータストアサーバ107にアクセスする。
 データストアサーバ107は、他のデータストアサーバ107とネットワークを介して連携処理するため、一部のネットワーク装置の障害によりネットワークが分断されると、そのネットワーク(グループ)の全データストアサーバ107がサービス停止の可能性がある。
 そこで、第二の実施例では、異なるネットワークでデータストアサーバ107のグループを複数つくることにより、サービスの全停止を確率を低減し、メッセージ受信サーバ106およびメッセージ送信サーバ108はどちらか稼動しているグループのデータストアサーバ107へアクセスすることによりサービス停止を回避することができる。
 第二の実施例の構成においては、各データストアサーバ107が保持するキューには、担当キーレンジ情報251に示される通り、属するグループ内で、マスタ、または、スレーブ、さらにスレーブが複数の場合マスタになる順序、を設定する。あるデータストアサーバ107に障害が発生した場合、スレーブが設定された他のキューを持つデータストアサーバ107の一つが、グループ内の順序に従い、当該キューについてのマスタとなり(マスタに昇格する、という)、障害になったデータストアサーバ107の代わりに引き続き処理に対応する。
 さらに、第二の実施例の構成において、異なるグループのデータストアサーバ107を組みにして同一サーバ装置上に配置し、グループが異なればマスタへの昇格順序も異なるように設定してもよい。
 例えば、異なるグループのデータストアサーバ107を1つずつ同一装置上に配置する。具体的には、データストアサーバ107-1aとデータストアサーバ107-2aを同一装置に配置し、データストアサーバ107-1bとデータストアサーバ107-2bは、同様に、他の同一装置上に配置する。さらに、一方のデータストアサーバ107のグループと、他のグループの、スレーブとして設定されたキューのマスタへの昇格順序を異なるように(例えば、逆方向に)設定する。
 このように設定すれば、データストアサーバ107-1aとデータストアサーバ107-2aが配置された装置に障害が発生した場合でも、次のマスタとなるのは、それぞれ異なる装置上のデータストアサーバ107内のキューとなるから、負荷の増大を抑えつつ処理を継続することが可能になる。
 第二の実施例では、図2において、分散方式情報234にデータストアサーバ107のグループを認識した情報を追加する。第一の実施例では、分散方式情報234には、キーのハッシュ計算による分散方式、ラウンドロビン、リーストコネクションなどの同一のグループのデータストアサーバ107への分散方式が格納されるが、第二の実施例ではデータストアサーバ107のグループ間の分散方式も格納する。
 たとえば、キーのハッシュ計算により、分散先(格納先)となるデータストアサーバ107のグループと、そのグループ内のどのデータストアサーバ107に分散して格納するか決定する方法や、ラウンドロビンやリーストコネクションにおいて毎回分散先(格納先)となるグループが異なるように格納する方法がある。
 データストアサーバ状態情報250の稼動サーバ252は、データストアサーバ107-1、107-2グループのデータストアサーバ107のIPアドレスが格納される。分散処理部210は、担当キーレンジ情報251と稼動サーバ252を1組にした単位でデータストアサーバ状態情報250を管理し、処理性能判定時には異なるネットワークのデータストアサーバ107(稼動サーバ252)を次に選択することにより、データストアサーバ107のサービス停止を回避することができる。また、分散処理部210はデータストアサーバ構成情報222またはデータストアサーバ合議情報223より、データストアサーバ107のグループ単位での一時的な停止を検出することができ、もう一方のグループに切り替えることが可能である。
 101:通信端末、103:キャリア設備網、105:メッセージ転送サーバ、106:メッセージ受信サーバ、107:データストアサーバ、108:メッセージ送信サーバ。

Claims (11)

  1.  メッセージ送信装置からメッセージを受信しメッセージ受信装置へメッセージを配信するメッセージサーバと、
     前記メッセージと、当該メッセージに係わる関連情報と、のいずれか一方または両方を格納するデータストアサーバと、を備えるメッセージシステムであって、
     前記メッセージサーバは、
     前記データストアサーバ毎の状態を管理する機能と、
     前記データストアサーバの処理性能の低下を、データストアサーバとの応答タイムアウトが発生する前に検出する機能と、
     前記処理性能が低下したと判定されたデータストアサーバを除くデータストアサーバを格納先とする機能と、
     前記メッセージおよび前記関連情報の格納に係わる制御情報のいずれか一方または両方を生成する機能と、
     前記メッセージおよび前記関連情報のいずれか一方または両方と、前記制御情報と、を前記データストアサーバへ送信する機能と、を備え、
     前記データストアサーバは、
     前記複数のデータストアサーバ間で同じデータを多重に保持する機能と、
     前記多重に保持するためにデータストアサーバ間で連携して処理する機能と、
     送信された前記メッセージおよび前記関連情報のいずれか一方または両方を、保持する機能と、を備える
    ことを特徴とするメッセージシステム。
  2.  請求項1に記載のメッセージシステムであって、
     前記メッセージサーバは、データストアサーバ間の連携処理の相関情報と、データストアサーバ間で交換する情報に基づく合議情報との、いずれか一方または両方を取得する機能を備え、
     前記メッセージサーバは、前記処理性能低下したと判定されたデータストアサーバと、前記相関情報と合議情報のいずれか一方または両方に基づき格納先を変更する機能を備える
    ことを特徴とするメッセージシステム。
  3.  請求項2に記載のメッセージシステムであって、
     前記メッセージサーバは、
     互いに独立したデータストアサーバのグループを判別する機能と、
     前記処理性能が低下したと判定されたデータストアサーバを検出した場合に前記データストアサーバとは別のグループに属するデータストアサーバを格納先とする機能と、を備える
    ことを特徴とするメッセージシステム。
  4.  請求項2に記載のメッセージシステムであって、
     前記メッセージサーバは、データの多重度をメッセージサーバが管理する機能と、
     前記メッセージサーバは、データの多重度により前記メッセージサーバの処理を変更する機能と、を備える
    ことを特徴とするメッセージシステム。
  5.  請求項2に記載のメッセージシステムであって、
     前記メッセージサーバは、前記処理性能が低下したと判定されたデータストアサーバを検出した場合にリソース規制を変更する機能を備える
    ことを特徴とするメッセージシステム。
  6.  請求項2に記載のメッセージシステムであって、
     前記メッセージサーバは、データストアサーバのキューをシステム全体での1つのキューとして運用管理する機能と、
     前記メッセージサーバは、前記システム全体の1つのキューと複数のデータストアサーバのキューを対応付けて管理する機能と、
     前記メッセージサーバは、メッセージを前記システム全体の1つのキューに格納時に、それに対応づくデータストアサーバのキューを検索し選択する機能と、を備える
    ことを特徴とするメッセージシステム。
  7.  請求項1に記載のメッセージシステムであって、
     前記メッセージサーバは、データストアサーバへ要求を送信してからの経過時間を判定し、閾値を超過することによりデータストアサーバの処理性能低下を検出する機能と、を備える
    ことを特徴とするメッセージシステム。
  8.  請求項1に記載のメッセージシステムであって、
     前記メッセージサーバは、データストアサーバへ要求の送信ために同時実行しているプロセス数またはコネクション数の閾値を超過することによりデータストアサーバの処理性能低下を検出する機能と、を備える
    ことを特徴とするメッセージシステム。
  9.  請求項1に記載のメッセージシステムであって、
     前記メッセージサーバは、データストアサーバへ要求の送信待ちのメッセージ数の閾値を超過することによりデータストアサーバの処理性能低下を検出する機能と、を備える
    ことを特徴とするメッセージシステム。
  10.  請求項3に記載のメッセージシステムであって、
     前記メッセージサーバは、前記相関情報と前記合議情報のいずれか一方または両方に基づき、サービス停止のデータストアサーバのグループを判別し、サービスの停止していないグループに格納先を切り替える機能を備える
    ことを特徴とするメッセージシステム。
  11.  請求項3に記載のメッセージシステムであって、
     異なるグループに属する、複数の前記データストアサーバが同一装置上に配置され、
     グループ内で保持するキューをマスタとする順序を、他のグループと異なるように設定する
    ことを特徴とするメッセージシステム。
PCT/JP2014/060565 2013-04-16 2014-04-14 処理性能低下を回避するメッセージシステム WO2014171413A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015512467A JP6117345B2 (ja) 2013-04-16 2014-04-14 処理性能低下を回避するメッセージシステム
US14/784,626 US9967163B2 (en) 2013-04-16 2014-04-14 Message system for avoiding processing-performance decline

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013-085353 2013-04-16
JP2013085353 2013-04-16

Publications (1)

Publication Number Publication Date
WO2014171413A1 true WO2014171413A1 (ja) 2014-10-23

Family

ID=51731354

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/060565 WO2014171413A1 (ja) 2013-04-16 2014-04-14 処理性能低下を回避するメッセージシステム

Country Status (3)

Country Link
US (1) US9967163B2 (ja)
JP (1) JP6117345B2 (ja)
WO (1) WO2014171413A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015073234A (ja) * 2013-10-04 2015-04-16 株式会社日立製作所 メッセージ転送システム及びキューの管理方法
JP2016144169A (ja) * 2015-02-05 2016-08-08 株式会社日立製作所 通信システム、キュー管理サーバ、及び、通信方法
JP2018526740A (ja) * 2015-08-24 2018-09-13 アリババ グループ ホウルディング リミテッド モバイル端末のためのデータ記憶方法及び装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120124431A1 (en) * 2010-11-17 2012-05-17 Alcatel-Lucent Usa Inc. Method and system for client recovery strategy in a redundant server configuration
JP2012235220A (ja) * 2011-04-28 2012-11-29 Hitachi Ltd メールシステム

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6018619A (en) * 1996-05-24 2000-01-25 Microsoft Corporation Method, system and apparatus for client-side usage tracking of information server systems
US20040059789A1 (en) * 1999-10-29 2004-03-25 Annie Shum System and method for tracking messages in an electronic messaging system
GB2362235A (en) * 2000-05-11 2001-11-14 Robert Benjamin Franks Method and apparatus for Internet transaction processing
US8831995B2 (en) * 2000-11-06 2014-09-09 Numecent Holdings, Inc. Optimized server for streamed applications
US7062567B2 (en) * 2000-11-06 2006-06-13 Endeavors Technology, Inc. Intelligent network streaming and execution system for conventionally coded applications
US20040128346A1 (en) * 2001-07-16 2004-07-01 Shmuel Melamed Bandwidth savings and qos improvement for www sites by catching static and dynamic content on a distributed network of caches
AU2002313583A1 (en) * 2001-08-01 2003-02-17 Actona Technologies Ltd. Virtual file-sharing network
US7010598B2 (en) * 2002-02-11 2006-03-07 Akamai Technologies, Inc. Method and apparatus for measuring stream availability, quality and performance
US20030221000A1 (en) * 2002-05-16 2003-11-27 Ludmila Cherkasova System and method for measuring web service performance using captured network packets
US8352360B2 (en) * 2003-06-30 2013-01-08 Toshiba Global Commerce Solutions Holdings Corporation Method and system for secured transactions over a wireless network
US7720864B1 (en) * 2004-03-25 2010-05-18 Symantec Operating Corporation Expiration of access tokens for quiescing a distributed system
US7760654B2 (en) * 2004-09-24 2010-07-20 Microsoft Corporation Using a connected wireless computer as a conduit for a disconnected wireless computer
US8159961B1 (en) * 2007-03-30 2012-04-17 Amazon Technologies, Inc. Load balancing utilizing adaptive thresholding
US20090043881A1 (en) * 2007-08-10 2009-02-12 Strangeloop Networks, Inc. Cache expiry in multiple-server environment
JP2011521385A (ja) * 2008-05-26 2011-07-21 スーパーデリバティブス,インコーポレイテッド 自動金融商品管理の装置、システムおよび方法
US8572162B2 (en) * 2008-12-01 2013-10-29 Novell, Inc. Adaptive screen painting to enhance user perception during remote management sessions
US20110099507A1 (en) * 2009-10-28 2011-04-28 Google Inc. Displaying a collection of interactive elements that trigger actions directed to an item
JP5404469B2 (ja) 2010-02-22 2014-01-29 日本電信電話株式会社 メッセージ処理システム、メッセージ処理装置及びメッセージ処理方法
JP2011197796A (ja) 2010-03-17 2011-10-06 Fujitsu Frontech Ltd 負荷分散制御装置
US8719223B2 (en) * 2010-05-06 2014-05-06 Go Daddy Operating Company, LLC Cloud storage solution for reading and writing files
US8832801B1 (en) * 2012-05-11 2014-09-09 Ravi Ganesan JUBISM: judgement based information sharing with monitoring
US9509704B2 (en) * 2011-08-02 2016-11-29 Oncircle, Inc. Rights-based system
US20160035019A1 (en) * 2014-08-04 2016-02-04 Stayful.com, Inc. Electronic Marketplace Platform for Expiring Inventory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120124431A1 (en) * 2010-11-17 2012-05-17 Alcatel-Lucent Usa Inc. Method and system for client recovery strategy in a redundant server configuration
JP2012235220A (ja) * 2011-04-28 2012-11-29 Hitachi Ltd メールシステム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MASAFUMI KINOSHITA ET AL.: "Throughput Improvement of Mail Gateway in Cooperation with Distributed In-memory KVS", PROCEEDINGS OF THE 2011 IEICE GENERAL CONFERENCE 2, 30 August 2011 (2011-08-30), pages 412 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015073234A (ja) * 2013-10-04 2015-04-16 株式会社日立製作所 メッセージ転送システム及びキューの管理方法
JP2016144169A (ja) * 2015-02-05 2016-08-08 株式会社日立製作所 通信システム、キュー管理サーバ、及び、通信方法
JP2018526740A (ja) * 2015-08-24 2018-09-13 アリババ グループ ホウルディング リミテッド モバイル端末のためのデータ記憶方法及び装置
US10776323B2 (en) 2015-08-24 2020-09-15 Alibaba Group Holding Limited Data storage for mobile terminals

Also Published As

Publication number Publication date
JPWO2014171413A1 (ja) 2017-02-23
US20160261476A1 (en) 2016-09-08
US9967163B2 (en) 2018-05-08
JP6117345B2 (ja) 2017-04-19

Similar Documents

Publication Publication Date Title
US11172023B2 (en) Data synchronization method and system
US9154382B2 (en) Information processing system
JP5381998B2 (ja) クラスタ制御システム、クラスタ制御方法、及びプログラム
US9262287B2 (en) Computer information system and dynamic disaster recovery method therefor
CN112118315A (zh) 数据处理系统、方法、装置、电子设备和存储介质
CN109672711B (zh) 一种基于反向代理服务器Nginx的http请求处理方法及系统
JP5884892B2 (ja) ネットワークシステム、コントローラ、及び負荷分散方法
US20130163415A1 (en) Apparatus and method for distributing a load among a plurality of communication devices
US20160234129A1 (en) Communication system, queue management server, and communication method
JP6117345B2 (ja) 処理性能低下を回避するメッセージシステム
JP4767336B2 (ja) メールサーバシステム及び輻輳制御方法
US20070294255A1 (en) Method and System for Distributing Data Processing Units in a Communication Network
JP5673057B2 (ja) 輻輳制御プログラム、情報処理装置および輻輳制御方法
CN112492030B (zh) 数据存储方法、装置、计算机设备和存储介质
CN113326100A (zh) 一种集群管理方法、装置、设备及计算机存储介质
US9426115B1 (en) Message delivery system and method with queue notification
CN109688011B (zh) 一种基于OpenStack的agent选择方法及装置
CN111930710A (zh) 一种大数据内容分发的方法
CN110661836B (zh) 消息路由方法、装置及系统、存储介质
KR20120128013A (ko) 망 부하 감소를 위한 푸시 서비스 제공 시스템 및 방법
CN114900526A (zh) 负载均衡方法及系统、计算机存储介质、电子设备
CN110247808B (zh) 信息发送方法、装置、设备及可读存储介质
KR101382177B1 (ko) 동적 메시지 라우팅 시스템 및 방법
CN108055305B (zh) 一种存储扩展方法及存储扩展装置
CN214959613U (zh) 一种负载均衡设备

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14784958

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2015512467

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14784626

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 14784958

Country of ref document: EP

Kind code of ref document: A1