WO2019087786A1 - 情報分散記憶システム、方法およびプログラム - Google Patents

情報分散記憶システム、方法およびプログラム Download PDF

Info

Publication number
WO2019087786A1
WO2019087786A1 PCT/JP2018/038689 JP2018038689W WO2019087786A1 WO 2019087786 A1 WO2019087786 A1 WO 2019087786A1 JP 2018038689 W JP2018038689 W JP 2018038689W WO 2019087786 A1 WO2019087786 A1 WO 2019087786A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
information storage
correspondence table
data
charge
Prior art date
Application number
PCT/JP2018/038689
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 EP18873537.7A priority Critical patent/EP3709173B1/en
Priority to CN201880071088.2A priority patent/CN111630500B/zh
Priority to US16/760,886 priority patent/US11381642B2/en
Priority to JP2019551053A priority patent/JP6824435B2/ja
Publication of WO2019087786A1 publication Critical patent/WO2019087786A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/56Provisioning of proxy services
    • H04L67/562Brokering proxy services

Definitions

  • the present invention relates to an information distributed storage system, method, and program for distributing and storing data.
  • Non-Patent Document 1 it is expected that the sensor device does not have a permanent area and that no worker is resident around it. Therefore, in the base software, it is necessary to continuously write data in the storage area without leakage, and for that purpose, it is desirable that the base software can guarantee fault tolerance (see, for example, Non-Patent Document 1).
  • Non-Patent Document 2 In the IoT system, devices that were not connected to the Internet in the past are expected to be connected to the network in stages. Furthermore, the principals that make calls are not on a per-user basis but on a per-device basis. Therefore, it is desirable that the system has a scale-out property that can be gradually expanded from a small start to a large-scale system (see, for example, Non-Patent Document 2).
  • a common distributed database stores the same data in a plurality of information storage devices to secure data redundancy, for the purpose of having the above-mentioned fault tolerance when distributed storing data.
  • Non-Patent Document 1 In order to secure data redundancy, an information storage device that has received data defines a plurality of information storage devices for actually storing data, and the data is stored. Duplicate and send. However, in such a distributed database, processing for copying data and transmitting / receiving the copied data is required, so that the writing performance per single information storage device is degraded compared to a non-distributed database. is there.
  • the present invention has been made in view of the above circumstances, and an object of the present invention is to distribute and store data to be transmitted from an information transmitting apparatus without requiring duplication or transmission / reception of data between the information storage apparatuses.
  • An information distributed storage system, method and program that can be
  • an information distributed storage system comprising a plurality of information storage devices capable of data communication with an information transmitting device and an information receiving device.
  • a first correspondence table in which each of a plurality of information storage devices is shared among the plurality of information storage devices, in which the information receiving device is associated with an identifier indicating the type of data acquired by the information receiving device;
  • Based on the second correspondence table showing the correspondence between the device and the information receiving device that the information storage device is in charge of, among the data transmitted from the information transmitting device, it corresponds to the information receiving device that it is in charge of
  • a data acquisition unit for acquiring data to be transmitted together with an attached identifier, and a storage medium for storing the acquired data.
  • each of the plurality of information storage devices further includes a request acquisition unit that acquires a data request from an information receiving device, and the information receiving device that the acquired data request is in charge of A determination unit for determining whether or not the information storage device is in charge of the information reception device in charge when it is determined that the acquired data request is from the information reception device in charge of the information storage device; And an output unit for outputting data stored in a medium, wherein the determination unit determines that the acquired data request is not from the information receiving apparatus in charge.
  • the information storage device in charge of the information reception device of the transmission source of the data request is determined, and the information storage device determined to be the information storage device of the transmission source of the data request.
  • the apparatus further comprises a relay unit for acquiring data stored in a storage medium of the apparatus, and the output unit outputs the data acquired via the relay unit to the information receiving apparatus of the transmission source of the data request.
  • management is performed such that the information distributed storage system performs initial setting or data access of the first correspondence table or the second correspondence table shared among the plurality of information storage devices.
  • the apparatus is further equipped.
  • each of the plurality of information storage devices corresponds to the information storage device in the second correspondence table when the information receiving device is added.
  • a correspondence table updating unit to be stored without attaching, and a selection unit for selecting an information receiving apparatus to be in charge from among the information receiving apparatuses not associated with the information storage apparatus with reference to the second correspondence table;
  • the correspondence table update unit includes a correspondence table update unit that stores in the second correspondence table the fact that the correspondence information is associated with the selected information receiving apparatus.
  • the second correspondence table further stores, for each information storage device, the time when it is associated with the information receiving device, and each of the plurality of information storage devices With reference to the second correspondence table, whether or not a predetermined time has elapsed since the time is stored for the time stored for the other information storage device in charge of the information reception device in charge, with reference to the second correspondence table And a correspondence table monitoring unit that determines whether or not a predetermined time has passed since the time was stored, the second correspondence table in the second correspondence table, regarding the information storage device for which the determination is made
  • the correspondence with the information receiving apparatus is deleted, and a correspondence table updating unit for updating the time stored in the second correspondence table with respect to the information storage apparatus of its own is further provided.
  • a calculation unit is further provided, wherein each of the plurality of information storage devices calculates, for each information storage device, a total value of costs of the information receiving devices in charge in the second correspondence table.
  • the information storage apparatus to be added when the information storage apparatus is added to the information distributed storage system is a cost among the information receiving apparatuses that the information storage apparatus with the largest calculated total cost value is in charge of.
  • the first additional aspect is that, after storing the correspondence in the second correspondence table in the sixth aspect, the information storage device to be added has the largest calculated total cost value. It is intended to notify a large information storage device.
  • a second additional aspect relates to the information receiving apparatus in which the added information storage device is associated with itself after storing the association in the second correspondence table in the sixth aspect.
  • the total cost value is calculated, and it is determined whether the calculated total cost value exceeds a predetermined value.
  • the information receiving device and the identifier indicating the type of data acquired by the information receiving device are shared among the plurality of information storage devices. Based on the first correspondence table to be associated and the information indicating the correspondence between the information storage device and the information receiving device that the information storage device is in charge of, along with the identifier associated with the information receiving device that is in charge of itself Data is acquired, and the acquired data is stored. That is, each information storage device autonomously acquires and accumulates data to be acquired.
  • a data request from the information receiving device is acquired, and the acquired data request is from the information receiving device in charge It is determined whether or not. Then, as a result of the determination, when the data request is from the information receiving apparatus in charge, the stored data is output to the information receiving apparatus in charge.
  • the second embodiment associates the information receiving device shared with a plurality of information storage devices with the information storage device in charge of the information receiving device. Based on the correspondence table, the information storage device in charge of the information receiving device of the transmission source of the data request is determined.
  • the data stored in the information storage device determined to be the information storage device in charge of the information reception device of the transmission source of the data request is acquired and output to the information reception device of the transmission source of the data request. . Therefore, the information receiving apparatus can acquire desired data regardless of which information storage apparatus is accessed.
  • initialization or data access of the first correspondence table or the second correspondence table shared among the plurality of information storage devices is performed by the management device. Therefore, the management apparatus can perform batch management of information shared by a plurality of information storage devices, that is, batch management of an information distributed storage system.
  • the information receiving apparatus to be added when the information receiving apparatus is added, the information receiving apparatus to be added is not associated with the specific information storage apparatus in each of the plurality of information storage apparatuses. Are stored in the correspondence table of Thereafter, in each of the plurality of information storage devices, the second correspondence table is referred to, and the information receiving device in charge is selected from the information receiving devices not associated with the information storage device, and the second correspondence table is selected. In, the information associated with the selected information receiving apparatus is stored.
  • the fourth aspect it is possible to provide the system with the scale-out property to which the information receiving apparatus can be added without the need to transmit and receive data between the information storage apparatuses at the time of the scale-out execution. As a result, it is possible to realize an information distributed storage system which has scale-out property and in which write performance per single information storage device is prevented from being degraded even when scale-out is executed.
  • Non-Patent Document 2 For example, in a conventional database having scale-out property that can be expanded by a system as described in Non-Patent Document 2, a hash for a key is used, and a tree structure is divided and ruled by a range of hash values or a partial tree of trees. It is common to do In such a method, the data transmitted from the information transmitting apparatus is analyzed inside the database, the information storage apparatus to which the information is to be written is searched, and the writing is performed to the target information storage apparatus based on the result. Do. As described above, in the prior art as described in Non-Patent Document 2, since processing for transmitting and receiving information between a plurality of information storage devices is required, the task for one writing is compared with a non-distributed database. The amount increases in proportion to the number of information storage devices and the write performance per single information storage device decreases. That is, the fourth aspect has the advantages as described above with respect to the prior art.
  • the second correspondence table is referred to, and the time stored with respect to the other information storage device in charge of the information receiving device in charge of itself It is determined whether or not a predetermined time has elapsed since the time is stored. Then, as a result of the determination, when the predetermined time has passed since the time was stored, in each of the plurality of information storage devices, the information storage device in which the above time has elapsed in the second correspondence table The association with the information receiving device is deleted, while the time stored for its own information storage device is updated.
  • the information storage device not operating normally by deleting the association of the information storage device associated with the information receiving device on the basis of time. Can be prevented from continuing to be in charge of the information receiving apparatus, whereby the reliability of the entire information distributed storage system can be improved.
  • the operation check is performed simultaneously with the monitoring process. Therefore, as described above, by updating the time in the second correspondence table, it is possible to prevent the information distributed storage efficiency from being reduced by deleting even the association of the information storage devices operating normally. Can.
  • the total value of the costs of the information receiving devices in charge is calculated for each information storage device in the second correspondence table. Then, when the information storage device is added to the information distribution storage system, the cost is the largest among the information receiving devices that the information storage device with the largest calculated total cost value is in charge of in the information storage device to be added.
  • the information receiving apparatus is selected as the information receiving apparatus in charge, and the fact that the information receiving apparatus is associated with the selected information receiving apparatus is stored in the second correspondence table.
  • the total of the costs calculated by the information storage device to be added is notified. Therefore, the information storage device that has received the notification releases the association with the information receiving device that the added information storage device is in charge of, and thereafter, the information receiving device whose association has been released. It is possible not to acquire data for. Thereby, the load of the information storage device having a large load can be reduced.
  • the information storage device to be added receives information associated with itself.
  • a total value of costs of the device is calculated, and it is determined whether the calculated total value of costs exceeds a predetermined value. Therefore, it is possible to additionally take charge of the information receiving apparatus according to the determination result, and, for example, it becomes possible to achieve uniform load among the information storage apparatuses.
  • an information distributed storage system and method capable of distributing and storing data transmitted from an information transmitting apparatus without requiring copying and transmission / reception of data between information storing apparatuses, and The program can be provided.
  • FIG. 1 is a schematic configuration diagram of a network system according to a first embodiment of the present invention.
  • FIG. 2 is a block diagram showing a functional configuration of an information storage device in the network system shown in FIG. 1.
  • FIG. 3 is a block diagram showing a detailed functional configuration of a setting sharing unit shown in FIG. 2A. The figure which shows an example of the 1st corresponding
  • FIG. 7 is a view showing an example of a second correspondence table for correlating an information receiving device and an information storage device in charge of the information receiving device, which is shared among the setting management device and the plurality of information storage devices.
  • FIG. 1 is a schematic configuration diagram of a network system according to a first embodiment of the present invention.
  • FIG. 2 is a block diagram showing a functional configuration of an information storage device in the network system shown in FIG. 1.
  • FIG. 3 is
  • FIG. 3 is a flow chart showing an example of a data writing process performed by a control unit of the information storage device shown in FIG. 2;
  • FIG. 7 is a flow chart showing an example of a data request response process performed by the control unit of the information storage device shown in FIG. 2;
  • FIG. 9 is a flow chart showing an example of selection processing of the information receiving device to be in charge, which is executed by the control unit of the information storage device shown in FIG. 2 when the information receiving device is added to the network system shown in FIG. 1.
  • FIG. 7 is a flow chart showing an example of correspondence table monitoring processing executed by the control unit of the information storage device shown in FIG. 2;
  • FIG. 9 is a view showing how a second correspondence table is updated along with the correspondence table monitoring process shown in FIG. 8;
  • FIG. 9 is a flow chart showing an example of selection processing of the information receiving device to be in charge, which is executed by the control unit of the information storage device shown in FIG. 2 when the information storage device is added to the network system shown in FIG. 1.
  • FIG. 1 is a schematic configuration diagram of a network system according to a first embodiment of the present invention.
  • the network system shown in FIG. 1 is, for example, in a state in which data communication is possible as in the Publisher-Subscriber model used in the IoT system, for example, the information transmitting apparatus 2A, 2B, 2C, 2D of the data transmitting side which is a sensor device , 2E, 2F and a broker 3, and information storage devices 1A, 1B, 1C, 1D and a setting management device 5 as an information distributed storage system for storing transmission data, and further, for example, a data receiving side which is an application
  • the information receiving devices 4A, 4B, 4C, and 4D are provided.
  • the network system illustrated in FIG. 1 is merely an example, and in the network system, one or more arbitrary number of information transmitting apparatuses and information receiving apparatuses may be present, and two or more may
  • the setting management device 5 and the information storage devices 1A, 1B, 1C, and 1D respectively correspond to a first correspondence table in which the information receiving device is associated with an identifier indicating the type of data acquired by the information receiving device; And a second correspondence table in which the information receiving apparatus is in charge and is associated with an information storage apparatus that stores data for the information receiving apparatus.
  • the first and second correspondence tables are shared in a synchronized state between the setting management device 5 and the information storage devices 1A, 1B, 1C, and 1D.
  • the first correspondence table and the second correspondence table are initialized by the operator in the setting management device 5, for example.
  • Each of the information storage devices 1A, 1B, 1C, 1D is based on the first correspondence table, for each of the information receiving devices in charge of the information receiving devices 4A, 4B, 4C, 4D.
  • the data acquired by the information receiving apparatus in charge is stored.
  • data acquired by the information receiving apparatus is divided and copied, and distributed and stored among the information storage apparatuses.
  • the information storage devices 1A, 1B, 1C, 1D are each adapted to the information storage device 1A as needed based on the second correspondence table in response to data requests from the information receiving devices 4A, 4B, 4C, 4D. , 1B, 1C, and 1D to transmit and receive data, and output data requested from the respective information receiving devices 4A, 4B, 4C, and 4D.
  • FIG. 2A is a block diagram showing a functional configuration of the information storage device 1A shown in FIG. Although the functional configuration of the information storage device 1A will be described below, other information storage devices such as the information storage devices 1B, 1C, and 1D have the same functional configuration.
  • the solid arrows indicate the input and output of data for reference, and the broken arrows indicate the input and output of setting information according to the first correspondence table and the second correspondence table. .
  • the information storage device 1A includes a control unit 11A, a storage unit 12A, and a communication interface unit 13A.
  • the communication interface unit 13A includes, for example, one or more wired or wireless communication interface units.
  • the communication interface unit 13A acquires, for example, a data request having an identifier indicating the type of data, which is output from the control unit 11A, and outputs the data request to the broker 3 via the communication network. Thereafter, the communication interface unit 13A acquires, from the broker 3 via the communication network, data to be transmitted together with the above-mentioned identifier from among the data transmitted from the information transmission devices 2A, 2B, 2C, 2D, 2E and 2F. , And outputs the acquired data to the control unit 11A.
  • the communication interface unit 13A acquires, via the communication network, data requests transmitted from the information receiving devices 4A, 4B, 4C, 4D, and outputs the acquired data requests to the control unit 11A. Thereafter, the communication interface unit 13A transmits the data output from the control unit 11A to the information receiving apparatus of the transmission source of the data request via the communication network.
  • the communication interface unit 13A also performs transmission and reception of data and setting information with other information storage devices such as the information storage devices 1B, 1C, and 1D, and transmission and reception of setting information with the setting management device 5.
  • the storage unit 12A uses, as a storage medium, a non-volatile memory such as a hard disk drive (HDD) or a solid state drive (SSD) that can be written and read as needed, and is used to implement this embodiment.
  • a non-volatile memory such as a hard disk drive (HDD) or a solid state drive (SSD) that can be written and read as needed, and is used to implement this embodiment.
  • a data storage unit 121A and a sharing setting storage unit 122A are provided as storage areas.
  • the data storage unit 121A is used to store data acquired from the broker 3 for each information receiving device that the information storage device of its own is in charge.
  • the sharing setting storage unit 122A associates the information receiving device shared with the information storage devices 1A, 1B, 1C, 1D and the setting management device 5 with an identifier indicating the type of data acquired by the information receiving device. Used to store correspondence tables.
  • the second setting of the sharing setting storage unit 122A which is shared by the information storage devices 1A, 1B, 1C, and 1D and the setting management device 5, associates the information receiving device with the information storage device in charge of the information receiving device. Used to store tables.
  • the control unit 11A includes a hardware processor such as a CPU (Central Processing Unit) and a program memory, and in order to execute the processing functions in this embodiment, the data writing unit 111A, the data output unit 112A, and the relay determination A section 113A, a relay section 114A, and a setting sharing section 115A are provided.
  • the processing functions in these units are all realized by causing the hardware processor to execute the program stored in the program memory.
  • the data writing unit 111A executes a process of reading a first correspondence table, which is stored in the sharing setting storage unit 122A of the storage unit 12A, and associates the information receiving apparatus with an identifier indicating the type of data acquired by the information receiving apparatus. Do. Thereafter, the data writing unit 111A stores its own information based on the preset information indicating the correspondence between the information storage device and the information receiving device in charge of the information storage device, and the first correspondence table. A process of outputting a data request including an identifier associated with the information receiving apparatus in charge of the apparatus 1A to the broker 3 via the communication interface unit 13A is executed.
  • the data writing unit 111A transmits the data to be transmitted together with the identifier from the data transmitted from the information transmission devices 2A, 2B, 2C, 2D, 2E and 2F from the broker 3 via the communication interface unit 13A.
  • a process of storing the acquired data in the data storage unit 121A of the storage unit 12A is executed for each information receiving apparatus in charge.
  • the other information storage devices 1B,..., 1D may acquire data for the information receiving device that the information storage device 1A takes charge of based on the first correspondence table, and the data writing unit 111A
  • the data may be acquired from the information storage device which has acquired the data, and may be stored in the data storage unit 121A of the storage unit 12A.
  • the information indicating the correspondence between the information storage device described above and the information receiving device in charge of the information storage may be, for example, information indicating the correspondence selected in advance by the setting management device 5, or It may be information indicating the correspondence selected in the setting sharing unit 115A of the control unit 11A. Further, the information indicating the correspondence between the above-described information storage device and the information receiving device in charge of the information storage device includes the correspondence for other information storage devices such as the information storage devices 1B, 1C, and 1D. It may be.
  • the relay determination unit 113A acquires, via the communication interface unit 13A, a data request transmitted from an arbitrary information receiving device such as the information receiving devices 4A, 4B, 4C, 4D, etc., together with an identifier indicating the information receiving device. Run. In the following, it is assumed that the data request is acquired from the information receiving apparatus 4A as an example.
  • the relay determination unit 113A executes a process of determining whether the acquired data request is transmitted from the information receiving device that the information storage device 1A is in charge of.
  • the determination process may be based on information indicating the correspondence between the information storage device described above and the information receiving device that the information storage device is in charge of.
  • the determination process may be based on a second correspondence table, which is stored in the sharing setting storage unit 122A of the storage unit 12A, and associates the information receiving apparatus with the information storage apparatus in charge of the information receiving apparatus. Good.
  • the relay determination unit 113A stores the data request in the sharing setting storage unit 122A of the storage unit 12A.
  • the process of determining the information storage device in charge of the information receiving device 4A of the transmission source of the data request is executed.
  • the information storage device 1B is determined as an information storage device in charge of the information receiving device 4A that is the transmission source of the data request, as an example.
  • the relay unit 114A takes charge of the information receiving device 4A that is the transmission source of the data request.
  • a process of outputting the data request is performed to the information storage device 1B determined to be the information storage device via the communication interface unit 13A.
  • the relay unit 114A executes a process of acquiring data stored in the data storage unit 121B of the information storage device 1B via the communication interface unit 13A.
  • the acquired data may be stored in the storage unit 12A.
  • an instruction to transmit data to the information receiving device 4A stored in the data storage unit 121B of the information storage device 1B is It may be output.
  • the data output unit 112A determines the data acquired by the processing in the relay unit 114A, A process of outputting to the information receiving device 4A through the communication interface unit 13A is executed.
  • the data output unit 112A stores the data request in the data storage unit 121A of the storage unit 12A.
  • a process of reading out data for the information receiving apparatus 4A of the transmission source of the data request is executed. Thereafter, the data output unit 112A performs a process of outputting the read data to the information receiving device 4A via the communication interface unit 13A.
  • the setting sharing unit 115A responds to the initial setting or data access in the first correspondence table or the second correspondence table stored in the sharing setting storage unit 521 of the setting management device 5, executed by the setting management device 5.
  • a process of synchronizing the first correspondence table and the second correspondence table stored in the sharing setting storage unit 122A of the storage unit 12A is executed.
  • the setting sharing unit 115A may change the setting management device 5 and the information storage devices 1B and 1C. , 1D, etc., and outputs the setting information for synchronizing the first correspondence table and the second correspondence table stored in the second correspondence table via the communication interface unit 13A.
  • FIG. 2B is a block diagram showing a detailed functional configuration of the setting sharing unit 115A.
  • the setting sharing unit 115A includes a device-in-charge selection unit 1151A, a correspondence table monitoring unit 1152A, and a correspondence table updating unit 1153A.
  • the device-in-charge selection unit 1151A executes a process of selecting an information receiving device in charge of the information storage device 1A. For example, the selection process may be executed with reference to a second correspondence table stored in the sharing setting storage unit 122A of the storage unit 12A. Note that the device-in-charge selection unit 1151A may execute a process of selecting an information receiving device that is in charge of another information storage device other than the information storage device 1A.
  • the correspondence table monitoring unit 1152A executes a process of monitoring the second correspondence table stored in the sharing setting storage unit 122A of the storage unit 12A.
  • the correspondence table updating unit 1153A associates the information storage device 1A with the information receiving device selected in the assigned device selecting unit 1151A or the setting management device 5 after the data writing process in the data writing unit 111A is completed. Then, the update process is executed to write in the second correspondence table stored in the sharing setting storage unit 122A of the storage unit 12A. Further, the correspondence table updating unit 1153A also executes processing of updating the second correspondence table stored in the sharing setting storage unit 122A of the storage unit 12A according to the monitoring process in the correspondence table monitoring unit 1152A.
  • FIG. 3 shows an information receiving device and an identifier indicating the type of data acquired by the information receiving device, shared between the setting management device 5 and the information storage devices 1A, 1B, 1C, and 1D. It is a figure which shows an example of the 1st correspondence table to match.
  • the endpoints # 1, # 2, # 3, # 4 and the types of data respectively corresponding to the identifiers indicating the information receiving devices 4A, 4B, 4C, 4D
  • the correspondence with the topics # 1, # 2, # 3, and # 4 corresponding to the indicated identifier is stored.
  • FIG. 4 is an example of a second correspondence table for correlating the information receiving device and the information storage device in charge of the information receiving device, which is shared between the setting management device 5 and the information storage devices 1A, 1B, 1C, and 1D.
  • FIG. 4 In the example of the second correspondence table shown in FIG. 4, the endpoints # 1, # 2, # 3, # 4, and the information storage device 1A respectively correspond to the identifiers indicating the information receiving devices 4A, 4B, 4C, 4D. , 1B, 1C, and 1D are stored.
  • the latest time associated with any one of the end points is stored for the information storage devices 1A, 1B, 1C, 1D, and each end For the point, it is possible to store a standby flag indicating that the association with the information storage device is awaited.
  • the cost is stored for each endpoint.
  • the cost of the endpoint represents, for example, the access frequency per unit time to the endpoint, and the throughput per unit time increased in the information storage device by taking charge of the endpoint.
  • each of the endpoints # 1, # 2, # 3, # 4 corresponds to the identifier indicating the information receiving devices 4A, 4B, 4C, 4D, in the following description, , Information receiving device 4A and endpoint # 1, information receiving device 4B and endpoint # 2, information receiving device 4C and endpoint # 3, and information receiving device 4D and endpoint # 4 are described as being synonymous with each other doing.
  • FIG. 5 is a flow chart showing an example of the data writing process performed by the control unit 11A of the information storage device 1A shown in FIG.
  • step S11 the control unit 11A determines, under the control of the data writing unit 111A, information set in advance based on information indicating the correspondence between the information storage device and the endpoint that the information storage device is in charge of.
  • the end point for which the own information storage device 1A is in charge is determined.
  • the endpoint # 1 is determined as an endpoint in charge of the information storage device 1A is described.
  • the information indicating the correspondence between the information storage device described above and the end point in charge of the information storage may be, for example, information indicating the correspondence selected in advance by the setting management device 5, or It may be information indicating the correspondence selected in the setting sharing unit 115A of the control unit 11A.
  • the end point and the information storage device to be in charge of the end point are associated in advance.
  • the information indicating the correspondence between the information storage device and the end point in charge of the information storage device may be information from the second correspondence table.
  • step S12 under the control of the data writing unit 111A, the control unit 11A associates the endpoint stored in the sharing setting storage unit 122A with the identifier indicating the type of data acquired by the endpoint, in the first correspondence. Read the table. Then, based on the first correspondence table, the control unit 11A takes charge of the data transmitted from the information transmission devices 2A, 2B, 2C, 2D, 2E, 2F under the control of the data writing unit 111A. The data transmitted with the identifier indicating the topic # 2 associated with the endpoint # 1 to be acquired is acquired from the broker 3, and the acquired data is stored in the data storage unit 121A of the storage unit 12A.
  • the first correspondence table which is an endpoint representing a receiving device, and an identifier representing the type and structure of abstract data required by the receiving device for each sensor or device that generates data.
  • the second correspondence table stores the correspondence between the endpoint representing the receiving apparatus and the specific information storage apparatus storing data requested by the receiving apparatus, and It is to associate the correspondence tables 1 and 2.
  • the process of determining the sharing of the information storage device storing data in the data writing process there is no need to worry about the specific data generation device information to be added or deleted in the IoT system, and the receiving device and information Since the storage device in charge of data storage can be determined automatically only by updating and maintaining the second correspondence table based on only the information of the correspondence relationship of the storage device, the mechanism of distributed storage with a simple mechanism Can be maintained.
  • the first correspondence table is updated to care about the configuration of the information storage apparatus. It is possible to reflect the change of the data requested by the connected data generating device or data receiving apparatus without the need to do so.
  • the first correspondence table is updated when changing the data generation device or changing the type of data requested by the receiving device, and when changing the configuration such as adding a receiving device or a storage device, the second correspondence table is referenced and changed and stored.
  • data can be distributed and saved automatically in a plurality of storage devices by a simple mechanism, while reflecting the configuration change of the devices constituting the system and the change of the request data.
  • the first correspondence table needs to be maintained, and in the process of distributing and allocating assigned storage devices when adding a new information receiving apparatus, the second Since it is sufficient to maintain only the correspondence table of, implementation of each process becomes easy.
  • the combination of the first correspondence table and the second correspondence table can automate allocation of equipment update and distributed storage, so that the burden of maintenance of the distributed storage system can be reduced, which is an advantage of this patent. It is.
  • a key that can uniquely identify data corresponding to the endpoint may be added and stored for each endpoint in charge.
  • the key is stored, for example, in the first correspondence table so as to be commonly used in all the information storage devices and the setting management device 5.
  • step S13 under the control of the correspondence table updating unit 1153A, the control unit 11A associates the correspondence between the information storage device 1A and the endpoint # 1 in charge with the second correspondence table stored in the sharing setting storage unit 122A.
  • FIG. 6 is a flow chart showing an example of the data request response process executed by the control unit 11A of the information storage device 1A shown in FIG.
  • step S21 the control unit 11A is transmitted from an arbitrary information receiving apparatus such as the information receiving apparatus 4A, 4B, 4C, 4D, etc., together with an identifier indicating the information receiving apparatus, under the control of the relay determination unit 113A. Get a data request.
  • an arbitrary information receiving apparatus such as the information receiving apparatus 4A, 4B, 4C, 4D, etc.
  • step S22 under the control of the relay determination unit 113A, the control unit 11A determines whether the acquired data request is from an endpoint that the information storage device 1A is in charge of. For example, the determination process may be based on the information indicating the correspondence between the information storage device and the endpoint that the information storage device takes charge of, as described in step S11. Alternatively, the determination process may be executed by referring to the second correspondence table stored in the sharing setting storage unit 122A. If it is determined that the acquired data request is from, for example, the endpoint # 1 that the information storage device 1A of its own is in charge of, in step S23, the control unit 11A controls the data output unit 112A. Below, the data for the endpoint # 1 stored in the data storage unit 121A is read, and the read data is output to the information receiving apparatus 4A corresponding to the endpoint # 1 that is the transmission source of the data request.
  • control unit 11A controls the relay determination unit 113A in step S24. Based on the second correspondence table stored in the sharing setting storage unit 122A, the information storage device responsible for the endpoint # 2 that is the transmission source of the data request is determined. Thereafter, under the control of the relay unit 114A, the control unit 11A determines that at least the information storage device 1B and the information storage device 1C determined to be the information storage device in charge of the endpoint # 2 of the transmission source of the data request. The data request is output to one side.
  • step S25 the control unit 11A is stored in at least one of the information storage device 1B and the information storage device 1C in charge of the endpoint # 2 that is the transmission source of the data request under control of the relay unit 114A.
  • step S26 under the control of the data output unit 112A, the control unit 11A outputs the acquired data to the information receiving device 4B corresponding to the endpoint # 2 that is the transmission source of the data request.
  • FIG. 7 shows an example of the information storage apparatus 1A shown in FIG. 2 when the information receiving apparatus is added to the network system shown in FIG. It is a flow figure showing an example of selection processing of an information receiving device in charge which is performed by control unit 11A.
  • step S31 the control unit 11A controls the second correspondence table stored in the sharing setting storage unit 122A under control of the correspondence table updating unit 1153A, The row or column of the endpoint # 5 corresponding to the information receiving device 4E is added with a standby flag set in a state where the correspondence with the information storage device is not entered.
  • the control unit 11A may add the row or column of the endpoint # 5 in the first correspondence table stored in the sharing setting storage unit 122A under the control of the correspondence table updating unit 1153A.
  • the first correspondence table for example, an identifier indicating the type of acquired data notified from the information receiving device 4E may be stored in association with the added endpoint # 5.
  • step S32 the control unit 11A reads the second correspondence table stored in the sharing setting storage unit 122A under the control of the device-in-charge selection unit 1151A, and selects one of the endpoints with a standby flag. Select the endpoint to handle.
  • the selection process may be, for example, to randomly select from among the endpoints for which the standby flag is set.
  • step S33 the control unit 11A selects an information storage device having two or more endpoints selected in the second correspondence table stored in the sharing setting storage unit 122A under the control of the device-in-charge selection unit 1151A. It is determined whether or not it is associated with Then, if it is determined that the selected endpoint is associated with two or more information storage devices, the process of step S32 is executed again.
  • step S34 the control unit 11A shares the data under the control of the data writing unit 111A. Based on the first correspondence table stored in the setting storage unit 122A, in correspondence with an endpoint selected from among data transmitted from the information transmission devices 2A, 2B, 2C, 2D, 2E, 2F Get the data to be sent along with the identifier.
  • step S35 under the control of the correspondence table updating unit 1153A, the control unit 11A stores the second association of the information storage device 1A with the selected endpoint in the sharing setting storage unit 122A. Write to the correspondence table.
  • step S36 the control unit 11A associates all the endpoints with two or more information storage devices in the second correspondence table stored in the sharing setting storage unit 122A under the control of the device-in-charge selection unit 1151A. It is determined whether or not it has been If it is determined that there is an endpoint not associated with two or more information storage devices, the processing from step S32 is repeated.
  • control unit 11A controls the sharing setting storage under the control of the correspondence table updating unit 1153A in step S37.
  • the waiting flag is deleted in the second correspondence table stored in the unit 122A.
  • FIG. 8 is a flowchart showing an example of the correspondence table monitoring process executed by the control unit 11A of the information storage device 1A shown in FIG.
  • FIG. 9 is a diagram showing how the second correspondence table shown in FIG. 4 is updated along with the correspondence table monitoring process shown in FIG.
  • step S41 the control unit 11A takes charge of the endpoint # 1 in charge with reference to the second correspondence table stored in the sharing setting storage unit 122A under the control of the correspondence table monitoring unit 1152A.
  • the time "10345681" stored for the other information storage device 1D and the time "12345679" stored for the other information storage device 1B responsible for the endpoint # 4 in charge are read.
  • step S42 the control unit 11A stores the time of each of the read times “12345679” and “10345681” as shown in FIG. 9 under the control of the correspondence table monitoring unit 1152A. After that, it is determined whether a predetermined time has elapsed. It is determined that the time "12345679" stored for the information storage device 1B is not a predetermined time, while the time "10345681" stored for the information storage device 1D is already a predetermined time. It is determined that time has passed.
  • step S43 under the control of correspondence table update unit 1153A, control unit 11A causes a predetermined time to elapse in the second correspondence table stored in sharing setting storage unit 122A.
  • the association with the endpoint with respect to the information storage device 1D regarding the time “10345681” being performed is deleted, and a standby flag is set for the endpoints # 1 and # 3 whose association has been deleted.
  • step S44 the control unit 11A stores the information storage device 1A as its own information storage device in the second correspondence table stored in the sharing setting storage unit 122A under the control of the correspondence table update unit 1153A. Update the current time "12345678". The updating process may be performed also when it is determined in step S42 that the predetermined time has not elapsed for all the read times.
  • step S45 the control unit 11A refers to the second correspondence table stored in the sharing setting storage unit 122A under the control of the correspondence table monitoring unit 1152A, and the time as described above for all the endpoints in charge It is determined whether or not the confirmation processing of has been performed. As a result of the determination, if there is an endpoint for which the time confirmation process has not been executed, the process from step S41 is repeated for the endpoint.
  • steps S41 to S45 may be performed, for example, at different timings among the information storage devices 1A, 1B, 1C, and 1D based on the clock synchronized between the information storage devices 1A, 1B, 1C, and 1D. It may be performed regularly.
  • step S32 on in FIG. 7 may be executed in each information storage device to select the endpoint in charge.
  • FIG. 10 shows an example of the information storage apparatus 1A shown in FIG. 2 when the information storage apparatus is added to the network system shown in FIG. It is a flowchart which shows an example of a selection process of the information receiver which it is in charge which is performed by control unit 11A and control unit 11E of added information storage device 1E.
  • FIG. 11 is a diagram showing that the second correspondence table shown in FIG. 4 is updated along with the selection process of the information receiving apparatus in charge shown in FIG.
  • step S51 when the control unit 11A takes charge of an endpoint under the control of the correspondence table updating unit 1153A, the second correspondence table stored in the sharing setting storage unit 122A causes the control unit 11A to handle the endpoint.
  • Update the cost The update process may be performed based on, for example, notification of the access frequency per unit time to the endpoint, or the amount of processing per unit time to be increased in the information storage device by taking charge of the endpoint. May be measured and executed based on the measured value.
  • step S52 under the control of the correspondence table update unit 1153A, in the second correspondence table stored in the sharing setting storage unit 122A, the control unit 11A sets the endpoint for which the information storage device is in charge for each information storage device.
  • Calculate the total cost of The calculation process may be to calculate the total value of the cost of the endpoint associated with the information storage device in each information storage device, or one information storage device However, the total value of the costs of the associated endpoints may be calculated for each of the plurality of information storage devices.
  • step S53 the control unit 11E of the added information storage device 1E refers to the second correspondence table stored in the sharing setting storage unit 122E under the control of the device-in-charge selection unit 1151E, as shown in FIG. As described above, it is determined to be in charge of the endpoint # 2, which is the endpoint with the largest cost, among the endpoints with which the information storage device 1B with the largest total value of costs calculated above is in charge.
  • step S54 the control unit 11E of the information storage device 1E to be added first reads the first correspondence table stored in the sharing setting storage unit 122E under the control of the data writing unit 111E. Then, among the data transmitted from the information transmission devices 2A, 2B, 2C, 2D, 2E, 2F based on the first correspondence table, the topic # 1 associated with the endpoint # 2 in charge , # 2 is acquired from the broker 3 and the acquired data is stored in the data storage unit 121E of the storage unit 12E.
  • step S55 the control unit 11E of the information storage device 1E to be added, under the control of the correspondence table update unit 1153E, associates the correspondence between the information storage device 1E of its own and the endpoint # 2 in charge Write to the second correspondence table stored in 122E.
  • step S56 the control unit 11E of the information storage device 1E to be added notifies the information storage device 1B which is the information storage device having the largest total value of the calculated costs.
  • the information storage device 1B releases the association with the endpoint # 2 that the information storage device 1E is in charge of, and thereafter, transmits it along with the identifier associated with the endpoint # 2
  • the correspondence may be deleted.
  • step S57 the control unit 11E of the information storage device 1E to be added is stored in the information storage device 1E of its own in the second correspondence table stored in the sharing setting storage unit 122E under the control of the correspondence table updating unit 1153E.
  • the total value of the costs of the associated endpoint is calculated, and it is determined whether the calculated total value of costs exceeds a predetermined value. For example, whether the total value of the calculated costs exceeds (total of the cost of the end point) ⁇ redundancy / number of information storage devices, for example, in the example of the second correspondence table of FIG. 9, (6 + 8 + 4 + 6 ) It is judged whether it exceeded 2/5. As a result of this determination, if the calculated total value of costs does not exceed the predetermined value, the processing from step S51 is repeated.
  • the endpoint # 1 itself is based on the information indicating the correspondence between the information storage device and the endpoint that the information storage device is in charge under the control of the data writing unit 111A.
  • the information storage device 1A is determined as an endpoint in charge.
  • a first correspondence table which is stored in the sharing setting storage unit 122A and associates the endpoint with an identifier indicating the type of data acquired by the endpoint, is read out.
  • the correspondence table Based on the correspondence table, among the data transmitted from the information transmission devices 2A, 2B, 2C, 2D, 2E, 2F, it is transmitted together with the identifier corresponding to the topic # 2 associated with the endpoint # 1 in charge
  • the acquired data is acquired from the broker 3, and the acquired data is stored in the data storage unit 121A.
  • the correspondence between the information storage device 1A and the endpoint # 1 in charge is written in the second correspondence table stored in the sharing setting storage unit 122A.
  • each information storage device to acquire data autonomously, data is distributed among a plurality of information storage devices without requiring duplication or transmission / reception of data between the information storage devices. It can be memorized. As a result, it is possible to realize an information distributed storage system in which a decrease in write performance per single information storage device at the time of data storage is prevented. Also, for example, in the information indicating the correspondence between the above-described information storage device and the endpoint that the information storage device is in charge of, if more than one information storage device is in charge of one endpoint, a plurality The redundancy of data can be secured between the information storage devices, and the fault tolerance of the information distributed storage system is guaranteed.
  • a data request transmitted together with an identifier indicating the information receiving device from any information receiving device such as the information receiving devices 4A, 4B, 4C, 4D under the control of the relay determination unit 113A. Is acquired.
  • the relay determination unit 113A it is determined whether the acquired data request is from an endpoint that the information storage device 1A is in charge of.
  • the acquired data request is from, for example, the endpoint # 1 that the information storage device 1A of its own is in charge, it is stored in the data storage unit 121A under the control of the data output unit 112A.
  • the data for the endpoint # 1 is read, and the read data is output to the information receiving apparatus 4A corresponding to the endpoint # 1 that is the transmission source of the data request.
  • the acquired data request is from, for example, endpoint # 2 which information storage device 1A is not in charge of
  • it is stored in shared setting storage unit 122A under the control of relay determination unit 113A.
  • the information storage device in charge of the endpoint # 2 that is the transmission source of the data request is determined. Thereafter, to at least one of the information storage device 1B and the information storage device 1C determined to be the information storage device in charge of the endpoint # 2, which is the transmission source of the data request, under the control of the relay unit 114A.
  • the data request is output. Thereafter, under the control of the relay unit 114A, data stored in at least one of the information storage device 1B and the information storage device 1C in charge of the endpoint # 2 that is the transmission source of the data request is acquired. Thereafter, under the control of the data output unit 112A, the acquired data is output to the information receiving device 4B corresponding to the endpoint # 2 that is the transmission source of the data request.
  • the information receiving apparatus can acquire desired data regardless of which information storage apparatus is accessed.
  • the second correspondence table stored in the sharing setting storage unit 122A is referred to under the control of the correspondence table monitoring unit 1152A, and other information in charge of the endpoint # 1 in charge
  • the time "10345681" stored for the storage device 1D and the time "12345679” stored for the other information storage device 1B in charge of the endpoint # 4 in charge are read.
  • the time "12345678" stored for the information storage device 1A which is its own information storage device is updated. .
  • an information storage device that has been confirmed to operate normally may not operate normally due to any cause as the operation time passes.
  • the information storage device that is not operating normally takes charge of the endpoint by deleting the association for the information storage device associated with the endpoint based on the time as described above. Can be prevented, which can improve the reliability of the entire information distributed storage system.
  • the operation check is performed simultaneously with the monitoring process. Therefore, as described above, by updating the time in the second correspondence table, it is possible to prevent the information distributed storage efficiency from being reduced by deleting even the association of the information storage devices operating normally. Can.
  • the second correspondence table stored in the sharing setting storage unit 122A under the control of the correspondence table updating unit 1153A is the information corresponding to each information storage device.
  • the total value of the costs of the endpoints for which the storage device is in charge is calculated.
  • the second correspondence table of the sharing setting storage unit 122E is referred to, and under the control of the device-in-charge selection unit 1151E, the total value of the calculated costs is the largest information storage device. It is determined to be responsible for endpoint # 2, which is the highest cost endpoint among the endpoints for which information storage device 1B is responsible.
  • the first correspondence table stored in the sharing setting storage unit 122E is read out, and based on the first correspondence table, the information transmission devices 2A, 2B, 2C, 2D, 2E, Among the data transmitted from 2F, the data to be transmitted together with the identifiers corresponding to the topics # 1 and # 2 associated with the endpoint # 2 in charge is acquired from the broker 3.
  • the correspondence between the information storage device 1E and the endpoint # 2 in charge is written in the second correspondence table stored in the sharing setting storage unit 122E.
  • the information storage device 1E to be added After the information storage device 1E to be added writes the correspondence with the endpoint # 2 in charge in the second correspondence table, the information storage device 1B having the largest total value of the calculated costs is Will be notified. Furthermore, in the information storage device 1E to be added, the total value of the costs of the endpoints associated with itself is calculated, and it is determined whether the calculated total value of costs exceeds a predetermined value. .
  • the information storage device 1B that has received the notification releases the association with the endpoint # 2 that the information storage device 1E to be added is in charge of, and thereafter, the association is released. It is possible not to acquire data for endpoint # 2. Thereby, the load of the information storage device having a large load can be reduced. Furthermore, according to the above determination result, the added information storage device 1E can additionally be in charge of an endpoint, and, for example, it becomes possible to achieve load equalization among the information storage devices. .
  • the present invention is not limited to the above embodiment.
  • Each process performed in relation to the correspondence table such as the value calculation process, may be configured to be performed by the setting management device.
  • batch management of information shared by a plurality of information storage devices that is, batch management of information distributed storage systems can be performed.
  • the correspondence between the information receiving device and the information storage device is written in the second correspondence table. It may be configured to write the correspondence.
  • the information storage device in the information storage device, an example of selecting an information receiving device to be in charge based on the waiting flag in the second correspondence table, and charge based on the cost of the endpoint in the second correspondence table The example which selects the information receiving apparatus to carry out was demonstrated.
  • selection processing is not limited to the situation described in the above embodiment. That is, the selection process of the information receiving apparatus to be in charge may be performed by arbitrarily combining the methods described in the above embodiments, regardless of the circumstances.
  • the types and configurations of the information storage device and the setting management device, and the configurations of the first correspondence table and the second correspondence table can be variously modified without departing from the scope of the present invention. is there.
  • the present invention is not limited to the first embodiment as it is, and at the implementation stage, the constituent elements can be modified and embodied without departing from the scope of the invention.
  • various inventions can be formed by appropriate combinations of a plurality of components disclosed in the first embodiment. For example, some components may be deleted from all the components shown in the first embodiment. Furthermore, components in different embodiments may be combined as appropriate.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

情報記憶装置間でのデータの複製や送受信を必要とすることなく、情報送信装置から送信されるデータを分散記憶させることができるようにする。 複数の情報記憶装置の各々において、データ書き込み部の制御の下、予め設定された、情報記憶装置と当該情報記憶装置が担当するエンドポイントとの対応関係を示す情報に基づいて、担当するエンドポイントが判定される。共有設定記憶部に記憶される、エンドポイントと当該エンドポイントが取得するデータの種類を示す識別子とを対応付ける第1の対応表に基づいて、情報送信装置から送信されるデータの中から、担当するエンドポイントに対応付けられている識別子とともに送信されるデータが取得され、当該取得されたデータがデータ記憶部に記憶される。対応表更新部の制御の下、担当するエンドポイントとの対応付けが、共有設定記憶部に記憶される第2の対応表に書き込まれる。

Description

情報分散記憶システム、方法およびプログラム
 この発明は、データを分散記憶させる情報分散記憶システム、方法およびプログラムに関する。
 近年注目されているIoTシステムでは、例えば、多種多数のセンサデバイスから送信されたデータを漏らさず蓄積し、蓄積されたデータから任意のデータを任意のタイミングで読み出すことを可能にする基盤ソフトウェアが必要とされる。
 IoTシステムにおいてセンサデバイスから送信されるデータは、サイズの小さなデータが高頻度で送信されるものが多い。したがって、このようなデータは、MQTT(Message Queueing Telemetry Transport)に代表されるような軽量なPublisher - Subscriberモデルのメッセージングプロトコルにより、集約を行う基盤ソフトウェアへと送信されることが一般的である。
 ところで、センサデバイスには永続化領域が無く、また周囲に作業要員が常駐しないことが予想される。したがって、基盤ソフトウェアではデータを継続的に漏れなく記憶領域に書き込む必要があり、そのためには、基盤ソフトウェアが耐故障性を保証できることが望ましい(例えば、非特許文献1を参照)。
 また、IoTシステムでは、従来インターネットにつながっていなかったデバイスが段階的にネットワークに接続していくことが見込まれ、さらに、呼を発する主体はユーザ単位ではなくデバイス単位である。したがって、スモールスタートから大規模なシステムへと徐々に拡張可能なスケールアウト性を有するシステムであることが望ましい(例えば、非特許文献2を参照)。
