WO2013141308A1 - 分散ストレージシステム、ストレージ制御方法およびプログラム - Google Patents

分散ストレージシステム、ストレージ制御方法およびプログラム Download PDF

Info

Publication number
WO2013141308A1
WO2013141308A1 PCT/JP2013/058111 JP2013058111W WO2013141308A1 WO 2013141308 A1 WO2013141308 A1 WO 2013141308A1 JP 2013058111 W JP2013058111 W JP 2013058111W WO 2013141308 A1 WO2013141308 A1 WO 2013141308A1
Authority
WO
WIPO (PCT)
Prior art keywords
update
data
unit
update information
data storage
Prior art date
Application number
PCT/JP2013/058111
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 EP13765195.6A priority Critical patent/EP2829976A4/en
Priority to US14/386,946 priority patent/US20150058293A1/en
Publication of WO2013141308A1 publication Critical patent/WO2013141308A1/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • 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/061Improving I/O performance
    • 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/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of 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/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]

Definitions

  • the present invention is based on a Japanese patent application: Japanese Patent Application No. 2012-065190 (filed on March 22, 2012), and the entire contents of this application are incorporated in the present specification by reference.
  • the present invention relates to a distributed storage system, a storage control method, and a program, and more particularly, to a distributed storage system that holds replicas with different data structures, and a storage control method and program for controlling monitoring, adjustment, and the like of dynamic performance parameters.
  • a distributed storage technology is known in which a large number of computers are connected via a network, and data is stored and used using the HDD (Hard Disk Drive) or memory of each computer.
  • HDD Hard Disk Drive
  • data is allocated to which computer, and which computer processes the data is determined by software or special hardware.
  • the resource usage in the system is adjusted, and the performance provided to the client computer is improved.
  • Stored data is accessed in semantic units. For example, in a relational database, data is written in units called records or tuples. In the file system, data is written as a set of blocks. Furthermore, in the key-value store (Key-Value Store), data is written as an object. The data written in this way is read by the client computer for each unit.
  • semantic units For example, in a relational database, data is written in units called records or tuples. In the file system, data is written as a set of blocks. Furthermore, in the key-value store (Key-Value Store), data is written as an object. The data written in this way is read by the client computer for each unit.
  • a unique number called an address is assigned to a space for storing data.
  • access to an area where addresses are adjacent is processed at high speed. Therefore, it is necessary to arrange data in the address space so that records and blocks are accessed with continuous addresses as much as possible.
  • the data structure of the stored data is important.
  • the data structure refers to a format when a collection of data is arranged in an address space.
  • a unit called a page in which a plurality of records are collected is written on a buffer on a memory or a disk.
  • a page is fixed-length data in units that can be accessed at high speed by a disk or memory. This is because in online transaction processing, updating, insertion, and writing are performed in units of records.
  • each record is broken down into units called columns or attributes, and the same attribute of each record is continuously stored in the address space. Deploy. This is because data analysis processing is often used for each attribute unit.
  • a column-oriented database when there are many records having the same value for a certain attribute, these records can be compressed and combined into one data, and the data storage efficiency is good.
  • Non-Patent Document 1 describes the data structures of a row-oriented database and a column-oriented database.
  • duplicate data of the same data may be stored in a plurality of computers. This is to provide stored data to the client computer even when a certain computer fails and the data storage device becomes inaccessible.
  • the storage device is a volatile memory such as DRAM (Dynamic Random Access Memory), it may be caused by a power failure, software failure, etc. compared to a magnetic device such as HDD or a non-volatile memory such as SSD (Solid State Drive). Since there is a high probability that the data of the computer will be lost, three or more replicated data may be stored in different computers.
  • DRAM Dynamic Random Access Memory
  • a technique in which a plurality of replicated data is stored in different data structures, and a replica suitable for each access is provided as an access destination for different types of access.
  • the data node to be updated converts the data to be updated into a specified target data structure, and stores the data.
  • the data node temporarily stores the data to be updated, holds the intermediate structure and returns a response to the update, and converts the data to the target data structure and stores it asynchronously with the update request.
  • the distributed storage described in Patent Document 2 includes a data storage unit and a plurality of data nodes that are connected to the network.
  • the target data is temporarily stored in the intermediate structure for holding the write data, asynchronously with the update request, converted into the target data structure and stored in the data storage unit, and the history of the frequency of access to the data node is stored.
  • An access history recording unit for storing is provided, and means for changing trigger information that triggers conversion to a target data structure asynchronously performed at the data node based on the access information recorded in the access history recording unit.
  • the replica for fault tolerance needs to be updated synchronously. That is, it is necessary to notify the client computer of the end of the update at the stage when both the copies have been updated.
  • one data structure may not be suitable for accessing a small number of data units as compared to the other data structure. For example, when one is updating data on the HDD and the other is updating data on the memory, the client computer does not receive an update completion notification until the later data structure is updated. Therefore, the user of the client computer feels that the system performance has deteriorated.
  • Non-Patent Document 2 update information to a database is applied to a copy on a memory, and written on a permanent device such as an HDD by WAL (Write Ahead Logging). Thereafter, the contents of WAL are updated to the master database on the HDD.
  • WAL Write Ahead Logging
  • the data structure with the fast update is the data structure of the row-oriented storage format on the memory
  • the data structure with the slow update is the data structure of the column-oriented storage format on the memory, it is updated to the previous stage of the column-oriented storage format.
  • update information holding unit By inserting a FIFO (First-In First-Out) structure on the memory that holds the information, the update end can be returned to the client computer at high speed.
  • the component that temporarily holds the update information for the data store (or data storage unit) in this manner is hereinafter referred to as an “update information holding unit”.
  • Non-Patent Document 3 the CPU (Central Processing Unit) usage rate and network packet transmission amount per unit time of a plurality of computers on the network are displayed on a Web screen.
  • CPU Central Processing Unit
  • a distributed storage system holds a replica with the first data structure and the second data structure.
  • the second data structure requires time for a small amount of update, it is assumed that the second data structure is updated asynchronously using the update information holding unit.
  • the access for the first data structure is processed by duplication of the first data structure. For example, when the first data structure is a buffer on the memory or a row-oriented storage format, read access in units of records is read / written from the first data structure.
  • the access for the second data structure is preferably processed by duplication of the second data structure.
  • the second data structure is a row-oriented storage format on the HDD or a column-oriented storage format on the memory, access that requires only a specific attribute of the record, or all stored data in order Access as needed is read from a duplicate of the second data structure.
  • the distributed storage system When using the second data structure and there is update information in the update information holding unit, the latest information cannot be used for accessing the second data structure. Therefore, when an access to the second data structure occurs, the distributed storage system first holds the update information in the update information holding unit associated with the duplication of the second data structure. In this order, the second data structure is applied to the second data structure, and the second data structure is the latest data. Thereafter, the access for the second data structure is processed with the second data structure that is the latest data, and the result is returned to the client computer.
  • the time required for access is the sum of the time required to apply the accumulated update information to the second data structure and the time required to access the second data structure.
  • the access time becomes longer when the amount of update information is large.
  • the amount of update information stored in the update information holding unit is finite, there is a possibility that the update information in the update information holding unit overflows when the frequency of issuing access for the second data structure is low.
  • an update condition is provided as a condition for discharging the update information.
  • the update condition for example, a case where the total data amount of the update information becomes a constant amount can be considered. Further, as another update condition, a case where the number of updates of update information becomes a fixed number is considered. Furthermore, as another update condition, a case where a predetermined time has elapsed since the last update information application can be considered.
  • the access performance of the update information is low because the second data structure has poor access performance for a small amount of updates. If it is high, more resources of the computer that holds the duplicate of the second data structure are consumed. Also, the performance deteriorates when a copy of the first data structure exists on the same computer or when the same computer is used for other purposes.
  • An object of the present invention is to provide a distributed storage system, a storage control method, and a program that solve such problems.
  • the distributed storage system is: A first data storage that holds data in a first data structure; A second data storage unit for holding the data in a second data structure different from the first data structure; The update information representing the update content of the data is held, and when a predetermined update condition is satisfied, the update information is applied to the second data storage unit, and the update content is stored in the second data storage.
  • An update information holding unit to be reflected in the copy An update status monitoring unit that monitors the update information held by the update information holding unit and extracts an application state of the update information to the second data storage unit as an update status; An update condition changing unit that changes the predetermined update condition based on a change instruction for the predetermined update condition determined according to the update status.
  • the storage control method is: A first data storage for holding data in a first data structure; a second data storage for holding data in a second data structure different from the first data structure; and updating the data
  • a storage control method for controlling a distributed storage system comprising: an update information holding unit that holds update information representing content; When a predetermined update condition is satisfied, applying the update information to the second data storage unit and reflecting the update content in the second data storage unit; Monitoring the update information held by the update information holding unit and extracting an application state of the update information to the second data storage unit as an update status; Changing the predetermined update condition based on an instruction to change the predetermined update condition determined in accordance with the update status.
  • the program according to the third aspect of the present invention is: A first data storage for holding data in a first data structure; a second data storage for holding data in a second data structure different from the first data structure; and updating the data
  • An update information holding unit that holds update information representing content, and a computer that controls the distributed storage system, When a predetermined update condition is satisfied, the update information is applied to the second data storage unit, and the update content is reflected in the second data storage unit; A process of monitoring the update information held by the update information holding unit and extracting an application state of the update information to the second data storage unit as an update status; And a step of changing the predetermined update condition based on a change instruction for the predetermined update condition determined in accordance with the update status.
  • program can be provided as a program product recorded on a non-transitory computer-readable recording medium.
  • the storage control method, and the program according to the present invention in the distributed storage system that holds the same data in a plurality of different data structures, according to the change in the frequency and amount of access suitable for each data structure, It is possible to appropriately adjust the timing at which the update is reflected in each data storage unit.
  • FIG. 3 is a block diagram showing an example of a configuration in a case where each storage node has first and second data storage units. It is a block diagram which shows the structure of the distributed storage system which concerns on 2nd Embodiment as an example.
  • the distributed storage system according to the second embodiment it is a block diagram showing an example of a configuration in a case where each storage node has first and second data storage units. It is a block diagram which shows the structure of the distributed storage system which concerns on 3rd Embodiment as an example.
  • FIG. 10 is a sequence diagram illustrating a sequential read access operation as an example in a distributed storage system according to a third embodiment.
  • FIG. 1 is a block diagram illustrating an example of a configuration of a distributed storage system according to an embodiment.
  • the distributed storage system has a first data storage unit (12a) that holds data in a first data structure and a second data structure that is different from the first data structure.
  • a second data storage unit (12b) to be held and update information representing the update contents of the data are held, and when a predetermined update condition is satisfied, the update information is stored in the second data storage unit (12b).
  • the update information holding unit (23) for reflecting the update contents to the second data storage unit (12b) and the update information held by the update information holding unit (23) are monitored, Based on an update status monitoring unit (24) that extracts an application status of the update information to the data storage unit (12b) as an update status, and a change instruction for the predetermined update condition determined according to the update status
  • the distributed storage system includes an update status display unit (33) that displays the update status extracted by the update status monitoring unit (24), and an update condition input unit (41) that receives the change command. , May be provided.
  • the data storage unit when the distributed storage system holds the same data in a plurality of different data structures, the data storage unit is configured to update the data according to changes in the frequency and amount of access suitable for each data structure. It is possible to appropriately adjust the reflection timing. This is because the administrator of the distributed storage system can grasp the update status displayed in the update status display section (33), that is, the application status of the update information to the second data storage section (12b). This is because the update condition can be adjusted by inputting a change command for changing the update condition to the update condition input unit (41).
  • the distributed storage system may include an update information control unit (34) that generates the change command in accordance with the update status.
  • the update information control unit (34) predicts the number of update information that the update information holding unit (23) will hold in the future based on the update status, and generates the change command according to the predicted number. May be.
  • the update information control unit (34) may generate a command for changing the frequency at which the update information is applied to the second data storage unit (12b) as the change command.
  • the update information control unit (34) when the predicted number is larger than a predetermined upper limit value, increases the frequency with which the update information is applied to the second data storage unit (12b).
  • the change command may be generated so that the frequency is low.
  • the data storage unit when the distributed storage system holds the same data in a plurality of different data structures, the data storage unit is configured to update the data according to changes in the frequency and amount of access suitable for each data structure. It is possible to automatically adjust the reflection timing. This is because the update information control unit (34) generates a change command for changing the update condition according to the update status, that is, the application state of the update information to the second data storage unit (12b), and updates the update command. This is because the conditions are automatically adjusted.
  • the distributed storage system includes an update status display unit that displays the update status extracted by the update status monitoring unit; And an update condition input unit that receives the change command.
  • the distributed storage system includes a plurality of computers having the first data storage unit, the second data storage unit, the update information holding unit, the update status monitoring unit, and the update condition changing unit, The update status display unit may display the update status extracted by the update status monitoring unit provided in each of the plurality of computers.
  • the update condition input unit may receive the change command for the update condition change unit provided in each of the plurality of computers.
  • the update status display unit may display the update information using at least one of a pie chart, a bar graph, and a line graph.
  • the distributed storage system may include an update information control unit that generates the change command according to the update status.
  • the update information control unit may predict the number of update information that the update information holding unit will hold in the future based on the update status, and generate the change command according to the number.
  • the update information control unit may generate, as the change command, an instruction for changing a frequency at which the update information is applied to the second data storage unit.
  • the update information control unit generates the change instruction so that the update information is frequently applied to the second data storage unit when the number is greater than a predetermined upper limit, and the number is When the number is less than a predetermined lower limit value, the change command may be generated so that the frequency becomes low.
  • the update information control unit may approximate the number of update information held by the update information holding unit using a time polynomial, and may estimate the number of update information held in the future by the update information holding unit based on the polynomial. Good.
  • the first data storage unit is a row-oriented database that holds the data in a row-oriented manner
  • the second data storage unit may be a column-oriented database that holds the data in a column-oriented manner.
  • the first data storage unit is a key-value store provided on the main memory
  • the second data storage unit may be a column-oriented database provided on the main memory.
  • the data stored in the first data storage unit is processed by a CPU (Central Processing Unit),
  • the data stored in the second data storage unit may be processed by a GPU (Graphics Processing Unit).
  • the update information holding unit holds an update log for a record as the update information
  • the update status monitoring unit may extract the number of update logs existing in the update information holding unit as the update status.
  • the update status monitoring unit may extract a time average of the number of update logs existing in the update information holding unit as the update status.
  • the second data storage unit manages the data in a predetermined unit such as an object, a tuple, or a block,
  • the number of pieces of update information held by the update information holding unit may be increased according to update access or deletion access in the predetermined unit, and may not be changed depending on reference access in the predetermined unit.
  • the number of pieces of update information held by the update information holding unit may return to zero when a plurality of units of reference access reach the second data storage unit.
  • the number of pieces of update information held by the update information holding unit may return to zero when the predetermined update condition is satisfied.
  • the update information holding unit holds an update log for a record in a first FIFO (First-In First-Out) format, and does not hold update information when an access to the second data storage unit occurs. It is also possible to switch to the second FIFO format and hold the write access from the client computer in the second FIFO format while applying the update log in the first FIFO format to the second data storage unit.
  • the storage control method according to the second aspect is as described above.
  • the storage control method includes a step of displaying the extracted update status; Receiving the change command.
  • the storage control method may include a step of generating the change command according to the update status.
  • the number of pieces of update information that the update information holding unit will hold in the future may be predicted based on the update state, and the change command may be generated according to the number.
  • an instruction for changing a frequency at which the update information is applied to the second data storage unit may be generated as the change instruction.
  • the change command when the number is larger than a predetermined upper limit value, the change command is generated so that the update information is frequently applied to the second data storage unit, and the number is predetermined. The change command may be generated so that the frequency is lower when the value is less than the lower limit value.
  • the first data storage unit is a row-oriented database that holds the data in a row-oriented manner
  • the second data storage unit may be a column-oriented database that holds the data in a column-oriented manner.
  • the update information holding unit holds an update log for a record as the update information
  • the number of update logs existing in the update information holding unit may be extracted as the update status.
  • the second data storage unit manages the data in a predetermined unit such as an object, a tuple, or a block,
  • the number of pieces of update information held by the update information holding unit may be increased according to update access or deletion access in the predetermined unit, and may not be changed depending on reference access in the predetermined unit.
  • the program is related to the third viewpoint.
  • the program includes a process for displaying the extracted update status; You may make the said computer perform the process which receives the said change command.
  • the program may cause the computer to execute a process for generating the change instruction according to the update status.
  • FIG. 1 is a block diagram showing an example of the configuration of a distributed storage system according to this embodiment.
  • the distributed storage system includes a first data storage unit 12a, a second data storage unit 12b, an update information holding unit 23, an update status monitoring unit 24, an update status transmission unit 25, and an update status reception unit 32. , An update condition display unit 33, an update condition input unit 41, an update condition transmission unit 42, an update condition reception unit 26, and an update condition change unit 27.
  • the second data storage unit 12b has a characteristic (for example, a data structure) different from that of the first data storage unit 12a.
  • the update information holding unit 23 holds the update information before application to the second data storage unit 12b while the update condition is false, and the second data storage unit 12b when the condition is true.
  • Applies to The update status monitoring unit 24 monitors the status of update information held by the update information holding unit 23.
  • the update status transmission unit 25 transmits the update status output from the update status monitoring unit 24.
  • the update status receiving unit 32 receives the update status.
  • the update status display unit 33 displays information indicating the update status.
  • the update condition input unit 41 receives an update condition change command.
  • the update condition transmission unit 42 transmits the update condition change command.
  • the update condition receiving unit 26 receives the update condition change command.
  • the update condition changing unit 27 changes the update condition of the update information holding unit 23 based on the update condition change command.
  • the distributed storage system includes one or more system computers 21 including a first data storage unit 12a and a second data storage unit 12b, and one or more update status reception units 32.
  • the update status transmission unit 25 may receive the update status, and the update status display unit 33 may display one or more update statuses.
  • the update condition input unit 41 receives one or more update condition change commands
  • the update condition transmission unit 42 receives one or more update condition reception units for one update condition change command. 26 may be transmitted.
  • the update condition is appropriately set according to changes in the frequency and amount of access for the first data structure and the frequency and amount of access for the second data structure. Is possible.
  • the administrator of the distributed storage system uses the update status display unit 33 to set one or more update information holding units 23 serving as resource allocation parameters for the first data structure access and the second data structure access. This is because the state can be observed / confirmed, and according to the result, the administrator can set an update condition that is considered appropriate to be set next, and can input one or more change commands through the update condition input unit 41. Thereby, even if the tendency of access to the distributed storage system changes, the update information holding unit 23 can set an appropriate update condition by following the change instruction, and reduce the computer load when applying the update information. Can do.
  • FIG. 3 is a block diagram showing an example of the configuration of the distributed storage system according to this embodiment.
  • the distributed storage system includes a first data storage unit 12a, a second data storage unit 12b, an update information holding unit 23, an update status monitoring unit 24, an update status transmission unit 25, and an update information control unit 34. , An update condition input unit 41, an update condition transmission unit 42, an update condition reception unit 26, and an update condition change unit 27.
  • the second data storage unit 12b has a characteristic (for example, a data structure) different from that of the first data storage unit 12a.
  • the update information holding unit 23 holds the update information before application to the second data storage unit 12b while the update condition is false, and the second data storage unit 12b when the condition is true.
  • Applies to The update status monitoring unit 24 monitors the status of update information held by the update information holding unit 23.
  • the update status transmission unit 25 transmits the update status output from the update status monitoring unit 24.
  • the update status receiving unit 32 receives the update status.
  • the update information control unit 34 uses at least the update status and generates an update condition change command as necessary.
  • the update condition input unit 41 receives the update condition change command.
  • the update condition transmission unit 42 transmits the update condition change command.
  • the update condition receiving unit 26 receives the update condition change command.
  • the update condition changing unit 27 changes the update condition of the update information holding unit 23 based on the update condition change command.
  • the distributed storage system includes one or more system computers 21 including a first data storage unit 12a and a second data storage unit 12b, and one or more update status reception units 32.
  • the update status may be received from the update status transmission unit 25.
  • the update condition input unit 41 accepts one or more update condition change commands
  • the update condition transmission unit 42 receives one or more update condition reception units per one update condition change command. 26 may be transmitted.
  • the update instruction is generated by the update information control unit 34, so that even in a system that operates continuously for 24 hours and 365 days, the administrator does not always monitor the update status and updates Conditions can be set appropriately.
  • FIG. 5 is a block diagram showing an example of the configuration of the distributed storage system according to this embodiment.
  • the distributed storage system includes a distributed storage device for distributed control, a client computer 50, a monitoring computer 30, and a control computer 40 coupled via a network 70.
  • the data utilization process 51 on the client computer 50 accesses the distributed storage apparatus including a data identifier and an identifier representing a data operation to store data for one or a plurality of data and to store the stored data. Acquire, update stored data, and erase stored data.
  • the monitoring computer 30 includes a display device, and the update status receiving unit 32 and the update status display unit 33 described above are mounted.
  • the display device is a device that converts information in the computer into a physical phenomenon that can be confirmed by one or more of the five senses, such as a display, a printer, and a speaker.
  • the control computer 40 includes an input device, and the update condition input unit 41 and the update condition transmission unit 42 described above are mounted.
  • the input device is a device that converts human behavior into information in the computer, such as a keyboard, a mouse, a touch panel, a camera, a microphone, and a heat sensor.
  • the computer includes a storage unit 12 x and one or more communication controllers 18.
  • the storage node Nx transmits / receives data to / from the network 70 via the communication controller 18, and stores / reads necessary data with the data storage unit 12 x via the I / O controller 17.
  • the distributed storage device includes storage nodes Na to Nc. Software for controlling the storage node Nx is stored in the memory 16 and executed by the CPU 15.
  • the memory 16 and the data storage unit 12x may be the same hardware.
  • the network 70 is realized by upper protocols such as Fiber Channel, FCoE (Fibre Channel over Ethernet (registered trademark)), Infiniband, and TCP / IP (Transmission Control Protocol / Internet Protocol) on Ethernet.
  • upper protocols such as Fiber Channel, FCoE (Fibre Channel over Ethernet (registered trademark)), Infiniband, and TCP / IP (Transmission Control Protocol / Internet Protocol) on Ethernet.
  • FCoE Fibre Channel over Ethernet (registered trademark)
  • Infiniband Infiniband
  • TCP / IP Transmission Control Protocol / Internet Protocol
  • the data recorded in the distributed storage device is distributedly stored in the data storage unit 12x in the storage node Nx.
  • Data is managed by a set of fixed-length or arbitrary-length data chunks and a data identifier representing the data chunk, and access to each data is performed by the access distribution unit 60 implemented by the data management unit 14x.
  • the storage node Nx to be held is reached.
  • the data chunk is a file and the data identifier is an i-node number.
  • the data chunk is a block of 4 kilobytes in length
  • the data identifier is a set of a volume name and a block number.
  • the data chunk is a record and the data identifier is a primary key.
  • the data to be stored is duplicated and stored in different storage nodes Nx.
  • the data management unit 14x determines the data structure of the data to be stored and stores it in the data storage unit 12x.
  • the data structure is an index for determining in which order the data stored at which address on the device of the data storage unit 12x is recorded.
  • the data structure is a row-oriented database and the data storage unit 12x is main memory
  • the data to be stored is divided into records and recorded continuously in the main memory address space as shown in FIG.
  • the As a continuous recording method a method is known in which main memory is divided into fixed lengths of 4 KB pages, data is arranged in order from the end of the fixed length, and the top position of the data is stored in order from the top of the page. It is also known that a row-oriented database can be accessed at high speed by further storing an index data structure represented by B-Tree.
  • the data structure is a column-oriented database and the data storage unit 12x is main memory
  • the data to be stored is divided in units of attributes and columns in the record, and the main memory address In the space, the same column is recorded continuously.
  • a continuous recording method there is a method in which the column contents are sequentially described in the page, and a method in which the same value in the column is omitted (Non-Patent Document 1).
  • the data structure is a hash map or key-value store and the data storage unit 12x is the main memory, as shown in FIG. 9, data chunks of data to be stored are continuously recorded at a certain address,
  • the start address can be stored in an array in memory having a subscript calculated based on the hash value of the data identifier.
  • examples of data structures are not limited to these.
  • the data storage unit 12x is an HDD, SSD, or the like, the above data structure can be adopted as long as the device can provide a uniquely continuous address space.
  • each column in each record is accessed for retrieving all stored data, or each record is associated with each other for the value of a certain column, which is known as JOIN in the relational database.
  • Such access can be processed at high speed.
  • the update of each record or the access by designating the data identifier of each record is an access for all the data identifiers of all records, so that processing takes time.
  • the data structure is a hash map
  • record reference and record insertion by specifying a data identifier are fast.
  • data acquisition by specifying a value other than the data identifier and record access by specifying the range of the data identifier are slow.
  • good performance or poor performance is a relative indicator.
  • data stored in a certain data structure 1 and data stored in another data structure 2 have different throughput or latency when the data structure 1 is accessed by a certain access method A. If the data storage unit stored in 2 is better than the throughput or latency when the same access method A is accessed, the data structure 1 for the access method A is “better performance”.
  • the definition of “good performance” may be as follows instead of having good throughput or latency. That is, the access amount and the access speed may be high, such as throughput and latency.
  • the environmental load due to the access amount may be small, such as low power consumption and low waste.
  • the operation cost may be low, such as a small charge amount for access and data transfer, and a low consumption rate of consumables.
  • it is good also as a low data loss rate, such as having the precision of components and having a redundant structure inside. Further, a combination of these may be defined as having good performance.
  • the access method with the better performance of the data structure 1 is referred to as the access method for the data structure 1, and the access method with the better performance of the data structure 2. This is called an access method for the data structure 2.
  • the relative performance of three or more data structures is compared as in the case of the two data structures.
  • data 1 is replicated in three and stored in storage nodes Na, Nb, and Nc, respectively.
  • the data may be stored in the data structure 1 in the storages Na and Nb, and may be stored in the data structure 2 in the storage Nc.
  • the data 2 is duplicated into four and stored in the storage nodes Nd to Ng.
  • the storage Nd may be stored in the data structure 3
  • the storage Ne may be stored in the data structure 4
  • the storage Nf may be stored in the data structure 5
  • the storage Ng may be stored in the data structure 6.
  • the data 1 may be stored in the data structure 1 and the data 2 may be stored in the data structure 2.
  • the storage node can store the data update in the update information holding unit 23 and return an update end notification.
  • the update information holding unit 23 is a kind of data structure, and has a data structure in which access for adding update information, that is, information indicating an update, is more suitable than the data structure 2.
  • the update information is information that can be applied to data on the data structure 2 at a later stage with access (creation, update, deletion) for changing certain data taking time.
  • the update information holding unit 23 may hold the data itself updated in the FIFO on the main memory as update information.
  • the update information holding unit 23 records a set of pre-update value, post-update value, and data identifier in the log structure file system on the HDD in the order of access as update information. Also good.
  • the update information holding unit 23 only needs to satisfy the above definition, and is not limited to these examples.
  • the applied update information is removed from the update information holding unit 23.
  • an update condition that is true or false is set every certain time.
  • the update information holding unit applies part or all of the stored update information to the data structure 2 to update the data structure 2.
  • Update conditions include algorithms and parameters.
  • the update condition algorithm a case where the total data amount of the update information becomes a constant amount is considered. At this time, a certain amount of value becomes a parameter.
  • the update condition algorithm a case where the number of updates of update information becomes a fixed number is considered. At this time, a certain number of values become parameters.
  • the update condition algorithm there may be a case where a predetermined time has elapsed since the last update information application. At this time, the value of a certain time becomes a parameter.
  • the algorithm for the update condition a case where the utilization rate of the CPU of the computer having the second data storage unit becomes equal to or higher than a certain rate can be considered. At this time, a certain ratio becomes a parameter.
  • the update conditions are not limited to these.
  • the update information holding unit 23 sends the update information to the second information before processing the access. Applies to data structures.
  • 10 to 13 show the case where data having the first data structure (first data storage unit 12a), data having the second data structure (second data storage unit 12b), and update information holding unit 23 are used. Shows the access sequence.
  • random read and random write are accesses to the first data storage unit 12a
  • sequential reads and complex queries are access to the second data storage unit 12b.
  • these accesses are merely for convenience of explanation, and access for each data storage unit is not limited to these.
  • FIG. 10 shows random read access.
  • the access distribution unit 60 resolves that the random read access is for the first data storage unit 12a. Therefore, the random read access from the client computer 50 reaches the first data storage unit 12a, and data that is a response to the request is returned from the first data storage unit 12a.
  • FIG. 11 shows a write access (data creation, update or deletion access) sequence.
  • the write access is input to a computer having a data storage unit that holds all copies of the data. Since the random write is an access for the first data storage unit 12a, the first data storage unit 12a applies the update as it is.
  • the update information holding unit 23 located in the preceding stage creates and holds update information from random write to the data. Next, when the update condition becomes true, the update information is applied to the second data storage unit 12b.
  • FIG. 12 shows a sequential read access sequence. Since the sequential read access is an access to the second data storage unit 12b, the sequential read access from the client computer 50 reaches the second data storage unit 12b by the access distribution unit 60. When the second data storage unit 12b processes the access, a part or all of the update information stored in the update information holding unit 23 in the previous stage has an order determined by the update information holding unit 23 Are applied to the second data storage unit 12b to update the data while following the order. Next, the access is processed, and the access result is returned to the client computer 50. In FIG. 12, the access is processed after the update is applied. However, it is also possible to apply the update while processing the access by processing the access from the data to which the update is not applied or appropriately performing exclusive control.
  • FIG. 13 shows a complicated data analysis sequence. Since the data analysis is an access for the second data storage unit, as in the case of the sequential read shown in FIG. 12, it is processed by the second data storage unit, and the result is returned to the client computer.
  • the storage node that implements the update information holding unit 23 includes an update status monitoring unit 24 and an update status transmission unit 25.
  • the update status monitoring unit 24 generates “update status” as information indicating an increase / decrease in the amount of update information stored in the update information holding unit 23.
  • the update status stores update access or deletion access in units of data in the update information holding unit 23. Then, it may be increased. Further, the reference access in units of data may not be stored in the update information holding unit 23, or even if stored, the update status may not increase. Furthermore, when the reference access of a plurality of data units reaches the second data storage unit 12b, the update status may return to zero.
  • the update status may be a value that returns to zero when the update condition reaches true.
  • the update status may be the number of update information stored in the update information holding unit 23. Furthermore, the update status may be an average of the number of update information stored in the update information holding unit per unit time.
  • the update status may be the total update data size of the update information stored in the update information holding unit 23.
  • the update status may be the maximum number of update information stored in the update information holding unit 23 per recently fixed time.
  • the update status may be the minimum number of update information stored in the update information holding unit 23 per recent fixed time.
  • the update status may be a% value obtained by dividing the number of update information stored in the update information holding unit 23 by the maximum number of update information that can be stored in the update information holding unit 23.
  • the update status may be a value obtained by dividing the number of update information by the difference in storage time between the latest update information stored in the update information holding unit 23 and the oldest update information.
  • the update status may be a value of a function f (x) that monotonously increases with respect to x, where x is the update status exemplified above.
  • the update status may be a value of a function g (x) that decreases monotonously with respect to x when the update status illustrated above is x.
  • the update status may have changed within a certain period of time as a result of estimating the time of change for the time series x1, x2,..., X_n collected at regular intervals from the update status exemplified above. It is good also as a probability value showing.
  • the change point estimation algorithm can use, for example, a method described in Non-Patent Document 4 for calculating an AIC (Akaike's Information Criterion) for each of a plurality of time-series subsections. .
  • the update status is the average of the previous x_n, x1, x2,..., X_n-1 with respect to the time series x1, x2,. It may be a value that becomes 1 when it is out of a predetermined ratio.
  • the update status transmission unit 25 transmits the update status collected by the update status monitoring unit 24 to the update status reception unit 32 installed in the monitoring computer 30.
  • the update status transmission unit 25 may transmit the update status periodically.
  • the update status transmission unit 25 may transmit the latest update status when requested by the update status reception unit 32. Further, the update status transmission unit 25 may transmit only the latest value as the update status.
  • the update status transmission unit 25 may transmit zero or more values recently collected within a certain time as the update status.
  • the update status transmission unit 25 may transmit one or more values that have recently been collected in a certain number as the update status.
  • the received update status is displayed by the update status display unit 33.
  • the display is executed by converting it into a format in which a person can know whether the update status is large or small, or whether there is a temporal change.
  • FIG. 14 shows a display example by the update status display unit 33.
  • the update status display unit 33 presents information including the size of the update status via a screen such as the Web.
  • the update status display unit 33 displays the update status as a bar graph. At this time, the magnitude of the update status can be grasped based on the horizontal length of the bar graph.
  • the update status display unit 33 may display the update status with a past value in a line graph. Furthermore, the update status display unit 33 may represent the update status as a pie chart with a predetermined value being 100%. Moreover, the update status display part 33 may display an update status with the icon which shows that the tendency changed in the fixed time recently. Furthermore, the update status display unit 33 may express the update status by voice synthesis that reads out a numerical value.
  • a person who reads the update status from the update status display unit 33 sets an update condition from the update condition input unit 41 of the control computer 40 as necessary. input.
  • the update condition input unit 41 provides a function for inputting how a person changes the update condition.
  • FIG. 15 shows the configuration of the update condition input unit 41 as an example.
  • the parameters of the update condition that is currently set can be changed via a screen such as Web.
  • an update condition can be set for each storage node, and the update value change command is input by changing the current value of the text box labeled with the storage node and selecting the send button. Can do.
  • FIG. 16 illustrates another configuration of the update condition input unit 41.
  • the algorithm of the update condition can be changed via a screen such as Web.
  • a storage node is specified in a text box for specifying a storage node number
  • an algorithm change is specified with an exclusive radio button for selecting an algorithm
  • an update condition change command is input by selecting a send button. be able to.
  • not only an update condition change command is set for each individual storage node, but also update conditions for the update information holding unit 23 operating in a plurality of storage nodes can be set together as illustrated in FIG. it can.
  • FIG. 17 illustrates another configuration of the update condition input unit 41.
  • FIG. 17 shows a case where the update status display unit 33 and the update condition input unit 41 are provided on the same screen when the monitoring computer 30 and the control computer 40 are the same computer.
  • the change parameter may be input from a microphone by voice, and an update condition change command may be input based on a voice synthesized value.
  • FIG. 18 illustrates another configuration of the update condition input unit 41.
  • a change value is input from the command prompt of the control computer 40, and a change_condition command corresponding to the update condition transmission unit 42 is sent with the destination nodea as an argument by the inter-process communication function of the OS (Operating System). You are typing.
  • OS Operating System
  • the change parameter may be input from a microphone by voice, and an update condition change command may be input based on a voice synthesized value.
  • the input update condition change command is input from the update condition transmission unit 42 of the control computer 40 to the update condition change unit 27 via the update condition reception unit 26 of the storage node.
  • the update condition changing unit 27 changes the update condition algorithm and / or parameter at which the update information holding unit 23 applies the update information.
  • the update condition can be appropriately changed according to the change in the access tendency.
  • the administrator knows that the access trend will change, so access
  • the amount of update information inside the update information holding unit 23 can be grasped based on the update status, and whether or not the update condition should be changed and how much the update frequency can be increased. It can be judged whether it should be.
  • the administrator can acquire the updated update status from the update status display unit 33, when the updated update condition is not appropriate, the administrator can grasp that the update status is not appropriate, and update again. Conditions can be changed.
  • the monitoring computer 30 can display not only the update status but also the access performance and other performance indexes of the client computer 50, the usefulness of the distributed storage system of this embodiment is further improved. For example, when the access performance of the client computer 50 decreases, it is possible to grasp how the status of the update information holding unit 23 is different from the previous one based on the update status display unit 33. If it is a cause of access performance degradation, the update performance of the update information holding unit 23 can be changed via the update condition changing unit 27 to recover the access performance.
  • FIG. 19 is a block diagram showing an example of the configuration of the distributed storage system according to this embodiment.
  • the distributed storage system includes an update status receiving unit 32, an update condition, instead of the control computer 40 and the monitoring computer 30 in the distributed storage system (FIG. 5) according to the third embodiment.
  • a monitoring / control computer 31 that includes the transmission unit 42 and the update information control unit 34 is provided.
  • the update information control unit 34 creates an update condition change command if necessary based on the update status received by the update status reception unit 32, and updates the storage node via the update condition transmission unit 42. Input to the condition changing unit 27.
  • the update information control unit 34 it is conceivable to use an algorithm that uses the upper and lower limits of the update status.
  • the operation of the update information control unit 34 will be described with reference to FIG.
  • an upper limit and a lower limit of the value of the update status are determined.
  • the update status is the number of update information in the update information holding unit 23
  • the lower limit can be set to 0, and the upper limit can be set to the maximum number of update information that can be stored in the update information holding unit 23.
  • the update information control unit 34 continues to observe the update status and predicts future values using the values as a time series. For example, the update information control unit 34 can predict a future value by approximating a linear function in which the time series is the observation time t and the output is s * t + u using the least square method.
  • the update information control unit 34 may predict the update status based on a more complicated time series analysis.
  • Non-Patent Document 4 describes a time series prediction in which a trend model and a periodic model are applied to a state space model, and a parameter that best approximates the time series in each model is obtained by using maximum likelihood estimation and information criterion. The method is described. The update information control unit 34 may predict the update status using such a time series prediction method.
  • the update information control unit 34 When the predicted future value exceeds the above upper limit within a certain time, the update information control unit 34 generates an update condition change instruction so that the frequency at which the update condition becomes true increases, and transmits the update condition. It is preferable to issue it to the part 42.
  • the update information control unit 34 issues an instruction to change to time t2 where t1> t2.
  • the update information control unit 34 determines that the number n2 of n1> n2 is new when the predetermined number n1 of update information having the update condition is true when stored in the update information holding unit 23. Issue an instruction that is set to
  • the update information control unit 34 If the predicted future value falls below the lower limit within a certain period of time, the update information control unit 34 generates an update condition change command so that the frequency at which the update condition becomes true decreases, and transmits the update condition transmission It is preferable to issue it to the part 42.
  • the update information control unit 34 issues an instruction to change to a time t3 where t1 ⁇ t3.
  • the update information control unit 34 determines that the number n3 satisfying n1 ⁇ n3 is new when the update condition is true when a predetermined number n1 pieces of update information having the update condition are stored in the update information holding unit 23. Issue an instruction that is set to
  • the update information control unit 34 acquires update statuses from two or more storage nodes existing in the distributed storage system.
  • the update information control unit 34 calculates an average of the acquired update status values, and when there is a storage node that indicates an update status that is significantly larger than the average value, an update condition change command for changing the update condition of the storage node is issued. Issue.
  • the update information control unit 34 detects that it has deviated significantly from the average value, for example, it exceeds a certain fixed ratio, exceeds a certain fixed value, continues to exceed a certain fixed period, etc. You may make it detect by conditions.
  • FIG. 21 shows the update status of the storage nodes Na to Ne.
  • the update information control unit 34 observes the update status of the storage nodes Na to Ne to detect that the update status of the storage node Ne deviates from the average. At this time, the update information control unit 34 issues an update condition change command to the update information holding unit 23 of the storage node Ne.
  • the update condition can be appropriately changed according to the change in the access tendency as in the distributed storage device according to the third embodiment.
  • the system administrator it is not necessary for the system administrator to constantly monitor the system as in the third embodiment, so that human costs can be reduced. Also, according to the present embodiment, it is possible to reset the update condition with finer granularity in terms of time compared to the third embodiment. However, in consideration of the input information to the update information control unit 34 and the limited calculation capability, an appropriate value can be set based on human knowledge in the third embodiment. Is preferred.
  • the distributed storage system can be applied to, for example, a parallel database, a parallel data processing system, a distributed storage, a parallel file system, a distributed database, a data grid, a cluster computer, and the like.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 同一のデータを異なる複数のデータ構造で保持する分散ストレージシステムにおいて、各データ構造に適したアクセスの頻度および量の変化に従って、データの更新をデータ格納部に反映させるタイミングを適切に調整する。分散ストレージシステムは、第1のデータ構造でデータを保持する第1のデータ格納部と、第2のデータ構造でデータを保持する第2のデータ格納部と、データの更新内容を表す更新情報を保持するとともに、所定の更新条件が満たされた場合、更新情報を第2のデータ格納部に適用して、更新内容を第2のデータ格納部に反映させる更新情報保持部と、更新情報保持部が保持する更新情報を監視し、第2のデータ格納部への更新情報の適用状態を更新状況として抽出する更新状況監視部と、更新状況に応じて決定された変更命令に基づいて、所定の更新条件を変更する更新条件変更部と、を備える。

Description

分散ストレージシステム、ストレージ制御方法およびプログラム
 [関連出願についての記載]
 本発明は、日本国特許出願:特願2012-065190号(2012年3月22日出願)に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
 本発明は、分散ストレージシステム、ストレージ制御方法およびプログラムに関し、特に、異なるデータ構造で複製を保持する分散ストレージシステム、その動的性能パラメータの監視、調整等の制御を行うストレージ制御方法およびプログラムに関する。
 ネットワークを介して多数の計算機を接続し、各計算機のHDD(Hard Disk Drive)やメモリを用いてデータを格納・利用する分散ストレージ技術が知られている。分散ストレージ技術では、いずれの計算機にデータを配置し、いずれの計算機でデータを処理するかを、ソフトウェアまたは特別なハードウェアによって決定する。また、システムの状態に応じて動的に動作を変更することで、システム内のリソース使用量を調整し、クライアント計算機に提供する性能の向上を図る。
 格納されるデータは、意味的な単位でアクセスされる。例えば、関係データベースでは、データはレコード(record)またはタプル(tuple)と呼ばれる単位で書き込まれる。また、ファイルシステムでは、データはブロックの集合として書き込まれる。さらに、キーバリューストア(Key-Value Store)では、データはオブジェクトとして書き込まれる。こうして書き込まれたデータは、その単位ごとにクライアント計算機によって読み込まれる。
 また、データを保持するHDD、メモリ等のデバイスにおいては、データを格納する空間に対して、アドレスと呼ばれる一意の番号が割り振られている。アドレスが隣接する領域へのアクセスは、一般に、高速に処理される。したがって、レコードやブロックが使用時になるべく連続アドレスでアクセスされるよう、アドレス空間にデータを配置する必要がある。
 したがって、格納データのデータ構造が重要となる。ここで、データ構造とは、データの集まりをアドレス空間に配置するときの形式のことをいう。
 例えば、オンライントランザクション処理で用いられる行指向の関係データベースでは、レコードを複数まとめたページと呼ばれる単位で、メモリ上のバッファまたはディスク上に書き込まれる。ページは、ディスクやメモリが高速にアクセスできる単位の固定長データである。オンライントランザクション処理では、レコード単位で更新、挿入、書き込みが行われるからである。
 一方、データウェアハウス(Data Warehouse)等のデータ解析処理で用いられる列指向の関係データベースでは、各レコードをカラムまたは属性と呼ばれる単位に分解し、各レコードの同一の属性を連続してアドレス空間に配置する。データ解析処理では、属性単位ごとの利用が多いからである。また、列指向データベースでは、ある属性について同一の値をもつレコードが多く存在する場合、これらを圧縮して1つのデータにまとめることができ、データの格納効率が良い。
 一例として、非特許文献1には、行指向データベースと列指向データベースそれぞれのデータ構造が記載されている。
 ところで、上述の分散ストレージ技術では、同一のデータの複製データを、複数の計算機に格納することがある。これは、ある計算機が故障し、そのデータ格納デバイスがアクセス不能となった場合においても、クライアント計算機に対して格納データを提供するためである。特に、格納デバイスがDRAM(Dynamic Random Access Memory)等の揮発性メモリである場合、HDD等の磁気デバイスやSSD(Solid State Drive)等の不揮発性メモリと比較して、電源故障、ソフトウェア障害等により当該計算機のデータが失われる確率が高いため、3つ以上の複製データを異なる計算機に格納することもある。
 また、複数の複製データを、それぞれ異なるデータ構造で格納し、異なる種類のアクセスに対して、各アクセスに適した複製をアクセス先として提供する技術が知られている。
 特許文献1に記載された分散ストレージ方法では、データ更新時に行われるデータの複製において、複製先のデータノードでは、更新対象のデータを、それぞれ、指定された目的のデータ構造に変換してデータ格納部に格納し、その際、データノードは、更新対象のデータを一旦、中間構造を保持して更新に対する応答を返し、更新要求とは非同期で、目的のデータ構造に変換して格納する。
 一方、特許文献2に記載された分散ストレージは、それぞれがデータ格納部を備え、ネットワーク結合される複数のデータノードを備え、データ更新時に行われるデータの複製において、複製先のデータノードでは、更新対象のデータを、一旦、書き込みデータ保持用の中間構造に格納し、更新要求とは非同期で、それぞれ目的のデータ構造に変換してデータ格納部に格納し、データノードへのアクセス頻度の履歴を記憶するアクセス履歴記録部を備え、データノードで非同期に行われる目的のデータ構造への変換の契機となる契機情報を、アクセス履歴記録部に記録されたアクセス情報に基づき、可変させる手段を備える。
 また、耐障害性のための複製は、同期的に更新する必要がある。すなわち、両方の複製の更新が終了した段階で、クライアント計算機に更新終了を伝える必要がある。同一のデータを異なるデータ構造に格納する場合、一方のデータ構造は、他方のデータ構造と比較して、少量のデータ単位のアクセスには不向きなときがある。例えば、一方がHDD上のデータの更新であり、他方がメモリ上のデータの更新である場合、遅いほうのデータ構造が更新されるまで、クライアント計算機には更新完了通知が届かない。したがって、クライアント計算機の利用者は、システム性能が低下したように感じる。
 ここで、遅いデータ構造の前段に、追記が高速な専用のデータ構造を設ける方法が知られている。例えば、非特許文献2に記載された技術では、データベースへの更新情報をメモリ上のコピーには適用し、HDD等の永続装置の上にはWAL(Write Ahead Logging、ログ先行書き込み)によって書き込み、その後、WALの内容をHDD上のマスターデータベースに更新する。また、更新が速いデータ構造をメモリ上の行指向保存形式のデータ構造とし、更新が遅いデータ構造をメモリ上の列指向保存形式のデータ構造とした場合にも、列指向保存形式の前段に更新情報を保持するメモリ上のFIFO(First-In First-Out)構造をはさむことで、高速にクライアント計算機に更新終了を返すことができる。このように、データストア(ないしはデータ格納部)への更新情報を一時的に保持する構成要素を、以下では、「更新情報保持部」と呼ぶ。
 また、複数の計算機から構成された分散ストレージシステムは、管理者による監視が行われる。非特許文献3に記載された技術では、ネットワーク上の複数の計算機の単位時間当たりのCPU(Central Processing Unit)利用率やネットワークパケット送信量が、ウェブ(Web)画面に表示される。
特願2011-050151号 特願2011-169588号
上村純平 他、「GPU援用カラムストアデータベースの設計と評価」、情報処理学会研究報告、Vol.2011-HPC-130、No.26、pp.1-7、2011 C. Mohan, et al., "ARIES: A Transaction Recovery Method Supporting Fine-Granularity Locking and Partial Rollbacks Using Write-Ahead Logging," ACM Transactions on Database Systems (TODS), Vol. 17, No. 1, March 1992, pp. 94-162. Ganglia Monitoring System, [online], [平成24年3月8日検索], インターネット<URL: http://monitor.millennium.berkeley.edu/> 北川源四郎、「時系列解析入門」、pp.120-123、岩波書店、2005
 上記の特許文献及び非特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。以下の分析は、本発明者によってなされたものである。
 分散ストレージシステムにおいて、第1のデータ構造と第2のデータ構造で複製を保持する場合を考える。ここで、第2のデータ構造は少量の更新に時間を要するため、更新情報保持部を用いて非同期に更新するものとする。
 第1のデータ構造向けアクセスは、第1のデータ構造の複製により処理される。例えば、第1のデータ構造がメモリ上のバッファや、行指向保存形式である場合、レコード単位のリードアクセスは第1のデータ構造から読み書きされる。
 一方、第2のデータ構造向けアクセスは、第2のデータ構造の複製により処理されるのが望ましい。例えば、第2のデータ構造がHDD上の行指向保存形式や、メモリ上の列指向保存形式である場合、レコードのある特定の属性だけを必要とするアクセスや、格納されたすべてのデータを順に必要とするようなアクセスは、第2のデータ構造の複製から読まれる。
 第2のデータ構造を利用する場合において、更新情報保持部に更新情報が存在するときには、第2のデータ構造へのアクセスでは、最新の情報を利用することができない。そこで、第2のデータ構造へのアクセスが発生した場合には、分散ストレージシステムは、まず、第2のデータ構造の複製に付随する更新情報保持部に存在する更新情報を、更新情報が保持された順に第2のデータ構造に適用し、第2のデータ構造を最新のデータとする。その後、第2のデータ構造向けのアクセスが、最新データとなった第2のデータ構造で処理され、結果がクライアント計算機に返却される。
 このとき、アクセスに要する時間は、蓄積された更新情報を第2のデータ構造に適用するのに要する時間と、第2のデータ構造にアクセスするのに要する時間とを足し合わせたものとなる。
 ここで、更新情報保持部に蓄積された更新情報を適用するタイミングが、第2のデータ構造向けのアクセスが到達したときのみである場合、更新情報の量が多いとアクセス時間が長大化する。また、更新情報保持部における更新情報の格納量は有限であるため、第2のデータ構造向けのアクセスの発行頻度が低い場合、更新情報保持部における更新情報が溢れるおそれがある。
 そこで、更新情報保持部には、更新情報を吐き出すための条件として更新条件を設け、更新条件が真となった場合、第2のデータ構造向けのアクセス到達の有無に依らず、格納された更新情報の全部または一部を第2のデータ構造に適用する。更新条件として、例えば、更新情報の合計データ量が一定量となった場合が考えられる。また、他の更新条件として、更新情報の更新数が一定数となった場合が考えられる。さらに、他の更新条件として、前回の更新情報適用からの経過時間が定められた一定時間を経過した場合が考えられる。
 第2のデータ構造向けアクセスの一度のアクセスが微小時間であることが多い場合には、更新情報を頻繁に適用することで、更新情報保持部に蓄積される更新情報の数を少なくしないと、第2のデータ構造向けのアクセス性能が低下するおそれがある。これは、更新情報を第2のデータ構造に適用する時間の全部または一部が第2のデータ構造へのアクセス時間に含まれるからである。
 一方、第2のデータ構造向けのアクセスの発生頻度が低く、かつ、一度のアクセスが長大である場合には、第2のデータ構造は少量の更新のアクセス性能が悪いため、更新情報の適用頻度が高いと、第2のデータ構造の複製を保持する計算機のリソースをより多く消費してしまう。また、同一の計算機上に第1のデータ構造の複製が存在する場合や、同一の計算機を他の用途に利用していた場合にも、性能が低下する。
 これらのアクセスの発生率や時間は、運用時間の経過とともに変化することが多い。したがって、第1のデータ構造向けアクセスの頻度および量、ならびに、第2のデータ構造向けアクセスの頻度および量の変化によって、更新条件を適切に設定しないと、分散ストレージシステムの性能が低下するという問題がある。
 そこで、同一のデータを異なる複数のデータ構造で保持する分散ストレージシステムにおいて、各データ構造に適したアクセスの頻度および量の変化に従って、データの更新を各データ格納部に反映させるタイミングを適切に調整できるようにすることが課題となる。本発明の目的は、かかる課題を解決する分散ストレージシステム、ストレージ制御方法およびプログラムを提供することにある。
 本発明の第1の視点に係る分散ストレージシステムは、
 第1のデータ構造でデータを保持する第1のデータ格納部と、
 前記第1のデータ構造とは異なる第2のデータ構造で、前記データを保持する第2のデータ格納部と、
 前記データの更新内容を表す更新情報を保持するとともに、所定の更新条件が満たされた場合、前記更新情報を前記第2のデータ格納部に適用して、前記更新内容を前記第2のデータ格納部に反映させる更新情報保持部と、
 前記更新情報保持部が保持する前記更新情報を監視し、前記第2のデータ格納部への前記更新情報の適用状態を更新状況として抽出する更新状況監視部と、
 前記更新状況に応じて決定された、前記所定の更新条件の変更命令に基づいて、前記所定の更新条件を変更する更新条件変更部と、を備える。
 本発明の第2の視点に係るストレージ制御方法は、
 第1のデータ構造でデータを保持する第1のデータ格納部と、前記第1のデータ構造とは異なる第2のデータ構造で前記データを保持する第2のデータ格納部と、前記データの更新内容を表す更新情報を保持する更新情報保持部と、を備えた分散ストレージシステムを制御するストレージ制御方法であって、
 所定の更新条件が満たされた場合、前記更新情報を前記第2のデータ格納部に適用して、前記更新内容を前記第2のデータ格納部に反映させる工程と、
 前記更新情報保持部が保持する前記更新情報を監視し、前記第2のデータ格納部への前記更新情報の適用状態を更新状況として抽出する工程と、
 前記更新状況に応じて決定された、前記所定の更新条件の変更命令に基づいて、前記所定の更新条件を変更する工程と、を含む。
 本発明の第3の視点に係るプログラムは、
 第1のデータ構造でデータを保持する第1のデータ格納部と、前記第1のデータ構造とは異なる第2のデータ構造で前記データを保持する第2のデータ格納部と、前記データの更新内容を表す更新情報を保持する更新情報保持部と、を備えた分散ストレージシステムを制御するコンピュータに対して、
 所定の更新条件が満たされた場合、前記更新情報を前記第2のデータ格納部に適用して、前記更新内容を前記第2のデータ格納部に反映させる処理と、
 前記更新情報保持部が保持する前記更新情報を監視し、前記第2のデータ格納部への前記更新情報の適用状態を更新状況として抽出する処理と、
 前記更新状況に応じて決定された、前記所定の更新条件の変更命令に基づいて、前記所定の更新条件を変更する処置と、を実行させる。
 なお、プログラムは、非トランジエントなコンピュータ読み取り可能な記録媒体(non-transitory computer-readable recording medium)に記録されたプログラム製品として提供することができる。
 本発明に係る分散ストレージシステム、ストレージ制御方法およびプログラムによると、同一のデータを異なる複数のデータ構造で保持する分散ストレージシステムにおいて、各データ構造に適したアクセスの頻度および量の変化に従って、データの更新を各データ格納部に反映させるタイミングを適切に調整することが可能となる。
第1の実施形態に係る分散ストレージシステムの構成を一例として示すブロック図である。 第1の実施形態に係る分散ストレージシステムにおいて、各ストレージノードが第1および第2のデータ格納部を有する場合の構成を一例として示すブロック図である。 第2の実施形態に係る分散ストレージシステムの構成を一例として示すブロック図である。 第2の実施形態に係る分散ストレージシステムにおいて、各ストレージノードが第1および第2のデータ格納部を有する場合の構成を一例として示すブロック図である。 第3の実施形態に係る分散ストレージシステムの構成を一例として示すブロック図である。 第3の実施形態に係る分散ストレージシステムにおけるストレージノードの構成を一例として示すブロック図である。 関連技術である行指向保存形式を説明する図である。 関連技術である列指向保存形式を説明する図である。 関連技術であるハッシュマップ形式を説明する図である。 第3の実施形態に係る分散ストレージシステムにおけるランダムリードアクセス動作を一例として示すシーケンス図である。 第3の実施形態に係る分散ストレージシステムにおけるライトアクセス動作を一例として示すシーケンス図である。 第3の実施形態に係る分散ストレージシステムにおけるシーケンシャルリードアクセス動作を一例として示すシーケンス図である。 第3の実施形態に係る分散ストレージシステムにおけるデータ解析アクセス動作を一例として示すシーケンス図である。 第3の実施形態に係る分散ストレージシステムにおける更新状況表示部の表示内容を一例として示す図である。 第3の実施形態に係る分散ストレージシステムにおける更新条件入力部の構成を一例として示す図である。 第3の実施形態に係る分散ストレージシステムにおける更新条件入力部の構成を一例として示す図である。 第3の実施形態に係る分散ストレージシステムにおける更新状況表示部および更新条件入力部を同時に実装したときの構成を一例として示す図である。 第3の実施形態に係る分散ストレージシステムにおける更新条件入力部の構成を一例として示す図である。 第4の実施形態に係る分散ストレージシステムの構成を一例として示すブロック図である。 第4の実施形態に係る分散ストレージシステムにおける更新情報制御部の実装アルゴリズムの一例について説明するための図である。 第4の実施形態に係る分散ストレージシステムにおける更新情報制御部の実装アルゴリズムの一例について説明するための図である。
 はじめに、一実施形態に係る分散ストレージシステムの概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
 図1は、一実施形態に係る分散ストレージシステムの構成を一例として示すブロック図である。図1を参照すると、分散ストレージシステムは、第1のデータ構造でデータを保持する第1のデータ格納部(12a)と、第1のデータ構造とは異なる第2のデータ構造で、前記データを保持する第2のデータ格納部(12b)と、前記データの更新内容を表す更新情報を保持するとともに、所定の更新条件が満たされた場合、前記更新情報を第2のデータ格納部(12b)に適用して、前記更新内容を第2のデータ格納部(12b)に反映させる更新情報保持部(23)と、更新情報保持部(23)が保持する前記更新情報を監視し、第2のデータ格納部(12b)への前記更新情報の適用状態を更新状況として抽出する更新状況監視部(24)と、前記更新状況に応じて決定された、前記所定の更新条件の変更命令に基づいて、前記所定の更新条件を変更する更新条件変更部(27)と、を備える。
 図1を参照すると、分散ストレージシステムは、更新状況監視部(24)によって抽出された前記更新状況を表示する更新状況表示部(33)と、前記変更命令を受け付ける更新条件入力部(41)と、を備えていてもよい。
 かかる分散ストレージシステムによると、分散ストレージシステムが同一のデータを異なる複数のデータ構造で保持する場合に、各データ構造に適したアクセスの頻度および量の変化に従って、データの更新を各データ格納部に反映させるタイミングを適切に調整することが可能となる。なぜなら、分散ストレージシステムの管理者は、更新状況表示部(33)に表示された更新状況、すなわち、第2のデータ格納部(12b)への更新情報の適用状態を把握することができ、必要に応じて、更新条件を変更するための変更命令を、更新条件入力部(41)に入力することで、更新条件を調整することができるからである。
 図3を参照すると、分散ストレージシステムは、前記更新状況に応じて、前記変更命令を生成する更新情報制御部(34)を備えていてもよい。ここで、更新情報制御部(34)は、前記更新状況に基づいて、更新情報保持部(23)が将来保持する更新情報の個数を予測し、予測した個数に応じて前記変更命令を生成してもよい。また、更新情報制御部(34)は、前記更新情報が第2のデータ格納部(12b)に適用される頻度を変更する命令を、前記変更命令として生成してもよい。さらに、更新情報制御部(34)は、予測した個数が所定の上限値よりも多い場合、前記更新情報が第2のデータ格納部(12b)に適用される頻度が高くなるように前記変更命令を生成し、一方、予測した個数が所定の下限値よりも少ない場合、前記頻度が低くなるように前記変更命令を生成してもよい。
 かかる分散ストレージシステムによると、分散ストレージシステムが同一のデータを異なる複数のデータ構造で保持する場合に、各データ構造に適したアクセスの頻度および量の変化に従って、データの更新を各データ格納部に反映させるタイミングを自動で調整することが可能となる。なぜなら、更新情報制御部(34)は、更新状況、すなわち、第2のデータ格納部(12b)への更新情報の適用状態に応じて、更新条件を変更するための変更命令を生成し、更新条件を自動で調整するからである。
 なお、本発明において、下記の形態が可能である。
[形態1]
 上記第1の視点に係る分散ストレージシステムのとおりである。
[形態2]
 前記分散ストレージシステムは、前記更新状況監視部によって抽出された前記更新状況を表示する更新状況表示部と、
 前記変更命令を受け付ける更新条件入力部と、を備えていてもよい。
[形態3]
 前記分散ストレージシステムは、前記第1のデータ格納部、前記第2のデータ格納部、前記更新情報保持部、前記更新状況監視部、および、前記更新条件変更部を有する複数の計算機を備え、
 前記更新状況表示部は、前記複数の計算機のそれぞれに設けられた前記更新状況監視部によって抽出された前記更新状況を表示してもよい。
[形態4]
 前記更新条件入力部は、前記複数の計算機のそれぞれに設けられた前記更新条件変更部に対する前記変更命令を受け付けてもよい。
[形態5]
 前記更新状況表示部は、前記更新情報を円グラフ、棒グラフおよび折れ線グラフの少なくともいずれかを用いて表示してもよい。
[形態6]
 前記分散ストレージシステムは、前記更新状況に応じて、前記変更命令を生成する更新情報制御部を備えていてもよい。
[形態7]
 前記更新情報制御部は、前記更新状況に基づいて、前記更新情報保持部が将来保持する更新情報の個数を予測し、前記個数に応じて前記変更命令を生成してもよい。
[形態8]
 前記更新情報制御部は、前記更新情報が前記第2のデータ格納部に適用される頻度を変更する命令を、前記変更命令として生成してもよい。
[形態9]
 前記更新情報制御部は、前記個数が所定の上限値よりも多い場合、前記更新情報が前記第2のデータ格納部に適用される頻度が高くなるように前記変更命令を生成し、前記個数が所定の下限値よりも少ない場合、前記頻度が低くなるように前記変更命令を生成してもよい。
[形態10]
 前記更新情報制御部は、前記更新情報保持部が保持する更新情報の個数を時刻の多項式で近似し、前記更新情報保持部が将来保持する更新情報の個数を前記多項式に基づいて推定してもよい。
[形態11]
 前記第1のデータ格納部は、前記データを行指向で保持する行指向データベースであり、
 前記第2のデータ格納部は、前記データを列指向で保持する列指向データベースであってもよい。
[形態12]
 前記第1のデータ格納部は、主記憶上に設けられたキーバリューストア(Key-Value Store)であり、
 前記第2のデータ格納部は、主記憶上に設けられた列指向データベースであってもよい。
[形態13]
 前記第1のデータ格納部に格納された前記データは、CPU(Central Processing Unit)によって処理され、
 前記第2のデータ格納部に格納された前記データは、GPU(Graphics Processing Unit)によって処理されてもよい。
[形態14]
 前記更新情報保持部は、レコードに対する更新ログを前記更新情報として保持し、
 前記更新状況監視部は、前記更新情報保持部に存在する更新ログの個数を、前記更新状況として抽出してもよい。
[形態15]
 前記更新状況監視部は、前記更新情報保持部に存在する更新ログの個数の時間平均を、前記更新状況として抽出してもよい。
[形態16]
 前記第2のデータ格納部は、オブジェクト、タプル、ブロック等の所定の単位で前記データを管理し、
 前記更新情報保持部が保持する更新情報の個数は、前記所定の単位による更新アクセスまたは削除アクセスに応じて増加し、前記所定の単位による参照アクセスによっては変動しないようにしてもよい。
[形態17]
 前記更新情報保持部が保持する更新情報の個数は、複数の単位の参照アクセスが前記第2のデータ格納部に到達した場合、ゼロに戻るようにしてもよい。
[形態18]
 前記更新情報保持部が保持する更新情報の個数は、前記所定の更新条件が満たされた場合、ゼロに戻るようにしてもよい。
[形態19]
 前記更新情報保持部は、レコードに対する更新ログを第1のFIFO(First-In First-Out)形式で保持し、前記第2のデータ格納部へのアクセスが生じた場合、更新情報を保持しない第2のFIFO形式に切り替え、前記第1のFIFO形式の更新ログを前記第2のデータ格納部に適用しつつ、クライアント計算機からのライトアクセスを前記第2のFIFO形式に保持してもよい。
[形態20]
 上記第2の視点に係るストレージ制御方法のとおりである。
[形態21]
 前記ストレージ制御方法は、抽出された前記更新状況を表示する工程と、
 前記変更命令を受け付ける工程と、を含んでもよい。
[形態22]
 前記ストレージ制御方法は、前記更新状況に応じて、前記変更命令を生成する工程を含んでもよい。
[形態23]
 前記ストレージ制御方法において、前記更新状況に基づいて、前記更新情報保持部が将来保持する更新情報の個数を予測し、前記個数に応じて前記変更命令を生成してもよい。
[形態24]
 前記ストレージ制御方法において、前記更新情報が前記第2のデータ格納部に適用される頻度を変更する命令を、前記変更命令として生成してもよい。
[形態25]
 前記ストレージ制御方法において、前記個数が所定の上限値よりも多い場合、前記更新情報が前記第2のデータ格納部に適用される頻度が高くなるように前記変更命令を生成し、前記個数が所定の下限値よりも少ない場合、前記頻度が低くなるように前記変更命令を生成してもよい。
[形態26]
 前記ストレージ制御方法において、前記第1のデータ格納部は、前記データを行指向で保持する行指向データベースであり、
 前記第2のデータ格納部は、前記データを列指向で保持する列指向データベースであってもよい。
[形態27]
 前記ストレージ制御方法において、前記更新情報保持部は、レコードに対する更新ログを前記更新情報として保持し、
 前記更新情報保持部に存在する更新ログの個数を、前記更新状況として抽出してもよい。
[形態28]
 前記ストレージ制御方法において、前記第2のデータ格納部は、オブジェクト、タプル、ブロック等の所定の単位で前記データを管理し、
 前記更新情報保持部が保持する更新情報の個数は、前記所定の単位による更新アクセスまたは削除アクセスに応じて増加し、前記所定の単位による参照アクセスによっては変動しないようにしてもよい。
[形態29]
 上記第3の視点に係るプログラムのとおりである。
[形態30]
 前記プログラムは、抽出された前記更新状況を表示する処理と、
 前記変更命令を受け付ける処置と、を前記コンピュータに実行させてもよい。
[形態31]
 前記プログラムは、前記更新状況に応じて、前記変更命令を生成する処理を、前記コンピュータに実行させてもよい。
 (実施形態1)
 第1の実施形態に係る分散ストレージシステムについて、図面を参照して説明する。図1は、本実施形態に係る分散ストレージシステムの構成を一例として示すブロック図である。
 図1を参照すると、分散ストレージシステムは、第1のデータ格納部12a、第2のデータ格納部12b、更新情報保持部23、更新状況監視部24、更新状況送信部25、更新状況受信部32、更新状況表示部33、更新条件入力部41、更新条件送信部42、更新条件受信部26、および、更新条件変更部27、を備える。
 第2のデータ格納部12bは、第1のデータ格納部12aとは異なる特徴(例えば、データ構造)を持つ。更新情報保持部23は、第2のデータ格納部12bへの適用前の更新情報を更新条件が偽(false)の間保持し、当該条件が真(true)のとき第2のデータ格納部12bに適用する。更新状況監視部24は、更新情報保持部23が保持する更新情報の状態を監視する。更新状況送信部25は、更新状況監視部24から出力される更新状況を送信する。更新状況受信部32は、当該更新状況を受信する。更新状況表示部33は、当該更新状況を表す情報を表示する。更新条件入力部41は、更新条件変更命令を受け付ける。更新条件送信部42は、当該更新条件変更命令を送信する。更新条件受信部26は、当該更新条件変更命令を受信する。更新条件変更部27は、当該更新条件変更命令に基づいて更新情報保持部23の更新条件を変更する。
 また、図2に示すように、分散ストレージシステムは、第1のデータ格納部12aと第2のデータ格納部12bを備える1つ以上のシステム計算機21を備え、更新状況受信部32は1つ以上の更新状況送信部25から更新状況を受信し、更新状況表示部33は1つ以上の更新状況を表示するようにしてもよい。
 また、図2に示すように、更新条件入力部41は、1つ以上の更新条件変更命令を受け付け、更新条件送信部42は、1つの更新条件変更命令につき、1つ以上の更新条件受信部26に送信するようにしてもよい。
 本実施形態に係る分散ストレージシステムによると、第1のデータ構造向けアクセスの頻度および量、ならびに、第2のデータ構造向けアクセスの頻度および量の変化に応じて、更新条件を適切に設定することが可能となる。
 なぜなら、分散ストレージシステムの管理者は、更新状況表示部33を通して、第1のデータ構造向けアクセスと第2のデータ構造向けアクセスのリソース振り分けのパラメータとなる、1つ以上の更新情報保持部23の状態を観測・確認し、その結果に応じて、管理者が次に設定するのが適切と考える更新条件に設定し、更新条件入力部41を通して1つ以上の変更命令を入力できるからである。これにより、更新情報保持部23は、分散ストレージシステムへのアクセスの傾向が変化したとしても、変更命令に従うことで適切な更新条件に設定でき、更新情報を適用する際の計算機負荷を低減することができる。
 (実施形態2)
 第2の実施形態に係る分散ストレージシステムについて、図面を参照して説明する。図3は、本実施形態に係る分散ストレージシステムの構成を一例として示すブロック図である。
 図3を参照すると、分散ストレージシステムは、第1のデータ格納部12a、第2のデータ格納部12b、更新情報保持部23、更新状況監視部24、更新状況送信部25、更新情報制御部34、更新条件入力部41、更新条件送信部42、更新条件受信部26、および、更新条件変更部27を備える。
 第2のデータ格納部12bは、第1のデータ格納部12aとは異なる特徴(例えば、データ構造)を持つ。更新情報保持部23は、第2のデータ格納部12bへの適用前の更新情報を更新条件が偽(false)の間保持し、当該条件が真(true)のとき第2のデータ格納部12bに適用する。更新状況監視部24は、更新情報保持部23が保持する更新情報の状態を監視する。更新状況送信部25は、更新状況監視部24から出力される更新状況を送信する。更新状況受信部32は、当該更新状況を受信する。更新情報制御部34は、当該更新状況を少なくとも利用し、必要に応じて更新条件変更命令を生成する。更新条件入力部41は、当該更新条件変更命令を受け付ける。更新条件送信部42は、当該更新条件変更命令を送信する。更新条件受信部26は、当該更新条件変更命令を受信する。更新条件変更部27は、当該更新条件変更命令に基づいて更新情報保持部23の更新条件を変更する。
 また、図4を参照すると、分散ストレージシステムは、第1のデータ格納部12aと第2のデータ格納部12bを備える1つ以上のシステム計算機21を備え、更新状況受信部32は、1つ以上の更新状況送信部25から更新状況を受信するようにしてもよい。
 また、図4に示すように、更新条件入力部41は、1つ以上の更新条件変更命令を受け付け、更新条件送信部42は、1つの更新条件変更命令につき、1つ以上の更新条件受信部26に送信するようにしてもよい。
 本実施形態の分散ストレージシステムでは、変更命令を更新情報制御部34により生成することで、24時間365日連続稼動するようなシステムにおいても、管理者が常に更新状況を監視し続けることなく、更新条件を適切に設定することが可能となる。
 (実施形態3)
 第3の実施形態に係る分散ストレージシステムについて、図面を参照して説明する。図5は、本実施形態に係る分散ストレージシステムの構成を一例として示すブロック図である。
 図5を参照すると、本実施形態の分散ストレージシステムは、ネットワーク70を介して結合された分散制御の分散ストレージ装置、クライアント計算機50、監視計算機30、および、制御計算機40を備える。
 クライアント計算機50上のデータ利用プロセス51は、分散ストレージ装置に対して、データ識別子とデータ操作を表す識別子を含むアクセスを行うことで、1つまたは複数のデータに対するデータの格納、格納されたデータの取得、格納されたデータの更新、格納されたデータの消去を行う。
 監視計算機30は、表示装置を備え、前述の更新状況受信部32および更新状況表示部33が実装される。ここで、表示装置は、計算機内の情報を、人が五感の1つ以上で確認できる物理現象に変換する装置であり、例えば、ディスプレイ、プリンタ、スピーカ等である。
 制御計算機40は、入力装置を備え、前述の更新条件入力部41および更新条件送信部42が実装される。ここで、入力装置は、人の挙動を計算機内の情報に変換する装置であり、例えば、キーボード、マウス、タッチパネル、カメラ、マイク、熱センサ等である。
 ストレージノードNx(x=a、b、c、…)は、図6に示すように1つ以上のCPU15、1つ以上のメモリ16、1つ以上のI/Oコントローラ17、1つ以上のデータ格納部12x、1つ以上の通信コントローラ18を備える計算機である。ストレージノードNxは、通信コントローラ18を介してネットワーク70とデータの送受信を行い、必要なデータの格納・読み出しを、I/Oコントローラ17を介してデータ格納部12xと行う。分散ストレージ装置は、ストレージノードNa~Ncを含んで構成される。ストレージノードNxを制御するソフトウェアは、メモリ16に格納され、CPU15で実行される。
 データ格納部12x(x=a、b、c、…)は、例えば、ハードディスクドライブ、フラッシュメモリ、DRAM、MRAM(Magnetoresistive RAM)、FeRAM(Ferroelectric RAM)、RAID(Redundant Arrays of Inexpensive(Independent) Disks)コントローラに結合された1つ以上の記憶装置、磁気テープ等のデータを記録可能な物理媒体、または、ストレージノードの外部に設置された当該媒体へデータを記録可能な制御装置である。
 また、メモリ16とデータ格納部12xとは、同一のハードウェアであってもよい。
 ストレージノードNx(x=a、b、c、…)は、ネットワーク70によって相互に接続され、ネットワーク70を通してデータの送受信を行う。
 ネットワーク70は、例えば、Fibre Channel、FCoE(Fibre Channel over Ethernet(登録商標))、Infiniband、Ethernet上のTCP/IP(Transmission Control Protocol/Internet Protocol)等の上位プロトコル等により実現される。ただし、ネットワーク70の実現方法は、これらに限定されない。
 分散ストレージ装置に記録されるデータは、ストレージノードNx中のデータ格納部12xに分散格納される。データは、固定長または任意長のデータ塊の集合と、当該データ塊を表すデータ識別子とによって管理され、データ管理部14xで実装されるアクセス分配部60によって、各データへのアクセスは当該データを保持するストレージノードNxに到達する。例えば、データ塊はファイルであり、データ識別子はi-node番号である。また、他の例では、データ塊は4キロバイト長のブロックであり、データ識別子はボリューム名とブロック番号の組である。さらに、他の例では、データ塊はレコードであり、データ識別子は主キーである。
 格納されるデータは、複数の複製が作られ、それぞれ異なるストレージノードNxに格納される。データ管理部14xは、格納するデータのデータ構造を決定し、データ格納部12xに格納する。
 ここで、データ構造とは、データ格納部12xのデバイス上のどのアドレスに格納するデータをどの順で記録するかを決める指標である。
 例えば、データ構造が行指向データベースであり、データ格納部12xが主記憶である場合には、図7に示すように、格納するデータはレコードごとに区切られ、主記憶アドレス空間に連続に記録される。連続に記録する方法として、主記憶を4KBごとのページという固定長に区切り、固定長の末尾から順にデータを配置し、データの先頭位置をページの先頭から順に格納する方式が知られている。また、行指向データベースでは、B-Treeに代表される索引データ構造をさらに格納することで、高速にアクセスできることも知られている。
 また、データ構造が列指向データベースであり、データ格納部12xが主記憶である場合には、図8に示すように、格納するデータはレコード内の属性やカラムという単位で区切られ、主記憶アドレス空間には同じカラムごとに連続に記録される。連続に記録する方法として、ページ内にカラム内容を順に記載する方法のほか、カラムの同じ値を省略して記載する方法もある(非特許文献1)。
 さらに、データ構造がハッシュマップまたはキーバリューストアであり、データ格納部12xが主記憶である場合には、図9に示すように、格納するデータのデータ塊をあるアドレスに連続で記録し、その先頭アドレスを、データ識別子のハッシュ値を元に計算する添え字を持つメモリ内の配列に格納することができる。
 なお、データ構造の例は、これらに限定されない。例えば、データ格納部12xがHDD、SSD等である場合でも、一意に連続したアドレス空間を提供可能なデバイスであれば、上記のデータ構造を採用することができる。
 各データ構造に対して、性能の良いアクセス方法と、性能の悪いアクセス方法とが存在する。
 例えば、行指向データベースでは、各レコードごとの挿入、各レコードごとの参照は、索引構造が利用できるため、高速である。一方、行指向データベースでは、各レコードのうち一部のカラムだけを、すべての格納データについて取り出すようなアクセスは性能が悪い。
 また、列指向データベースでは、各レコードのうち一部のカラムだけを、すべての格納データについて取り出すようなアクセスや、関係データベースにおいてJOINとして知られるような、あるカラムの値について各レコード相互をつき合わせるようなアクセスは高速に処理できる。一方、列指向データベースでは、各レコードの更新や各レコードのデータ識別子を指定してのアクセスは、全レコードのデータ識別子総当りのアクセスとなるため、処理に時間を要する。
 さらに、データ構造がハッシュマップである場合、データ識別子を指定してのレコード参照やレコード挿入は高速である。一方、データ構造がハッシュマップである場合、データ識別子以外の値を指定してのデータ取得や、データ識別子の範囲を指定してのレコードアクセスは低速である。
 本実施形態において、性能が良い、または、性能が悪いとは、相対的な指標である。ここでは、あるデータ構造1で格納されたデータと他のデータ構造2で格納されたデータについて、データ構造1についてあるアクセス方法Aでアクセスした場合のスループットまたはレイテンシが、同一のデータを異なるデータ構造2で格納したデータ格納部に同一のアクセス方法Aでアクセスした場合のスループットまたはレイテンシよりも良い場合、アクセス方法Aについてデータ構造1の方が「性能が良い」という。
 なお、「性能が良い」ことの定義として、スループットまたはレイテンシが良いこととする代わりに、次のようにしてもよい。すなわち、スループット、レイテンシなどのように、アクセス量やアクセス速度が早いこととしてもよい。また、消費電力が少ない、廃棄物が少ないなどのように、アクセス量による環境負荷が少ないこととしてもよい。さらに、アクセスやデータ転送量の課金量が少ない、消耗品の消耗速度が少ないなどのように、運用コストが低いこととしてもよい。また、部品の精度が良い、内部にさらに冗長構成を有するなどのように、データ喪失率が低いこととしてもよい。さらに、これらを組み合わせたものを、性能が良いことの定義としてもよい。
 以下では、異なる2つのデータ構造1およびデータ構造2について、データ構造1の方が性能が良いアクセス方法を、データ構造1向きのアクセス方法といい、データ構造2の方が性能が良いアクセス方法を、データ構造2向きのアクセス方法という。3つ以上のデータ構造についても、2つのデータ構造のときと同様に、相対的な性能を比較する。
 ここでは、格納される同一のデータの複製のうちの一部は、異なるデータ構造で格納されるものとする。
 例えば、データ1は3つに複製され、それぞれ、ストレージノードNa、Nb、Ncに格納されるとする。このとき、ストレージNaおよびNbではデータ構造1で格納され、ストレージNcではデータ構造2で格納されるようにしてもよい。また、他の例として、データ2は4つに複製され、ストレージノードNd~Ngに格納されるとする。このとき、ストレージNdではデータ構造3で格納され、ストレージNeではデータ構造4で格納され、ストレージNfではデータ構造5で格納され、ストレージNgはデータ構造6で格納されるようにしてもよい。
 また、あるデータ1とデータ2の複製の1つをそれぞれストレージNaに格納するとき、データ1はデータ構造1で格納され、データ2はデータ構造2で格納されるようにしてもよい。
 同一のデータの複製が異なるストレージノードに作成(または更新)されるとき、それらは同期的に更新されるものとする。すなわち、ストレージノードNa上のデータ格納部12aとストレージノードNb上のデータ格納部12bの両方で、記録とアクセス可能なデータ構造の作成が完了した後、クライアント計算機50に更新終了通知が送出される。
 ここで、2つ以上の複製が2つ以上の異なるデータ構造1、2、…で格納され、データ識別子単位での更新アクセスがデータ構造1向けである場合、データ構造2、…に格納する前に、ストレージノードは更新情報保持部23にデータの更新を格納して更新終了通知を返すことができる。
 更新情報保持部23は、データ構造の一種で、更新情報、すなわち、更新を表す情報を追記するアクセスがデータ構造2よりも向いているデータ構造を有する。更新情報とは、あるデータを変更するアクセス(作成、更新、削除)を時間を置いて、後段のデータ構造2上のデータに適用することができる情報のことである。例えば、更新情報保持部23は、主記憶上のFIFOに更新されるデータ自体を、更新情報として保持してもよい。また、他の例として、更新情報保持部23は、HDD上のログ構造ファイルシステムにデータの更新前の値と更新後の値、データ識別子の組を更新情報としてアクセスの順に記録するようにしてもよい。更新情報保持部23は、上記定義を満たすものであればよく、これらの例に限定されない。なお、適用された更新情報は、更新情報保持部23から除去される。
 更新情報保持部23には、ある時間ごとに真または偽となる更新条件が設定される。更新情報保持部は、更新条件が真となると、格納された更新情報の一部または全部をデータ構造2に適用して、データ構造2を更新する。
 更新条件は、アルゴリズムとパラメータを含む。更新条件のアルゴリズムの例として、更新情報の合計データ量が一定量になった場合が考えられる。このとき、一定量の値がパラメータとなる。また、更新条件のアルゴリズムの他の例として、更新情報の更新数が一定数になった場合が考えられる。このとき、一定数の値がパラメータとなる。さらに、更新条件のアルゴリズムの他の例として、前回の更新情報適用からの経過時間が定められた一定時間経過した後である場合が考えられる。このとき、一定時間の値がパラメータとなる。また、更新条件のアルゴリズムの他の例として、第2のデータ格納部を持つ計算機のCPUの利用率がある一定割合以上になった場合または一定割合以下になった場合が考えられる。このとき、一定割合がパラメータとなる。ただし、更新条件は、これらに限定されない。
 また、更新情報保持部23は、更新条件の真偽に依らず、第2のデータ構造向けのアクセスが当該ストレージノードに到達した場合には、そのアクセスを処理する前に更新情報を第2のデータ構造に適用する。
 図10ないし図13は、第1のデータ構造によるデータ(第1のデータ格納部12a)、第2のデータ構造によるデータ(第2のデータ格納部12b)、更新情報保持部23を用いた場合のアクセスのシーケンスを示す。
 図10ないし図13では、一例として、ランダムリード、ランダムライトを第1のデータ格納部12a向けアクセスとし、シーケンシャルリードや複雑なクエリを第2のデータ格納部12b向けアクセスとする。ただし、これらのアクセスは説明の便宜上のものに過ぎず、各データ格納部向けのアクセスはこれらに限定されない。
 図10は、ランダムリードアクセスを示す。アクセス分配部60によって、ランダムリードアクセスは第1のデータ格納部12a向けであることが解決される。したがって、クライアント計算機50からのランダムリードアクセスは、第1のデータ格納部12aに到達し、当該リクエストの返答となるデータは第1のデータ格納部12aから返却される。
 図11は、ライトアクセス(データの作成、更新あるいは削除アクセス)のシーケンスを示す。アクセス分配部60によって、ライトアクセスは当該データのすべての複製を保持するデータ格納部をもつ計算機に投入される。ランダムライトは第1のデータ格納部12a向けアクセスであるため、第1のデータ格納部12aは更新をそのまま適用する。一方、第2のデータ格納部12bでは、その前段に位置する更新情報保持部23が当該データへのランダムライトから更新情報を作成して保持する。次に、更新条件が真になると、当該更新情報は第2のデータ格納部12bに適用される。
 図12は、シーケンシャルリードアクセスのシーケンスを示す。シーケンシャルリードアクセスは第2のデータ格納部12b向けのアクセスであるため、アクセス分配部60によって、クライアント計算機50からのシーケンシャルリードアクセスは第2のデータ格納部12bに到達する。第2のデータ格納部12bは、アクセスを処理する前に、前段にある更新情報保持部23に格納された一部または全部の更新情報を、更新情報保持部23によって定められた順番がある場合はその順に従いつつ、第2のデータ格納部12bに適用してデータを更新する。次に、アクセスを処理して、アクセスの結果をクライアント計算機50に返す。図12では、更新の適用後にアクセスを処理している。ただし、更新が適用されないデータからアクセスを処理したり、適切に排他制御をすることにより、アクセスを処理しながら更新を適用することもできる。
 図13は、複雑なデータ解析のシーケンスを示す。データ解析は第2のデータ格納部向けのアクセスであるため、図12に示したシーケンシャルリードの場合と同様、第2のデータ格納部で処理され、結果はクライアント計算機に返却される。
 更新情報保持部23を実装するストレージノードは、更新状況監視部24および更新状況送信部25を備える。
 更新状況監視部24は、更新情報保持部23の更新情報の量の増減を表す情報として「更新状況」を生成する。例えば、第2のデータ格納部12bがオブジェクト、タプル、ブロック等のデータ単位で格納データを管理している場合、更新状況は、データ単位の更新アクセスまたは削除アクセスが更新情報保持部23に格納されると増加するようにしてもよい。また、データ単位の参照アクセスは更新情報保持部23に格納されないか、または、格納されたとしても、更新状況は増加しないようにしてもよい。さらに、複数のデータ単位の参照アクセスが第2のデータ格納部12bに到達すると、更新状況はゼロに戻るようにしてもよい。
 更新状況は、更新条件が真に到達するとゼロに戻る値としてもよい。
 また、更新状況は、更新情報保持部23に格納された更新情報の数としてもよい。さらに、更新状況は、更新情報保持部に格納された更新情報の数の単位時間当たりの平均としてもよい。
 また、更新状況は、更新情報保持部23に格納された更新情報の更新データサイズの合計としてもよい。
 さらに、更新状況は、更新情報保持部23に格納された更新情報の数の最近一定時間当たりの最大数としてもよい。また、更新状況は、更新情報保持部23に格納された更新情報の数の最近一定時間当たりの最小数としてもよい。
 さらに、更新状況は、更新情報保持部23に格納された更新情報の数を、更新情報保持部23に格納可能な最大の更新情報数で割った%値としてもよい。
 また、更新状況は、更新情報保持部23に格納された最新の更新情報と最古の更新情報の格納時刻の差で更新情報の数を割った値としてもよい。
 さらに、更新状況は、上記で例示した更新状況をxとしたとき、xに対して単調に増加する関数f(x)の値としてもよい。また、更新状況は、上記で例示した更新状況をxとしたとき、xに対して単調に減少する関数g(x)の値としてもよい。
 さらに、更新状況は、上記で例示した更新状況を一定時間ごとに採取した時系列x1、x2、…、x_nに対し、変化時点推定を行った結果、最近一定時間以内に変化があった可能性を表す確率値としてもよい。なお、変化時点推定アルゴリズムは、一例として、非特許文献4に記載されている、時系列の複数の小区間ごとにAIC(Akaike's Information Criterion、赤池情報量規準)を計算する手法を用いることができる。
 また、更新状況は、上記で例示した更新状況を一定時間ごとに採取した時系列x1、x2、…、x_nに対し、最新のx_nが、それ以前のx1、x2、…、x_n-1の平均よりある定められた割合だけ外れていた際に1となるような値としてもよい。
 更新状況送信部25は、更新状況監視部24によって採取された更新状況を、監視計算機30に実装された更新状況受信部32に送信する。更新状況送信部25は、定期的に更新状況を送信してもよい。更新状況送信部25は、更新状況受信部32から要求があった場合、最新の更新状況を送信してもよい。また、更新状況送信部25は、更新状況として、最近の値だけを送信してもよい。さらに、更新状況送信部25は、更新状況として、最近一定時間以内に採取されたゼロ個以上の値を送信してもよい。また、更新状況送信部25は、更新状況として、最近一定数採取された1つ以上の値を送信してもよい。
 監視計算機30では、受信した更新状況を更新状況表示部33によって表示する。表示は、更新状況の大小、または、時間的変化の有無が人に分かる形式に変換して実行される。
 図14は、更新状況表示部33による表示例を示す。図14では、更新状況表示部33は、Web等の画面を介して、更新状況の大小を含む情報を提示している。図14では、更新状況表示部33は、更新状況を棒グラフとして表示している。このとき、棒グラフの横方向の長さに基づいて、更新状況の大小を把握することができる。
 また、更新状況表示部33は、更新状況を、折れ線グラフで過去の値とともに表示してもよい。さらに、更新状況表示部33は、更新状況を、ある定められた値を100%とする円グラフで表現してもよい。また、更新状況表示部33は、最近一定時間に傾向に変化があったことを示すアイコンで、更新状況を表示してもよい。さらに、更新状況表示部33は、数値を読み上げる音声合成で、更新状況を表現してもよい。
 更新状況表示部33から更新状況を読み取った人(多くの場合、システム管理者であるがこれに限られない)は、必要に応じて、制御計算機40の更新条件入力部41より、更新条件を入力する。更新条件入力部41は、人が更新条件をどのように変更するか入力するための機能を提供する。
 図15は、更新条件入力部41の構成を一例として示す。図15に示した更新条件入力部41によると、Web等の画面を介して、現在設定されている更新条件のパラメータを変更することができる。図15では、ストレージノードごとに更新条件を設定可能であり、当該ストレージノードのラベルがついているテキストボックスの現在の値を変更し、送信ボタンを選択することで、更新条件変更命令を入力することができる。
 図16は、更新条件入力部41の他の構成を例示する。図16に示した更新条件入力部41によると、Web等の画面を介して、更新条件のアルゴリズムを変更することができる。図16では、ストレージノード番号を指定するテキストボックスでストレージノードを指定し、アルゴリズムを選択する排他ラジオボタンでアルゴリズムの変更を指定して、送信ボタンを選択することで、更新条件変更命令を入力することができる。さらに、個々のストレージノードごとに更新条件変更命令を設定するのみならず、図16に例示するように、複数のストレージノードで動作する更新情報保持部23の更新条件を、まとめて設定することもできる。
 図17は、更新条件入力部41の他の構成を例示する。図17では、監視計算機30と制御計算機40が同一の計算機である場合に、更新状況表示部33と更新条件入力部41とが同一画面において提供される場合を示す。
 更新条件入力部41の他の例として、変更パラメータは音声でマイクから入力され、音声合成された値を基に更新条件変更命令を入力するようにしてもよい。
 図18は、更新条件入力部41の他の構成を例示する。図18では、制御計算機40のコマンドプロンプトから変更値を入力し、OS(Operating System)の持つプロセス間通信機能により、送信先であるnodeaを引数として、更新条件送信部42に相当するchange_conditionコマンドに入力している。
 更新条件入力部41の他の例として、変更パラメータは音声でマイクから入力され、音声合成された値を基に更新条件変更命令を入力するようにしてもよい。
 入力された更新条件変更命令は、制御計算機40の更新条件送信部42から、ストレージノードの更新条件受信部26を介して、更新条件変更部27に入力される。
 更新条件変更部27は、更新情報保持部23が更新情報を適用するタイミングである更新条件のアルゴリズムもしくはパラメータ、または、その両方を変更する。
 以上の構成を備えた本実施形態の分散ストレージシステムによると、更新条件をアクセスの傾向の変化に応じて、適切に変更することができる。
 例えば、ランダムリードとランダムライトのみで既に運用されている分散ストレージ装置が、新たにデータ分析アクセスが投入されることになった場合、管理者はアクセス傾向が変化することを知っているため、アクセス傾向が変化する時点において、更新状況に基づいて更新情報保持部23の内部の更新情報量を把握することができ、更新条件を変更すべきか否か、変更する場合にはどの程度更新頻度を上げればよいかを判断することができる。また、管理者は、変更後の更新状況を更新状況表示部33から取得することができるため、変更した更新条件が適切でなかった場合に、更新状況が適切でないことを把握でき、再度、更新条件を変更することができる。
 また、監視計算機30が、更新状況のみならずクライアント計算機50のアクセス性能その他の性能指標も表示可能な場合には、本実施形態の分散ストレージシステムの有用性がさらに向上する。例えば、クライアント計算機50のアクセス性能が減退した場合、更新状況表示部33に基づいて、更新情報保持部23の状況が以前とどのように異なるかを把握することができ、更新情報保持部23がアクセス性能減退の要因である場合には、更新条件変更部27を介して更新情報保持部23の更新情報を変更し、アクセス性能を回復することができる。
 (実施形態4)
 第4の実施形態に係る分散ストレージシステムについて、図面を参照して説明する。図19は、本実施形態に係る分散ストレージシステムの構成を一例として示すブロック図である。
 図19を参照すると、本実施形態に係る分散ストレージシステムは、第3の実施形態に係る分散ストレージシステム(図5)における制御計算機40および監視計算機30の代わりに、更新状況受信部32、更新条件送信部42および更新情報制御部34を実装する監視・制御計算機31を備える。
 本実施形態の分散ストレージシステムのその他の要素は、第3の実施形態に係る分散ストレージシステム(図5)と同様である。
 本実施形態の更新情報制御部34は、更新状況受信部32が受けた更新状況を元に、必要があれば更新条件変更命令を作成し、更新条件送信部42を介して、ストレージノードの更新条件変更部27に入力する。
 更新情報制御部34の一例として、更新状況の上限・下限を利用したアルゴリズムを用いることが考えられる。図20を参照して、更新情報制御部34の動作について説明する。あるストレージノード(ストレージノードNxとする)のデータ格納部12xに対する更新情報保持部23に、その更新状況の値の上限と下限を定める。例えば、更新状況が、更新情報保持部23内の更新情報の数であった場合、下限を0、上限を更新情報保持部23内に格納可能な更新情報の最大数とすることができる。
 更新情報制御部34は、更新状況を観測し続け、その値を時系列として、未来の値を予測する。例えば、更新情報制御部34は、最小二乗法を用いて時系列が入力が観測時刻t、出力がs*t+uとなる1次関数と近似することで、将来の値を予測することができる。
 また、他の例として、更新情報制御部34は、より複雑な時系列解析に基づいて、更新状況を予測するようにしてもよい。一例として、非特許文献4には、状態空間モデルにトレンドモデルと周期モデルを当てはめ、最尤推定や情報量規準を用いることにより、各モデルで最も時系列をよく近似するパラメータを求める時系列予測手法が記載されている。更新情報制御部34は、かかる時系列予測手法を用いて、更新状況を予測するようにしてもよい。
 更新情報制御部34は、予測された未来の値が、ある時間以内に上記の上限を上回る場合、更新条件が真となる頻度が高くなるように、更新条件変更命令を生成し、更新条件送信部42に発行することが好ましい。
 更新情報制御部34は、例えば、更新条件がある定められた時間t1ごとに真となる条件である場合、t1>t2なる時間t2へ変更する命令を発行する。また、更新情報制御部34は、更新条件がある定められた数n1個の更新情報が更新情報保持部23に格納されたときに真となる条件である場合、n1>n2なる個数n2が新たに設定されるような命令を発行する。
 更新情報制御部34は、予測された未来の値が、ある時間以内に前記の下限を下回る場合、更新条件が真となる頻度が低下するように、更新条件変更命令を生成し、更新条件送信部42に発行することが好ましい。
 更新情報制御部34は、例えば、更新条件がある定められた時間t1ごとに真となる条件である場合、t1<t3なる時間t3へ変更する命令を発行する。また、更新情報制御部34は、更新条件がある定められた数n1個の更新情報が更新情報保持部23に格納されたときに真となる条件である場合、n1<n3なる個数n3が新たに設定されるような命令を発行する。
 更新情報制御部34の他の例として、各ストレージノードの更新状況の乖離を是正するアルゴリズムを用いることが考えられる。更新情報制御部34は、分散ストレージシステムに存在する2つ以上のストレージノードから更新状況を取得する。更新情報制御部34は、取得した更新状況の値の平均を算出し、平均値より大きく外れた更新状況を示すストレージノードが存在する場合、当該ストレージノードの更新条件を変更する更新条件変更命令を発行する。
 更新情報制御部34は、平均値から大きく外れたことを検出する際、例えば、ある定められた割合を超える、ある定められた固定値を超える、ある定められた割合を一定時間越え続ける等の条件で検出するようにしてもよい。
 図21は、ストレージノードNa~Neの更新状況を示す。更新情報制御部34は、図21に示した更新状況の場合、ストレージノードNa~Neの更新状況を観測することで、ストレージノードNeの更新状況が平均から乖離していることを検出する。このとき、更新情報制御部34は、ストレージノードNeの更新情報保持部23に対し、更新条件変更命令を発行する。
 本実施形態に係る分散ストレージ装置によると、第3の実施形態の分散ストレージ装置と同様に、アクセスの傾向の変化に応じて更新条件を適切に変更することができる。
 また、本実施形態によると、第3の実施形態のようにシステム管理者が常にシステムを監視する必要がないため、人的なコストを削減することできる。また、本実施形態によると、第3の実施形態と比較して、時間的に細粒度の更新条件の再設定が可能となる。ただし、更新情報制御部34への入力情報や、その計算能力が限られていることを考慮した場合には、人間の知識に基づいて適切な値を設定することができる第3の実施形態の方が好ましい。
 上記実施形態に係る分散ストレージシステムは、例えば、並列データベース、並列データ処理システム、分散ストレージ、並列ファイルシステム、分散データベース、データグリッド、クラスタコンピュータ等に適用することができる。
 なお、上記の特許文献等の先行技術文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
10、20、21  システム計算機
12、12a~12c、12x、22  データ格納部
14a~14c、14x  データ管理部
15  CPU(Central Processing Unit)
16  メモリ
17  I/Oコントローラ
18  通信コントローラ
23  更新情報保持部
24  更新状況監視部
25  更新状況送信部
26  更新条件受信部
27  更新条件変更部
30  監視計算機
31  監視・制御計算機
32  更新状況受信部
33  更新状況表示部
34  更新情報制御部
40  制御計算機
41  更新条件入力部
42  更新条件送信部
50  クライアント計算機
51  データ利用プロセス
60  アクセス分配部
70  ネットワーク
Na~Nf、Nx  ストレージノード

Claims (19)

  1.  第1のデータ構造でデータを保持する第1のデータ格納部と、
     前記第1のデータ構造とは異なる第2のデータ構造で、前記データを保持する第2のデータ格納部と、
     前記データの更新内容を表す更新情報を保持するとともに、所定の更新条件が満たされた場合、前記更新情報を前記第2のデータ格納部に適用して、前記更新内容を前記第2のデータ格納部に反映させる更新情報保持部と、
     前記更新情報保持部が保持する前記更新情報を監視し、前記第2のデータ格納部への前記更新情報の適用状態を更新状況として抽出する更新状況監視部と、
     前記更新状況に応じて決定された、前記所定の更新条件の変更命令に基づいて、前記所定の更新条件を変更する更新条件変更部と、を備える分散ストレージシステム。
  2.  前記更新状況監視部によって抽出された前記更新状況を表示する更新状況表示部と、
     前記変更命令を受け付ける更新条件入力部と、を備える、請求項1に記載の分散ストレージシステム。
  3.  前記更新状況に応じて、前記変更命令を生成する更新情報制御部を備える、請求項1に記載の分散ストレージシステム。
  4.  前記更新情報制御部は、前記更新状況に基づいて、前記更新情報保持部が将来保持する更新情報の個数を予測し、前記個数に応じて前記変更命令を生成する、請求項3に記載の分散ストレージシステム。
  5.  前記更新情報制御部は、前記更新情報が前記第2のデータ格納部に適用される頻度を変更する命令を、前記変更命令として生成する、請求項4に記載の分散ストレージシステム。
  6.  前記更新情報制御部は、前記個数が所定の上限値よりも多い場合、前記更新情報が前記第2のデータ格納部に適用される頻度が高くなるように前記変更命令を生成し、前記個数が所定の下限値よりも少ない場合、前記頻度が低くなるように前記変更命令を生成する、請求項5に記載の分散ストレージシステム。
  7.  前記第1のデータ格納部は、前記データを行指向で保持する行指向データベースであり、
     前記第2のデータ格納部は、前記データを列指向で保持する列指向データベースである、請求項1ないし6いずれか1項に記載の分散ストレージシステム。
  8.  前記更新情報保持部は、レコードに対する更新ログを前記更新情報として保持し、
     前記更新状況監視部は、前記更新情報保持部に存在する更新ログの個数を、前記更新状況として抽出する、請求項1ないし7のいずれか1項に記載の分散ストレージシステム。
  9.  前記第2のデータ格納部は、オブジェクト、タプル、ブロック等の所定の単位で前記データを管理し、
     前記更新情報保持部が保持する更新情報の個数は、前記所定の単位による更新アクセスまたは削除アクセスに応じて増加し、前記所定の単位による参照アクセスによっては変動しない、請求項1ないし8のいずれか1項に記載の分散ストレージシステム。
  10.  第1のデータ構造でデータを保持する第1のデータ格納部と、前記第1のデータ構造とは異なる第2のデータ構造で前記データを保持する第2のデータ格納部と、前記データの更新内容を表す更新情報を保持する更新情報保持部と、を備えた分散ストレージシステムを制御するストレージ制御方法であって、
     所定の更新条件が満たされた場合、前記更新情報を前記第2のデータ格納部に適用して、前記更新内容を前記第2のデータ格納部に反映させる工程と、
     前記更新情報保持部が保持する前記更新情報を監視し、前記第2のデータ格納部への前記更新情報の適用状態を更新状況として抽出する工程と、
     前記更新状況に応じて決定された、前記所定の更新条件の変更命令に基づいて、前記所定の更新条件を変更する工程と、を含むストレージ制御方法。
  11.  抽出された前記更新状況を表示する工程と、
     前記変更命令を受け付ける工程と、を含む、請求項10に記載のストレージ制御方法。
  12.  前記更新状況に応じて、前記変更命令を生成する工程を含む、請求項10に記載のストレージ制御方法。
  13.  前記更新状況に基づいて、前記更新情報保持部が将来保持する更新情報の個数を予測し、前記個数に応じて前記変更命令を生成する、請求項12に記載のストレージ制御方法。
  14.  前記更新情報が前記第2のデータ格納部に適用される頻度を変更する命令を、前記変更命令として生成する、請求項13に記載のストレージ制御方法。
  15.  前記個数が所定の上限値よりも多い場合、前記更新情報が前記第2のデータ格納部に適用される頻度が高くなるように前記変更命令を生成し、前記個数が所定の下限値よりも少ない場合、前記頻度が低くなるように前記変更命令を生成する、請求項14に記載のストレージ制御方法。
  16.  前記第1のデータ格納部は、前記データを行指向で保持する行指向データベースであり、
     前記第2のデータ格納部は、前記データを列指向で保持する列指向データベースである、請求項10ないし15のいずれか1項に記載のストレージ制御方法。
  17.  前記更新情報保持部は、レコードに対する更新ログを前記更新情報として保持し、
     前記更新情報保持部に存在する更新ログの個数を、前記更新状況として抽出する、請求項10ないし16のいずれか1項に記載のストレージ制御方法。
  18.  前記第2のデータ格納部は、オブジェクト、タプル、ブロック等の所定の単位で前記データを管理し、
     前記更新情報保持部が保持する更新情報の個数は、前記所定の単位による更新アクセスまたは削除アクセスに応じて増加し、前記所定の単位による参照アクセスによっては変動しない、請求項10ないし17のいずれか1項に記載のストレージ制御方法。
  19.  第1のデータ構造でデータを保持する第1のデータ格納部と、前記第1のデータ構造とは異なる第2のデータ構造で前記データを保持する第2のデータ格納部と、前記データの更新内容を表す更新情報を保持する更新情報保持部と、を備えた分散ストレージシステムを制御するコンピュータに対して、
     所定の更新条件が満たされた場合、前記更新情報を前記第2のデータ格納部に適用して、前記更新内容を前記第2のデータ格納部に反映させる処理と、
     前記更新情報保持部が保持する前記更新情報を監視し、前記第2のデータ格納部への前記更新情報の適用状態を更新状況として抽出する処理と、
     前記更新状況に応じて決定された、前記所定の更新条件の変更命令に基づいて、前記所定の更新条件を変更する処置と、を実行させるプログラム。
PCT/JP2013/058111 2012-03-22 2013-03-21 分散ストレージシステム、ストレージ制御方法およびプログラム WO2013141308A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP13765195.6A EP2829976A4 (en) 2012-03-22 2013-03-21 DISTRIBUTED STORAGE SYSTEM, STORAGE CONTROL METHOD, AND PROGRAM
US14/386,946 US20150058293A1 (en) 2012-03-22 2013-03-21 Distributed storage system, storage control method and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012-065190 2012-03-22
JP2012065190 2012-03-22

Publications (1)

Publication Number Publication Date
WO2013141308A1 true WO2013141308A1 (ja) 2013-09-26

Family

ID=49222764

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/058111 WO2013141308A1 (ja) 2012-03-22 2013-03-21 分散ストレージシステム、ストレージ制御方法およびプログラム

Country Status (4)

Country Link
US (1) US20150058293A1 (ja)
EP (1) EP2829976A4 (ja)
JP (1) JPWO2013141308A1 (ja)
WO (1) WO2013141308A1 (ja)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015172823A (ja) * 2014-03-11 2015-10-01 株式会社電通国際情報サービス 情報処理装置、情報処理方法及びプログラム
JP2015228165A (ja) * 2014-06-02 2015-12-17 三菱電機株式会社 データ管理装置
WO2017212525A1 (ja) * 2016-06-06 2017-12-14 株式会社日立製作所 計算機、及びデータベース処理方法
JP2018513454A (ja) * 2015-03-20 2018-05-24 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation カラム・ストアにおける挿入およびポイント・クエリ・オペレーションの効率的パフォーマンス
JP2018128881A (ja) * 2017-02-09 2018-08-16 富士通株式会社 差分ログ適用プログラム、差分ログ適用装置及び差分ログ適用方法
JP2018152118A (ja) * 2013-03-15 2018-09-27 アマゾン・テクノロジーズ・インコーポレーテッド データベースエンジンを備えたデータベースシステム及び別個の分散型ストレージサービス
KR101903726B1 (ko) * 2018-05-04 2018-10-02 주식회사 포딕스시스템 Cctv 영상 데이터를 분산하여 저장하는 cctv 시스템
US10291703B2 (en) 2016-05-13 2019-05-14 Fujitsu Limited Information processing system, method of processing information, and information processing device
US10592556B2 (en) 2013-06-14 2020-03-17 International Business Machines Corporation On-the-fly encoding method for efficient grouping and aggregation
JP2020095340A (ja) * 2018-12-10 2020-06-18 富士通株式会社 情報処理システム、負荷分散処理装置および負荷分散処理プログラム
US10831736B2 (en) 2015-03-27 2020-11-10 International Business Machines Corporation Fast multi-tier indexing supporting dynamic update
US11061878B2 (en) 2015-03-20 2021-07-13 International Business Machines Corporation Parallel build of non-partitioned join hash tables and non-enforced N:1 join hash tables
US11080260B2 (en) 2015-03-27 2021-08-03 International Business Machines Corporation Concurrent reads and inserts into a data structure without latching or waiting by readers

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10706021B2 (en) 2012-01-17 2020-07-07 Oracle International Corporation System and method for supporting persistence partition discovery in a distributed data grid
CN104426926B (zh) * 2013-08-21 2019-03-29 腾讯科技(深圳)有限公司 定时发布数据的处理方法及装置
US9886450B2 (en) 2014-09-25 2018-02-06 Oracle International Corporation System and method for supporting zero-copy binary radix tree in a distributed computing environment
US10664495B2 (en) 2014-09-25 2020-05-26 Oracle International Corporation System and method for supporting data grid snapshot and federation
US9916275B2 (en) * 2015-03-09 2018-03-13 International Business Machines Corporation Preventing input/output (I/O) traffic overloading of an interconnect channel in a distributed data storage system
US11163498B2 (en) 2015-07-01 2021-11-02 Oracle International Corporation System and method for rare copy-on-write in a distributed computing environment
US10860378B2 (en) 2015-07-01 2020-12-08 Oracle International Corporation System and method for association aware executor service in a distributed computing environment
US10585599B2 (en) 2015-07-01 2020-03-10 Oracle International Corporation System and method for distributed persistent store archival and retrieval in a distributed computing environment
US11294941B1 (en) 2016-09-26 2022-04-05 Splunk Inc. Message-based data ingestion to a data intake and query system
US11314753B2 (en) 2016-09-26 2022-04-26 Splunk Inc. Execution of a query received from a data intake and query system
US11250056B1 (en) 2016-09-26 2022-02-15 Splunk Inc. Updating a location marker of an ingestion buffer based on storing buckets in a shared storage system
US10984044B1 (en) 2016-09-26 2021-04-20 Splunk Inc. Identifying buckets for query execution using a catalog of buckets stored in a remote shared storage system
US11593377B2 (en) 2016-09-26 2023-02-28 Splunk Inc. Assigning processing tasks in a data intake and query system
US11222066B1 (en) 2016-09-26 2022-01-11 Splunk Inc. Processing data using containerized state-free indexing nodes in a containerized scalable environment
US11126632B2 (en) 2016-09-26 2021-09-21 Splunk Inc. Subquery generation based on search configuration data from an external data system
US20180089324A1 (en) 2016-09-26 2018-03-29 Splunk Inc. Dynamic resource allocation for real-time search
US11232100B2 (en) 2016-09-26 2022-01-25 Splunk Inc. Resource allocation for multiple datasets
US10795884B2 (en) 2016-09-26 2020-10-06 Splunk Inc. Dynamic resource allocation for common storage query
US11243963B2 (en) 2016-09-26 2022-02-08 Splunk Inc. Distributing partial results to worker nodes from an external data system
US11604795B2 (en) 2016-09-26 2023-03-14 Splunk Inc. Distributing partial results from an external data system between worker nodes
US11620336B1 (en) 2016-09-26 2023-04-04 Splunk Inc. Managing and storing buckets to a remote shared storage system based on a collective bucket size
US11106734B1 (en) 2016-09-26 2021-08-31 Splunk Inc. Query execution using containerized state-free search nodes in a containerized scalable environment
US11003714B1 (en) 2016-09-26 2021-05-11 Splunk Inc. Search node and bucket identification using a search node catalog and a data store catalog
US11599541B2 (en) 2016-09-26 2023-03-07 Splunk Inc. Determining records generated by a processing task of a query
US11023463B2 (en) 2016-09-26 2021-06-01 Splunk Inc. Converting and modifying a subquery for an external data system
US11461334B2 (en) 2016-09-26 2022-10-04 Splunk Inc. Data conditioning for dataset destination
US10776355B1 (en) 2016-09-26 2020-09-15 Splunk Inc. Managing, storing, and caching query results and partial query results for combination with additional query results
US11416528B2 (en) 2016-09-26 2022-08-16 Splunk Inc. Query acceleration data store
US11281706B2 (en) 2016-09-26 2022-03-22 Splunk Inc. Multi-layer partition allocation for query execution
US10353965B2 (en) 2016-09-26 2019-07-16 Splunk Inc. Data fabric service system architecture
US11580107B2 (en) 2016-09-26 2023-02-14 Splunk Inc. Bucket data distribution for exporting data to worker nodes
US11321321B2 (en) 2016-09-26 2022-05-03 Splunk Inc. Record expansion and reduction based on a processing task in a data intake and query system
US11567993B1 (en) 2016-09-26 2023-01-31 Splunk Inc. Copying buckets from a remote shared storage system to memory associated with a search node for query execution
US11562023B1 (en) 2016-09-26 2023-01-24 Splunk Inc. Merging buckets in a data intake and query system
US11442935B2 (en) 2016-09-26 2022-09-13 Splunk Inc. Determining a record generation estimate of a processing task
US11269939B1 (en) 2016-09-26 2022-03-08 Splunk Inc. Iterative message-based data processing including streaming analytics
US10956415B2 (en) 2016-09-26 2021-03-23 Splunk Inc. Generating a subquery for an external data system using a configuration file
US11860940B1 (en) 2016-09-26 2024-01-02 Splunk Inc. Identifying buckets for query execution using a catalog of buckets
US11615104B2 (en) 2016-09-26 2023-03-28 Splunk Inc. Subquery generation based on a data ingest estimate of an external data system
US10977260B2 (en) 2016-09-26 2021-04-13 Splunk Inc. Task distribution in an execution node of a distributed execution environment
US11663227B2 (en) 2016-09-26 2023-05-30 Splunk Inc. Generating a subquery for a distinct data intake and query system
US11874691B1 (en) 2016-09-26 2024-01-16 Splunk Inc. Managing efficient query execution including mapping of buckets to search nodes
US11550847B1 (en) * 2016-09-26 2023-01-10 Splunk Inc. Hashing bucket identifiers to identify search nodes for efficient query execution
US10726009B2 (en) 2016-09-26 2020-07-28 Splunk Inc. Query processing using query-resource usage and node utilization data
US11586627B2 (en) 2016-09-26 2023-02-21 Splunk Inc. Partitioning and reducing records at ingest of a worker node
CN106708592B (zh) * 2017-01-25 2021-12-03 北京鸿智电通科技有限公司 一种微控制器以及用于微控制器的代码烧录方法
US11550820B2 (en) 2017-04-28 2023-01-10 Oracle International Corporation System and method for partition-scoped snapshot creation in a distributed data computing environment
US10769019B2 (en) 2017-07-19 2020-09-08 Oracle International Corporation System and method for data recovery in a distributed data computing environment implementing active persistence
US11921672B2 (en) 2017-07-31 2024-03-05 Splunk Inc. Query execution at a remote heterogeneous data store of a data fabric service
US11151137B2 (en) 2017-09-25 2021-10-19 Splunk Inc. Multi-partition operation in combination operations
US10896182B2 (en) 2017-09-25 2021-01-19 Splunk Inc. Multi-partitioning determination for combination operations
US10721095B2 (en) 2017-09-26 2020-07-21 Oracle International Corporation Virtual interface system and method for multi-tenant cloud networking
US11176091B2 (en) * 2017-09-29 2021-11-16 Intel Corporation Techniques for dynamic multi-storage format database access
US10862965B2 (en) 2017-10-01 2020-12-08 Oracle International Corporation System and method for topics implementation in a distributed data computing environment
TWI673615B (zh) * 2018-01-24 2019-10-01 中華電信股份有限公司 用於智慧營運中心之資料檢核系統與方法
US11662910B2 (en) * 2018-02-02 2023-05-30 International Business Machines Corporation Workload and interface cognizant heat-tiered storage
US10719508B2 (en) * 2018-04-19 2020-07-21 Risk Management Solutions, Inc. Data storage system for providing low latency search query responses
US11334543B1 (en) 2018-04-30 2022-05-17 Splunk Inc. Scalable bucket merging for a data intake and query system
WO2020220216A1 (en) 2019-04-29 2020-11-05 Splunk Inc. Search time estimate in data intake and query system
US11715051B1 (en) 2019-04-30 2023-08-01 Splunk Inc. Service provider instance recommendations using machine-learned classifications and reconciliation
US11494380B2 (en) 2019-10-18 2022-11-08 Splunk Inc. Management of distributed computing framework components in a data fabric service system
US11922222B1 (en) 2020-01-30 2024-03-05 Splunk Inc. Generating a modified component for a data intake and query system using an isolated execution environment image
US11704313B1 (en) 2020-10-19 2023-07-18 Splunk Inc. Parallel branch operation using intermediary nodes

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0877053A (ja) * 1994-09-08 1996-03-22 Nippon Telegr & Teleph Corp <Ntt> 複製データベース反映装置及び複製データベース反映方法
JP2009266147A (ja) * 2008-04-30 2009-11-12 Internatl Business Mach Corp <Ibm> データベースと仮想テーブルの整合性を維持する方法および装置。
JP2011050151A (ja) 2009-08-26 2011-03-10 Aichi Elec Co 電動機および圧縮機
JP2011169588A (ja) 2011-06-06 2011-09-01 Toshiba Corp 空調最適制御システム
JP2011248852A (ja) * 2010-04-27 2011-12-08 Hitachi Ltd システム連携装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050055382A1 (en) * 2000-06-28 2005-03-10 Lounas Ferrat Universal synchronization
JP3974538B2 (ja) * 2003-02-20 2007-09-12 株式会社日立製作所 情報処理システム
JP4374953B2 (ja) * 2003-09-09 2009-12-02 株式会社日立製作所 データ処理システム
US20070094308A1 (en) * 2004-12-30 2007-04-26 Ncr Corporation Maintaining synchronization among multiple active database systems
US7509467B2 (en) * 2006-01-13 2009-03-24 Hitachi, Ltd. Storage controller and data management method
JP4890048B2 (ja) * 2006-02-24 2012-03-07 株式会社日立製作所 記憶制御装置及び記憶制御装置を用いたデータマイグレーション方法
JP4481338B2 (ja) * 2008-03-28 2010-06-16 株式会社日立製作所 バックアップシステム、ストレージ装置及びデータのバックアップ方法
JP4874368B2 (ja) * 2009-06-22 2012-02-15 株式会社日立製作所 フラッシュメモリを用いたストレージシステムの管理方法及び計算機
CN103038742B (zh) * 2010-02-09 2015-09-30 谷歌公司 用于在分布式存储系统内动态复制数据的方法和系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0877053A (ja) * 1994-09-08 1996-03-22 Nippon Telegr & Teleph Corp <Ntt> 複製データベース反映装置及び複製データベース反映方法
JP2009266147A (ja) * 2008-04-30 2009-11-12 Internatl Business Mach Corp <Ibm> データベースと仮想テーブルの整合性を維持する方法および装置。
JP2011050151A (ja) 2009-08-26 2011-03-10 Aichi Elec Co 電動機および圧縮機
JP2011248852A (ja) * 2010-04-27 2011-12-08 Hitachi Ltd システム連携装置
JP2011169588A (ja) 2011-06-06 2011-09-01 Toshiba Corp 空調最適制御システム

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
C. MOHAN ET AL.: "ARIES: A Transaction Recovery Method Supporting Fine-Granularity Locking and Partial Rollbacks Using Write-Ahead Logging", ACM TRANSACTIONS ON DATABASE SYSTEMS (TODS, vol. 17, no. 1, March 1992 (1992-03-01), pages 94 - 162, XP001098645, DOI: doi:10.1145/128765.128770
GANGLIA MONITORING SYSTEM, 8 March 2012 (2012-03-08), Retrieved from the Internet <URL:http://monitor.millennium.berkeley.edu>
KAMIMURA, JUNPEI ET AL.: "Design and Evaluation of a GPU Accelerated Column Store Database", INFORMATION PROCESSING SOCIETY OF JAPAN, IPSJ SIG TECHNICAL REPORT, vol. 2011-HPC, no. 26, 2011, pages 1 - 7
KITAGAWA, GENSHIRO: "Introduction to Time Series Modeling", 2005, IWANAMI SHOTEN PUBLISHERS, pages: 120 - 123
See also references of EP2829976A4

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018152118A (ja) * 2013-03-15 2018-09-27 アマゾン・テクノロジーズ・インコーポレーテッド データベースエンジンを備えたデータベースシステム及び別個の分散型ストレージサービス
US10592556B2 (en) 2013-06-14 2020-03-17 International Business Machines Corporation On-the-fly encoding method for efficient grouping and aggregation
JP2015172823A (ja) * 2014-03-11 2015-10-01 株式会社電通国際情報サービス 情報処理装置、情報処理方法及びプログラム
JP2015228165A (ja) * 2014-06-02 2015-12-17 三菱電機株式会社 データ管理装置
US10650011B2 (en) 2015-03-20 2020-05-12 International Business Machines Corporation Efficient performance of insert and point query operations in a column store
JP2018513454A (ja) * 2015-03-20 2018-05-24 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation カラム・ストアにおける挿入およびポイント・クエリ・オペレーションの効率的パフォーマンス
US11061878B2 (en) 2015-03-20 2021-07-13 International Business Machines Corporation Parallel build of non-partitioned join hash tables and non-enforced N:1 join hash tables
US10831736B2 (en) 2015-03-27 2020-11-10 International Business Machines Corporation Fast multi-tier indexing supporting dynamic update
US11080260B2 (en) 2015-03-27 2021-08-03 International Business Machines Corporation Concurrent reads and inserts into a data structure without latching or waiting by readers
US10291703B2 (en) 2016-05-13 2019-05-14 Fujitsu Limited Information processing system, method of processing information, and information processing device
WO2017212525A1 (ja) * 2016-06-06 2017-12-14 株式会社日立製作所 計算機、及びデータベース処理方法
JP2018128881A (ja) * 2017-02-09 2018-08-16 富士通株式会社 差分ログ適用プログラム、差分ログ適用装置及び差分ログ適用方法
KR101903726B1 (ko) * 2018-05-04 2018-10-02 주식회사 포딕스시스템 Cctv 영상 데이터를 분산하여 저장하는 cctv 시스템
JP2020095340A (ja) * 2018-12-10 2020-06-18 富士通株式会社 情報処理システム、負荷分散処理装置および負荷分散処理プログラム
JP7137072B2 (ja) 2018-12-10 2022-09-14 富士通株式会社 情報処理システム、負荷分散処理装置および負荷分散処理プログラム

Also Published As

Publication number Publication date
JPWO2013141308A1 (ja) 2015-08-03
EP2829976A4 (en) 2015-11-11
US20150058293A1 (en) 2015-02-26
EP2829976A1 (en) 2015-01-28

Similar Documents

Publication Publication Date Title
WO2013141308A1 (ja) 分散ストレージシステム、ストレージ制御方法およびプログラム
Wang et al. Burstmem: A high-performance burst buffer system for scientific applications
CN102521269B (zh) 一种基于索引的计算机连续数据保护方法
CN103116661B (zh) 一种数据库的数据处理方法
US9612758B1 (en) Performing a pre-warm-up procedure via intelligently forecasting as to when a host computer will access certain host data
US8234470B2 (en) Data repository selection within a storage environment
KR101023585B1 (ko) 객체기반 스토리지 시스템에서 클라이언트 요청빈도에 따른데이터 관리 방법
Williams et al. Bridging high velocity and high volume industrial big data through distributed in-memory storage & analytics
CN102662992A (zh) 一种海量小文件的存储、访问方法及装置
US10789228B2 (en) Data presence/absence determination apparatus and computer-readable storage medium storing program for determination of data presence/absence
WO2016166844A1 (ja) 分散処理システム、タスク処理方法、記憶媒体
WO2010084754A1 (ja) データベースシステム、データベース管理方法、データベース構造および記憶媒体
Niazi et al. Size matters: Improving the performance of small files in hadoop
Wang et al. Metakv: A key-value store for metadata management of distributed burst buffers
Nguyen et al. Zing database: high-performance key-value store for large-scale storage service
WO2013172405A1 (ja) ストレージシステムおよびデータアクセス方法
CN104052824A (zh) 分布式缓存方法及系统
Mahgoub et al. Suitability of nosql systems—cassandra and scylladb—for iot workloads
Takatsu et al. PPFS: A scale-out distributed file system for post-petascale systems
CN104850548B (zh) 一种实现大数据平台输入/输出处理的方法及系统
Wang et al. The design of data storage system based on Lustre for EAST
US20150269086A1 (en) Storage System and Storage Method
US20180165380A1 (en) Data processing system and data processing method
CN113326335A (zh) 数据存储系统、方法、装置、电子设备及计算机存储介质
CN105677853A (zh) 一种基于大数据技术框架的数据存储方法及装置

Legal Events

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

Ref document number: 13765195

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2013765195

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2014506275

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14386946

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE