WO2015097774A1 - 計算機システム及びデータ管理方法 - Google Patents
計算機システム及びデータ管理方法 Download PDFInfo
- Publication number
- WO2015097774A1 WO2015097774A1 PCT/JP2013/084631 JP2013084631W WO2015097774A1 WO 2015097774 A1 WO2015097774 A1 WO 2015097774A1 JP 2013084631 W JP2013084631 W JP 2013084631W WO 2015097774 A1 WO2015097774 A1 WO 2015097774A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- file
- information
- data
- key
- type data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
- G06F16/183—Provision of network file services by network file servers, e.g. by using NFS, CIFS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Definitions
- the present invention relates to a computer system to which distributed KVS is applied.
- the distributed memory cache technology is a technology for composing a memory space (memory store) for storing a large amount of data by integrating memories of a plurality of servers. It is possible to realize parallel processing by dividing and arranging data on a plurality of servers and speeding up input / output by holding data in a memory.
- a distributed key-value store (distributed KVS) that handles data in a key-value type data format is adopted in order to distribute a large amount of data to a plurality of servers.
- Key / value type data has a data structure in which a key, which is a data identifier, is associated with a value (value), which is the main body of the data, and is managed by a combination of [key, value].
- one key / value type data is generated from one record, and a plurality of key / value type data is generated according to a key range (key range).
- a key range key range
- Patent Document 1 states that “a distributed memory storage management unit fragments a file according to definition information, and divides each fragment into distributed memory storage configured by integrating a plurality of physical memory areas. It receives a request for access to a file from the UAP and refers to the file management information to execute access to the fragment arranged in the physical memory area of its own host computer ”.
- the storage device is used as a storage area for storing a cache of a memory store or a copy of data for redundancy, so that key / value type data is stored in the storage device as it is.
- each of the plurality of servers is configured to have a key / value type. In order to grasp the arrangement of type data or the arrangement of distributed files, it is necessary to frequently communicate, and there is a problem that the communication load between servers increases.
- the present invention has been made in view of the above-described problems.
- a mechanism for reflecting the updated key / value type data on the data source is provided. That is, it provides a mechanism that allows access to data having the same content using either the file I / O API or the key / value type data API.
- a mechanism for suppressing the communication load between servers when the distributed KVS is adopted for the distributed file is provided.
- a typical example of the present invention is as follows. That is, a computer system comprising a plurality of computers connected via a network, each of the plurality of computers having a processor, a memory connected to the processor, and a network interface connected to the processor, A data storage area is formed by integrating a storage system that is connected to a storage apparatus that stores one or more files including a plurality of records, and that manages the files stored in the storage apparatus, and a storage area of the plurality of computers.
- One or more key value type data management units that generate one or more and manage key value type data arranged in the data storage area, and divide the file to associate search keys with values indicating the contents of the records. To generate the key-value type data.
- a loader that distributes and stores the key value type data distributed in the data storage area, and corresponds to the search key, the size of the value, and the key value type data for each key value type data.
- the loader receives a persistence instruction that instructs to reflect the updated key-value type data in the file
- a read request for acquiring the updated key value type data is transmitted to the key value type data management unit of each of the plurality of computers, and the key value type data management unit receives the read request.
- the key value type data stored in the storage area constituting the data storage area is updated.
- the updated key value type data is transmitted to the loader that transmitted the read request, and the loader is acquired from the key value type data management unit of each of the plurality of computers.
- a processing target file that reflects the updated key-value type data is specified, and the computer that is connected to the storage device that stores the processing target file is specified.
- the file system receives the update request for the file, the file system receives the update request for the file including the updated key-value type data to the specified computer.
- a file is specified, and the file is updated by writing the updated key-value data at the position of the specified file.
- the key-value data management unit can manage the file and the key-value data in association with each other based on the key-value data structure information, and the updated key-value data. Can be reflected in the file. Therefore, it is possible to access data having the same content using either the file I / O API or the key / value type data API.
- Example 1 of this invention It is a block diagram which shows the structural example of the computer system in Example 1 of this invention. It is explanatory drawing which shows the structural example of the file in Example 1 of this invention. It is explanatory drawing which shows the structural example of the KV type data in Example 1 of this invention. It is explanatory drawing which shows an example of the file management information in Example 1 of this invention. It is explanatory drawing which shows the structural example of the record definition information in Example 1 of this invention. It is explanatory drawing which shows an example of the source program of UAP in Example 1 of this invention. It is explanatory drawing which shows an example of the KV type data management information and KV type data of Example 1 of this invention. It is explanatory drawing which shows an example of the file arrangement information of Example 1 of this invention.
- Example 2 of this invention It is a flowchart explaining an example of the load process in the modification of Example 1 of this invention. It is a block diagram which shows the structural example of the computer system in Example 2 of this invention. It is explanatory drawing which shows an example of the file management information in Example 2 of this invention. It is a sequence diagram explaining the flow of the KV type data perpetuation process of Example 2 of this invention. It is a flowchart explaining an example of the loader determination process in Example 2 of this invention. It is explanatory drawing explaining an example of the temporary list in Example 2 of this invention. It is a flowchart explaining an example of the execution server determination process in Example 2 of this invention. It is a flowchart explaining an example of the record update process of Example 2 of this invention.
- FIG. 1 is a block diagram illustrating a configuration example of a computer system according to the first embodiment of this invention.
- the computer system includes a server 101, a plurality of distributed KVS servers 102, and storage devices 104 and 105.
- the server 101 is connected to each of the plurality of distributed KVS servers 102 via the network 103.
- the network 103 may be a LAN, a WAN, or the like, but the present invention is not limited to the type of the network 103.
- the distributed KVS server 102 is a computer that constitutes a key value store (KVS). Each distributed KVS server 102 is connected to a storage apparatus 105 in which a data source (file 181) is stored.
- the storage device 105 may be, for example, a storage system including a plurality of nonvolatile storage media such as HDDs, a semiconductor disk device using a flash memory as a storage medium, an optical disk device, and the like.
- the expression “file 181 managed by the distributed KVS server 102” represents the file 181 stored in the storage device 105 connected to the distributed KVS server 102.
- the expression “distributed KVS server 102 that manages the file 181” represents the distributed KVS server 102 connected to the storage apparatus 105 that stores the file 181.
- one or more cache areas 161 are generated by integrating storage areas included in each of the plurality of distributed KVS servers 102.
- the cache area 161 stores key / value type data 171 generated from the file 181.
- the key / value type data 171 is also referred to as KV type data 171.
- FIG. 2 is an explanatory diagram showing a configuration example of the file 181 according to the first embodiment of the present invention.
- FIG. 3 is an explanatory diagram illustrating a configuration example of the KV type data 171 according to the first embodiment of this invention.
- the file 181 is composed of a plurality of records as basic units of data processed by an application such as the UAP 141.
- the file 181 includes a record 201, a record 202, a record 203, and a record 204.
- Each record 201, 202, 203, 204 is composed of a plurality of fields.
- the field stores various information such as numerical values and characters.
- each record includes a field 211, a field 212, and a field 213.
- one file can contain any number of records, and one record can contain any number of fields.
- a record is composed of transaction information in one transaction, and individual information (data) such as account number, store number, and merchandise code is recorded in the field. .
- the KV type data 171 includes KV type data header information 301, a key 302, and a value 303.
- the KV type data header information 301 is information indicating the configuration of the KV type data and the relationship with other KV type data generated from the same file. Details of the KV type data header information 301 will be described with reference to FIG.
- the key 302 is information serving as a search key.
- Value 303 is the data body of KV type data.
- the UAP 141 executes a predetermined process using the file 181 or the KV type data 171.
- the file 181 is divided into record units, and for each record, KV type data having an arbitrary field as a key and a record body as a value is generated.
- the cache area 161 can be accessed from the distributed KVS server 102 in the same manner as the shared device. Further, the data of the file 181 divided in units of records, that is, the KV type data 171 is arranged on a plurality of distributed KVS servers 102. Each UAP 141 executes processing using the KV type data 171 arranged on the distributed KVS server 102 on which it operates.
- the file 181 is described as an example of the data source to be processed.
- the present invention is not limited to this, and the data storage format is not particularly limited.
- the server 101 includes a processor 111, a memory 112, and interfaces (I / F) 113-1, 113-2.
- the server 101 is connected to the storage apparatus 104 via an interface 113-1, and is connected to a plurality of distributed KVS servers 102 via an interface 113-2.
- the processor 111 executes a program stored in the memory 112.
- the function of the server 101 is realized by the processor 111 executing a program stored in the memory 112.
- the memory 112 stores a program executed by the processor 111 and data necessary to execute the program.
- the memory 112 may be a semiconductor memory such as a DRAM, and can be accessed at a higher speed than the storage device 104.
- the memory 112 of this embodiment stores a program for realizing the file system 131.
- the file system 131 manages data in file units.
- the file system 131 of this embodiment centrally manages the files 181 stored in the storage apparatus 105 connected to each distributed KVS server 102.
- the storage device 104 stores various types of information.
- a storage system including a plurality of storage media such as HDDs, a semiconductor disk device using a flash memory as a storage medium, an optical disk device, and the like can be considered.
- a plurality of file management information 132 and a plurality of record definition information 133 are stored in the storage apparatus 104 of this embodiment.
- the file management information 132 stores management information such as metadata of the file 181.
- One file management information 132 exists for one file 181.
- the record definition information 133 stores management information of records constituting the file 181.
- the record definition information 133 is managed in association with one file management information 132. Details of the file management information 132 and the record definition information 133 will be described later with reference to FIGS. 4, 5, and 6.
- the distributed KVS server 102 includes a processor 121, a memory 122, and interfaces (I / F) 123-1 and 123-2.
- the distributed KVS server 102 is connected to the server 101 and other distributed KVS servers 102 via the interface 123-1.
- the distributed KVS server 102 is connected to the storage apparatus 105 via the interface 123-2.
- each distributed KVS server 102 is described as having the same configuration, but may not necessarily have the same configuration as long as the functions and processes described below can be realized.
- the processor 121 executes a program stored in the memory 122.
- the processor 121 executes a program stored in the memory 122, thereby realizing a function of the distributed KVS server 102 described later.
- the memory 122 stores a program executed by the processor 121 and data necessary for executing the program.
- the memory 122 may be a semiconductor memory such as a DRAM, and can be accessed at a higher speed than the storage device 105.
- the memory 122 of this embodiment stores a UAP (user application program) 141 and programs for realizing the distributed KVS management unit 142, the loader 143, and the file system 144. Further, the memory 122 stores KV type data management information 151, file arrangement information 152, and KV type data structure information 153.
- the UAP 141 executes various processes.
- the file system 144 is the same as the file system 131.
- the distributed KVS management unit 142 manages the cache area 161 in cooperation with the distributed KVS management unit 142 of another distributed KVS server 102. In addition, the distributed KVS management unit 142 controls access to the cache area 161.
- the loader 143 generates the KV type data 171 from the file 181 stored in the storage device 105, distributes the KV type data 171 in the cache area 161, and stores the KV type data 171 stored in the cache area 161 as a storage. Store in device 105.
- the process of distributing and arranging the file 181 stored in the storage device 105 in the cache area 161 is referred to as a load process. Further, the process of storing the KV type data 171 stored in the cache area 161 in the storage device 105 is referred to as an unload process.
- the KV type data management information 151 is information for managing the KV type data 171 stored in the storage area of the distributed KVS server 102 constituting the cache area 161.
- the file arrangement information 152 is information for managing the correspondence relationship between the cache area 161 and the file 181.
- the KV type data structure information 153 is information for managing the correspondence between the record of the file 181 and the KV type data 171.
- KV type data management information 151 Details of the KV type data management information 151, the file arrangement information 152, and the KV type data structure information 153 will be described later with reference to FIGS. 7, 8, and 9.
- the programs and data stored in the memory 112 and the memory 122 do not always need to be stored in the memory 112 and the memory 122, and may be stored in a storage device (not shown) or an external storage device (not shown). In this case, a program or data is read from the storage device or the external storage device to the memories 112 and 114 as necessary. Note that when data is read, part or all of the data can be read.
- the file systems 131 and 144 and the distributed KVS management unit 142 may be provided as part of an operating system (OS) (not shown) or as an input / output library used by a user application program (not shown).
- OS operating system
- user application program not shown
- the distributed KVS server 102 in FIG. 1 does not have to be a physical computer, and may be a logical computer.
- computer resources such as the processor 121, the memory 122, and the interface 123 are allocated to the logical computer as logical computer resources by a virtualization program (not shown).
- the server 101 may be a distributed KVS server 102.
- at least one distributed KVS server 102 may hold the file management information 132 and the record definition information 133.
- all the distributed KVS servers 102 include the loader 143, but the present invention is not limited to this, and it is sufficient that at least one distributed KVS server 102 includes the loader 143.
- FIG. 4 is an explanatory diagram showing an example of the file management information 132 according to the first embodiment of the present invention.
- the file management information 132 includes a file ID 401, a permission 402, an owner 403, a size 404, a time stamp 405, a pointer 406 to record definition information, and storage location information 407.
- the file ID 401 stores identification information of the file 181 stored in the storage device 105. Any information that can uniquely identify the file 181 may be stored in the file ID 401. For example, a full path file name or a table name in the DB is stored. In this embodiment, it is assumed that a file name is stored in the file ID 401.
- the permission 402 stores information related to the access authority of the file 181.
- the owner 403 stores information indicating the owner of the file 181.
- the size 404 stores information indicating the size of the file 181.
- the time stamp 405 stores information indicating the update date and time of the file 181.
- the pointer 406 to the record definition information stores a pointer to the record definition information 133 corresponding to the file 181.
- the storage location information 407 stores information related to the storage location of the file 181. In this embodiment, since a plurality of files 181 are stored in the storage apparatus 105 connected to each distributed KVS server 102, the storage location information 407 includes, for example, the identifier of the distributed KVS server 102 and the identification information of the storage apparatus 105. Is stored.
- FIG. 5 is an explanatory diagram illustrating a configuration example of the record definition information 133 according to the first embodiment of this invention.
- the record definition information 133 includes a record structure 501, a field structure 502, and a key field number 503.
- the record structure 501 stores information for grasping the record structure in the file 181 and includes a record type 511 and a record length 512. Note that the record configuration 501 may include information other than the record type 511 and the record length 512.
- the record type 511 stores information indicating whether the record in the file 181 is a fixed-length record or a variable-length record.
- the file 181 is composed of records having the same and predetermined length.
- the file 181 is composed of records having different lengths.
- the record length 512 stores information indicating the length of one record when information indicating a fixed-length record is stored in the record type 511.
- the record configuration 501 only needs to include information capable of grasping the record structure, and does not need to include all information of the record type 511 and the record length 512.
- the field configuration 502 stores information for identifying a field included in the record, and includes a field number 521 and field information 522.
- the field number 521 stores the number of fields included in one record.
- the field information 522 stores information related to data recorded in each field, and includes a field type 531, a size 532, and a description format 533.
- the field type 531 stores information indicating whether the field corresponding to the record is a variable length field or a fixed length field when information indicating a variable length record is stored in the record type 511.
- the size 532 stores information indicating the size of the field.
- the description format 533 stores the description format of the data recorded in the field, such as ASCII or binary.
- the field configuration 502 only needs to be able to grasp the fields included in the record, so it is not necessary to include all the information of the field number 521 and the field information 522.
- each record can be recognized by the value set in the record length 512.
- a field for recording the size of the record is provided at the top of each record, and the delimiter of the record can be determined based on the field.
- the record is a variable-length record
- the first field is identified based on the information stored in the field configuration 502, and the record size can be calculated.
- the field can be grasped by referring to the field number 521 of the field configuration 502 and the size 532 of the field information 522.
- FIG. 6 is an explanatory diagram showing an example of the source program of the UAP 141 according to the first embodiment of the present invention.
- FIG. 6 shows the source code of the UAP 141 described using the COBOL language.
- UAP 141 described using the COBOL language a record structure of a file as a data source is defined in a program.
- the file structure is defined in FILE SECTION 602 of DATA DIVISION.
- Each file used in the program is defined by one file description entry (FD) followed by one or more record description entries.
- information described in FILE SECTION 602 is stored in the record structure 501 and the field structure 502 of the record definition information 133.
- FIG. 7 is an explanatory diagram illustrating an example of the KV data management information 151 and the KV data 171 according to the first embodiment of this invention.
- the KV type data management information 151 is generated when the KV type data 171 is arranged in each distributed KVS server 102. At this time, a KV type data list is also generated.
- the KV type data list is a list in which KV type data 171 arranged in each distributed KVS server 102 is arranged in the order of keys.
- the dirty list is generated or updated when the KV data 171 is updated.
- the distributed KVS management unit 142 or the loader 143 can grasp the KV type data 171 updated based on the dirty list.
- the KV type data header information 301 includes a flag 711, a next 712, and a dirty list next 713.
- the flag 711 stores a flag indicating that the KV type data 171 has been updated. In this embodiment, it is assumed that “0” is set in the flag 711 before the update of the KV type data 171 and “1” is set in the flag 711 after the update of the KV type data 171.
- Next 712 stores a pointer to the next KV type data 171 of the KV type data 171 in the KV type data list. As a result, all the KV type data 171 included in the KV type data list can be traced.
- the dirty list next 713 stores a pointer to the KV type data 171 next to the KV type data 171 in the dirty list described later.
- KV type data list and dirty list are generated. Based on the KV type data list, KV type data 171 generated from one file 181 and distributed can be grasped. Also, based on the dirty list, the updated KV type data 171 can be grasped from the KV type data 171 generated from one file 181 and distributed.
- the KV type data management information 151 includes a cache area ID 701, a file ID 702, a KV type data list pointer 703, and a dirty list pointer 704.
- the cache area ID 701 stores identification information of the cache area 161.
- the file ID 702 stores identification information of the file 181 that is the source of the KV type data 171.
- the KV type data list pointer 703 stores a pointer to the first KV type data 171 in the KV type data list.
- the dirty list pointer 704 stores a pointer to the first KV type data 171 in the dirty list.
- FIG. 8 is an explanatory diagram illustrating an example of the file arrangement information 152 according to the first embodiment of this invention.
- the file arrangement information 152 stores information on the file 181 that is the source of the KV type data 171 stored in the cache area 161 for each cache area 161. Specifically, the file arrangement information 152 includes a cache area ID 801, a file ID 802, and a pointer 803 to KV type data structure information.
- the cache area ID 801 stores identification information for identifying the cache area 161.
- the file ID 802 stores identification information of the file 181 stored as the KV type data 171 in the cache area 161 corresponding to the cache area ID 801. In this embodiment, the file name is stored.
- the KV type data structure information pointer 803 stores a pointer to the KV type data structure information 153 corresponding to the entry of the file arrangement information 152.
- FIG. 9 is an explanatory diagram illustrating an example of the KV type data structure information 153 according to the first embodiment of this invention.
- the KV type data structure information 153 stores information regarding the structure of the record corresponding to the KV type data 171 for each KV type data 171. Specifically, the KV data structure information 153 includes an ID 901, a key 902, a value size 903, and an offset 904.
- ID 901 stores an identification number for uniquely identifying an entry of the KV type data structure information 153.
- the entry of the KV type data structure information 153 corresponds to one KV type data 171 generated from the file 181 corresponding to the file ID 802.
- the key 902 stores key information of the KV type data 171 generated from the file 181 corresponding to the file ID 802.
- the value size 903 stores the size of the KV type data 171.
- the offset 904 stores information indicating the position of the record corresponding to the KV type data 171 on the file 181 corresponding to the file ID 802.
- FIG. 10 is a flowchart for explaining the loading process in the first embodiment of the present invention.
- the load instruction includes identification information (file ID) of the processing target file 181 and field information used as a key of the KV type data 171.
- the load instruction also includes identification information (cache area ID) of the cache area 161 in which the KV type data 171 is arranged.
- the loader 143 acquires the file management information 132 and the record definition information 133 of the processing target file 181 (step S1001). Specifically, the following processing is executed.
- the loader 143 instructs the file system 144 to open the file to be processed.
- the file system 144 determines whether the file management information 132 and the record definition information 133 of the file to be processed are held.
- the file system 144 is cached together with the return value for the file open to the loader 143. File management information 132 and record definition information 133 are returned.
- the file system 144 stores the file management information 132 and the record definition information 133 in the file system 131 of the server 101.
- the acquisition request includes a file ID.
- the file system 131 of the server 101 searches for file management information 132 in which the file ID 401 matches the file ID included in the acquisition request.
- the file system 131 acquires the record definition information 133 corresponding to the file management information 132 based on the pointer 406 to the record definition information of the searched file management information 132.
- the file system 131 transmits file management information 132 and record definition information 133 to the file system 144 of the distributed KVS server 102.
- the file system 144 When the file system 144 receives the file management information 132 and the record definition information 133, the file system 144 holds the received file management information 132 and the record definition information 133 in the cache. Further, the file system 144 responds to the loader 143 with the file management information 132 and the record definition information 133 together with the return value for the file open.
- the return value includes information necessary for accessing the file 181 to be processed.
- the storage location information 407 of the file management information 132 is stored as a return value. The above is the description of the processing in step S1001.
- the loader 143 acquires the processing target file 181 based on the storage location information 407 of the acquired file management information 132 (step S1002). Specifically, the following processing is executed.
- Loader 143 issues a read request including file ID and storage location information 407 to file system 144. At this time, the file system 144 executes the following processing.
- the file system 144 determines whether or not the distributed KVS server 102 on which the loader 143 that executes the load process operates manages the file 181 to be processed.
- the distributed KVS server 102 on which the loader 143 that executes the load process operates is also referred to as a self-distributed KVS server 102.
- the file system 144 can process the file 181 to be processed from the storage device 105 connected to the self-distributed KVS server 102 based on the file ID and the storage location information 407. And responds to the loader 143.
- the file system 144 specifies the distributed KVS server 102 that manages the processing target file 181 based on the storage location information 407.
- the file system 144 transmits a read request to the file system 144 of the specified distributed KVS server 102.
- the read request includes storage location information 407 and a file ID.
- the file system 144 that has transmitted the read request is described as a request-side file system 144
- the file system 144 that has received the read request is described as a response-side file system 144.
- the response-side file system 144 When the response-side file system 144 accepts the read request, the response-side file system 144 reads the file 181 to be processed from the storage device 105 based on the file ID and the storage location information 407 included in the read request. The response side file system 144 transmits the read processing target file 181 to the request side file system 144. The requesting file system 144 responds with the file 181 read to the loader 143. Through the above processing, the loader 143 can acquire the file 181 managed by the distributed KVS server 102 other than the self-distributed KVS server 102. The above is the description of step S1002.
- the loader 143 transmits a generation request for the cache area 161 to the distributed KVS management unit 142 (step S1003). Thereafter, the loader 143 waits until a response from the distributed KVS management unit 142 is received. In the generation request, the identification information of the cache area 161 included in the load instruction is included in the generation request.
- the distributed KVS management unit 142 generates a cache area in cooperation with the distributed KVS management unit 142 of another distributed KVS server 102. Since a known technique may be used for the generation process of the cache area 161, a detailed description is omitted. At this time, management information (not shown) of the cache area 161 is also generated.
- the management information (not shown) of the cache area 161 includes the identification information of the cache area 161, the total capacity of the cache area 161, the identification information of the distributed KVS server 102, and the storage areas constituting the cache area 161 in the distributed KVS server 102 Is stored.
- the loader 143 determines whether or not the cache area 161 has been normally generated (step S1004). For example, when the loader 143 receives a generation completion notification from the distributed KVS management unit 142, the loader 143 determines that the cache area 161 has been normally generated. On the other hand, the loader 143 determines that the cache area 161 has not been normally generated when receiving a notification of generation failure from the distributed KVS management unit 142 or when there is no response from the distributed KVS management unit 142 for a certain period of time.
- the loader 143 terminates abnormally (step S1011). For example, the loader 143 notifies the UAP 141 that the load process has failed.
- the loader 143 registers the entry of the processing target file 181 in the file arrangement information 152 (step S1005). Specifically, the loader 143 adds an entry to the file arrangement information 152. The loader 143 sets identification information of the newly generated cache area 161 in the cache area ID 801 of the added entry, and sets information stored in the file ID 401 of the file management information 132 in the file ID 802.
- Loader 143 generates KV type data 171 based on the acquired file 181 and field information used as a key (step S1006), and also generates KV type data structure information 153 (step S1007). Specifically, the following processing is executed.
- the loader 143 grasps the record structure of the file 181 with reference to the record definition information 133.
- the loader 143 generates a key from the designated field based on the grasped record structure, and also generates KV type data 171.
- the loader 143 determines the distributed KVS server 102 in which the KV type data 171 is arranged based on the key value. At this time, the distributed KVS management unit 142 generates a map in which the key range and the identifier of the distributed KVS server 102 are associated with each other.
- the key range may be determined in advance and information regarding the key range may be retained.
- the loader 143 generates as many entries in the KV-type data structure information 153 as the number of generated KV-type data 171, and sets identification numbers in order from “1” to the ID 901 of the generated entries.
- Loader 143 selects one generated KV type data 171.
- the loader 143 refers to the record definition information 133 and specifies the data size of the record corresponding to the selected KV type data 171 and the position of the record in the processing target file 181.
- the loader 143 sets the key of the selected KV type data 171 to the key 902 of the empty entry, sets the size of the KV type data 171 to the value size 903, and corresponds to the KV type data 171 to the offset 904. Information indicating the position of the record in the file 181 is set. The above is the description of the processing in step S1006 and step S1007.
- the loader 143 determines the distributed KVS server 102 to which the KV type data 171 generated according to the key range is to be arranged, and transmits the arrangement request for the KV type data 171 to the determined distributed KVS server 102 (step S1008). ). Specifically, the loader 143 transmits an arrangement request to the determined loader 143 of the distributed KVS server 102.
- the arrangement request includes a map, KV data 171 included in a predetermined key range, file arrangement information 152, and KV data structure information 153.
- the loader 143 arranges the KV type data 171 in the key range that it is responsible for in the storage area constituting the cache area 161 (step S1009). At this time, the loader 143 generates a KV type data list and KV type data management information 151. Specifically, the loader 143 sorts the KV type data header information 301 according to the order of the keys, and based on the result of the sorting, the next 712 of each KV type data header information 301 has a pointer to another KV type data 171. Set.
- the distributed KVS management unit 142 generates KV type data management information 151, sets identification information of the file 181 in the file ID 702, and sets the KV type data list pointer 703 to the first KV type data 171 in the KV type data list. Set the pointer.
- the loader 143 sets the pointer to the KV type data structure information 153 in the pointer 803 to the KV type data structure information of the file arrangement information 152 (step S1010), and ends the process.
- step S1009 and step S1010 executes the same processing as that in step S1009 and step S1010.
- FIG. 11 is a flowchart for explaining the update process of the KV type data 171 in the first embodiment of the present invention.
- the distributed KVS management unit 142 receives an update request for the KV data 171 from the UAP 141 (step S1101).
- the update request includes the key of the update target KV type data 171 and the update data.
- the distributed KVS management unit 142 determines whether or not the distributed KVS management unit 142 manages the KV type data 171 to be updated (step S1102). Specifically, the distributed KVS management unit 142 refers to the map based on the key, identifies the distributed KVS server 102 that manages the KV-type data 171 to be updated, and the identified distributed KVS server 102 includes the distributed KVS server 102. It is determined whether the management unit 142 is a distributed KVS server 102 that operates.
- the distributed KVS management unit 142 executes an update process of the update target KV type data 171 (step S1103). Since the update process of the KV type data 171 is a known process, detailed description thereof is omitted.
- the distributed KVS management unit 142 sets a flag in the updated KV type data 171 and registers the KV type data 171 in the dirty list (step S1104). Specifically, the following processing is executed.
- the distributed KVS management unit 142 sets “1” in the flag 711 of the KV type data header information 301 and checks whether a dirty list has been generated.
- the distributed KVS management unit 142 If no dirty list has been generated, the distributed KVS management unit 142 generates a dirty list. The distributed KVS management unit 142 adds the KV type data 171 updated in step S1103 to the dirty list.
- the distributed KVS management unit 142 sets a pointer to the updated KV type data 171 in the dirty list next 713 of the last KV type data 171 of the dirty list, and the dirty list Finally, the updated KV type data 171 is added.
- step S1102 when another distributed KVS server 102 manages the KV type data 171 to be updated, the distributed KVS management unit 142 transmits an update request for the KV type data 171 to the other distributed KVS server 102 (step S1105). ), And then proceeds to step S1106.
- the update request for the KV type data 171 includes the key of the update target KV type data 171 and the update data.
- the distributed KVS management unit 142 of the other distributed KVS server 102 When the distributed KVS management unit 142 of the other distributed KVS server 102 receives the update request for the KV data 171, the distributed KVS management unit 142 executes the same processing as in steps S 1103 and S 1104 and executes the same processing as the distributed KVS management unit 142 that transmitted the update request. Send the result.
- the distributed KVS management unit 142 determines whether the KV type data 171 has been successfully updated (step S1106).
- the distributed KVS management unit 142 ends the process. If it is determined that the KV type data 171 could not be updated normally, the distributed KVS management unit 142 ends abnormally (step S1107). For example, the distributed KVS management unit 142 notifies the UAP 141 that the update process of the KV type data 171 has failed.
- the distributed KVS management unit 142 gives a flag indicating that the updated KV type data 171 has been updated, and also updates the updated KV type data 171. Generate a list (dirty list). As a result, the updated KV type data 171 can be specified.
- FIG. 12 is a sequence diagram illustrating the flow of the KV-type data perpetuation process according to the first embodiment of this invention.
- the UAP 141 on one distributed KVS server 102 transmits a persistence instruction that instructs the loader 143 to reflect the updated KV type data 171 in the file 181 (step S1201).
- the permanent instruction includes identification information of the cache area 161 to be processed.
- the loader 143, the distributed KVS management unit 142, and the file system 144 included in the distributed KVS server 102 that first received the persistence instruction are referred to as the master loader 143, the master distributed KVS management unit 142, and the master file system 144. Describe.
- the loader 143, the distributed KVS management unit 142, and the file system 144 included in other distributed KVS servers 102 are also referred to as a slave loader 143, a slave distributed KVS management unit 142, and a slave file system 144.
- the master loader 143 and the slave loader 143 are not distinguished from each other, they are described as a loader 143.
- the master distributed KVS management unit 142 and the slave distributed KVS management unit 142 are not distinguished from each other, they are described as a distributed KVS management unit 142.
- the system 144 and the slave file system 144 are not distinguished, they are described as a file system 144.
- the master loader 143 transmits a read request for the KV type data 171 stored in the processing target cache area 161 to the master distributed KVS management unit 142 (step S1202).
- the read request includes identification information of the cache area 161 to be processed.
- the master distributed KVS management unit 142 specifies the distributed KVS server 102 configuring the processing target cache area 161, and transmits a read request to the distributed KVS management unit 142 of the specified distributed KVS server 102 (step S1203).
- the read request includes identification information of the cache area 161 to be processed.
- the master distributed KVS management unit 142 can identify the distributed KVS server 102 configuring the processing target cache area 161 based on the management information (not shown) of the cache area 161.
- the master distributed KVS management unit 142 configures the cache area 161 to be processed, the master distributed KVS management unit 142 transmits a read request to itself.
- a read request is transmitted to both the master distributed KVS management unit 142 and the slave distributed KVS management unit 142.
- the distributed KVS management unit 142 specifies the updated KV type data 171 from the KV type data 171 stored in the processing target cache area 161 (step S1204). Specifically, the distributed KVS management unit 142 refers to the KV type data management information 151 and searches for the KV type data management information 151 in which the identification information of the processing target cache area 161 is stored in the cache area ID 701. The distributed KVS management unit 142 specifies the KV type data 171 registered in the dirty list based on the dirty list pointer 704 of the searched KV type data management information 151.
- the master distributed KVS management unit 142 and the slave distributed KVS management unit 142 transmit the specified KV type data 171 to the master distributed KVS management unit 142 (step S1205).
- the master distributed KVS management unit 142 responds to the master loader 143 that the reading of the updated KV type data 171 is completed (step S1206).
- the master loader 143 executes an execution server determination process (step S1207).
- the execution server determination process is a process for determining an execution server (distributed KVS server 102) that reflects the updated KV type data 171 in the file 181. Details of the execution server determination process will be described later with reference to FIG.
- the master loader 143 transmits a record update request to the distributed KVS server 102 determined by the execution server determination process (step S1208).
- the record update request includes the identification information of the processing target file 181 and the updated KV type data 171.
- the master loader 143 transmits a record update request to the master file system 144.
- the master loader 143 transmits a record update request to the slave loader 143 of the other distributed KVS server 102.
- the slave loader 143 transmits the request to the slave file system 144.
- the file system 144 executes a record update process in order to reflect the updated KV type data 171 in the file 181 (step S1209). Details of the record update processing will be described later with reference to FIG.
- the file system 144 may notify the master loader 143 that the processing is completed after the record update processing is completed. In this case, the master loader 143 notifies the UAP 141 that the processing has ended normally.
- FIG. 13 is a flowchart illustrating an example of the execution server determination process according to the first embodiment of the present invention.
- the master loader 143 When the master loader 143 receives a response indicating that the reading of the KV type data 171 is completed from the master distributed KVS management unit 142, the master loader 143 starts an execution server determination process. First, the master loader 143 specifies the file 181 corresponding to the KV type data 171 stored in the processing target cache area 161 (step S1301). Specifically, the following processing is executed.
- the master loader 143 refers to the file arrangement information 152 and searches for an entry in which the cache area ID 801 matches the identification information of the cache area 161 to be processed.
- the master loader 143 specifies the file 181 corresponding to the KV type data 171 based on the file ID 802 of the searched entry.
- the master loader 143 instructs the master file system 144 to open the file 181 to be processed.
- the file system 144 returns the cached file management information 132 and record definition information 133 together with a return value for the file open. The above is the description of the processing in step S1301.
- the master loader 143 refers to the storage location information 407 of the file management information 132, identifies the distributed KVS server 102 that manages the file 181 to be processed, and determines the identified distributed KVS server 102 as an execution server. (Step S1302). Further, the master loader 143 transmits a record update request to the loader 143 of the distributed KVS server 102 determined as the execution server (step S1303), and ends the process.
- FIG. 14 is a flowchart illustrating an example of a record update process according to the first embodiment of this invention.
- the file system 144 When the file system 144 receives a record update request from the loader 143, the file system 144 starts a record update process. First, the file system 144 acquires the KV type data structure information 153 corresponding to the processing target file 181 (step S1401). Specifically, the file system 144 refers to the file arrangement information 152 and searches for an entry whose file ID 802 matches the identification information of the file 181 to be processed. The file system 144 refers to the pointer 803 to the KV data structure information 153 of the searched entry, and acquires the KV data structure information 153.
- the file system 144 starts loop processing of the KV type data 171 (step S1402).
- the file system 144 selects one KV type data 171 included in the record update request.
- the file system 144 specifies the position of the record corresponding to the KV type data 171 in the processing target file 181 and writes the KV type data 171 to the specified position (step S1403). Specifically, the following processing is executed.
- the file system 144 refers to the acquired KV type data structure information 153, and searches for an entry in which the key 902 matches the key 302 of the selected KV type data 171.
- the file system 144 specifies the position of the record corresponding to the updated KV type data 171 in the processing target file 181 based on the value size 903 and the offset 904 of the searched entry.
- the file system 144 reflects the updated KV type data 171 in the processing target file 181 by overwriting the updated KV type data 171 at the specified position.
- the above is the description of the process in step S1403.
- the file system 144 determines whether or not the processing has been completed for all the KV type data 171 included in the record update request (step S1404).
- the file system 144 If it is determined that the processing has not been completed for all the KV type data 171, the file system 144 returns to step S1402 and executes the same processing. When it is determined that the processing has been completed for all the KV type data 171, the file system 144 ends the processing.
- the KV type data adding process is substantially the same as the KV type data updating process shown in FIG. 11, but a part of the process is different.
- the UAP 141 transmits a request for adding new KV type data 171 to the distributed KVS management unit 142 and the loader 143.
- step S1101 and step S1102 are the same processing.
- step S1103 the distributed KVS management unit 142 adds KV type data 171 to the cache area 161.
- step S1104 the distributed KVS management unit 142 sets “1” in the flag 711 of the KV type data header information 301.
- the process of adding new KV type data 171 to the KV type data list is the same as the process described in step S1104.
- Processing after step S1105 is the same processing as shown in FIG.
- the loader 143 adds an entry to the KV data structure information 153, sets an identification number in the ID 901 of the added entry, and sets the key 902 and the value size 903. Set a value for each.
- the distributed KVS management unit 142 calculates an offset in the file of the added KV type data 171 based on the value size 903 and the offset 904 of the entry immediately above the added entry.
- an entry one level above the added entry is also referred to as an upper entry.
- KV-type data deletion process is almost the same as the process shown in FIG. 11, but a part of the process is different.
- step S1101 and step S1102 is the same as the processing shown in FIG.
- step S1103 the distributed KVS management unit 142 deletes the KV type data 171 from the cache area 161. At this time, the distributed KVS management unit 142 deletes only the value 303 and retains the key 302 and the KV data header information 301 as they are. In addition to the process described above, a process of invalidating the value 303 or a process of writing data such as “0” in the value 303 can be considered.
- step S1104 the distributed KVS management unit 142 sets “ ⁇ 1” indicating deletion of the KV type data in the flag 711 of the KV type data header information 301. Also, the distributed KVS management unit 142 deletes the KV type data 171 from the KV type data list.
- a method for updating the KV type data list is well known and will not be described in detail. However, a method of changing a pointer to the deleted KV type data 171 to a pointer to another KV type data 171 can be considered.
- Processing after step S1105 is the same processing as shown in FIG.
- the KV type data perpetuation process is almost the same as the process shown in FIG. 12, but a part of the process is different.
- step S1201 to step S1203 is the same as the processing shown in FIG.
- step S1204 the master distributed KVS management unit 142 and the slave distributed KVS management unit 142 identify the updated KV data 171 and the deleted KV data 171 with reference to the dirty list, respectively, and the cache area 161 The specified KV type data 171 is read out.
- step S1205 the master distributed KVS management unit 142 and the slave distributed KVS management unit 142 transmit the specified KV type data 171 to the master distributed KVS management unit 142, and then “ ⁇ 1” is set in the flag 711.
- the KV type data 171 is deleted from the cache area 161.
- the processing flow after step S1206 is the same as that of the first embodiment, but the execution server determination processing and the record update processing are partly different.
- the master loader 143 divides the read KV data 171 into updated KV data 171 and deleted KV data 171. Specifically, the master loader 143 refers to the flag 711 of the KV type data header information 301 of the KV type data 171, and the KV type data 171 in which the flag 711 is “1” and the flag 711 is “ ⁇ 1”. It is divided into certain KV type data 171.
- the master loader 143 executes the processing from step S1301 to step S1303 on the updated KV type data 171 and executes the processing from step S1301 to step S1303 on the deleted KV type data 171. That is, two record update requests are transmitted: a record update request for instructing update of a record in the file 181 and a record update request for instructing deletion of a record from the file 181.
- the distributed KVS server 102 When the distributed KVS server 102 receives a record update request for instructing update of a record in the file 181, the same processing as in the first embodiment is executed. On the other hand, when the distributed KVS server 102 receives a record update request instructing deletion of a record in the file 181, the following processing is executed.
- steps S1401 and S1402 are the same as the processes shown in FIG.
- step S1403 the file system 144 specifies the position in the processing target file 181 of the record corresponding to the deleted KV type data 171, and deletes the data corresponding to the value size 903 from the specified position.
- the file system 144 specifies the position in the processing target file 181 of the record corresponding to the deleted KV type data 171 based on the value size 903 and the offset 904 of the searched entry.
- the file system 144 deletes the data for the value size 903 from the specified position (offset). Further, the file system 144 invalidates the entry retrieved from the KV type data structure information 153.
- the update or deletion result of the KV type data 171 can be reflected in the file (data source).
- the file data source
- the file management information 132 and the record definition information 133 are used to grasp the record structure of the file 181, but the record definition information of the file 181 may be set in the distributed KVS server 102 in advance.
- FIG. 15 is an explanatory diagram showing an example of the file configuration information 1500 according to the modification of the first embodiment of the present invention.
- the file configuration information 1500 is information for managing the correspondence between the file 181, the record, and the field used as the key of the KV type data 171, and includes a file ID 1501, record definition information 1502, and a key field number 1503. In the modification, the file configuration information 1500 is registered in the distributed KVS server 102 in advance.
- the file ID 1501 stores identification information of the file 181 stored in the storage device 105.
- the file ID 1501 is the same as the file ID 401.
- the record definition information 1502 stores management information of records constituting the file 181.
- the record definition information 1502 is the same as the record definition information 133.
- the key / field number 1503 stores the identification number of the field used as the key of the KV type data 171 generated from the file 181. Before the KV type data 171 is generated, the key field number 1503 is blank.
- FIG. 16 is a flowchart for explaining an example of the registration process of the file configuration information 1500 in the modification of the first embodiment of the present invention.
- the file system 144 receives the file 181 and the record definition information of the file 181 defined by the user (step S1601).
- the file system 144 compares the contents of the file 181 with the record definition information, confirms consistency (step S1602), and determines whether the contents of the file 181 and the record definition information are consistent (step S1603). ).
- the file system 144 If it is determined that the contents of the file 181 do not match the record definition information, the file system 144 notifies that the registration of the file configuration information 1500 has failed (step S1605), and ends the process.
- the file system 144 registers the file 181 and the record definition information in association with the file configuration information 1500 (step S1604), and ends the process. To do. Specifically, the file system 144 adds an entry to the file configuration information 1500. The file system 144 sets the identification information of the file 181 in the file ID 1501 of the added entry, and sets the received record definition information in the record definition information 1502 of the added entry. At this time, since the KV type data 171 corresponding to the file 181 has not been generated, the key field number 1503 is blank.
- the file system 144 notifies the information of the entry added to the file system 144 of the other distributed KVS server 102.
- the file system 144 of the other distributed KVS server 102 updates the file configuration information 1500 according to the notification.
- FIG. 17 is a flowchart for explaining an example of the load process in the modification of the first embodiment of the present invention. Hereinafter, the difference from the first embodiment will be mainly described.
- step S1001 since the file configuration information 1500 is used instead of the file management information 132 and the record definition information 133, the process of step S1001 is omitted.
- the loader 143 After acquiring the file 181, the loader 143 confirms the consistency between the contents of the file 181 and the field information used as a key (step S1701), and whether the contents of the file 181 and the field information are consistent. Is determined (step S1702).
- step S1011 If it is determined that the contents of the file 181 and the field information do not match, the loader 143 proceeds to step S1011.
- the loader 143 updates the file configuration information, and further transmits a request to generate the cache area 161 to the distributed KVS management unit 142 (step S1). S1703). Specifically, the loader 143 refers to the file configuration information 1500 and searches for an entry in which the file ID 1501 matches the identification information of the file 181 to be processed. The loader 143 sets the information of the field designated in the key field number 1503 of the retrieved entry.
- step S1007 KV type data 171 is generated based on the file configuration information 1500. Since other processes are the same as those in the first embodiment, description thereof is omitted.
- the second embodiment is different in that one file 181 is divided into a plurality of subfiles 1811 and the subfile 1811 is stored in the storage apparatus 105 connected to the plurality of distributed KVS servers 102.
- the second embodiment will be described focusing on differences from the first embodiment.
- FIG. 18 is a block diagram illustrating a configuration example of a computer system according to the second embodiment of the present invention.
- the computer system according to the second embodiment has the same configuration as the computer system according to the first embodiment.
- the second embodiment is different in that the subfile 1811 is stored in the storage apparatus 105.
- the sub file 1811 is file data obtained by dividing one file 181 and is composed of data (block data) obtained by dividing the file 181 into blocks.
- One block data can include a plurality of records. However, since the block size may not match the record size, data of one record may be included in a plurality of block data.
- the file 181 when the file system 131 stores the file 181 in the storage device 105, the file 181 is divided into block data of a predetermined size, and a predetermined number of block data groups having consecutive addresses are stored in a plurality of storages. It is distributed and stored in the device 105. In this embodiment, general striping is applied. It is assumed that the file 181 is divided in order from the first record.
- the file 181 is distributed and stored in the four storage apparatuses 105, that is, a case where the number of stripes is “4” will be described as an example.
- the four storage devices 105 are the storage device A, the storage device B, the storage device C, and the storage device D, the block size is “64 KB”, and the stripe size is “16”. Assume “block”.
- the file system 131 divides the file 181 into block data of “64 KB” units, block data with block numbers “1” to “16” to the storage device A, and block numbers from “17”.
- the block data “32” is stored in the storage device B
- the block data “33” to “48” is stored in the storage device C
- the block data “49” through “64” is stored in the storage device D.
- the block data group is stored in the order of the storage device A, the storage device B, the storage device C, and the storage device D according to the same procedure.
- the storage device 105 that stores the block number and the block data corresponding to the block number can be specified.
- FIG. 19 is an explanatory diagram showing an example of the file management information 132 according to the second embodiment of the present invention.
- the storage location information 407 of the file management information 132 stores information related to the storage location of the subfile 1811.
- the storage location information 407 is information for managing the configuration of the subfile 1811 and includes the number of stripes 1901, the stripe size 1902, and the distributed KVS server ID 1903.
- the number of stripes 1901 is the number of subfiles 1811 in which one file 181 is distributed and arranged.
- the stripe size 1902 represents the size (number of blocks) of the block data group.
- the distributed KVS server ID 1903 stores identification information of the distributed KVS server 102 that manages the subfile 1811. In this embodiment, it is assumed that identification numbers are assigned to the subfile 1811 in order from “1”. In this case, the distributed KVS server ID 1903 stores, for example, the identification number of the subfile 1811 and the identification information of the distributed KVS server 102 that manages the subfile 1811 in association with each other.
- the difference from the first embodiment is that the identification number of the sub file 1811 is stored in the file ID 802 of the file arrangement information 152 of the second embodiment.
- the KV type data structure information 153 of the second embodiment is the same as that of the first embodiment.
- one loader 143 executes a load process.
- a plurality of subfiles 1811 generated from one file 181 are stored in a plurality of storage apparatuses 105. Therefore, the loader 143 on each distributed KVS server 102 executes load processing in parallel. Therefore, in the second embodiment, when the KV type data 171 is arranged in the cache area 161, the process for determining the distributed KVS server 102 that executes the load process is executed.
- FIG. 20 is a sequence diagram illustrating the flow of the KV type data perpetuation process according to the second embodiment of the present invention.
- step S1201 to step S1206 The processing from step S1201 to step S1206 is the same.
- the master loader 143 executes an execution server determination process (step S2007).
- a plurality of subfiles 1811 reflecting the updated KV type data 171 are specified, and the distributed KVS server 102 that manages each of the plurality of subfiles 1811 is determined as an execution server. Is done.
- a plurality of distributed KVS servers 102 are determined as execution servers. Details of the execution server determination process of the second embodiment will be described later with reference to FIG.
- the master loader 143 transmits a record update request to the plurality of distributed KVS servers 102 determined by the processing result of the execution server determination process (step S2008).
- the record update request includes the identification information of the subfile 1811 and the extracted KV type data 171.
- the master loader 143 When transmitting a record update request to the distributed KVS server 102 itself including the master loader 143, the master loader 143 transmits a record update request to the master file system 144. On the other hand, when transmitting a record update request to another distributed KVS server 102, the master loader 143 transmits a record update request to the slave loader 143 of the other distributed KVS server 102. The slave loader 143 transmits the request to the slave file system 144.
- the file system 144 executes record update processing in order to reflect the updated KV type data 171 in the file 181 (step S2009). Details of the record update processing of the second embodiment will be described later with reference to FIG.
- the file system 144 may notify the master loader 143 that the processing is completed after the record update processing is completed. In this case, the master loader 143 notifies the UAP 141 that the processing has ended normally.
- FIG. 21 is a flowchart illustrating an example of loader determination processing according to the second embodiment of the present invention.
- FIG. 22 is an explanatory diagram illustrating an example of a temporary list according to the second embodiment of this invention.
- the load instruction includes identification information (file ID) of the processing target file 181 and field information used as a key of the KV type data 171.
- the load instruction also includes identification information (cache area ID) of the cache area 161 in which the KV type data 171 is arranged.
- the loader 143 identifies the distributed KVS server 102 that manages the subfile 1811 of the target file 181 (step S2101). Specifically, the following processing is executed.
- the loader 143 instructs the file system 144 to open the file to be processed.
- the file system 144 responds with file management information 132 and record definition information 133 along with a return value for the file open. Note that the processing executed by the file system 144 is the same as that in step S1001, and thus the description thereof is omitted.
- the loader 143 refers to the storage location information 407 of the file management information 132 and identifies the distributed KVS server 102 that manages the subfile 1811.
- the above-described distributed KVS server 102 can be specified based on the distributed KVS server ID 1903 of the storage location information 407.
- execution of load processing is instructed to the plurality of specified distributed KVS servers 102.
- the loader 143 generates a temporary list 2200 as shown in FIG.
- the temporary list 2200 will be described.
- the temporary list 2200 includes a sub file ID 2201, a distributed KVS server ID 2202, a record ID 2203, and a charge flag 2204.
- the sub file ID 2201 stores the identification number of the sub file 1811.
- the distributed KVS server ID 2202 stores identification information of the distributed KVS server 102 that manages the subfile 1811.
- a record ID 2203 is identification information of a record included in the subfile 1811.
- the charge flag 2204 stores information indicating whether or not the distributed KVS server 102 is a record in charge of load processing. For example, if the distributed KVS server 102 is a record in charge of load processing, “1” is stored in the charge flag 2204, and if the distributed KVS server 102 is in charge of load processing, “0” is stored in the charge flag 2204. Is stored.
- step S2101 the loader 143 generates entries for the number of subfiles 1811 in the temporary list 2200, and sets the identification number of the subfile 1811 in the subfile ID 2201 of the generated entry. Further, the loader 143 sets the identification information of the distributed KVS server 102 specified in the distributed KVS server ID 2202 of the generated entry. At this time, the record ID 2203 and the charge flag 2204 remain blank. The above is the description of the processing in step S2101.
- step S2103 there is a possibility that data of one record is included in a plurality of block data. Therefore, it is necessary to determine which distributed KVS server 102 is in charge of the load processing of the record. Therefore, the processing from step S2103 to step S2110 is executed.
- the loader 143 specifies a record included in each subfile 1811 (step S2102). Specifically, the loader 143 refers to the record definition information 133 and the storage location information 407, and calculates the records included in each subfile 1811. For example, the following processing can be considered.
- Loader 143 selects one subfile 1811. Based on the record structure 501 of the record definition information 133, the record length is grasped. Next, the loader 143 specifies a block data group included in the subfile 1811 based on the number of stripes 1901 and the stripe size 1902 of the storage location information 407. Further, the loader 143 identifies the record included in the subfile 1811 from the record length, the number of stripes, and the stripe size.
- the loader 143 sets the identification information of the record specified in the record ID 2203 of the entry of the temporary list 2200 corresponding to the selected subfile 1811, and further sets “0” in the charge flag 2204.
- Loader 143 repeatedly executes the process described above for all subfiles 1811. The above is the description of the processing in step S2102.
- the loader 143 starts loop processing of the subfile 1811 (step S2103). Specifically, the loader 143 selects one processing target subfile 1811 from the temporary list 2200. Here, it is assumed that the sub files 1811 are selected in the order of the identification numbers.
- the loader 143 starts loop processing of the records included in the selected subfile 1811 (step S2104). Specifically, the loader 143 selects one record to be processed from the record ID 2203 of the entry of the temporary list 2200 corresponding to the selected subfile 1811.
- the loader 143 determines whether or not the charge flag 2204 of the selected record is “1” (step S2105). That is, it is determined whether or not it has been determined that the distributed KVS server 102 corresponding to the distributed KVS server ID 2202 of the entry selected in step S2103 is responsible for the load processing of the record.
- step S2109 If it is determined that the charge flag 2204 of the selected record is “1”, the loader 143 proceeds to step S2109.
- the loader 143 determines whether or not the data of the record is distributed and arranged in the plurality of distributed KVS servers 102 (step S2106). Specifically, the loader 143 refers to the record ID 2203 of the entry of the other subfile 1811 in the temporary list 2200, and determines whether or not the same identification information as the identification information of the selected record exists. When the same identification information as the identification information of the selected record exists in the record ID 2203 of the entry of the other subfile 1811, the loader 143 distributes the data of the record in a plurality of distributed KVS servers 102. It is determined that
- step S2108 When it is determined that the data of the selected record is not distributed and arranged in the plurality of distributed KVS servers 102, the loader 143 sets “1” in the charge flag 2204 of the record (step S2108), and step The process proceeds to S2109.
- the loader 143 determines the distributed KVS server 102 that is responsible for loading the records (step S2107). Thereafter, the loader 143 proceeds to step S2109.
- the loader 143 may consider a method of determining the distributed KVS server 102 that manages the subfile 1811 including the top data of the record as the distributed KVS server 102 that is responsible for the load processing of the record. Also, a method of determining the distributed KVS server 102 that manages the subfile 1811 that contains the largest amount of record data as the distributed KVS server 102 that is responsible for the load processing of the record with respect to the total data amount of the record is conceivable. Note that the present invention is not limited to the determination method of the distributed KVS server 102 in charge of the record loading process.
- the loader 143 sets “1” in the responsible flag 2204 of the selected record. . In addition, the loader 143 deletes the identification information of the record from the entry of the other subfile 1811.
- the loader 143 is managed by another distributed KVS server 102. “1” is set in the charge flag 2204 of the record of the entry corresponding to the subfile 1811 to be processed. In addition, the loader 143 deletes the identification information of the record from the entry of the other subfile 1811. The above is an example of the process of step S2107.
- the loader 143 determines whether or not the processing has been completed for all the records included in the selected subfile 1811 (step S2109). Specifically, the loader 143 refers to the temporary list 2200 and determines whether there is a record in which the charge flag 2204 of the entry of the selected subfile 1811 is “0”. When there is a record whose charge flag 2204 is “0”, the loader 143 determines that the processing has not been completed for all the records.
- the loader 143 When it is determined that the processing has not been completed for all the records included in the selected subfile 1811, the loader 143 returns to step S2104 and executes the same processing.
- the loader 143 displays the records (record range) that the distributed KVS server 102 that manages the selected subfile 1811 is in charge of. Determine (step S2110). Specifically, the loader 143 refers to the entry of the temporary list 2200 corresponding to the selected subfile 1811 and determines the record registered in the record ID 2203 of the entry as a record in charge.
- the loader 143 determines whether or not the processing has been completed for all the subfiles 1811 (step S2111). If it is determined that the processing has not been completed for all the subfiles 1811, the loader 143 returns to step S2003 and executes the same processing.
- the loader 143 transmits a load processing execution instruction to the distributed KVS server 102 that manages the subfiles 1811 (step S2112).
- the load process execution instruction includes the identification number of the subfile 1811 and the identification information (range information) of the record in charge.
- the loader 143 of the distributed KVS server 102 executes the load process shown in FIG. In step S1002, if the subfile 1811 includes data of a distributed record, the loader 143 sends the record to the distributed KVS server 102 that manages another subfile 1811 including the data of the distributed record. Request to read the data. Since other processes are the same as those in the first embodiment, description thereof is omitted.
- FIG. 23 is a flowchart illustrating an example of an execution server determination process according to the second embodiment of the present invention.
- Step S1301 is the same process (step S1301).
- the master loader 143 refers to the storage location information 407 of the file management information 132, and identifies the distributed KVS server 102 that manages the subfile 1811 generated from the processing target file 181 (step S2302).
- the master loader 143 starts loop processing of the KV type data 171 (step S2303). Specifically, the master loader 143 selects one KV type data 171 to be processed from the updated KV type data 171.
- the master loader 143 refers to the storage location information 407 of the KV type data structure information 153 and the file management information 132, and specifies the sub file 1811 including the data of the record corresponding to the selected KV type data 171 (step S2304). . Specifically, the following processing is executed.
- the master loader 143 acquires the value size 903 and the offset 904 of the entry of the KV type data structure information 153 corresponding to the selected KV type data 171.
- the master loader 143 Based on the offset 904, the master loader 143 identifies the number of block data including the head data of the record corresponding to the selected KV type data 171. For example, the master loader 143 calculates the number of block data including record data by dividing the value of the offset 904 by the size of the block data.
- the master loader 143 determines whether or not the block data specified based on the value size 903 includes all data of the record corresponding to the selected KV type data 171.
- the block data number is output as the processing result.
- the master loader 143 determines the block data number including the data of the record based on the value size 903. Is identified.
- the master loader 143 Based on the number of stripes 1901 and the stripe size 1902 of the storage location information 407, the master loader 143 specifies which block data group the number of the specified block data is included in, and the subfile including the block data group 1811 is specified.
- the master loader 143 generates a list in which the key of the KV type data 171 and the identification information of the distributed KVS server 102 that manages the specified subfile 1811 are associated with each other.
- the above is the description of the process in step S2304.
- the master loader 143 determines whether or not the processing has been completed for all the KV type data 171 (step S2305). When it is determined that the processing has not been completed for all the KV type data 171, the master loader 143 returns to Step S2303 and executes the same processing.
- the master loader 143 transmits a record update request to each identified distributed KVS server 102 (step S2306), and ends the processing. Specifically, the following processing is executed.
- the master loader 143 selects the subfile 1811 to be processed.
- the master loader 143 refers to the list generated in step S2304 and extracts the KV type data 171 to be transmitted to the distributed KVS server 102 that manages the selected subfile 1811.
- the master loader 143 transmits a record update request including the identification information of the processing target subfile 1811 and the extracted KV type data 171 to the distributed KVS server 102 that manages the selected subfile 1811.
- the above is the description of the process in step S2306.
- FIG. 24 is a flowchart illustrating an example of a record update process according to the second embodiment of the present invention.
- the file system 144 starts the record update process when receiving the record update request.
- the file system 144 acquires the KV type data structure information 153 corresponding to the processing target subfile 1811 (step S2401).
- the process in step S2401 uses the same process as in step S1401.
- the file system 144 starts loop processing of the KV type data 171 (step S2402).
- the file system 144 selects one KV type data 171 included in the record update request.
- the file system 144 specifies the position of the record corresponding to the KV type data 171 in the processing target subfile 1811 and writes the KV type data 171 to the specified position (step S2403). Specifically, the following processing is executed.
- the file system 144 refers to the acquired KV type data structure information 153, and searches for an entry in which the key 902 matches the key 302 of the selected KV type data 171.
- the file system 144 specifies the number of the block data including the head data of the record corresponding to the selected KV type data 171 based on the offset 904 of the searched entry.
- the file system 144 specifies record data included in the block data specified based on the value size 903. Thereby, the position of the KV type data 171 and the data to be written are specified.
- the file system 144 reflects the updated KV data 171 in the processing target file 181 by overwriting the specified position with the KV data 171 for the specified data.
- the above is the description of the processing in step S2403.
- the file system 144 determines whether or not the processing has been completed for all the KV type data 171 included in the record update request (step S2404).
- the file system 144 When it is determined that the processing has not been completed for all the KV type data 171, the file system 144 returns to Step S2402 and executes the same processing. When it is determined that the processing has been completed for all the KV type data 171, the file system 144 ends the processing.
- the update or deletion result of the KV type data 171 can be reflected in the subfile 1811 even when the file data is distributed and arranged as a subfile 1811 on a plurality of servers.
- the distributed file system and the distributed KVS can be linked, and the same content data can be accessed using either the file I / O API or the KV type data API.
- the updated KV type data 171 is reflected in the subfile 1811, since the record handled by each distributed KVS server 102 is determined, an increase in the amount of communication between the servers is suppressed, and the distributed KVS and the distributed file are controlled. High-speed data transfer with the system can be realized.
- this invention is not limited to the above-mentioned Example, Various modifications are included.
- the above-described embodiments have been described in detail for easy understanding of the present invention, and are not necessarily limited to those having all the configurations described.
- a part of the configuration of one embodiment can be replaced with the configuration of another embodiment, and the configuration of another embodiment can be added to the configuration of one embodiment.
- each of the above-described configurations, functions, processing units, processing means, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit.
- Each of the above-described configurations, functions, and the like may be realized by software by interpreting and executing a program that realizes each function by the processor.
- Information such as programs, tables, and files for realizing each function can be stored in a memory, a storage device such as a hard disk or SSD (Solid State Drive), or a storage medium such as an IC card, SD card, or DVD.
- control lines and information lines indicate what is considered necessary for the explanation, and not all the control lines and information lines on the product are necessarily shown. Actually, it may be considered that almost all the components are connected to each other.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
図1は、本発明の実施例1における計算機システムの構成例を示すブロック図である。
KV型データの追加処理は、図11に示すKV型データ更新処理とほぼ同様であるが、一部処理が異なる。
KV型データの削除処理は、図11に示す処理とほぼ同様であるが、一部処理が異なる。
実施例1では、ファイル管理情報132及びレコード定義情報133を用いてファイル181のレコード構造を把握していたが、予め、分散KVSサーバ102にファイル181のレコード定義情報を設定してもよい。
実施例2では、一つのファイル181が複数のサブファイル1811に分割され、複数の分散KVSサーバ102に接続されるストレージ装置105にサブファイル1811が格納される点が異なる。以下、実施例1との差異を中心に実施例2について説明する。
Claims (12)
- ネットワークを介して接続される複数の計算機を備える計算機システムであって、
前記複数の計算機の各々は、
プロセッサ、前記プロセッサに接続されるメモリ及び前記プロセッサに接続されるネットワークインタフェースを有し、
複数のレコードを含むファイルを一以上格納するストレージ装置と接続し、
前記ストレージ装置に格納される前記ファイルを管理するファイルシステムと、
前記複数の計算機が有する記憶領域を統合することによってデータ格納領域を一つ以上生成し、前記データ格納領域に配置されたキーバリュー型データを管理するキーバリュー型データ管理部と、
前記ファイルを分割して、検索キーと前記レコードの内容を示すバリューとを対応づけることによって前記キーバリュー型データを生成し、前記生成されたキーバリュー型データを前記データ格納領域に分散して格納するローダと、を有し、
前記キーバリュー型データ毎に、前記検索キー、前記バリューのサイズ、及び前記キーバリュー型データに対応する前記レコードのファイルにおける位置が対応付けられたキーバリュー型データ構造情報を保持し、
前記ローダは、更新された前記キーバリュー型データの前記ファイルへの反映を指示する永続化指示を受け付けた場合、前記複数の計算機の各々の前記キーバリュー型データ管理部に、前記更新されたキーバリュー型データを取得するための読出要求を送信し、
前記キーバリュー型データ管理部は、
前記読出要求を受信した場合、前記データ格納領域を構成する前記記憶領域に格納される前記キーバリュー型データの中から前記更新されたキーバリュー型データを検索し、
前記読出要求を送信した前記ローダに前記更新されたキーバリュー型データを送信し、
前記ローダは、
前記複数の計算機の各々のキーバリュー型データ管理部から取得された前記更新されたキーバリュー型データに基づいて、前記更新されたキーバリュー型データを反映させる処理対象のファイルを特定し、
前記処理対象のファイルを格納する前記ストレージ装置と接続する前記計算機を特定し、
前記特定された計算機に、前記更新されたキーバリュー型データを含むファイルの更新要求を送信し、
前記ファイルシステムは、
前記ファイルの更新要求を受信した場合、前記キーバリュー型データ構造情報に基づいて、前記更新されたキーバリュー型データに対応する前記レコードの前記ファイルにおける位置を特定し、
前記特定されたファイルの位置に、前記更新されたキーバリュー型データを書き込むことによって前記ファイルを更新することを特徴とする計算機システム。 - 請求項1に記載の計算機システムであって、
前記読出要求は処理対象のデータ格納領域の識別情報を含み、
前記複数の計算機の各々は、前記データ格納領域の識別情報を含む前記データ格納領域に格納される前記キーバリュー型データを管理するためのキーバリュー型データ管理情報を保持し、
前記キーバリュー型データ管理部は、
前記キーバリュー型データの更新要求を受け付けた場合、前記データ格納領域を構成する前記記憶領域に格納される前記キーバリュー型データを更新し、
前記更新されたキーバリュー型データのリストであるダーティリストが生成されているか否かを判定し、
前記ダーティリストが生成されていると判定された場合、新たに更新されたキーバリュー型データを前記ダーティリストに追加し、
前記ダーティリストが生成されていないと判定された場合、前記ダーティリストを生成して、前記生成されたダーティリストへのポインタを前記キーバリュー型データ管理情報に設定し、
前記読出要求を受信した場合、前記読出要求に含まれる前記データ格納領域の識別情報に一致する前記キーバリュー型データ管理情報を検索し、
前記検索されたキーバリュー型データ管理情報の前記ダーティリストへのポインタに基づいて前記ダーティリストを参照して、前記処理対象のデータ格納領域に格納される前記キーバリュー型データの中から前記更新されたキーバリュー型データを取得することを特徴とする計算機システム。 - 請求項2に記載の計算機システムであって、
少なくとも一つの計算機は、前記ファイルの構成を管理するためのファイル管理情報を保持し、
前記ファイル管理情報は、前記ファイルの識別情報及び前記ファイルを格納するストレージ装置の情報を含み、
前記複数の計算機の各々は、前記データ格納領域の識別情報と、前記データ格納領域に格納される前記キーバリュー型データの元データである前記ファイルの識別情報とを対応付けたファイル配置情報を保持し、
前記永続化指示には処理対象のデータ格納領域の識別情報が含まれ、
前記ローダは、
前記更新されたキーバリュー型データを取得した後、前記ファイル管理情報を取得し、
前記永続化指示に含まれる前記処理対象のデータ格納領域の識別情報に対応する前記ファイル配置情報を参照して、前記処理対象のファイルを特定し、
前記処理対象のファイルに対応する前記ファイル管理情報を取得し、
前記処理対象のファイルに対応するファイル管理情報を参照して、前記処理対象のファイルを格納する前記ストレージ装置と接続する前記計算機を特定することを特徴とする計算機システム。 - 請求項3に記載の計算機システムであって、
前記少なくとも一つの計算機は、
前記ファイルにおけるレコードの構造を定義するレコード定義情報を保持し、
前記ファイル管理情報と前記レコード定義情報とを対応付けて管理し、
前記ローダは、
前記データ格納領域への新規ファイルの配置を指示するロード指示を受け付けた場合、前記ファイル管理情報及び前記レコード定義情報を取得し、
前記ファイル管理情報を参照して、前記新規ファイルを格納する前記ストレージ装置と接続される前記計算機から当該新規ファイルを取得し、
前記データ格納領域の識別情報と、前記新規ファイルの識別情報とを対応付けることによって前記ファイル配置情報を生成し、
前記新規ファイルに含まれる前記複数のレコードの各々から前記複数のキーバリュー型データを生成し、
前記レコード定義情報に基づいて、前記複数のレコードの各々の前記検索キー、前記バリューのサイズ、及び前記ファイルにおける前記レコードの位置を対応付けることによって、前記キーバリュー型データ構造情報を生成し、
前記複数のキーバリュー型データ管理部の各々に、前記複数の前記データ格納領域への前記複数のキーバリュー型データの配置要求を送信し、
前記複数の計算機に、前記ファイル配置情報及び前記キーバリュー型データ構造情報を送信することを特徴とする計算機システム。 - 請求項2に記載の計算機システムであって、
前記ストレージ装置に格納されるファイルは、一つのソースファイルが分割されたサブファイルであって、
少なくとも一つの計算機は、前記サブファイルの構成を管理するためのファイル管理情報を保持し、
前記ファイル管理情報は、前記サブファイルの識別情報及び前記サブファイルを格納するストレージ装置の識別情報を含み、
前記複数の計算機の各々は、前記データ格納領域の識別情報と、前記データ格納領域に格納される前記キーバリュー型データの元データである前記サブファイルの識別情報とを対応付けたファイル配置情報を保持し、
前記永続化指示には処理対象のデータ格納領域の識別情報が含まれ、
前記ローダは、
前記更新されたキーバリュー型データを取得した後、前記ファイル管理情報を取得し、
前記永続化指示に含まれる前記処理対象のデータ格納領域の識別情報に基づいて前記ファイル配置情報を参照して、前記処理対象のソースファイルを特定し、
前記処理対象のソースファイルに対応する前記ファイル管理情報を取得し、
前記処理対象のソースファイルに対応するファイル管理情報を参照して、前記処理対象のソースファイルに対応する前記サブファイルを格納する前記ストレージ装置と接続する前記計算機を特定することを特徴とする計算機システム。 - 請求項5に記載の計算機システムであって、
前記少なくとも一つの計算機は、
前記ファイルにおけるレコードの構造を定義するレコード定義情報を保持し、
前記ファイル管理情報と前記レコード定義情報とを対応付けて管理し、
前記ローダは、
前記データ格納領域への新規ソースファイルの配置を指示するロード指示を受け付けた場合、前記ファイル管理情報及び前記レコード定義情報を取得し、
前記ファイル管理情報に基づいて、前記新規ソースファイルが分割された前記複数のサブファイルを特定し、
前記複数のサブファイル毎に、前記サブファイルを格納する前記ストレージ装置と接続する前記計算機を特定し、
前記複数のサブファイル毎に、前記サブファイルに含まれる前記レコードを特定することによって、当該サブファイルを格納する前記ストレージ装置と接続する前記計算機が担当するレコードを決定し、
前記決定されたレコードの情報を含む前記サブファイルの配置を指示するロード指示を前記計算機に送信し、
前記ロード指示を受け付けた場合、前記ファイル管理情報及び前記レコード定義情報を取得し、
前記ファイル管理情報を参照して、前記ストレージ装置から前記決定されたレコードを含む前記サブファイルを取得し、
前記データ格納領域の識別情報と、前記サブファイルの識別情報とを対応付けることによって前記ファイル配置情報を生成し、
前記サブファイルに含まれる前記複数のレコードの各々から前記複数のキーバリュー型データを生成し、
前記レコード定義情報に基づいて、前記複数のレコードの各々の前記検索キー、前記バリューのサイズ、及び前記ファイルにおける前記レコードの位置を対応付けることによって、前記キーバリュー型データ構造情報を生成し、
前記複数のキーバリュー型データ管理部の各々に、前記複数の前記データ格納領域への前記複数のキーバリュー型データの配置要求を送信し、
前記複数の計算機に、前記ファイル配置情報及び前記キーバリュー型データ構造情報を送信することを特徴とする計算機システム。 - ネットワークを介して接続される複数の計算機を有する計算機システムにおけるデータ管理方法であって、
前記複数の計算機の各々は、
プロセッサ、前記プロセッサに接続されるメモリ及び前記プロセッサに接続されるネットワークインタフェースを有し、
複数のレコードを含むファイルを一以上格納するストレージ装置と接続し、
前記ストレージ装置に格納される前記ファイルを管理するファイルシステムと、
前記複数の計算機が有する記憶領域を統合することによってデータ格納領域を一つ以上生成し、前記データ格納領域に配置されたキーバリュー型データを管理するキーバリュー型データ管理部と、
前記ファイルを分割して、検索キーと前記レコードの内容を示すバリューとを対応づけることによって前記キーバリュー型データを生成し、前記生成されたキーバリュー型データを前記データ格納領域に分散して格納するローダと、を有し、
前記キーバリュー型データ毎に、前記検索キー、前記バリューのサイズ、及び前記キーバリュー型データに対応する前記レコードのファイルにおける位置が対応付けられたキーバリュー型データ構造情報を保持し、
前記データ管理方法は、
前記ローダが、更新された前記キーバリュー型データの前記ファイルへの反映を指示する永続化指示を受け付けた場合、前記複数の計算機の各々の前記キーバリュー型データ管理部に、前記更新されたキーバリュー型データを取得するための読出要求を送信する第1のステップと、
前記キーバリュー型データ管理部が、前記読出要求を受信した場合、前記データ格納領域を構成する前記記憶領域に格納される前記キーバリュー型データの中から前記更新されたキーバリュー型データを検索する第2のステップと、
前記キーバリュー型データ管理部が、前記読出要求を送信した前記ローダに前記更新されたキーバリュー型データを送信する第3のステップと、
前記ローダが、前記複数の計算機の各々のキーバリュー型データ管理部から取得された前記更新されたキーバリュー型データに基づいて、前記更新されたキーバリュー型データを反映させる処理対象のファイルを特定して、前記処理対象のファイルを格納する前記ストレージ装置と接続する前記計算機を特定する第4のステップと、
前記ローダが、前記特定された計算機に、前記更新されたキーバリュー型データを含むファイルの更新要求を送信する第5のステップと、
前記ファイルシステムが、前記ファイルの更新要求を受信した場合、前記キーバリュー型データ構造情報に基づいて、前記更新されたキーバリュー型データに対応する前記レコードの前記ファイルにおける位置を特定する第6のステップと、
前記ファイルシステムが、前記特定されたファイルの位置に、前記更新されたキーバリュー型データを書き込むことによって前記ファイルを更新する第7のステップと、を含むことを特徴とするデータ管理方法。 - 請求項7に記載のデータ管理方法であって、
前記読出要求は処理対象のデータ格納領域の識別情報を含み、
前記複数の計算機の各々は、前記データ格納領域の識別情報を含む前記データ格納領域に格納される前記キーバリュー型データを管理するためのキーバリュー型データ管理情報を保持し、
前記データ管理方法は、
前記キーバリュー型データ管理部が、前記キーバリュー型データの更新要求を受け付けた場合、前記データ格納領域を構成する前記記憶領域に格納される前記キーバリュー型データを更新するステップと、
前記キーバリュー型データ管理部が、前記更新されたキーバリュー型データのリストであるダーティリストが生成されているか否かを判定するステップと、
前記キーバリュー型データ管理部が、前記ダーティリストが生成されていると判定された場合、新たに更新されたキーバリュー型データを前記ダーティリストに追加するステップと、
前記キーバリュー型データ管理部が、前記ダーティリストが生成されていないと判定された場合、前記ダーティリストを生成して、前記生成されたダーティリストへのポインタを前記キーバリュー型データ管理情報に設定するステップと、を含み、
前記第2のステップは、
前記読出要求に含まれる前記データ格納領域の識別情報に一致する前記キーバリュー型データ管理情報を検索するステップと、
前記検索されたキーバリュー型データ管理情報の前記ダーティリストへのポインタに基づいて前記ダーティリストを参照して、前記処理対象のデータ格納領域に格納される前記キーバリュー型データの中から前記更新されたキーバリュー型データを取得するステップと、を含むことを特徴とするデータ管理方法。 - 請求項8に記載のデータ管理方法であって、
少なくとも一つの計算機は、前記ファイルの構成を管理するためのファイル管理情報を保持し、
前記ファイル管理情報は、前記ファイルの識別情報及び前記ファイルを格納するストレージ装置の情報を含み、
前記複数の計算機の各々は、前記データ格納領域の識別情報と、前記データ格納領域に格納される前記キーバリュー型データの元データである前記ファイルの識別情報とを対応付けたファイル配置情報を保持し、
前記永続化指示には処理対象のデータ格納領域の識別情報が含まれ、
前記第4のステップは、
前記ファイル管理情報を取得するステップと、
前記永続化指示に含まれる前記処理対象のデータ格納領域の識別情報に対応する前記ファイル配置情報を参照して、前記処理対象のファイルを特定するステップと、
前記処理対象のファイルに対応する前記ファイル管理情報を取得するステップと、
前記処理対象のファイルに対応するファイル管理情報を参照して、前記処理対象のファイルを格納する前記ストレージ装置と接続する前記計算機を特定するステップと、を含むことを特徴とするデータ管理方法。 - 請求項9に記載のデータ管理方法であって、
前記少なくとも一つの計算機は、
前記ファイルにおけるレコードの構造を定義するレコード定義情報を保持し、
前記ファイル管理情報と前記レコード定義情報とを対応付けて管理し、
前記データ管理方法は、
前記ローダが、前記データ格納領域への新規ファイルの配置を指示するロード指示を受け付けた場合、前記ファイル管理情報及び前記レコード定義情報を取得するステップと、
前記ローダが、前記ファイル管理情報を参照して、前記新規ファイルを格納する前記ストレージ装置と接続される前記計算機から当該新規ファイルを取得するステップと、
前記ローダが、前記データ格納領域の識別情報と、前記新規ファイルの識別情報とを対応付けることによって前記ファイル配置情報を生成するステップと、
前記ローダが、前記新規ファイルに含まれる前記複数のレコードの各々から前記複数のキーバリュー型データを生成するステップと、
前記ローダが、前記レコード定義情報に基づいて、前記複数のレコードの各々の前記検索キー、前記バリューのサイズ、及び前記ファイルにおける前記レコードの位置を対応付けることによって、前記キーバリュー型データ構造情報を生成するステップと、
前記ローダが、前記複数のキーバリュー型データ管理部の各々に、前記複数の前記データ格納領域への前記複数のキーバリュー型データの配置要求を送信するステップと、
前記ローダが、前記複数の計算機に、前記ファイル配置情報及び前記キーバリュー型データ構造情報を送信するステップと、を含むことを特徴とするデータ管理方法。 - 請求項8に記載のデータ管理方法であって、
前記ストレージ装置に格納されるファイルは、一つのソースファイルが分割されたサブファイルであって、
少なくとも一つの計算機は、前記サブファイルの構成を管理するためのファイル管理情報を保持し、
前記ファイル管理情報は、前記サブファイルの識別情報及び前記サブファイルを格納するストレージ装置の識別情報を含み、
前記複数の計算機の各々は、前記データ格納領域の識別情報と、前記データ格納領域に格納される前記キーバリュー型データの元データである前記サブファイルの識別情報とを対応付けたファイル配置情報を保持し、
前記永続化指示には処理対象のデータ格納領域の識別情報が含まれ、
前記第4のステップは、
前記更新されたキーバリュー型データを取得した後、前記ファイル管理情報を取得するステップと、
前記永続化指示に含まれる前記処理対象のデータ格納領域の識別情報に基づいて前記ファイル配置情報を参照して、前記処理対象のソースファイルを特定するステップと、
前記処理対象のソースファイルに対応する前記ファイル管理情報を取得するステップと、
前記処理対象のソースファイルに対応するファイル管理情報を参照して、前記処理対象のソースファイルに対応する前記サブファイルを格納する前記ストレージ装置と接続する前記計算機を特定するステップと、を含むことを特徴とするデータ管理方法。 - 請求項11に記載のデータ管理方法であって、
前記少なくとも一つの計算機は、
前記ファイルにおけるレコードの構造を定義するレコード定義情報を保持し、
前記ファイル管理情報と前記レコード定義情報とを対応付けて管理し、
前記データ管理方法は、
前記ローダが、前記データ格納領域への新規ソースファイルの配置を指示するロード指示を受け付けた場合、前記ファイル管理情報及び前記レコード定義情報を取得するステップと、
前記ローダが、前記ファイル管理情報に基づいて、前記新規ソースファイルが分割された前記複数のサブファイルを特定するステップと、
前記ローダが、前記複数のサブファイル毎に、前記サブファイルを格納する前記ストレージ装置と接続する前記計算機を特定するステップと、
前記ローダが、前記複数のサブファイル毎に、前記サブファイルに含まれる前記レコードを特定することによって、当該サブファイルを格納する前記ストレージ装置と接続する前記計算機が担当するレコードを決定するステップと、
前記ローダが、前記決定されたレコードの情報を含む前記サブファイルの配置を指示するロード指示を前記計算機に送信するステップと、
前記ローダが、前記ロード指示を受け付けた場合、前記ファイル管理情報及び前記レコード定義情報を取得するステップと、
前記ローダが、前記ファイル管理情報を参照して、前記ストレージ装置から前記決定されたレコードを含む前記サブファイルを取得するステップと、
前記ローダが、前記データ格納領域の識別情報と、前記サブファイルの識別情報とを対応付けることによって前記ファイル配置情報を生成するステップと、
前記ローダが、前記サブファイルに含まれる前記複数のレコードの各々から前記複数のキーバリュー型データを生成するステップと、
前記ローダが、前記レコード定義情報に基づいて、前記複数のレコードの各々の前記検索キー、前記バリューのサイズ、及び前記ファイルにおける前記レコードの位置を対応付けることによって、前記キーバリュー型データ構造情報を生成するステップと、
前記ローダが、前記複数のキーバリュー型データ管理部の各々に、前記複数の前記データ格納領域への前記複数のキーバリュー型データの配置要求を送信するステップと、
前記複数の計算機に、前記ファイル配置情報及び前記キーバリュー型データ構造情報を送信するステップと、を含むことを特徴とするデータ管理方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2013/084631 WO2015097774A1 (ja) | 2013-12-25 | 2013-12-25 | 計算機システム及びデータ管理方法 |
JP2015554353A JP6034512B2 (ja) | 2013-12-25 | 2013-12-25 | 計算機システム及びデータ管理方法 |
US14/770,659 US9934248B2 (en) | 2013-12-25 | 2013-12-25 | Computer system and data management method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2013/084631 WO2015097774A1 (ja) | 2013-12-25 | 2013-12-25 | 計算機システム及びデータ管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2015097774A1 true WO2015097774A1 (ja) | 2015-07-02 |
Family
ID=53477716
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2013/084631 WO2015097774A1 (ja) | 2013-12-25 | 2013-12-25 | 計算機システム及びデータ管理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9934248B2 (ja) |
JP (1) | JP6034512B2 (ja) |
WO (1) | WO2015097774A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019030883A1 (ja) * | 2017-08-10 | 2019-02-14 | 株式会社日立製作所 | 計算機システムおよびデータ処理方法 |
CN111552596A (zh) * | 2015-07-22 | 2020-08-18 | 奥普塔姆软件股份有限公司 | 紧凑二进制事件日志生成方法及系统 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016138657A1 (en) * | 2015-03-05 | 2016-09-09 | Intel Corporation | Techniques for storing or accessing key-value item |
US10742491B2 (en) | 2017-07-20 | 2020-08-11 | Vmware, Inc. | Reducing initial network launch time of container applications |
US9934287B1 (en) * | 2017-07-25 | 2018-04-03 | Capital One Services, Llc | Systems and methods for expedited large file processing |
US10922096B2 (en) * | 2018-02-28 | 2021-02-16 | Vmware, Inc. | Reducing subsequent network launch time of container applications |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010198258A (ja) * | 2009-02-25 | 2010-09-09 | Nippon Telegr & Teleph Corp <Ntt> | キャッシュメンテナンス装置、その方法及びそのプログラム |
WO2010114006A1 (ja) * | 2009-03-31 | 2010-10-07 | 日本電気株式会社 | ストレージシステムとストレージアクセス方法とプログラム |
WO2012114531A1 (ja) * | 2011-02-23 | 2012-08-30 | 株式会社日立製作所 | 計算機システム及びデータ管理方法 |
JP2013004067A (ja) * | 2011-06-22 | 2013-01-07 | Nippon Telegr & Teleph Corp <Ntt> | ストレージシステム、ストレージ制御方法、プログラム |
JP2013088920A (ja) * | 2011-10-14 | 2013-05-13 | Hitachi Ltd | 計算機システム及びデータ管理方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5439236B2 (ja) | 2010-03-12 | 2014-03-12 | 株式会社日立製作所 | 計算機システムおよびアプリケーションプログラムの実行方法 |
US9838242B2 (en) * | 2011-04-13 | 2017-12-05 | Jetflow Technologies | Flowlet-based processing with key/value store checkpointing |
US8676951B2 (en) * | 2011-07-27 | 2014-03-18 | Hitachi, Ltd. | Traffic reduction method for distributed key-value store |
JP5524144B2 (ja) * | 2011-08-08 | 2014-06-18 | 株式会社東芝 | key−valueストア方式を有するメモリシステム |
JP5762878B2 (ja) * | 2011-08-08 | 2015-08-12 | 株式会社東芝 | key−valueストアを有するメモリシステム |
US20130332608A1 (en) * | 2012-06-06 | 2013-12-12 | Hitachi, Ltd. | Load balancing for distributed key-value store |
JP6025149B2 (ja) * | 2013-11-06 | 2016-11-16 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | データを管理するシステムおよび方法 |
US9323457B2 (en) * | 2013-12-09 | 2016-04-26 | Xilinx, Inc. | Memory arrangement for implementation of high-throughput key-value stores |
-
2013
- 2013-12-25 US US14/770,659 patent/US9934248B2/en active Active
- 2013-12-25 JP JP2015554353A patent/JP6034512B2/ja active Active
- 2013-12-25 WO PCT/JP2013/084631 patent/WO2015097774A1/ja active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010198258A (ja) * | 2009-02-25 | 2010-09-09 | Nippon Telegr & Teleph Corp <Ntt> | キャッシュメンテナンス装置、その方法及びそのプログラム |
WO2010114006A1 (ja) * | 2009-03-31 | 2010-10-07 | 日本電気株式会社 | ストレージシステムとストレージアクセス方法とプログラム |
WO2012114531A1 (ja) * | 2011-02-23 | 2012-08-30 | 株式会社日立製作所 | 計算機システム及びデータ管理方法 |
JP2013004067A (ja) * | 2011-06-22 | 2013-01-07 | Nippon Telegr & Teleph Corp <Ntt> | ストレージシステム、ストレージ制御方法、プログラム |
JP2013088920A (ja) * | 2011-10-14 | 2013-05-13 | Hitachi Ltd | 計算機システム及びデータ管理方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111552596A (zh) * | 2015-07-22 | 2020-08-18 | 奥普塔姆软件股份有限公司 | 紧凑二进制事件日志生成方法及系统 |
WO2019030883A1 (ja) * | 2017-08-10 | 2019-02-14 | 株式会社日立製作所 | 計算機システムおよびデータ処理方法 |
US11030218B2 (en) | 2017-08-10 | 2021-06-08 | Hitachi, Ltd. | Computer system and data processing method |
Also Published As
Publication number | Publication date |
---|---|
US20160012075A1 (en) | 2016-01-14 |
US9934248B2 (en) | 2018-04-03 |
JPWO2015097774A1 (ja) | 2017-03-23 |
JP6034512B2 (ja) | 2016-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6034512B2 (ja) | 計算機システム及びデータ管理方法 | |
US7849282B2 (en) | Filesystem building method | |
US7765189B2 (en) | Data migration apparatus, method, and program for data stored in a distributed manner | |
US10242050B2 (en) | Database caching in a database system | |
JP5775177B2 (ja) | クローンファイル作成方法と、それを用いたファイルシステム | |
JP5589205B2 (ja) | 計算機システム及びデータ管理方法 | |
CN102169507B (zh) | 一种分布式实时搜索引擎的实现方法 | |
CN110321301B (zh) | 一种数据处理的方法及装置 | |
CN103154948B (zh) | 可丢弃文件的基于卡的管理 | |
CN110062925A (zh) | 用于云集成的快照元数据布置 | |
US20110153606A1 (en) | Apparatus and method of managing metadata in asymmetric distributed file system | |
CN110119425A (zh) | 固态驱动器、分布式数据存储系统和利用键值存储的方法 | |
US20120005307A1 (en) | Storage virtualization | |
US20160364407A1 (en) | Method and Device for Responding to Request, and Distributed File System | |
KR20170068564A (ko) | 데이터 처리 방법, 장치 및 시스템 | |
US10503693B1 (en) | Method and system for parallel file operation in distributed data storage system with mixed types of storage media | |
NO326041B1 (no) | Fremgangsmate til administrasjon av datalagring i et system for soking og gjenfinning av informasjon | |
JP5439236B2 (ja) | 計算機システムおよびアプリケーションプログラムの実行方法 | |
US20120005233A1 (en) | Computer system and recording medium | |
KR20080033264A (ko) | 공간을 비워두기 위해 저장 볼륨 상의 파일로부터 대안의장소로의 데이터 이동 | |
CN113853778A (zh) | 一种文件系统的克隆方法及装置 | |
KR101341412B1 (ko) | 비대칭 분산 파일 시스템에서의 메타데이터 관리 장치 및 방법 | |
US10521398B1 (en) | Tracking version families in a file system | |
US9483199B1 (en) | Data deduplication using multiple devices | |
US8868970B2 (en) | Object based storage system and method of operating thereof |
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: 13900075 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2015554353 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 14770659 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 13900075 Country of ref document: EP Kind code of ref document: A1 |