平賀弘平, and 建部修見. "分散ファイルシステムにおけるメタデータサーバの冗長化手法の検討." 研究報告ハイパフォーマンスコンピューティング (HPC) 2011.37 (2011): 1-7. 近藤直樹, et al. "Fat-Btree, P-tree, SkipGraph を用いた範囲問合せ性能の比較実験." 研究報告 情報基礎とアクセス技術 (IFAT) 2011.15 (2011): 1-8.
 一般的な分散データベースは、データを分散記憶させる際に、上述した耐故障性を有することを目的として、同一のデータを複数の情報記憶装置にそれぞれ記憶させてデータの冗長性を担保している。
 非特許文献1に記載されるような従来の分散データベースでは、データの冗長性を担保するために、データを受信した情報記憶装置が、実際にデータを記憶させる複数の情報記憶装置を定めてデータを複製し送信する。ところが、このような分散データベースでは、データを複製しその複製データを送受信する処理が必要となるので、非分散データベースと比較すると、単一情報記憶装置あたりの書き込み性能が低下してしまうという問題がある。
 この発明は上記事情に着目してなされたもので、その目的とするところは、情報記憶装置間でのデータの複製や送受信を必要とすることなく、情報送信装置から送信されるデータを分散記憶させることができる情報分散記憶システム、方法およびプログラムを提供することにある。
 上記課題を解決するために、この発明の第1の態様は、情報送信装置および情報受信装置との間でデータ通信が可能な複数の情報記憶装置を具備する情報分散記憶システムにあって、前記複数の情報記憶装置の各々が、前記複数の情報記憶装置間で共有される、情報受信装置と当該情報受信装置が取得するデータの種類を示す識別子とを対応付ける第1の対応表と、情報記憶装置と当該情報記憶装置が担当する情報受信装置との対応関係を示す第2の対応表とに基づいて、前記情報送信装置から送信されるデータの中から、自らが担当する情報受信装置に対応付けられている識別子とともに送信されるデータを取得するデータ取得部と、前記取得されたデータを記憶する記憶媒体とを備えるようにしたものである。
 この発明の第2の態様は、前記複数の情報記憶装置の各々がさらに、情報受信装置からのデータ要求を取得する要求取得部と、前記取得されたデータ要求が前記担当する情報受信装置からのものであるか否かを判定する判定部と、前記取得されたデータ要求が前記担当する情報受信装置からのものであると判定された場合に、前記担当する情報受信装置に対して、前記記憶媒体に記憶されたデータを出力する出力部とを具備し、前記判定部は、前記取得されたデータ要求が前記担当する情報受信装置からのものではないと判定された場合に、前記第2の対応表に基づいて、当該データ要求の送信元の情報受信装置を担当する情報記憶装置を判定し、前記データ要求の送信元の情報受信装置を担当する情報記憶装置であると判定された情報記憶装置の記憶媒体に記憶されたデータを取得する中継部をさらに具備し、前記出力部は、前記中継部を介して取得されたデータを、前記データ要求の送信元の情報受信装置に出力するようにしたものである。
 この発明の第3の態様は、前記情報分散記憶システムが、前記複数の情報記憶装置間で共有される前記第1の対応表または前記第2の対応表の初期設定またはデータアクセスを実行する管理装置をさらに具備するようにしたものである。
 この発明の第4の態様は、前記複数の情報記憶装置の各々が、情報受信装置が追加される際に、前記第2の対応表において、前記追加される情報受信装置を情報記憶装置に対応付けずに記憶させる対応表更新部と、前記第2の対応表を参照して、情報記憶装置が対応付けられていない情報受信装置の中から、担当する情報受信装置を選択する選択部とを具備し、前記対応表更新部は、前記第2の対応表において、前記選択された情報受信装置に対応付けられたことを記憶させる対応表更新部とを備えるようにしたものである。
 この発明の第5の態様は、前記第2の対応表が、各情報記憶装置について、情報受信装置との対応付けがされた時刻もさらに記憶しており、前記複数の情報記憶装置の各々が、前記第2の対応表を参照して、前記担当する情報受信装置を担当する他の情報記憶装置に関して記憶されている時刻について、当該時刻が記憶されてから所定の時間が経過しているか否かを判定する対応表監視部と、前記時刻が記憶されてから所定の時間が経過していると判定された場合に、前記第2の対応表において、当該判定をされた情報記憶装置についての情報受信装置との対応付けを削除し、、前記第2の対応表において、自らの情報記憶装置に関して記憶されている時刻を更新する対応表更新部とをさらに備えるようにしたものである。
 この発明の第6の態様は、前記複数の情報記憶装置の各々が、前記第2の対応表において、情報記憶装置毎に、担当する情報受信装置のコストの合計値を算出する算出部をさらに備え、前記情報分散記憶システムに情報記憶装置が追加される際に、前記追加される情報記憶装置が、前記算出されたコストの合計値が最も大きい情報記憶装置が担当する情報受信装置のうちコストが最も大きい情報受信装置を、担当する情報受信装置として選択する選択部と、前記第2の対応表において、前記選択された情報受信装置に対応付けられたことを記憶させる対応表更新部とをさらに備えるようにしたものである。
 また、次のような付加的な態様も考えられる。 
 その第1の付加的な態様は、上記第6の態様において前記第2の対応表に対応付けを記憶させた後に、前記追加される情報記憶装置が、前記算出されたコストの合計値が最も大きい情報記憶装置に通知するようにしたものである。
 第2の付加的な態様は、上記第6の態様において前記第2の対応表に対応付けを記憶させた後に、前記追加される情報記憶装置が、自らに対応付けられている情報受信装置のコストの合計値を算出し、算出されたコストの合計値が所定の値を超えたか否かを判定するようにしたものである。
 この発明の第1の態様によれば、複数の情報記憶装置の各々において、複数の情報記憶装置間で共有される、情報受信装置と当該情報受信装置が取得するデータの種類を示す識別子とを対応付ける第1の対応表と、情報記憶装置と当該情報記憶装置が担当する情報受信装置との対応関係を示す情報とに基づいて、自らが担当する情報受信装置に対応付けられている識別子とともに送信されるデータが取得され、当該取得されたデータが記憶される。すなわち、各情報記憶装置が、取得すべきデータを自律的に取得し蓄積する。
 このように、各情報記憶装置が自律的にデータを取得できるようにすることにより、情報記憶装置間でのデータの複製や送受信を必要とすることなく、複数の情報記憶装置間でデータを分散記憶させることができる。これにより、データ記憶時における単一情報記憶装置あたりの書き込み性能の低下が防がれた情報分散記憶システムを実現することができる。
 また、例えば、上述した情報記憶装置と当該情報記憶装置が担当する情報受信装置との対応関係を示す情報において、1つの情報受信装置を2つ以上の情報記憶装置が担当するように設定すれば、複数の情報記憶装置間でデータの冗長性を担保することができ、情報分散記憶システムの耐故障性が保証される。
 この発明の第2の態様によれば、複数の情報記憶装置の各々において、情報受信装置からのデータ要求が取得され、当該取得されたデータ要求が上記担当する情報受信装置からのものであるか否かが判定される。そして、その判定の結果、データ要求が上記担当する情報受信装置からのものである場合に、上記担当する情報受信装置に対して、上記記憶されたデータが出力される。一方、データ要求が上記担当する情報受信装置からのものではない場合には、複数の情報記憶装置間で共有される、情報受信装置と当該情報受信装置を担当する情報記憶装置とを対応付ける第2の対応表に基づいて、上記データ要求の送信元の情報受信装置を担当する情報記憶装置が判定される。その後、上記データ要求の送信元の情報受信装置を担当する情報記憶装置であると判定された情報記憶装置に記憶されたデータが取得され、上記データ要求の送信元の情報受信装置に出力される。したがって、情報受信装置は、いずれの情報記憶装置にアクセスしたとしても、所望のデータを取得することができる。
 この発明の第3の態様によれば、管理装置によって、上記複数の情報記憶装置間で共有される第1の対応表または第2の対応表の初期設定またはデータアクセスが実行される。したがって、管理装置によって、複数の情報記憶装置に共有される情報の一括管理、すなわち、情報分散記憶システムの一括管理をすることができる。
 この発明の第4の態様によれば、情報受信装置が追加される際に、複数の情報記憶装置の各々において、追加される情報受信装置が特定の情報記憶装置と対応付けされずに第2の対応表に記憶される。その後、複数の情報記憶装置の各々において、第2の対応表が参照され、情報記憶装置が対応付けられていない情報受信装置の中から、担当する情報受信装置が選択され、第2の対応表において、当該選択された情報受信装置に対応付けられたことが記憶される。
 したがって、第4の態様によれば、システムに情報受信装置を追加可能なスケールアウト性を、当該スケールアウト実行時に情報記憶装置間でデータの送受信を必要とすることなく持たせることができる。これにより、スケールアウト性を有し、かつ、スケールアウト実行時にも単一情報記憶装置あたりの書き込み性能の低下が防がれた情報分散記憶システムを実現することができる。
 なお、例えば非特許文献2に記載されるような、システム拡張が可能なスケールアウト性を有する従来のデータベースでは、キーに対するハッシュを用い、ツリー構造によりハッシュ値の範囲またはツリーの部分木により分割統治を行うのが一般的である。このような方式の場合、データベースの内部で、情報送信装置から送信されるデータを解析し、情報を書き込むべき情報記憶装置を探索し、その結果に基づいて、対象となる情報記憶装置に書き込みを行う。このように、非特許文献2に記載されるような従来の技術では、複数の情報記憶装置間で情報を送受信する処理が必要となるので、非分散データベースと比較すると、一回の書き込みに対する仕事量が情報記憶装置の数に比例して増大し、単一情報記憶装置あたりの書き込み性能が低下する。すなわち、上記第4の態様は従来技術に対して上述したような利点がある。
 この発明の第5の態様によれば、複数の情報記憶装置の各々において、第2の対応表が参照され、自らが担当する情報受信装置を担当する他の情報記憶装置に関して記憶されている時刻について、当該時刻が記憶されてから所定の時間が経過しているか否かが判定される。そして、その判定の結果、時刻が記憶されてから所定の時間が経過している場合には、複数の情報記憶装置の各々において、第2の対応表において、上記時間が経過した情報記憶装置と情報受信装置との対応付けが削除され、一方で自らの情報記憶装置に関して記憶されている時刻が更新される。
 一般に、正常に動作することを確認されていた情報記憶装置であっても、運用時間が経過するにしたがい、何らかの原因により正常に動作しなくなる可能性がある。しかしながら、上記第5の態様のように、時間を基準に、情報受信装置に対して対応付けられていた情報記憶装置についての対応付けを削除することによって、正常に動作をしていない情報記憶装置が情報受信装置を担当し続けるといった不具合を防ぐことができ、これにより情報分散記憶システム全体の信頼性を向上させることができる。
 また、上述したような対応表の監視処理を実行した情報記憶装置については、監視処理と同時に動作確認がされる。したがって、上述したように第2の対応表において時刻を更新することによって、正常に動作している情報記憶装置の対応付けまでが削除されて情報分散記憶の効率が低下してしまうことを防ぐことができる。
 この発明の第6の態様によれば、複数の情報記憶装置の各々において、第2の対応表において、情報記憶装置毎に、担当する情報受信装置のコストの合計値が算出される。そして、情報分散記憶システムに情報記憶装置が追加される際に、追加される情報記憶装置において、算出されたコストの合計値が最も大きい情報記憶装置が担当する情報受信装置のうちコストが最も大きい情報受信装置が、担当する情報受信装置として選択され、当該選択された情報受信装置に対応付けられたことが第2の対応表に記憶される。
 したがって、システムに情報記憶装置を追加可能なスケールアウト性を、当該スケールアウト実行時に情報記憶装置間でデータの送受信を必要とすることなく持たせることができる。これにより、スケールアウト性を有し、かつ、スケールアウト実行時にも単一情報記憶装置あたりの書き込み性能の低下が防がれた情報分散記憶システムを実現することができる。
 さらに、上記第1の付加的な態様によれば、上記第6の態様において第2の対応表に対応付けを記憶させた後に、上記追加される情報記憶装置により、上記算出されたコストの合計値が最も大きい情報記憶装置に通知がなされる。このため、当該通知を受けた情報記憶装置は、上記追加される情報記憶装置が担当することとなった情報受信装置との対応付けを開放し、以後、当該対応付けを解放された情報受信装置に対するデータを取得しないようにすることができる。これにより、負荷が大きかった情報記憶装置の負荷を軽減させることができる。
 上記第2の付加的な態様によれば、上記第6の態様において第2の対応表に対応付けを記憶させた後に、上記追加される情報記憶装置において、自らに対応付けられている情報受信装置のコストの合計値が算出され、算出されたコストの合計値が所定の値を超えたか否かが判定される。このため、当該判定結果に応じて、追加で情報受信装置を担当するようにすることもでき、例えば、情報記憶装置間で負荷の均一化を図ることが可能となる。
 すなわちこの発明の各態様によれば、情報記憶装置間でのデータの複製や送受信を必要とすることなく、情報送信装置から送信されるデータを分散記憶させることができる情報分散記憶システム、方法およびプログラムを提供することができる。
この発明の第1の実施形態に係るネットワークシステムの概略構成図。 図1に示したネットワークシステム中の情報記憶装置の機能構成を示すブロック図。 図2Aに示した設定共有部の詳細な機能構成を示すブロック図。 設定管理装置および複数の情報記憶装置の間で共有される、情報受信装置と当該情報受信装置が取得するデータの種類を示す識別子とを対応付ける第1の対応表の一例を示す図。 設定管理装置および複数の情報記憶装置の間で共有される、情報受信装置と当該情報受信装置を担当する情報記憶装置とを対応付ける第2の対応表の一例を示す図。 図2に示した情報記憶装置の制御ユニットによって実行されるデータ書き込み処理の一例を示すフロー図。 図2に示した情報記憶装置の制御ユニットによって実行されるデータ要求応答処理の一例を示すフロー図。 図1に示したネットワークシステムに情報受信装置が追加される際に、図2に示した情報記憶装置の制御ユニットによって実行される、担当する情報受信装置の選択処理の一例を示すフロー図。 図2に示した情報記憶装置の制御ユニットによって実行される対応表監視処理の一例を示すフロー図。 図8に示した対応表監視処理に伴い、第2の対応表が更新される様子を示す図。 図1に示したネットワークシステムに情報記憶装置が追加される際に、図2に示した情報記憶装置の制御ユニットによって実行される、担当する情報受信装置の選択処理の一例を示すフロー図。 図10に示した担当する情報受信装置の選択処理に伴い、第2の対応表が更新される様子を示す図。
 以下、図面を参照してこの発明に係わる実施形態を説明する。 
 [第1の実施形態]
 (構成)
 図1は、この発明の第1の実施形態に係るネットワークシステムの概略構成図である。 
 図1に示すネットワークシステムは、例えばIoTシステムにおいて使用されるPublisher - Subscriberモデルのように、データ通信が可能な状態で、例えばセンサデバイスであるデータ送信側の情報送信装置2A,2B,2C,2D,2E,2Fおよびブローカ3と、送信データを記憶する情報分散記憶システムとしての情報記憶装置1A,1B,1C,1Dおよび設定管理装置5とを備えており、さらに、例えばアプリケーションであるデータ受信側の情報受信装置4A,4B,4C,4Dを備えている。なお、図1に図示されるネットワークシステムは一例に過ぎず、ネットワークシステムでは、各々1つ以上の任意の数の情報送信装置および情報受信装置が存在していてもよく、また、2つ以上の任意の数の情報記憶装置が存在していてもよい。
 設定管理装置5および情報記憶装置1A,1B,1C,1Dは各々、情報受信装置と当該情報受信装置が取得するデータの種類を示す識別子とを対応付ける第1の対応表と、情報受信装置と当該情報受信装置を担当して当該情報受信装置に対するデータを記憶する情報記憶装置とを対応付ける第2の対応表とを記憶している。上記第1および第2の対応表は、設定管理装置5および情報記憶装置1A,1B,1C,1Dの間で同期した状態で共有される。なお、上記第1の対応表および第2の対応表は、例えば、設定管理装置5においてオペレータにより初期設定される。
 情報記憶装置1A,1B,1C,1Dは各々、第1の対応表に基づいて、情報受信装置4A,4B,4C,4Dのうちの担当する情報受信装置毎に、情報送信装置2A,2B,2C,2D,2E,2Fから送信されるデータの中から、当該担当する情報受信装置が取得するデータを記憶する。1つの情報受信装置を2つ以上の情報記憶装置によって担当するようにする場合には、当該情報受信装置が取得するデータを分割および複製して情報記憶装置間で分散記憶する。
 一方、情報記憶装置1A,1B,1C,1Dは各々、情報受信装置4A,4B,4C,4Dからのデータ要求に応じ、上記第2の対応表に基づいて、必要に応じて情報記憶装置1A,1B,1C,1D間でデータの送受信を行い、各情報受信装置4A,4B,4C,4Dから要求されるデータを出力する。
 (1)情報記憶装置
 図2Aは、図1に示した情報記憶装置1Aの機能構成を示すブロック図である。以下では情報記憶装置1Aの機能構成について説明するが、情報記憶装置1B,1C,1D等の他の情報記憶装置も同様の機能構成を有している。なお、図2Aでは参照のために、実線の矢印によりデータの入出力を示しており、破線の矢印により、第1の対応表および第2の対応表に係る設定情報の入出力を示している。
 情報記憶装置1Aは、制御ユニット11Aと、記憶ユニット12Aと、通信インタフェースユニット13Aとを備えている。
 通信インタフェースユニット13Aは、例えば1つ以上の有線または無線の通信インタフェースユニットを含んでいる。通信インタフェースユニット13Aは、制御ユニット11Aから出力される、例えばデータの種類を示す識別子を有するデータ要求を取得し、当該データ要求を通信ネットワークを介してブローカ3に出力する。その後、通信インタフェースユニット13Aは、情報送信装置2A,2B,2C,2D,2E,2Fから送信されるデータの中から、上記識別子とともに送信されるデータを、通信ネットワークを介してブローカ3から取得し、取得されたデータを制御ユニット11Aに出力する。
 また、通信インタフェースユニット13Aは、情報受信装置4A,4B,4C,4Dから送信されるデータ要求を、通信ネットワークを介して取得し、取得されたデータ要求を制御ユニット11Aに出力する。その後、通信インタフェースユニット13Aは、制御ユニット11Aから出力されるデータを、通信ネットワークを介して当該データ要求の送信元の情報受信装置に送信する。また、通信インタフェースユニット13Aは、情報記憶装置1B,1C,1D等の他の情報記憶装置とのデータおよび設定情報の送受信や、設定管理装置5との設定情報の送受信も実行する。
 記憶ユニット12Aは、記憶媒体として例えばHDD(Hard Disk Drive)またはSSD(Solid State Drive)等の随時書き込みおよび読み出しが可能な不揮発メモリを使用したものであり、本実施形態を実現するために使用される記憶領域として、データ記憶部121Aと、共有設定記憶部122Aとを備えている。
 データ記憶部121Aは、自らの情報記憶装置が担当する情報受信装置毎に、ブローカ3から取得されるデータを記憶させるために使用される。
 共有設定記憶部122Aは、情報記憶装置1A,1B,1C,1Dおよび設定管理装置5によって共有される、情報受信装置と当該情報受信装置が取得するデータの種類を示す識別子とを対応付ける第1の対応表を記憶させるために使用される。また、共有設定記憶部122Aは、情報記憶装置1A,1B,1C,1Dおよび設定管理装置5によって共有される、情報受信装置と当該情報受信装置を担当する情報記憶装置とを対応付ける第2の対応表を記憶させるために使用される。
 制御ユニット11Aは、CPU(Central Processing Unit)等のハードウェアプロセッサと、プログラムメモリとを備え、本実施形態における処理機能を実行するために、データ書き込み部111Aと、データ出力部112Aと、中継判定部113Aと、中継部114Aと、設定共有部115Aとを備えている。これらの各部における処理機能はいずれも、プログラムメモリに格納されたプログラムを上記ハードウェアプロセッサに実行させることによって実現される。
 データ書き込み部111Aは、記憶ユニット12Aの共有設定記憶部122Aに記憶される、情報受信装置と当該情報受信装置が取得するデータの種類を示す識別子とを対応付ける第1の対応表を読み出す処理を実行する。その後、データ書き込み部111Aは、予め設定された、情報記憶装置と当該情報記憶装置が担当する情報受信装置との対応関係を示す情報と、第1の対応表とに基づいて、自らの情報記憶装置1Aが担当する情報受信装置に対応付けられている識別子を含むデータ要求を、通信インタフェースユニット13Aを介してブローカ3に出力する処理を実行する。
 その後、データ書き込み部111Aは、情報送信装置2A,2B,2C,2D,2E,2Fから送信されるデータの中から、上記識別子とともに送信されるデータを、通信インタフェースユニット13Aを介してブローカ3から取得し、取得されたデータを、担当する情報受信装置毎に、記憶ユニット12Aのデータ記憶部121Aに記憶させる処理を実行する。なお、他の情報記憶装置1B,・・・,1Dが、情報記憶装置1Aが担当する情報受信装置に対するデータを第1の対応表に基づいて取得するようにしてもよく、データ書き込み部111Aは、当該データを取得した情報記憶装置から当該データを取得し、記憶ユニット12Aのデータ記憶部121Aに記憶させるようにしてもよい。
 なお、上述した情報記憶装置と当該情報記憶装置が担当する情報受信装置との対応関係を示す情報は、例えば、設定管理装置5によって予め選択された対応関係を示す情報であってもよく、あるいは、制御ユニット11Aの設定共有部115Aにおいて選択された対応関係を示す情報であってもよい。また、上述した情報記憶装置と当該情報記憶装置が担当する情報受信装置との対応関係を示す情報は、情報記憶装置1B,1C,1D等の他の情報記憶装置についての対応関係も含むものであってもよい。
 中継判定部113Aは、情報受信装置4A,4B,4C,4D等の任意の情報受信装置から当該情報受信装置を示す識別子とともに送信されるデータ要求を、通信インタフェースユニット13Aを介して取得する処理を実行する。なお、以下では、例として情報受信装置4Aからデータ要求が取得されたものとして説明する。
 その後、中継判定部113Aは、取得されたデータ要求が、自らの情報記憶装置1Aが担当する情報受信装置から送信されたものであるか否かを判定する処理を実行する。例えば、当該判定処理は、上述した情報記憶装置と当該情報記憶装置が担当する情報受信装置との対応関係を示す情報に基づくものであってもよい。あるいは、当該判定処理は、記憶ユニット12Aの共有設定記憶部122Aに記憶される、情報受信装置と当該情報受信装置を担当する情報記憶装置とを対応付ける第2の対応表に基づくものであってもよい。中継判定部113Aは、取得されたデータ要求が、自らの情報記憶装置1Aが担当する情報受信装置からのものではないと判定された場合には、記憶ユニット12Aの共有設定記憶部122Aに記憶される第2の対応表に基づいて、当該データ要求の送信元の情報受信装置4Aを担当する情報記憶装置を判定する処理を実行する。なお、以下では、例として情報記憶装置1Bが、当該データ要求の送信元の情報受信装置4Aを担当する情報記憶装置であると判定されたものとして説明する。
 中継部114Aは、取得されたデータ要求が、自らの情報記憶装置1Aが担当する情報受信装置からのものではないと判定された場合に、当該データ要求の送信元の情報受信装置4Aを担当する情報記憶装置であると判定された情報記憶装置1Bに対し、通信インタフェースユニット13Aを介して、当該データ要求を出力する処理を実行する。その後、中継部114Aは、通信インタフェースユニット13Aを介して、情報記憶装置1Bのデータ記憶部121Bに記憶されたデータを取得する処理を実行する。例えば、当該取得されるデータを、記憶ユニット12Aに記憶させるようにしてもよい。なお、中継先である情報記憶装置1Bに対して、上記データ要求を出力する代わりに、情報記憶装置1Bのデータ記憶部121Bに記憶されている情報受信装置4Aに対するデータを送信させるための指示を出力するようにしてもよい。
 データ出力部112Aは、取得されたデータ要求が、自らの情報記憶装置1Aが担当する情報受信装置からのものではないと判定された場合には、中継部114Aにおける処理によって取得されたデータを、通信インタフェースユニット13Aを介して情報受信装置4Aに対して出力する処理を実行する。一方、データ出力部112Aは、取得されたデータ要求が、自らの情報記憶装置1Aが担当する情報受信装置からのものであると判定された場合には、記憶ユニット12Aのデータ記憶部121Aに記憶される、データ要求の送信元の情報受信装置4Aに対するデータを読み出す処理を実行する。その後、データ出力部112Aは、読み出されたデータを通信インタフェースユニット13Aを介して情報受信装置4Aに対して出力する処理を実行する。
 設定共有部115Aは、設定管理装置5によって実行された、設定管理装置5の共有設定記憶部521に記憶される第1の対応表あるいは第2の対応表における初期設定またはデータアクセスに応じて、記憶ユニット12Aの共有設定記憶部122Aに記憶される第1の対応表および第2の対応表を同期する処理を実行する。
 さらに、設定共有部115Aは、記憶ユニット12Aの共有設定記憶部122Aに記憶される第1の対応表あるいは第2の対応表が更新された場合に、設定管理装置5および情報記憶装置1B,1C,1D等において記憶される第1の対応表および第2の対応表を同期させるための設定情報を、通信インタフェースユニット13Aを介して出力する処理を実行する。
 図2Bは、設定共有部115Aの詳細な機能構成を示すブロック図である。設定共有部115Aは、担当装置選択部1151Aと、対応表監視部1152Aと、対応表更新部1153Aとを備えている。
 担当装置選択部1151Aは、自らの情報記憶装置1Aが担当する情報受信装置を選択する処理を実行する。例えば、当該選択処理は、記憶ユニット12Aの共有設定記憶部122Aに記憶される第2の対応表を参照して実行するようにしてもよい。なお、担当装置選択部1151Aは、自らの情報記憶装置1A以外の他の情報記憶装置が担当する情報受信装置を選択する処理を実行してもよい。
 対応表監視部1152Aは、記憶ユニット12Aの共有設定記憶部122Aに記憶される第2の対応表を監視する処理を実行する。
 対応表更新部1153Aは、自らの情報記憶装置1Aと、担当装置選択部1151Aまたは設定管理装置5において選択された情報受信装置との対応付けを、データ書き込み部111Aにおけるデータ書き込み処理が完了した以後に、記憶ユニット12Aの共有設定記憶部122Aに記憶される第2の対応表に書き込む更新処理を実行する。さらに、対応表更新部1153Aは、対応表監視部1152Aにおける監視処理にしたがって、記憶ユニット12Aの共有設定記憶部122Aに記憶される第2の対応表を更新する処理も実行する。
 (2)対応表
 図3は、設定管理装置5および情報記憶装置1A,1B,1C,1Dの間で共有される、情報受信装置と当該情報受信装置が取得するデータの種類を示す識別子とを対応付ける第1の対応表の一例を示す図である。図3に示す第1の対応表の例では、情報受信装置4A,4B,4C,4Dを示す識別子に各々が対応するエンドポイント#1,#2,#3,#4と、データの種類を示す識別子に対応するトピック#1,#2,#3,#4との対応付けが記憶されている。
 図4は、設定管理装置5および情報記憶装置1A,1B,1C,1Dの間で共有される、情報受信装置と当該情報受信装置を担当する情報記憶装置とを対応付ける第2の対応表の一例を示す図である。図4に示す第2の対応表の例では、情報受信装置4A,4B,4C,4Dを示す識別子に各々が対応するエンドポイント#1,#2,#3,#4と、情報記憶装置1A,1B,1C,1Dとの対応付けが記憶されている。
 また、図4に示す第2の対応表の例では、情報記憶装置1A,1B,1C,1Dについて、いずれかのエンドポイントと対応付けられた直近の時刻を記憶しており、また、各エンドポイントについて、情報記憶装置との対応付けを待ち受けていることを示す待ち受け中フラグを記憶することができる。さらに、図4に示す第2の対応表の例では、各エンドポイントについてコストが記憶されている。当該エンドポイントのコストは、例えば、当該エンドポイントに対する単位時間あたりのアクセス頻度、当該エンドポイントを担当することにより情報記憶装置において増加する単位時間あたりの処理量を表すものである。
 (動作)
 次に、以上のように構成された情報記憶装置1A,1B,1C,1D等の情報記憶装置の動作を説明する。 
 以下では、例として、情報記憶装置1Aを主体とした動作について説明するが、以下に説明する動作フローの任意のステップを、情報記憶装置1A以外の他の任意の情報記憶装置によって実行してもよい。また、例として、以下で説明する動作フローでは、図3に示した第1の対応表、および、図4に示した第2の対応表を利用するものとして説明する。さらに、図3および図4において、情報受信装置4A,4B,4C,4Dを示す識別子にエンドポイント#1,#2,#3,#4の各々が対応すると説明したように、以下の説明では、情報受信装置4Aとエンドポイント#1、情報受信装置4Bとエンドポイント#2、情報受信装置4Cとエンドポイント#3、および、情報受信装置4Dとエンドポイント#4をそれぞれ、同義のものとして説明している。
 (1)データ書き込み処理
 図5は、図2に示した情報記憶装置1Aの制御ユニット11Aによって実行されるデータ書き込み処理の一例を示すフロー図である。
 最初に、ステップS11において、制御ユニット11Aは、データ書き込み部111Aの制御の下、予め設定された、情報記憶装置と当該情報記憶装置が担当するエンドポイントとの対応関係を示す情報に基づいて、自らの情報記憶装置1Aが担当するエンドポイントを判定する。以下では、エンドポイント#1が、自らの情報記憶装置1Aが担当するエンドポイントとして判定された場合について説明する。
 なお、上述した情報記憶装置と当該情報記憶装置が担当するエンドポイントとの対応関係を示す情報は、例えば、設定管理装置5によって予め選択された対応関係を示す情報であってもよく、あるいは、制御ユニット11Aの設定共有部115Aにおいて選択された対応関係を示す情報であってもよい。
 また、例えば、設定管理装置5によって、例えば、エンドポイントと当該エンドポイントを担当することになる情報記憶装置を予め対応付けるように第2の対応表が初期設定されているような場合には、上述した情報記憶装置と当該情報記憶装置が担当するエンドポイントとの対応関係を示す情報は、当該第2の対応表からの情報であってもよい。
 ステップS12において、制御ユニット11Aは、データ書き込み部111Aの制御の下、共有設定記憶部122Aに記憶される、エンドポイントと当該エンドポイントが取得するデータの種類を示す識別子とを対応付ける第1の対応表を読み出す。そして、この第1の対応表に基づいて、制御ユニット11Aは、データ書き込み部111Aの制御の下、情報送信装置2A,2B,2C,2D,2E,2Fから送信されるデータの中から、担当するエンドポイント#1に対応付けられているトピック#2を示す識別子とともに送信されるデータをブローカ3から取得し、取得されたデータを記憶ユニット12Aのデータ記憶部121Aに記憶させる。
 本技術の特徴の1つは、第1の対応表で、受信装置を表すエンドポイントと、受信装置が要求する、データを生成するセンサや機器ごとの抽象的なデータの種類や構造を表す識別子であるトピックとの対応関係を記憶し、第2の対応表で、受信装置を表すエンドポイントと、その受信装置が要求するデータを記憶する具体的な情報記憶装置の対応関係を記憶し、さらに対応表1,2を関連付けることである。
 データ書き込み処理の中で、データを記憶する情報記憶装置の分担を決定する処理では、IoTシステムに追加・削除される具体的なデータ生成装置の情報を気にする必要がなく、受信装置と情報記憶装置の対応関係の情報だけに基づいて第2の対応表を更新・メンテナンスするだけで、自動的にデータ蓄積を担当する記憶装置を決定することができるため、単純な仕組みで分散保存の仕組みを維持することができる。
 また、IoTシステムにデータ生成機器を新たに追加したり、情報受信装置が要求するデータの種類を変更する場合には、第1の対応表を更新することで、情報記憶装置の構成を気にすることなく、接続するデータ生成機器やデータ受信装置の要求するデータの変更を反映することが可能となる。
 データ生成機器の変更や受信装置の要求するデータの種類の変更時には第1の対応表を更新し、受信装置や記憶装置の追加などの構成変更時には第2の対応表を参照・変更して記憶装置の分担を決定することにより、システムを構成する機器の構成変更や要求データの変更を反映しながら、単純な仕組みで自動的にデータを複数の記憶装置に分散保存することができる。
 例えば、新たなセンサ等をIoTシステムに接続する際の処理では第1の対応表のみをメンテナンスすればよく、新たな情報受信装置を追加する際の担当記憶装置を分散して割り当てる処理では第2の対応表のみをメンテナンスすればよいため、各処理の実装が容易になる。
 さらに、第1の対応表及び第2の対応表を組み合わせることで機器の更新と分散保存の割り当てを自動化できるため、分散保存システムの維持管理の負担を小さくすることができるのが本特許の利点である。
 なお、例えば、当該データ記憶部121Aへの書き込み処理では、担当するエンドポイント毎に、当該エンドポイントに対するデータであることを一意に特定できるキーを付与して記憶させてもよい。当該キーは、すべての情報記憶装置および設定管理装置5において共通して使用できるように、例えば、第1の対応表において記憶されている。
 ステップS13において、制御ユニット11Aは、対応表更新部1153Aの制御の下、情報記憶装置1Aと担当するエンドポイント#1との対応付けを、共有設定記憶部122Aに記憶される第2の対応表に書き込む。その結果、図4の第2の対応表に示されているように、情報記憶装置1Aとエンドポイント#1とが対応付けられていることを示す○が書き込まれ、当該第2の対応表はすべての情報記憶装置および設定管理装置5の間で共有される。
 (2)データ要求応答処理
 図6は、図2に示した情報記憶装置1Aの制御ユニット11Aによって実行されるデータ要求応答処理の一例を示すフロー図である。
 最初に、ステップS21において、制御ユニット11Aは、中継判定部113Aの制御の下、情報受信装置4A,4B,4C,4D等の任意の情報受信装置から、当該情報受信装置を示す識別子とともに送信されるデータ要求を取得する。
 ステップS22において、制御ユニット11Aは、中継判定部113Aの制御の下、取得されたデータ要求が、自らの情報記憶装置1Aが担当するエンドポイントからのものであるか否かを判定する。例えば、当該判定処理は、ステップS11において説明した、情報記憶装置と当該情報記憶装置が担当するエンドポイントとの対応関係を示す情報に基づくものであってもよい。あるいは、当該判定処理は、共有設定記憶部122Aに記憶される第2の対応表を参照することによって実行されるものであってもよい。
 取得されたデータ要求が、例えば、自らの情報記憶装置1Aが担当するエンドポイント#1からのものであると判定された場合は、ステップS23において、制御ユニット11Aは、データ出力部112Aの制御の下、データ記憶部121Aに記憶される当該エンドポイント#1に対するデータを読み出し、読み出されたデータを、データ要求の送信元のエンドポイント#1に対応する情報受信装置4Aに対して出力する。
 一方、取得されたデータ要求が、例えば、情報記憶装置1Aが担当しないエンドポイント#2からのものであると判定された場合は、ステップS24において、制御ユニット11Aは、中継判定部113Aの制御の下、共有設定記憶部122Aに記憶される第2の対応表に基づいて、当該データ要求の送信元のエンドポイント#2を担当する情報記憶装置を判定する。その後、制御ユニット11Aは、中継部114Aの制御の下、上記データ要求の送信元のエンドポイント#2を担当する情報記憶装置であると判定された情報記憶装置1Bと情報記憶装置1Cとの少なくとも一方に対し、当該データ要求を出力する。
 その後、ステップS25において、制御ユニット11Aは、中継部114Aの制御の下、当該データ要求の送信元のエンドポイント#2を担当する情報記憶装置1Bと情報記憶装置1Cとの少なくとも一方に記憶されたデータを取得する。
 ステップS26において、制御ユニット11Aは、データ出力部112Aの制御の下、上記取得されたデータを、データ要求の送信元のエンドポイント#2に対応する情報受信装置4Bに対して出力する。
 (3)情報受信装置追加に伴う、担当する情報受信装置の選択処理
 図7は、図1に示したネットワークシステムに情報受信装置が追加される際に、図2に示した情報記憶装置1Aの制御ユニット11Aによって実行される、担当する情報受信装置の選択処理の一例を示すフロー図である。
 ネットワークシステムに情報受信装置4Eが追加される場合に、先ずステップS31において、制御ユニット11Aは、対応表更新部1153Aの制御の下、共有設定記憶部122Aに記憶される第2の対応表において、情報受信装置4Eに対応するエンドポイント#5の行または列を、情報記憶装置との対応付けを記入しない状態で、待ち受け中フラグを立てて追加する。
 なお、制御ユニット11Aは、対応表更新部1153Aの制御の下、共有設定記憶部122Aに記憶される第1の対応表において、エンドポイント#5の行または列を追加してもよい。第1の対応表では、追加されるエンドポイント#5に対して、例えば情報受信装置4Eから通知された、取得するデータの種類を示す識別子が対応付けられて記憶されてもよい。
 続いてステップS32において、制御ユニット11Aは、担当装置選択部1151Aの制御の下、共有設定記憶部122Aに記憶される第2の対応表を読み出し、待ち受け中フラグの立っているエンドポイントの中から担当するエンドポイントを選択する。当該選択処理は、例えば、待ち受け中フラグの立っているエンドポイントの中からランダムに選択するものであってもよい。
 次にステップS33において、制御ユニット11Aは、担当装置選択部1151Aの制御の下、共有設定記憶部122Aに記憶される第2の対応表において、選択されたエンドポイントが2つ以上の情報記憶装置に対応付けられているか否かを判定する。そして、選択されたエンドポイントが2つ以上の情報記憶装置に対応付けられていると判定されると、ステップS32の処理が再度実行される。
 これに対し、選択されたエンドポイントが2つ以上の情報記憶装置に対応付けられていないと判定された場合には、ステップS34において、制御ユニット11Aは、データ書き込み部111Aの制御の下、共有設定記憶部122Aに記憶される第1の対応表に基づいて、情報送信装置2A,2B,2C,2D,2E,2Fから送信されるデータの中から、選択されたエンドポイントに対応付けられている識別子とともに送信されるデータを取得する。
 続いてステップS35において、制御ユニット11Aは、対応表更新部1153Aの制御の下、情報記憶装置1Aと上記選択されたエンドポイントとの対応付けを、共有設定記憶部122Aに記憶される第2の対応表に書き込む。
 ステップS36において、制御ユニット11Aは、担当装置選択部1151Aの制御の下、共有設定記憶部122Aに記憶される第2の対応表において、すべてのエンドポイントが2つ以上の情報記憶装置に対応付けられたか否かを判定する。2つ以上の情報記憶装置に対応付けられていないエンドポイントが存在すると判定されると、ステップS32からの処理を繰り返す。
 これに対し、すべてのエンドポイントが2つ以上の情報記憶装置に対応付けられたと判定された場合には、ステップS37において、制御ユニット11Aは、対応表更新部1153Aの制御の下、共有設定記憶部122Aに記憶される第2の対応表において待ち受け中フラグを削除する。
 (4)対応表監視処理
 図8は、図2に示した情報記憶装置1Aの制御ユニット11Aによって実行される対応表監視処理の一例を示すフロー図である。また、図9は、図8に示した対応表監視処理に伴い、図4に示した第2の対応表が更新される様子を示している図である。
 最初に、ステップS41において、制御ユニット11Aは、対応表監視部1152Aの制御の下、共有設定記憶部122Aに記憶される第2の対応表を参照して、担当するエンドポイント#1を担当する他の情報記憶装置1Dに関して記憶されている時刻“10345681”、および、担当するエンドポイント#4を担当する他の情報記憶装置1Bに関して記憶されている時刻“12345679”を読み出す。
 ステップS42において、制御ユニット11Aは、対応表監視部1152Aの制御の下、図9に示されているように、読み出された時刻“12345679”,“10345681”の各々について、当該時刻が記憶されてから所定の時間が経過しているか否かを判定する。情報記憶装置1Bに関して記憶されている時刻“12345679”は、所定の時間が経過していないと判定されるのに対して、情報記憶装置1Dに関して記憶されている時刻“10345681”は、既に所定の時間が経過していると判定される。
 ステップS43において、制御ユニット11Aは、対応表更新部1153Aの制御の下、図9に示されているように、共有設定記憶部122Aに記憶される第2の対応表において、所定の時間が経過している時刻“10345681”に関する情報記憶装置1Dについてのエンドポイントとの対応付けを削除し、対応付けを削除されたエンドポイント#1,#3に待ち受け中フラグを立てる。
 ステップS44において、制御ユニット11Aは、対応表更新部1153Aの制御の下、共有設定記憶部122Aに記憶される第2の対応表において、自らの情報記憶装置である情報記憶装置1Aに関して記憶されている時刻“12345678”を更新する。なお、当該更新処理は、ステップS42において、読み出されたすべての時刻について所定の時間が経過していないと判定された場合にも実行するようにしてもよい。
 ステップS45において、制御ユニット11Aは、対応表監視部1152Aの制御の下、共有設定記憶部122Aに記憶される第2の対応表を参照して、担当するすべてのエンドポイントについて上述したような時刻の確認処理を実行したか否かを判定する。この判定の結果、時刻の確認処理を実行していないエンドポイントがある場合には、当該エンドポイントについて、ステップS41からの処理を繰り返す。
 なお、ステップS41からステップS45の処理は、例えば、情報記憶装置1A,1B,1C,1Dの間で同期したクロックを基準に、情報記憶装置1A,1B,1C,1Dの間で異なるタイミングで例えば定期的に実行するようにしてもよい。
 また、ステップS43において待ち受け中フラグが立てられたエンドポイントについては、図7のステップS32以降の処理を各情報記憶装置において実行して、担当するエンドポイントを選択するようにしてもよい。
 (5)情報記憶装置追加に伴う、担当する情報受信装置の選択処理
 図10は、図1に示したネットワークシステムに情報記憶装置が追加される際に、図2に示した情報記憶装置1Aの制御ユニット11A、および、追加される情報記憶装置1Eの制御ユニット11Eによって実行される、担当する情報受信装置の選択処理の一例を示すフロー図である。また、図11は、図10に示した担当する情報受信装置の選択処理に伴い、図4に示した第2の対応表が更新される様子を示している図である。
 最初に、ステップS51において、制御ユニット11Aは、対応表更新部1153Aの制御の下、エンドポイントを担当する際に、共有設定記憶部122Aに記憶される第2の対応表において、当該エンドポイントのコストを更新する。当該更新処理は、例えば、当該エンドポイントに対する単位時間あたりのアクセス頻度の通知に基づいて実行してもよく、あるいは、当該エンドポイントを担当することにより情報記憶装置において増加する単位時間あたりの処理量を計測し、当該計測された値に基づいて実行するようにしてもよい。
 ステップS52において、制御ユニット11Aは、対応表更新部1153Aの制御の下、共有設定記憶部122Aに記憶される第2の対応表において、情報記憶装置毎に、当該情報記憶装置が担当するエンドポイントのコストの合計値を算出する。なお、当該算出処理は、各情報記憶装置においてそれぞれ、自らの情報記憶装置に対応付けられているエンドポイントのコストの合計値をそれぞれ算出するものであってもよく、あるいは、1つの情報記憶装置が、複数の情報記憶装置について、対応付けられているエンドポイントのコストの合計値をそれぞれ算出するものであってもよい。
 ステップS53において、追加される情報記憶装置1Eの制御ユニット11Eは、担当装置選択部1151Eの制御の下、共有設定記憶部122Eに記憶される第2の対応表を参照し、図11に示されているように、上記算出されたコストの合計値が最も大きい情報記憶装置1Bが担当するエンドポイントのうち、コストが最も大きいエンドポイントであるエンドポイント#2を担当することを決定する。
 ステップS54において、追加される情報記憶装置1Eの制御ユニット11Eは、データ書き込み部111Eの制御の下、先ず共有設定記憶部122Eに記憶される第1の対応表を読み出す。そして、この第1の対応表に基づいて、情報送信装置2A,2B,2C,2D,2E,2Fから送信されるデータの中から、担当するエンドポイント#2に対応付けられているトピック#1,#2に対応する識別子とともに送信されるデータをブローカ3から取得し、取得されたデータを記憶ユニット12Eのデータ記憶部121Eに記憶させる。
 ステップS55において、追加される情報記憶装置1Eの制御ユニット11Eは、対応表更新部1153Eの制御の下、自らの情報記憶装置1Eと担当するエンドポイント#2との対応付けを、共有設定記憶部122Eに記憶される第2の対応表に書き込む。
 ステップS56において、追加される情報記憶装置1Eの制御ユニット11Eは、上記算出されたコストの合計値が最も大きい情報記憶装置である情報記憶装置1Bに通知する。当該通知に応じて、情報記憶装置1Bは、情報記憶装置1Eが担当することとなったエンドポイント#2との対応付けを開放し、以後、エンドポイント#2に対応付けられている識別子とともに送信されるデータを取得しないようにし、第2対応表における対応付けを削除するようにしてもよい。
 ステップS57において、追加される情報記憶装置1Eの制御ユニット11Eは、対応表更新部1153Eの制御の下、共有設定記憶部122Eに記憶される第2の対応表において、自らの情報記憶装置1Eに対応付けられているエンドポイントのコストの合計値を算出し、算出されたコストの合計値が所定の値を超えたか否かを判定する。例えば、当該算出されたコストの合計値が、(エンドポイントのコストの合計)×冗長度/情報記憶装置数を超えたか否か、例えば、図9の第2の対応表の例では、(6+8+4+6)×2/5を超えたか否かを判定する。この判定の結果、算出されたコストの合計値が所定の値を超えていない場合には、ステップS51からの処理を繰り返す。
 (効果)
 以上詳述したように、この発明の第1の実施形態では、以下のような効果が奏せられる。
 (1)情報記憶装置1Aにおいて、データ書き込み部111Aの制御の下、情報記憶装置と当該情報記憶装置が担当するエンドポイントとの対応関係を示す情報に基づいて、例えばエンドポイント#1が、自らの情報記憶装置1Aが担当するエンドポイントとして判定される。データ書き込み部111Aの制御の下、共有設定記憶部122Aに記憶される、エンドポイントと当該エンドポイントが取得するデータの種類を示す識別子とを対応付ける第1の対応表が読み出され、第1の対応表に基づいて、情報送信装置2A,2B,2C,2D,2E,2Fから送信されるデータの中から、担当するエンドポイント#1に対応付けられているトピック#2に対応する識別子とともに送信されるデータがブローカ3から取得され、取得されたデータがデータ記憶部121Aに記憶される。対応表更新部1153Aの制御の下、情報記憶装置1Aと担当するエンドポイント#1との対応付けが、共有設定記憶部122Aに記憶される第2の対応表に書き込まれる。
 このように、各情報記憶装置が自律的にデータを取得できるようにすることにより、情報記憶装置間でのデータの複製や送受信を必要とすることなく、複数の情報記憶装置間でデータを分散記憶させることができる。これにより、データ記憶時における単一情報記憶装置あたりの書き込み性能の低下が防がれた情報分散記憶システムを実現することができる。また、例えば、上述した情報記憶装置と当該情報記憶装置が担当するエンドポイントとの対応関係を示す情報において、1つのエンドポイントを2つ以上の情報記憶装置が担当するように設定すれば、複数の情報記憶装置間でデータの冗長性を担保することができ、情報分散記憶システムの耐故障性が保証される。
 (2)情報記憶装置1Aにおいて、中継判定部113Aの制御の下、情報受信装置4A,4B,4C,4D等の任意の情報受信装置から、当該情報受信装置を示す識別子とともに送信されるデータ要求が取得される。中継判定部113Aの制御の下、取得されたデータ要求が、自らの情報記憶装置1Aが担当するエンドポイントからのものであるか否かが判定される。取得されたデータ要求が、例えば、自らの情報記憶装置1Aが担当するエンドポイント#1からのものであると判定された場合は、データ出力部112Aの制御の下、データ記憶部121Aに記憶される当該エンドポイント#1に対するデータが読み出され、読み出されたデータが、データ要求の送信元のエンドポイント#1に対応する情報受信装置4Aに対して出力される。一方、取得されたデータ要求が、例えば、情報記憶装置1Aが担当しないエンドポイント#2からのものであると判定された場合は、中継判定部113Aの制御の下、共有設定記憶部122Aに記憶される第2の対応表に基づいて、当該データ要求の送信元のエンドポイント#2を担当する情報記憶装置が判定される。その後、中継部114Aの制御の下、上記データ要求の送信元のエンドポイント#2を担当する情報記憶装置であると判定された情報記憶装置1Bと情報記憶装置1Cとの少なくとも一方に対して、当該データ要求が出力される。その後、中継部114Aの制御の下、当該データ要求の送信元のエンドポイント#2を担当する情報記憶装置1Bと情報記憶装置1Cとの少なくとも一方に記憶されたデータが取得される。その後、データ出力部112Aの制御の下、取得されたデータが、データ要求の送信元のエンドポイント#2に対応する情報受信装置4Bに対して出力される。
 したがって、情報受信装置は、いずれの情報記憶装置にアクセスしたとしても、所望のデータを取得することができる。
 (3)情報記憶装置1Aにおいて、対応表監視部1152Aの制御の下、共有設定記憶部122Aに記憶される第2の対応表が参照されて、担当するエンドポイント#1を担当する他の情報記憶装置1Dに関して記憶されている時刻“10345681”、および、担当するエンドポイント#4を担当する他の情報記憶装置1Bに関して記憶されている時刻“12345679”が読み出される。対応表監視部1152Aの制御の下、読み出された時刻“12345679”,“10345681”の各々について、当該時刻が記憶されてから所定の時間が経過しているか否かが判定される。対応表更新部1153Aの制御の下、共有設定記憶部122Aに記憶される第2の対応表において、所定の時間が経過している時刻“10345681”に関する情報記憶装置1Dについてのエンドポイントとの対応付けが削除され、対応付けを削除されたエンドポイント#1,#3に待ち受け中フラグが立てられる。対応表更新部1153Aの制御の下、共有設定記憶部122Aに記憶される第2の対応表において、自らの情報記憶装置である情報記憶装置1Aに関して記憶されている時刻“12345678”が更新される。
 一般に、正常に動作することを確認されていた情報記憶装置であっても、運用時間が経過するにしたがい、何らかの原因により正常に動作しなくなる可能性がある。しかしながら、上記のように時間を基準に、エンドポイントに対して対応付けられていた情報記憶装置についての対応付けを削除することによって、正常に動作をしていない情報記憶装置がエンドポイントを担当しているといった状況を防ぐことができ、これにより、情報分散記憶システム全体の信頼性を向上させることができる。また、上述したような対応表の監視処理を実行した情報記憶装置については、監視処理と同時に動作確認がされる。したがって、上述したように第2の対応表において時刻を更新することによって、正常に動作している情報記憶装置の対応付けまでが削除されて情報分散記憶の効率が低下してしまうことを防ぐことができる。
 (4)ネットワークシステムに情報受信装置4Eが追加される場合に、情報記憶装置1Aにおいて、対応表更新部1153Aの制御の下、共有設定記憶部122Aに記憶される第2の対応表において、情報受信装置4Eに対応するエンドポイント#5の行または列が、情報記憶装置との対応付けを記入しない状態で、待ち受け中フラグを立てて追加される。担当装置選択部1151Aの制御の下、共有設定記憶部122Aに記憶される第2の対応表が読み出され、待ち受け中フラグの立っているエンドポイントの中から担当するエンドポイントが選択される。データ書き込み部111Aの制御の下、共有設定記憶部122Aに記憶される第1の対応表に基づいて、情報送信装置2A,2B,2C,2D,2E,2Fから送信されるデータの中から、選択されたエンドポイントに対応付けられている識別子とともに送信されるデータが取得される。対応表更新部1153Aの制御の下、情報記憶装置1Aと上記選択されたエンドポイントとの対応付けが、共有設定記憶部122Aに記憶される第2の対応表に書き込まれる。
 また、ネットワークシステムに情報記憶装置1Eが追加される場合に、対応表更新部1153Aの制御の下、共有設定記憶部122Aに記憶される第2の対応表において、情報記憶装置毎に、当該情報記憶装置が担当するエンドポイントのコストの合計値が算出される。追加される情報記憶装置1Eにおいて、共有設定記憶部122Eの第2の対応表が参照されて、担当装置選択部1151Eの制御の下、算出されたコストの合計値が最も大きい情報記憶装置である情報記憶装置1Bが担当するエンドポイントのうち、コストが最も大きいエンドポイントであるエンドポイント#2を担当することが決定される。データ書き込み部111Eの制御の下、共有設定記憶部122Eに記憶される第1の対応表が読み出され、第1の対応表に基づいて、情報送信装置2A,2B,2C,2D,2E,2Fから送信されるデータの中から、担当するエンドポイント#2に対応付けられているトピック#1,#2に対応する識別子とともに送信されるデータがブローカ3から取得される。対応表更新部1153Eの制御の下、情報記憶装置1Eと担当するエンドポイント#2との対応付けが、共有設定記憶部122Eに記憶される第2の対応表に書き込まれる。
 このように、システムに情報受信装置および情報記憶装置を追加可能なスケールアウト性を、当該スケールアウト実行時に情報記憶装置間でデータの送受信を必要とすることなく持たせることができる。これにより、スケールアウト性を有し、かつ、スケールアウト実行時にも単一情報記憶装置あたりの書き込み性能の低下が防がれた情報分散記憶システムを実現することができる。
 (5)上記追加される情報記憶装置1Eにより、第2の対応表において担当するエンドポイント#2との対応付けが書き込まれた後に、上記算出されたコストの合計値が最も大きい情報記憶装置1Bに通知がなされる。さらに、上記追加される情報記憶装置1Eにおいて、自らに対応付けられているエンドポイントのコストの合計値が算出され、算出されたコストの合計値が所定の値を超えたか否かが判定される。
 このため、上記通知を受けた情報記憶装置1Bは、上記追加される情報記憶装置1Eが担当することとなったエンドポイント#2との対応付けを開放し、以後、当該対応付けを解放されたエンドポイント#2に対するデータを取得しないようにすることができる。これにより、負荷が大きかった情報記憶装置の負荷を軽減させることができる。さらに、上記判定結果に応じて、上記追加される情報記憶装置1Eは追加でエンドポイントを担当するようにすることもでき、例えば、情報記憶装置間で負荷の均一化を図ることが可能となる。
 [他の実施形態]
 なお、この発明は上記実施形態に限定されるものではない。例えば、上述した動作フローにおいて任意の情報記憶装置によって実行されるとして説明した、担当する情報受信装置の選択処理、対応表更新処理、ならびに、第2の対応表におけるコストの更新処理およびコストの合計値算出処理等の、対応表に関連して実行される各処理は、設定管理装置によって実行されるように構成してもよい。このように、設定管理装置により処理を実行するようにすると、複数の情報記憶装置に共有される情報の一括管理、すなわち、情報分散記憶システムの一括管理をすることができる。また、上記実施形態では、各情報記憶装置におけるデータ書き込み処理の後に第2の対応表において情報受信装置と情報記憶装置との対応付けを書き込むように構成したが、例えば、データ書き込み処理以前に当該対応付けを書き込むように構成してもよい。さらに、上記実施形態では、情報記憶装置において、第2の対応表における待ち受け中フラグに基づいて担当する情報受信装置を選択する例、および、第2の対応表におけるエンドポイントのコストに基づいて担当する情報受信装置を選択する例を説明した。しかしながら、このような選択処理が実行されるのは、上記実施形態において記載した状況に限定されるわけではない。すなわち、担当する情報受信装置の選択処理は、いかなる状況で実行されるものであっても、上記実施形態において説明した方法を任意に組み合わせて実行するようにしてもよい。
 その他、情報記憶装置および設定管理装置の種類とその構成、ならびに、第1の対応表および第2の対応表の構成等についても、この発明の要旨を逸脱しない範囲で種々変形して実施可能である。
 要するにこの発明は、上記第1の実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記第1の実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、上記第1の実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。

Claims (13)

  1.  情報送信装置および情報受信装置との間でデータ通信が可能な複数の情報記憶装置を具備する情報分散記憶システムであって、
     前記複数の情報記憶装置の各々は、
      前記複数の情報記憶装置間で共有される、情報受信装置と当該情報受信装置が取得するデータの種類を示す識別子とを対応付ける第1の対応表と、情報記憶装置と当該情報記憶装置が担当する情報受信装置との対応関係を示す第2の対応表とに基づいて、前記情報送信装置から送信されるデータの中から、自らが担当する情報受信装置に対応付けられている識別子とともに送信されるデータを取得するデータ取得部と、
      前記取得されたデータを記憶する記憶媒体と
     を備える情報分散記憶システム。
  2.  前記複数の情報記憶装置の各々はさらに、
      情報受信装置からのデータ要求を取得する要求取得部と、
      前記取得されたデータ要求が前記担当する情報受信装置からのものであるか否かを判定する判定部と、
      前記取得されたデータ要求が前記担当する情報受信装置からのものであると判定された場合に、前記担当する情報受信装置に対して、前記記憶媒体に記憶されたデータを出力する出力部とを具備し、
      前記判定部は、前記取得されたデータ要求が前記担当する情報受信装置からのものではないと判定された場合に、前記第2の対応表に基づいて、当該データ要求の送信元の情報受信装置を担当する情報記憶装置を判定し、
      前記データ要求の送信元の情報受信装置を担当する情報記憶装置であると判定された情報記憶装置の記憶媒体に記憶されたデータを取得する中継部をさらに具備し、
      前記出力部は、前記中継部を介して取得されたデータを、前記データ要求の送信元の情報受信装置に出力する、
    請求項1に記載の情報分散記憶システム。
  3.  前記複数の情報記憶装置間で共有される前記第1の対応表または前記第2の対応表の初期設定またはデータアクセスを実行する管理装置をさらに具備する、請求項2に記載の情報分散記憶システム。
  4.  前記複数の情報記憶装置の各々は、
      情報受信装置が追加される際に、前記第2の対応表において、前記追加される情報受信装置を情報記憶装置に対応付けずに記憶させる対応表更新部と、
      前記第2の対応表を参照して、情報記憶装置が対応付けられていない情報受信装置の中から、担当する情報受信装置を選択する選択部とを具備し、
      前記対応表更新部は、前記第2の対応表において、前記選択された情報受信装置に対応付けられたことを記憶させる、
     請求項2に記載の情報分散記憶システム。
  5.  前記第2の対応表は、各情報記憶装置について、情報受信装置との対応付けがされた時刻もさらに記憶しており、
     前記複数の情報記憶装置の各々は、
      前記第2の対応表を参照して、前記担当する情報受信装置を担当する他の情報記憶装置に関して記憶されている時刻について、当該時刻が記憶されてから所定の時間が経過しているか否かを判定する対応表監視部と、
      前記時刻が記憶されてから所定の時間が経過していると判定された場合に、前記第2の対応表において、当該判定をされた情報記憶装置についての情報受信装置との対応付けを削除し、前記第2の対応表において、自らの情報記憶装置に関して記憶されている時刻を更新する対応表更新部と
     をさらに備える、請求項2に記載の情報分散記憶システム。
  6.  前記複数の情報記憶装置の各々は、前記第2の対応表において、情報記憶装置毎に、担当する情報受信装置のコストの合計値を算出する算出部をさらに備え、
     前記情報分散記憶システムに情報記憶装置が追加される際に、前記追加される情報記憶装置は、
      前記算出されたコストの合計値が最も大きい情報記憶装置が担当する情報受信装置のうちコストが最も大きい情報受信装置を、担当する情報受信装置として選択する選択部と、
      前記第2の対応表において、前記選択された情報受信装置に対応付けられたことを記憶させる対応表更新部と
     をさらに備える、請求項2に記載の情報分散記憶システム。
  7.  前記コストは、前記情報受信装置に対する単位時間あたりのアクセス頻度である、請求項6記載の情報分散記憶システム。
  8.  前記コストは、前記情報受信装置を担当する前記情報記憶装置において増加する処理量である、請求項6記載の情報分散記憶システム。
  9.  前記第1の対応表は、前記情報送信装置の変更、又は前記情報受信装置が要求するデータの種類を変更する場合に更新される、請求項2記載の情報分散記憶システム。
  10.  前記第2の対応表は、前記情報受信装置の変更、又は前記情報記憶装置の変更をする場合に更新される、請求項2記載の情報分散記憶システム。
  11.  前記第1の対応表は、前記情報受信装置により、前記第2の対応表と関連付けられている、請求項2記載の情報分散記憶システム。
  12.  情報送信装置および情報受信装置との間でデータ通信が可能な複数の情報記憶装置を具備する情報分散記憶システムの各情報記憶装置が実行する情報分散記憶方法であって、
      前記複数の情報記憶装置間で共有される、情報受信装置と当該情報受信装置が取得するデータの種類を示す識別子とを対応付ける第1の対応表と、情報記憶装置と当該情報記憶装置が担当する情報受信装置との対応関係を示す第2の対応表とに基づいて、前記情報送信装置から送信されるデータの中から、自らが担当する情報受信装置に対応付けられている識別子とともに送信されるデータを取得する過程と、
      前記取得されたデータを記憶させる過程と
     を備える情報分散記憶方法。
  13.  コンピュータに請求項12に記載の情報分散記憶方法を実行させるためのプログラム。
PCT/JP2018/038689 2017-11-06 2018-10-17 情報分散記憶システム、方法およびプログラム WO2019087786A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP18873537.7A EP3709173B1 (en) 2017-11-06 2018-10-17 Distributed information memory system, method, and program
CN201880071088.2A CN111630500B (zh) 2017-11-06 2018-10-17 信息分布式存储系统、方法及程序
US16/760,886 US11381642B2 (en) 2017-11-06 2018-10-17 Distributed storage system suitable for sensor data
JP2019551053A JP6824435B2 (ja) 2017-11-06 2018-10-17 情報分散記憶システム、方法およびプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017-213880 2017-11-06
JP2017213880 2017-11-06

Publications (1)

Publication Number Publication Date
WO2019087786A1 true WO2019087786A1 (ja) 2019-05-09

Family

ID=66333520

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/038689 WO2019087786A1 (ja) 2017-11-06 2018-10-17 情報分散記憶システム、方法およびプログラム

Country Status (4)

Country Link
US (1) US11381642B2 (ja)
EP (1) EP3709173B1 (ja)
JP (1) JP6824435B2 (ja)
WO (1) WO2019087786A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7010171B2 (ja) * 2018-08-10 2022-01-26 日本電信電話株式会社 保守管理システムおよびデータ処理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011170572A (ja) * 2010-02-18 2011-09-01 Hitachi Ltd メッセージ配信システム及びメッセージ配信方法
JP2013192025A (ja) * 2012-03-14 2013-09-26 Nec Corp メッセージングシステム、メッセージング方法およびプログラム
JP2014038483A (ja) * 2012-08-16 2014-02-27 Nec Corp データ配信システム、データ配信方法、およびプログラム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7349980B1 (en) * 2003-01-24 2008-03-25 Blue Titan Software, Inc. Network publish/subscribe system incorporating Web services network routing architecture
US7644168B2 (en) * 2004-11-05 2010-01-05 Hewlett-Packard Development Company, L.P. SAS expander
US8228954B2 (en) * 2007-11-13 2012-07-24 Cisco Technology, Inc. Routing operations using sensor data
US8341279B2 (en) * 2008-11-17 2012-12-25 Cisco Technology, Inc. Dynamically activating buffered data publishers in sensor networks
KR101467716B1 (ko) * 2010-10-29 2014-12-01 노키아 코포레이션 발행된 메시지를 분배하는 방법 및 장치
US9116220B2 (en) * 2010-12-27 2015-08-25 Microsoft Technology Licensing, Llc Time synchronizing sensor continuous and state data signals between nodes across a network
CA2825393C (en) * 2011-01-28 2019-03-12 Level 3 Communications, Llc Content delivery network with deep caching infrastructure
US8799469B2 (en) * 2011-03-11 2014-08-05 International Business Machines Corporation Subscriber message payload handling
US9396337B2 (en) * 2012-04-11 2016-07-19 Intermec Ip Corp. Wireless sensor field enumeration
JP5879284B2 (ja) * 2013-02-22 2016-03-08 日本電信電話株式会社 情報記録方法及び情報記録装置及びプログラム
EP2821913A1 (en) * 2013-07-01 2015-01-07 Open Text S.A. A method and system for storing documents
US10031933B2 (en) * 2014-03-02 2018-07-24 Netapp, Inc. Peer to peer ownership negotiation
US20160210061A1 (en) 2015-01-21 2016-07-21 Tektronix, Inc. Architecture for a transparently-scalable, ultra-high-throughput storage network
JP2015149076A (ja) * 2015-03-04 2015-08-20 株式会社日立製作所 管理装置、管理システム、およびデータ管理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011170572A (ja) * 2010-02-18 2011-09-01 Hitachi Ltd メッセージ配信システム及びメッセージ配信方法
JP2013192025A (ja) * 2012-03-14 2013-09-26 Nec Corp メッセージングシステム、メッセージング方法およびプログラム
JP2014038483A (ja) * 2012-08-16 2014-02-27 Nec Corp データ配信システム、データ配信方法、およびプログラム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
KOHEI HIRAGAOSAMU TATEBE: "Study on Redundancy Method of Metadata Server in Distributed File System", RESEARCH REPORTS OF HIGH PERFORMANCE COMPUTING (HPC, vol. 2011.37, 2011, pages 1 - 7
NAOKI KONDO ET AL.: "Comparison experiment of performance for range queries using Fat-Btree, P-tree, SkipGraph", INFORMATION FUNDAMENTALS AND ACCESS TECHNOLOGY (IFAT) TECHNICAL REPORT, vol. 2011.15, 2011, pages 1 - 8
See also references of EP3709173A4

Also Published As

Publication number Publication date
JP6824435B2 (ja) 2021-02-03
EP3709173B1 (en) 2023-12-06
EP3709173A4 (en) 2021-08-25
US11381642B2 (en) 2022-07-05
US20210185123A1 (en) 2021-06-17
CN111630500A (zh) 2020-09-04
EP3709173A1 (en) 2020-09-16
JPWO2019087786A1 (ja) 2020-04-02

Similar Documents

Publication Publication Date Title
KR102038527B1 (ko) 분산 클러스터 관리 시스템 및 그 방법
CN113742031B (zh) 节点状态信息获取方法、装置、电子设备及可读存储介质
CN102413185A (zh) 基于bt技术的云平台自动升级系统
CN102480489A (zh) 一种用于分布式环境下的日志记录方法和设备
US10817512B2 (en) Standing queries in memory
WO2019087786A1 (ja) 情報分散記憶システム、方法およびプログラム
JP2014229088A (ja) データ処理システム、データ処理装置および記憶媒体
JP2017503422A (ja) ネットワーク要素データアクセス方法および装置、およびネットワーク管理システム
US20220391411A1 (en) Dynamic adaptive partition splitting
CN116346834A (zh) 一种会话同步方法、装置、计算设备及计算机存储介质
JP6922241B2 (ja) 情報処理装置、情報処理方法、プログラム、情報処理システム
US20240176762A1 (en) Geographically dispersed hybrid cloud cluster
CN111630500B (zh) 信息分布式存储系统、方法及程序
WO2017211091A1 (zh) 网络接入设备的配置方法及装置
US20230283663A1 (en) Randomization of heartbeat communications among multiple partition groups
JP6568232B2 (ja) 計算機システム、及び、装置の管理方法
JP5895043B1 (ja) クラスタシステム、クラスタ管理サーバおよびクラスタ管理用プログラム
US20230289347A1 (en) Cache updates through distributed message queues
US20220391409A1 (en) Hybrid cloud asynchronous data synchronization
CN115113800A (zh) 多集群管理方法、装置、计算设备及存储介质
JP5464746B2 (ja) データベースを分散共有する資源管理装置、プログラム及び方法
TW202224384A (zh) 具動態擴展之高可用訊息管理系統、方法及電腦可讀媒介
KR20200131899A (ko) 스케줄링된 안티-엔트로피 복구 설계를 위한 기술들
KR20190030385A (ko) 앱의 리소스를 관리하는 서버 및 사용자 단말

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019551053

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2018873537

Country of ref document: EP

Effective date: 20200608