WO2022038935A1 - 情報処理装置、情報処理方法、及び情報処理プログラム - Google Patents
情報処理装置、情報処理方法、及び情報処理プログラム Download PDFInfo
- Publication number
- WO2022038935A1 WO2022038935A1 PCT/JP2021/026635 JP2021026635W WO2022038935A1 WO 2022038935 A1 WO2022038935 A1 WO 2022038935A1 JP 2021026635 W JP2021026635 W JP 2021026635W WO 2022038935 A1 WO2022038935 A1 WO 2022038935A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- information processing
- distribution
- stored
- rule
- distribution rule
- Prior art date
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 76
- 238000003672 processing method Methods 0.000 title claims description 7
- 238000003860 storage Methods 0.000 claims abstract description 94
- 238000009826 distribution Methods 0.000 claims description 173
- 238000000034 method Methods 0.000 claims description 30
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Definitions
- the disclosed technology relates to information processing devices, information processing methods, and information processing programs.
- the following techniques are known as techniques for determining the transfer destination of an object based on preset rules.
- Japanese Patent Application Laid-Open No. 2017-184195 describes a transfer destination of an object based on an identifier uniquely assigned to the object in a plurality of communication devices in a path for transmitting the object to any of a plurality of real storage nodes. It is described that when setting including one rule, the identifier is assigned to one of a plurality of real storage nodes based on the first allocation relationship and the connection relationship of a plurality of communication devices and a plurality of real storage nodes. Has been done.
- an operation request is received by the switch, the operation request carries the request identification, and the request identification is the user.
- a flow table that contains at least one of group information and storage policy information, queries the switch flow table according to the request identification by the switch, obtains a flow table entry that matches the operation request, and is matched by the switch. It is described that the operation request is transferred from the storage device to the target storage device according to the transfer rule of the entry.
- the object update process in the object storage system is not overwriting and saving the existing object, but the updated object is stored in the storage node as an object different from the existing object.
- a plurality of storage nodes are prepared, and the objects transmitted from the users are distributed to the objects of the plurality of storage nodes based on the preset distribution rules. It is distributed to either one.
- the update object which is an update of the existing object distributed according to the old rule
- the new rule may be distributed according to the new rule, and as a result, the update object is stored in the storage node different from the storage node in which the existing object is stored. In some cases. In this way, if the existing object and the updated object are stored in different storage nodes, it may be difficult to identify the latest object.
- the disclosed technology was made in view of the above circumstances, and even if there are multiple distribution rules for distributing objects to any of multiple storage nodes, it is easy to identify the latest objects.
- the purpose The purpose.
- the information processing device is equipped with at least one processor, and distributes the object to be stored to one of a plurality of storage nodes according to a preset distribution rule.
- the processor accepts the object to be stored, identifies the distribution rule to be applied based on the first part associated with the distribution rule included in the identification information of the received object, and accepts it according to the specified distribution rule. Distribute the object to one of multiple storage nodes.
- the first part may include a numerical value, and a plurality of distribution rules may be associated with a predetermined range for the above numerical value.
- the processor may specify the distribution rule to be applied from the plurality of distribution rules based on the above numerical values.
- the above numerical value may be a numerical value that increases with the passage of time.
- the above numerical value may include the numerical value corresponding to the creation date of the object to be stored.
- the first part may include a character string, and a plurality of distribution rules may be associated with a range of order according to a predetermined order rule for the above character string.
- the processor may specify the distribution rule to be applied from the plurality of distribution rules based on the above character string.
- the distribution rule may be updated with the addition of the storage node.
- the added storage node may not be included as the distribution destination according to the relatively old distribution rule, and the added storage node may be included as the distribution destination according to the relatively new distribution rule. good.
- the processor may determine the storage node to which the object to be stored is distributed based on the identification information of the object.
- the identification information of the object may further include a second part, in which case the processor may determine a storage node to which the object to be stored is distributed based on the second part.
- the processor may determine the storage node to which the object to be stored is to be distributed, based on the value of the remainder when the hash value of the second part is divided by the divisor according to the distribution rule to be applied.
- the information processing method is an information processing method in which an object to be stored is distributed to one of a plurality of storage nodes according to a preset distribution rule, and the object to be stored is received and accepted. Based on the first part associated with the distribution rule included in the identification information, the distribution rule to be applied is specified, and the received object is distributed to one of a plurality of storage nodes according to the specified distribution rule. It is an information processing method executed by at least one processor included in the information processing apparatus.
- the information processing program is information processing for causing at least one processor of the information processing apparatus to execute a process of distributing an object to be stored to one of a plurality of storage nodes according to a preset distribution rule.
- the program accepts the object to be stored, specifies the distribution rule to be applied based on the first part associated with the distribution rule included in the identification information of the received object, and follows the specified distribution rule.
- FIG. 1 is a diagram showing an example of the configuration of the storage system 100 according to the embodiment of the disclosed technology.
- the storage system 100 includes an information processing device 10 and a server [1] 20A to a server [5] 20E.
- the storage system 100 is connected to the terminal device 50 via the network 40.
- the terminal device 50 is a computer used by a user who uses the storage system 100.
- the storage system 100 stores the object 30 requested to be stored by the terminal device 50, and when the terminal device 50 requests to read the object, the storage system 100 reads the requested object and transmits the requested object to the terminal device 50.
- the object 30 includes a data body and metadata about the data body.
- Each of the server [1] 20A to the server [5] 20E constitutes a storage node, and the object requested to be stored by the terminal device 50 is any one of the server [1] 20A to the server [5] 20E.
- FIG. 1 illustrates five servers constituting the storage node, the number of servers included in the storage system 100 can be increased or decreased as appropriate.
- the information processing device 10 functions as a load balancer that distributes the load of the server [1] 20A to the server [5] 20E.
- the information processing apparatus 10 is connected to each of the server [1] 20A to the server [5] 20E.
- the object 30 requested to be stored by the terminal device 50 is supplied to the information processing device 10.
- the information processing device 10 distributes the object 30 to be stored supplied from the terminal device 50 to any of the server [1] 20A to the server [5] 20E according to a predetermined distribution rule.
- the distribution rule may specify, for example, the distribution ratio (distribution rate) of objects to each of the server [1] 20A to the server [5] 20E.
- the update object that is the update of the existing object is regarded as an object different from the existing object.
- the update of the object in the storage system 100 is performed not by the so-called “overwriting of data” but by "addition of the update object".
- the update object is given the same identification information as the corresponding existing object.
- the identification information may be an object key which is a UUID (Universally Unique Identifier) for uniquely identifying an object.
- FIG. 2 is a diagram showing an example of the hardware configuration of the information processing apparatus 10.
- the information processing device 10 includes a CPU (Central Processing Unit) 11, a memory 12 as a temporary storage area, and a non-volatile storage unit 13. Further, the information processing apparatus 10 includes a network interface 14 connected to the network 40, and an external interface 15 to which the server [1] 20A to the server [5] 20E are connected.
- the CPU 11, the memory 12, the storage unit 13, the network interface 14, and the external interface 15 are connected to the bus 16.
- the storage unit 13 is realized by a storage medium such as an HDD (Hard Disk Drive), an SSD (Solid State Drive), or a flash memory.
- the information processing program 60 and the rule information 61 which will be described later, are stored in the storage unit 13.
- the CPU 11 reads the information processing program 60 from the storage unit 13, expands it into the memory 12, and executes it.
- the CPU 11 is an example of a processor in the disclosed technology.
- Access to the storage system 100 is performed, for example, via a management console displayed on a web browser operating on the terminal device 50.
- the user When storing an object in the storage system 100, the user creates a bucket on the management console and arranges the object to be stored in the bucket.
- a bucket is a virtual storage area that accepts objects to be stored. The user can create multiple buckets.
- the object is sent to the storage system 100, and the server [1] ] 20A to server [5] 20E.
- the distribution rule when the information processing device 10 distributes the object to be stored to the server [1] 20A to the server [5] 20E is associated with the bucket.
- the contents of the distribution rule are stored as rule information 61 in the storage unit 13 of the information processing apparatus 10.
- FIG. 3 is a diagram showing an example of rule information 61 stored in the storage unit 13 of the information processing device 10.
- the storage unit 13 of the information processing apparatus 10 contains a distribution rule (hereinafter referred to as an old rule) determined at the time of creation of the bucket created before the addition of the server [4] 20D and the server [5] 20E, and the server [ 4]
- the distribution rule (hereinafter referred to as a new rule) formulated after the addition of the 20D and the server [5] 20E is stored as the rule information 61.
- the old rule does not assume the existence of the server [4] 20D and the server [5] 20E. Therefore, the added server [4] 20D and the server [4] 20D and the server [4] 20D are distributed to the objects according to the old rule. 5] It is normal that 20E is not included.
- the distribution ratio of the object to the server [1] 20A is 50%
- the distribution ratio of the object to the server [2] 20B is 25%
- the distribution ratio to the server [3] 20C is set to 25%. It is stipulated that the distribution ratio of objects is 25% (distribution ratio 2: 1: 1).
- the distribution ratio of the objects can be determined, for example, according to the processing capacity of the server. That is, the distribution ratio of the object to the server having higher processing power may be set higher. As a result, the load including the processing capacity of the server can be made uniform.
- the distribution rule formulated at the time of creating the bucket can be changed. That is, when a server functioning as a storage node is newly added, a new rule in which the added server is included in the distribution destination is newly formulated and added to the rule information 61.
- the distribution ratio of the object to the server [1] 20A is set to 20%
- the distribution ratio of the object to the server [2] 20B is set to 10%
- the distribution ratio to the server [3] 20C is set.
- the distribution ratio of the objects is 10%
- the distribution ratio of the objects 30 to the server [4] 20D is 30%
- the distribution ratio of the objects to the server [5] 20E is 30% (distribution ratio 2: 1: 1: 1: 3: 3) is specified.
- the information processing apparatus 10 when the bucket is created, the information processing apparatus 10 generates a distribution rule according to the number of servers included in the storage system 100 at that time, the processing capacity of each server, and the like, and stores this as rule information 61 in the storage unit 13. save. Further, for example, when the server is added, the information processing apparatus 10 generates a new distribution rule including the added server in the distribution destination of the object, and adds this to the rule information 61.
- the information processing device 10 may generate distribution rules so that the load including the processing capacity of the server installed at that time is even. Further, when the information processing apparatus 10 generates old and new distribution rules, the rule information 61 includes history information indicating which distribution rule is the latest.
- the distribution rule is updated with the addition of the server functioning as the storage node.
- the distribution destination according to the relatively old distribution rule does not include the added server, and the distribution destination according to the relatively new distribution rule includes the added server.
- the example shown in FIG. 3 shows a case where two distribution rules, an old rule and a new rule, are included in the rule information 61, but the present invention is not limited to this mode.
- the rule information 61 includes three or more distribution rules.
- the distribution rule can be arbitrarily set and changed by the administrator of the information processing apparatus 10.
- FIG. 4 is a functional block diagram showing an example of a functional configuration of the information processing apparatus 10 when an object is distributed to each server constituting a storage node.
- the information processing apparatus 10 includes a reception unit 70, a specific unit 71, a determination unit 72, and a transmission unit 73.
- the CPU 11 executes the information processing program 60, the information processing apparatus 10 functions as a reception unit 70, a specific unit 71, a determination unit 72, and a transmission unit 73.
- the object to be stored is sent to the storage system 100.
- the reception unit 70 receives the object to be stored transmitted from the terminal device 50.
- the specific unit 71 specifies the distribution rule to be applied to the object to be stored received by the reception unit 70 among the plurality of distribution rules included in the rule information 61 stored in the storage unit 13.
- the identification unit 71 specifies the distribution rule to be applied based on the identification information given to the object to be stored.
- FIG. 5 is a diagram showing an example of identification information given to an object.
- FIG. 5 exemplifies an object 1 to which the identification information of 2018/01/25 / foo.txt is given and an object 2 to which the identification information of 2020/08/03 / bar.txt is given.
- the first part 201 which is the part of 2018/01/25 / included in the identification information of the object 1 and the part of 2020/08/03 / included in the identification information of the object 2, corresponds to the prefix in the object key. It is a part.
- the part of foo.txt included in the identification information of the object 1 and the second part 202 which is the part of bar.txt included in the identification information of the object 2 are the parts corresponding to the object names in the object key. It should be noted that at least one of the space between the first portion 201 and the second portion 202 and the front of the first portion 201 may include another portion of the identification information.
- the specifying unit 71 specifies a distribution rule to be applied based on the first part 201 included in the identification information of the object to be stored.
- the first portion 201 may include a numerical value. This numerical value may be a numerical value that increases with the passage of time, such as the creation date of the object.
- the object 1 is an object created on May 25, 2018, and the object 2 is an object created on August 3, 2020.
- the plurality of distribution rules included in the rule information 61 are associated with a predetermined range for this numerical value.
- the old rule illustrated in FIG. 3 is associated with, for example, the numerical range “2018/01/01 to 2019/12/31”. This means that the old rules apply to objects created between January 1, 2018 and December 31, 2019.
- the new rule illustrated in FIG. 3 is associated with, for example, the numerical range “2020/01/01 ⁇ ”. This means that the new rules will apply to objects created after January 1, 2020.
- the first part 201 includes the numerical value “2018/01/25” and the numerical range “2018/01 / 01-2019 / 12/31”.
- the first part 201 includes the numerical value “2020/08/03” and is included in the numerical range “2020/01/01 ⁇ ”, so that the new rule is applied.
- the correspondence between the range of numerical values included in the first portion 201 and the distribution rule to be applied may be included in the rule information 61, or is stored in the storage unit 13 separately from the rule information 61. May be good.
- the determination unit 72 determines the server to be the distribution destination according to the distribution rule specified by the specific unit 71 by the following procedure based on the second part 202 included in the identification information of the object to be stored.
- the determination unit 72 calculates the hash value a of the second portion 202 included in the identification information of the object to be stored.
- the determination unit 72 calculates the remainder c when the hash value a is divided by the divisor b determined according to the distribution rule to be applied.
- the determination unit 72 determines the server associated with the value of the remainder c as the distribution destination of the object to be stored.
- the destination is determined to the server [1] 20A and the remainder c is 2
- the distribution destination of the object to be stored is determined to the server [2] 20B, and when the remainder c is 3, the distribution of the object to be stored is distributed.
- the destination is determined to be the server [3] 20C.
- the destination is determined to be the server [3] 20C.
- FIG. 6A it is possible to distribute the objects to be stored to the server [1] 20A to the server [3] 20C at a distribution ratio (2: 1: 1) according to the old rule. Become.
- the remainder c when the hash value a of the object to be stored is divided by the divisor b ( 10) is 0 or 1
- the determination unit 72 determines the distribution destination of the object to be stored to the server [1] 20A.
- the distribution destination of the object to be stored is determined to be the server [2] 20B, and if the remainder c is 3, the distribution destination of the object to be stored is determined to the server [3] 20C. If the remainder c is 4, 5 or 6, the distribution destination of the object to be stored is determined to the server [4] 20D, and if the remainder c is 7, 8 or 9, the distribution destination of the object to be stored is determined.
- Server [5] Determined to 20E. As a result, as shown in FIG. 6B, it is possible to distribute the objects to be stored to each server at a distribution ratio (2: 1: 1: 3: 3) according to the new rule illustrated in FIG. Become.
- the distribution destination is determined according to the remainder c when the hash value a of the second part 202 included in the identification information of the object to be stored is divided by the divisor b determined according to the distribution rule to be applied. By doing so, it becomes possible to distribute the object to be stored to the server at a distribution ratio according to the applicable distribution rule.
- the correspondence between the remainder c and the distribution destination server for each distribution rule may be included in the rule information 61, or may be stored in the storage unit 13 separately from the rule information 61.
- the transmission unit 73 transmits the object to be stored to the distribution destination server determined by the determination unit 72 among the server [1] 20A to the server [5] 20E.
- the object to be stored is stored in a storage medium such as a hard disk provided in the distribution destination server.
- the update object which is an update of the existing object
- the storage system 100 as an object different from the existing object. That is, the update of the object in the storage system 100 is performed not by the so-called "overwriting of data” but by "addition of the update object".
- the update object is stored in a server different from the server in which the corresponding existing object is stored, it becomes difficult to identify the latest object.
- the information processing apparatus 10 can distribute the updated object according to the same distribution rule as the distribution rule applied to the existing object.
- the information processing apparatus 10 divides the hash value a of the second portion 202 included in the identification information of the object by the divisor b determined according to the selected distribution rule to the remainder c.
- the distribution destination is decided accordingly. Since the update object is given the same identification information as the existing object, the remainder c calculated for the update object is the same as the remainder c calculated for the existing object. Therefore, the information processing apparatus 10 can distribute the update object to the same server as the server in which the existing object is stored.
- FIG. 7 is a flowchart showing an example of a processing flow executed by the CPU 11 executing the information processing program 60.
- the information processing program 60 is executed, for example, when there is a request for storing an object from the terminal device 50. It is assumed that the rule information 61 is stored in the storage unit 13 in advance.
- step S1 the reception unit 70 receives the object to be stored transmitted from the terminal device 50.
- the specifying unit 71 specifies a distribution rule to be applied to the object received in step S1 based on the first part 201 included in the identification information given to the object. For example, when the first portion 201 includes a numerical value, the plurality of distribution rules included in the rule information 61 are associated with a predetermined range for this numerical value. In this case, the specific unit 71 determines to which range the numerical value included in the first portion 201 of the object to be stored is included in the predetermined range for this numerical value, and corresponds to the determined range.
- the distribution rule to be applied is specified as the distribution rule to be applied to the object received in step S1.
- step S3 the determination unit 72 performs a determination process of determining the distribution destination according to the distribution rule specified in step S2 from the server [1] 20A to the server [5] 20E.
- FIG. 8 is a flowchart showing the details of the determination process. Hereinafter, the determination process will be described with reference to the flowchart of FIG.
- step S11 the determination unit 72 calculates the hash value a of the second portion 202 included in the identification information of the object received in step S1.
- step S12 the determination unit 72 calculates the remainder c when the hash value a is divided by the divisor b determined according to the distribution rule specified in step S2.
- step S13 the determination unit 72 determines the distribution destination of the object received in step S1 based on the value of the remainder c calculated in step S12.
- step S4 the transmission unit 73 transmits the object received in step S1 to the server to be the distribution destination determined in step S3.
- the object is stored in a storage medium such as a hard disk provided in the distribution destination server.
- the information processing apparatus 10 when a server functioning as a storage node is added, a new distribution rule including the added server is generated as an object distribution destination. Therefore, the added server can be used efficiently.
- the updated object which is an update of the existing object distributed according to the past distribution rule
- the update object may be stored on a server different from the server where the existing object is stored. If existing objects and updated objects are stored on different servers, it may be difficult to identify the latest objects.
- the distribution rule to be applied is specified based on the first portion 201 included in the identification information of the object to be stored, and the object to be stored is according to the specified distribution rule. Is distributed to one of multiple servers.
- the information processing apparatus 10 can distribute the update object according to the same distribution rule as the distribution rule applied to the existing object. .. Further, since the information processing apparatus 10 determines the server to which the object is distributed based on the portion 202 of the second portion 202 included in the identification information of the object, the server is updated to the same server as the server in which the existing object is stored. It is possible to sort objects.
- the information processing apparatus 10 it is possible to easily identify the latest object even when there are a plurality of distribution rules. In addition, it is possible to sort the objects to be stored in a shorter processing time as compared with the case of making an inquiry to each server.
- the first portion 201 in the identification information of the object includes a numerical value that increases with the passage of time, such as the creation date of the object, and a plurality of distribution rules are within a range predetermined for the above numerical value. Is associated with. This makes it possible to easily and appropriately use the old and new distribution rules.
- FIG. 9 is a diagram showing another example of the identification information given to the object.
- the object 3 to which the identification information of AAX / foo.txt is given the object 4 to which the identification information of ABC / bar.txt is given, and the object to which the identification information of BAA / apel.txt are given are shown. 5 and are exemplified.
- the first part 201 which is the AAX / part included in the identification information of the object 3, the ABC / part included in the identification information of the object 4, and the BAA / part included in the identification information of the object 5, is an object key. It is the part corresponding to the prefix in.
- the second part 202 which is the part of foo.txt included in the identification information of the object 3, the part of bar.txt included in the identification information of the object 4, and the part of apel.txt included in the identification information of the object 5, is , The part corresponding to the object name in the object key.
- the first part 201 of the object identification information may include a character string.
- the character string may include a numerical value.
- the plurality of distribution rules included in the rule information 61 are associated with the range defined for this character string. Specifically, the plurality of distribution rules are associated with a range of orders according to predetermined order rules for character strings, such as dictionary order or ascending or descending order in Unicode values.
- the old rule illustrated in FIG. 3 is associated with a character string starting with "A”
- the new rule illustrated in FIG. 3 is associated with a character string starting with a character after "B" in the dictionary order.
- the old rule is applied because the first part 201 includes a character string starting with "A”.
- the new rule is applied because the first part 201 includes a character string starting with "B”.
- the correspondence between the range of the character string included in the first portion 201 and the distribution rule to be applied may be included in the rule information 61, or is stored in the storage unit 13 separately from the rule information 61. You may.
- the information processing apparatus 10 distributes the updated object according to the same distribution rule as the distribution rule applied to the existing object. It is also possible to distribute the update object to the same server where the existing object is stored.
- the determination unit 72 may determine the server to be distributed based on all the parts of the identification information including both the first part 201 and the second part 202. In this case, the determination unit 72 calculates the hash value a for all the parts of the identification information including the first part 201 and the second part 202, and determines the hash value a by the divisor b determined according to the distribution rule to be applied. The remainder c when divided may be calculated, and the server corresponding to the remainder c may be determined as the server to be distributed.
- the distribution rule is changed with the addition of the server functioning as the storage node, but the present invention is not limited to this mode.
- the distribution rule can be changed at any time.
- the server that is the distribution destination that follows the past distribution rules and the server that is the distribution destination that follows the latest distribution rules may be partially matched, may be completely matched, or may be completely disagreeable. It may be.
- the hardware structure of the processing unit (processing unit) that executes various processes such as the reception unit 70, the specific unit 71, the determination unit 72, and the transmission unit 73 is as shown below.
- Processor can be used.
- the various processors include a CPU, which is a general-purpose processor that executes software (program) and functions as various processing units, and a processor whose circuit configuration can be changed after manufacturing an FPGA or the like. It includes a dedicated electric circuit, which is a processor having a circuit configuration specially designed for executing a specific process such as a programmable logic device (PLD), an ASIC (Application Specific Integrated Circuit), and the like.
- PLD programmable logic device
- ASIC Application Specific Integrated Circuit
- One processing unit may be composed of one of these various processors, or a combination of two or more processors of the same type or different types (for example, a combination of a plurality of FPGAs or a combination of a CPU and an FPGA). It may be composed of a combination). Further, a plurality of processing units may be configured by one processor.
- one processor is configured by a combination of one or more CPUs and software, as represented by a computer such as a client and a server.
- the processor functions as a plurality of processing units.
- SoC System on Chip
- the various processing units are configured by using one or more of the above-mentioned various processors as a hardware-like structure.
- an electric circuit in which circuit elements such as semiconductor elements are combined can be used.
- the information processing program 60 is provided in a form recorded on a recording medium such as a CD-ROM (Compact Disc Read Only Memory), a DVD-ROM (Digital Versatile Disc Read Only Memory), and a USB (Universal Serial Bus) memory. May be good. Further, the information processing program 60 may be downloaded from an external device via a network.
- a recording medium such as a CD-ROM (Compact Disc Read Only Memory), a DVD-ROM (Digital Versatile Disc Read Only Memory), and a USB (Universal Serial Bus) memory. May be good.
- the information processing program 60 may be downloaded from an external device via a network.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
情報処理装置は、少なくとも1つのプロセッサを備え、格納対象のオブジェクトを、予め設定された振り分けルールに従って複数のストレージノードのいずれかに振り分ける。プロセッサは、格納対象のオブジェクトを受付け、受け付けたオブジェクトの識別情報に含まれる、振り分けルールに対応付けられた第1の部分に基づいて、適用する振り分けルールを特定し、特定した振り分けルールに従って、受け付けたオブジェクトを複数のストレージノードのいずれかに振り分ける。
Description
開示の技術は、情報処理装置、情報処理方法、及び情報処理プログラムに関する。
予め設定されたルールに基づいてオブジェクトの転送先を決定する技術として、以下の技術が知られている。
例えば特開2017-184195号公報には、複数の実ストレージノードのいずれかにオブジェクトを送信する経路における複数の通信機器において、オブジェクトに一意に付与される識別子に基づくオブジェクトの転送先を決定する第1のルールを含む設定する場合に、識別子を複数の実ストレージノードのいずれかに割り当てる第1の割り当て関係と、複数の通信機器及び複数の実ストレージノードの接続関係とに基づいて行うことが記載されている。
特表2016-537735号公報には、コントローラと、スイッチと、スイッチと通信するストレージデバイスとを含むストレージシステムにおいて、スイッチによって操作要求を受信し、操作要求が要求識別を搬送し、要求識別がユーザグループ情報、及びストレージ方針情報のうちの少なくとも1つを含み、スイッチによって要求識別に従って、スイッチのフローテーブルに問合せして、操作要求にマッチするフローテーブルエントリを取得し、スイッチによって、マッチするフローテーブルエントリの転送ルールに従って、ストレージデバイスの中からターゲットストレージデバイスに操作要求を転送することが記載されている。
オブジェクトストレージシステムにおけるオブジェクトの更新処理は、既存オブジェクトの上書き保存ではなく、更新後のオブジェクトが既存オブジェクトとは別のオブジェクトとしてストレージノードに格納される。
また、オブジェクトストレージシステムにおいて、システムの信頼性向上及び負荷分散等のために、複数のストレージノードを用意し、ユーザから送信されたオブジェクトを、予め設定した振り分けルールに基づいて、複数のストレージノードの何れかに振り分けることが行われている。
このようなシステムにおいて、ストレージノードを新たに追加した場合、ストレージノードの追加前に策定された振り分けルール(以下、旧ルールと称する)に従ってオブジェクトの振り分けを行うと、新たに追加されたストレージノードにオブジェクトを振り分けることができない。そこで、新たに追加したストレージノードを振り分け先に含む新たな振り分けルール(以下、新ルールと称する)を策定することが考えられる。この場合、旧ルールに従って振り分けられた既存オブジェクトの更新である更新オブジェクトが新ルールに従って振り分けられる場合があり、その結果、既存オブジェクトが格納されたストレージノードとは異なるストレージノードに更新オブジェクトが格納される場合がある。このように、既存オブジェクトと更新オブジェクトとが互いに異なるストレージノードに格納されると、最新のオブジェクトの特定が困難となるおそれがある。
なお、以上の説明では、振り分けルールの変更が、ストレージノードの追加に伴って行われる場合を例示したが、ストレージノードの追加とは無関係に振り分けルールが変更されることも想定される。また、複数の振り分けルールが併存し、状況に応じて振り分けルールを使い分けることも想定される。いずれの場合においても、複数の振り分けルールが存在することで、既存オブジェクトと更新オブジェクトとが互いに異なるストレージノードに格納されるおそれがあり、最新のオブジェクトの特定が困難となるおそれがある。
開示の技術は、以上の事情に鑑みてなされたものであり、複数のストレージノードのいずれかにオブジェクトを振り分けるための振り分けルールが複数存在する場合でも、最新のオブジェクトの特定を容易にすることを目的とする。
開示の技術に係る情報処理装置は、少なくとも1つのプロセッサを備え、格納対象のオブジェクトを、予め設定された振り分けルールに従って複数のストレージノードのいずれかに振り分ける。プロセッサは、格納対象のオブジェクトを受付け、受け付けたオブジェクトの識別情報に含まれる、振り分けルールに対応付けられた第1の部分に基づいて、適用する振り分けルールを特定し、特定した振り分けルールに従って、受け付けたオブジェクトを複数のストレージノードのいずれかに振り分ける。
第1の部分は、数値を含んでいてもよく、複数の振り分けルールが、上記の数値について予め定められている範囲に対応付けられていてもよい。この場合、プロセッサは、上記の数値に基づいて、複数の振り分けルールの中から適用する振り分けルールを特定してもよい。
上記の数値は、時間の経過に従って増加する数値であってもよい。上記の数値は、格納対象のオブジェクトの作成年月日に対応する数値を含んでいてもよい。
第1の部分は、文字列を含んでいてもよく、複数の振り分けルールが、上記の文字列について予め定められている順序規則に従う順序の範囲に対応付けられていてもよい。この場合、プロセッサは、上記の文字列に基づいて、複数の振り分けルールの中から適用する振り分けルールを特定してもよい。
振り分けルールは、ストレージノードの追加に伴って更新されてもよい。この場合、相対的に古い振り分けルールに従う振り分け先として、追加されたストレージノードが含まれていなくてもよく、相対的に新しい振り分けルールに従う振り分け先として、追加されたストレージノードが含まれていてもよい。
プロセッサは、オブジェクトの識別情報に基づいて、格納対象のオブジェクトの振り分け先となるストレージノードを決定してもよい。オブジェクトの識別情報が、第2の部分を更に含んでいてもよく、この場合、プロセッサは、第2の部分に基づいて、格納対象のオブジェクトの振り分け先となるストレージノードを決定してもよい。プロセッサは、第2の部分のハッシュ値を、適用する振り分けルールに応じた除数で除算したときの余りの値に基づいて、格納対象のオブジェクトの振り分け先となるストレージノードを決定してもよい。
開示の技術に係る情報処理方法は、格納対象のオブジェクトを、予め設定された振り分けルールに従って複数のストレージノードのいずれかに振り分ける情報処理方法であって、格納対象のオブジェクトを受付け、受け付けたオブジェクトの識別情報に含まれる、振り分けルールに対応付けられた第1の部分に基づいて、適用する振り分けルールを特定し、特定した振り分けルールに従って、受け付けたオブジェクトを複数のストレージノードのいずれかに振り分ける処理を情報処理装置が備える少なくとも1つのプロセッサが実行する情報処理方法である。
開示の技術に係る情報処理プログラムは、格納対象のオブジェクトを、予め設定された振り分けルールに従って複数のストレージノードのいずれかに振り分ける処理を情報処理装置が備える少なくとも1つのプロセッサに実行させるための情報処理プログラムであって、格納対象のオブジェクトを受付け、受け付けたオブジェクトの識別情報に含まれる、振り分けルールに対応付けられた第1の部分に基づいて、適用する振り分けルールを特定し、特定した振り分けルールに従って、受け付けたオブジェクトを複数のストレージノードのいずれかに振り分ける処理をプロセッサが実行する情報処理プログラムである。
開示の技術によれば複数のストレージノードのいずれかにオブジェクトを振り分けるための振り分けルールが複数存在する場合でも、最新のオブジェクトの特定を容易にすることができる。
以下、本発明の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一または等価な構成要素及び部分には同一の参照符号を付与し、重複する説明は適宜省略する。
図1は、開示の技術の実施形態に係るストレージシステム100の構成の一例を示す図である。ストレージシステム100は、情報処理装置10及びサーバ[1]20A~サーバ[5]20Eを含んで構成されている。ストレージシステム100は、ネットワーク40を介して端末装置50に接続されている。端末装置50は、ストレージシステム100を利用するユーザによって使用されるコンピュータである。ストレージシステム100は、端末装置50から格納要求があったオブジェクト30を保管し、端末装置50からオブジェクトの読み出し要求があった場合、要求されたオブジェクトを読み出して端末装置50に送信する。オブジェクト30は、データ本体と、データ本体に関するメタデータとを含んで構成される。
サーバ[1]20A~サーバ[5]20Eは、それぞれ、ストレージノードを構成するものであり、端末装置50から格納要求があったオブジェクトは、サーバ[1]20A~サーバ[5]20Eのいずれかに格納される。なお、図1には、ストレージノードを構成する5台のサーバが例示されているが、ストレージシステム100が備えるサーバの数は適宜増減することが可能である。
情報処理装置10は、サーバ[1]20A~サーバ[5]20Eの負荷を分散させるロードバランサとして機能する。情報処理装置10は、サーバ[1]20A~サーバ[5]20Eの各々に接続されている。端末装置50から格納要求があったオブジェクト30は、情報処理装置10に供給される。情報処理装置10は、端末装置50から供給された格納対象のオブジェクト30を、所定の振り分けルールに従ってサーバ[1]20A~サーバ[5]20Eのいずれかに振り分ける。振り分けルールは、例えば、サーバ[1]20A~サーバ[5]20Eの各々に対するオブジェクトの分配比率(振り分け率)を規定したものであってもよい。
ストレージシステム100において、サーバ[1]20A~サーバ[5]20Eのいずれかに既に格納されている既存オブジェクトを更新する場合、既存オブジェクトの更新である更新オブジェクトが、既存オブジェクトとは別のオブジェクトとして格納される。すなわち、ストレージシステム100におけるオブジェクトの更新は、いわゆる「データの上書き」ではなく、「更新オブジェクトの追加」によって行われる。更新オブジェクトには、対応する既存オブジェクトと同じ識別情報が付与される。識別情報は、オブジェクトを一意に識別するためのUUID(Universally Unique Identifier)であるオブジェクトキーであってもよい。
図2は、情報処理装置10のハードウェア構成の一例を示す図である。情報処理装置10は、CPU(Central Processing Unit)11、一時記憶領域としてのメモリ12、及び不揮発性の記憶部13を含む。また、情報処理装置10は、ネットワーク40に接続されるネットワークインターフェース14、及びサーバ[1]20A~サーバ[5]20Eが接続される外部インターフェース15を含む。CPU11、メモリ12、記憶部13、ネットワークインターフェース14、及び外部インターフェース15は、バス16に接続される。
記憶部13は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、又はフラッシュメモリ等の記憶媒体によって実現される。記憶部13には、後述する情報処理プログラム60及びルール情報61が記憶される。CPU11は、情報処理プログラム60を記憶部13から読み出し、メモリ12に展開し、実行する。なお、CPU11は、開示の技術におけるプロセッサの一例である。
ストレージシステム100へのアクセスは、例えば、端末装置50上で動作するウェブブラウザ上に表示される管理コンソールを介して行う。ユーザは、ストレージシステム100にオブジェクトを格納する場合、管理コンソール上でバケットを作成し、バケット内に格納対象のオブジェクトを配置する。バケットとは、格納対象のオブジェクトを受け入れる仮想的な収容領域である。ユーザは、複数のバケットを作成することが可能である。ユーザが、管理コンソール上で、オブジェクトの識別情報であるオブジェクトキーが付与されたオブジェクトをバケット内に配置し、オブジェクトのアップロードを指示することで、そのオブジェクトがストレージシステム100に送信され、サーバ[1]20A~サーバ[5]20Eのいずれかに格納される。
情報処理装置10が、格納対象のオブジェクトをサーバ[1]20A~サーバ[5]20Eに振り分ける際の振り分けルールはバケットに対応付けられる。振り分けルールの内容は、情報処理装置10の記憶部13にルール情報61として保存される。
図3は、情報処理装置10の記憶部13に保存されるルール情報61の一例を示す図である。以下の説明では、サーバ[4]20D及びサーバ[5]20Eが、新たに追加されたサーバであるものとする。情報処理装置10の記憶部13には、サーバ[4]20D及びサーバ[5]20Eの追加前に作成されたバケットの作成時に策定された振り分けルール(以下、旧ルールと称する)と、サーバ[4]20D及びサーバ[5]20Eの追加後に策定された振り分けルール(以下、新ルールと称する)がルール情報61として保存されている。
旧ルールは、サーバ[4]20D及びサーバ[5]20Eの存在を想定したものとなっておらず、従って、旧ルールに従うオブジェクトの振り分け先には、追加されたサーバ[4]20D及びサーバ[5]20Eが含まれないことが通常である。図3に示す例では、旧ルールとして、サーバ[1]20Aへのオブジェクトの分配比率を50%とし、サーバ[2]20Bへのオブジェクトの分配比率を25%とし、サーバ[3]20Cへのオブジェクトの分配比率を25%とすること(分配比率2:1:1)が規定されている。オブジェクトの分配比率は、例えばサーバの処理能力に応じて定めることが可能である。すなわち、より高い処理能力を有するサーバに対するオブジェクトの分配比率を、より高く設定してもよい。これにより、サーバの処理能力を加味した負荷を均一にすることができる。
サーバ[4]20D及びサーバ[5]20Eの追加後においても、旧ルールが適用される限り、サーバ[4]20D及びサーバ[5]20Eにオブジェクトを振り分けることができない。そこで、本実施形態に係る情報処理装置10においては、バケット作成時に策定された振り分けルールが変更可能とされている。すなわち、ストレージノードとして機能するサーバが新たに追加された場合、追加されたサーバが振り分け先に含まれる新ルールが新たに策定され、ルール情報61に追加される。
図3に示す例では、新ルールとして、サーバ[1]20Aへのオブジェクトの分配比率を20%とし、サーバ[2]20Bへのオブジェクトの分配比率を10%とし、サーバ[3]20Cへのオブジェクトの分配比率を10%とし、サーバ[4]20Dへのオブジェクト30の分配比率を30%とし、サーバ[5]20Eへのオブジェクトの分配比率を30%とすること(分配比率2:1:1:3:3)が規定されている。
情報処理装置10は、例えば、バケットの作成時に、その時点においてストレージシステム100が備えるサーバの台数及び各サーバの処理能力等に応じた振り分けルールを生成し、これをルール情報61として記憶部13に保存する。また、情報処理装置10は、例えば、サーバの追加時に、追加されたサーバをオブジェクトの振り分け先に含む新たな振り分けルールを生成し、これをルール情報61に追加する。
情報処理装置10は、新旧の振り分けルールを生成する場合、例えば、その時点において設置されているサーバの処理能力を加味した負荷が均等になるように振り分けルールを生成してもよい。また、情報処理装置10は、新旧の振り分けルールを生成する場合、どの振り分けルールが最新であるのかを示す履歴情報をルール情報61に含める。
このように、本実施形態に係る情報処理装置10において、振り分けルールは、ストレージノードとして機能するサーバの追加に伴って更新される。典型的には、相対的に古い振り分けルールに従う振り分け先として、追加されたサーバが含まれず、相対的に新しい振り分けルールに従う振り分け先として、追加されたサーバが含まれる。
なお、図3に示す例では、旧ルール及び新ルールの2つの振り分けルールがルール情報61に含まれている場合を示しているが、この態様に限定されない。例えば、振り分けルールの更新が2回以上行われた場合には、ルール情報61には、3つ以上の振り分けルールが含まれる。振り分けルールは、情報処理装置10の管理者が任意に設定及び変更することも可能である。
図4は、ストレージノードを構成する各サーバにオブジェクトを振り分ける場合における情報処理装置10の機能的な構成の一例を示す機能ブロック図である。図4に示すように、情報処理装置10は、受付部70、特定部71、決定部72及び送信部73を含む。CPU11が情報処理プログラム60を実行することにより、情報処理装置10は、受付部70、特定部71、決定部72及び送信部73として機能する。
上記したように、ユーザがバケット内に格納対象のオブジェクトを配置してアップロードを指示すると、格納対象のオブジェクトがストレージシステム100に送信される。受付部70は、端末装置50から送信された格納対象のオブジェクトを受け付ける。
特定部71は、記憶部13に保存されたルール情報61に含まれる複数の振り分けルールのうち、受付部70が受け付けた格納対象のオブジェクトについて適用する振り分けルールを特定する。特定部71は、格納対象のオブジェクトに付与された識別情報に基づいて、適用する振り分けルールを特定する。
図5は、オブジェクトに付与される識別情報の一例を示す図である。図5には、2018/05/25/foo.txtという識別情報が付与されたオブジェクト1と、2020/08/03/bar.txtという識別情報が付与されたオブジェクト2が例示されている。オブジェクト1の識別情報に含まれる2018/05/25/の部分、及びオブジェクト2の識別情報に含まれる2020/08/03/の部分である第1の部分201は、オブジェクトキーにおけるプレフィックスに相当する部分である。オブジェクト1の識別情報に含まれるfoo.txtの部分、及びオブジェクト2の識別情報に含まれるbar.txtの部分である第2の部分202は、オブジェクトキーにおけるオブジェクト名に相当する部分である。なお、第1の部分201と第2の部分202との間及び第1の部分201の前の少なくとも一方に識別情報の他の部分が含まれていてもよい。
特定部71は、格納対象のオブジェクトの識別情報に含まれる第1の部分201に基づいて適用する振り分けルールを特定する。図5に示すように、第1の部分201は数値を含んでいてもよい。この数値は、当該オブジェクトの作成年月日等の、時間の経過に従って増加する数値であってもよい。図5に示す例において、オブジェクト1は、2018年5月25日に作成されたオブジェクトであり、オブジェクト2は、2020年8月3日に作成されたオブジェクトである。
第1の部分201が数値を含む場合、ルール情報61に含まれる複数の振り分けルールは、この数値について予め定められている範囲に対応付けられる。例えば、図3に例示されている旧ルールは、例えば、数値範囲「2018/01/01~2019/12/31」に対応付けられる。これは、2018年1月1日から2019年12月31にまでの間に作成されたオブジェクトについては旧ルールが適用されることを意味する。一方、図3に例示されている新ルールは、例えば、数値範囲「2020/01/01~」に対応付けられる。これは、2020年1月1日以降に作成されたオブジェクトについては新ルールが適用されることを意味する。この例の場合、図5に例示されたオブジェクト1については、第1の部分201が、数値「2018/05/25」を含み、数値範囲「2018/01/01/~2019/12/31」に含まれるので、旧ルールが適用される。図5に例示されたオブジェクト2については、第1部分201が、数値「2020/08/03」を含み、数値範囲「2020/01/01~」に含まれるので、新ルールが適用される。なお、第1の部分201に含まれる数値の範囲と、適用する振り分けルールとの対応関係は、ルール情報61に含まれていてもよいし、ルール情報61と別に記憶部13に保存されていてもよい。
決定部72は、特定部71によって特定された振り分けルールに従う振り分け先となるサーバを、格納対象のオブジェクトの識別情報に含まれる第2の部分202に基づいて以下の手順で決定する。
決定部72は、格納対象のオブジェクトの識別情報に含まれる第2の部分202のハッシュ値aを算出する。決定部72は、適用する振り分けルールに応じて定まる除数bでハッシュ値aを除算したときの余りcを算出する。決定部72は余りcの値に対応付けられたサーバを、格納対象のオブジェクトの振り分け先として決定する。
例えば、特定部71によって特定された振り分けルールが、図3に例示された旧ルール(分配比率2:1:1)である場合、決定部72は、適用する振り分けルールに応じて定まる除数bとして4(=2+1+1)を導出する。決定部72は格納対象のオブジェクトの識別情報に含まれる第2の部分のハッシュ値aを除数b(=4)で除算したときの余りcが0又は1である場合、格納対象のオブジェクトの振り分け先をサーバ[1]20Aに決定し、余りcが2である場合、格納対象のオブジェクトの振り分け先をサーバ[2]20Bに決定し、余りcが3である場合、格納対象のオブジェクトの振り分け先をサーバ[3]20Cに決定する。これにより、図6Aに示すように、格納対象のオブジェクトの、サーバ[1]20A~サーバ[3]20Cへの振り分けを、旧ルールに従う分配比率(2:1:1)で行うことが可能となる。
一方、特定部71によって特定された振り分けルールが、図3に例示された新ルール(分配比率2:1:1:3:3)である場合、決定部72は、適用する振り分けルールに応じて定まる除数bとして10(=2+1+1+3+3)を導出する。決定部72は格納対象のオブジェクトのハッシュ値aを除数b(=10)で除算したときの余りcが0又は1である場合、格納対象のオブジェクトの振り分け先をサーバ[1]20Aに決定し、余りcが2である場合、格納対象のオブジェクトの振り分け先をサーバ[2]20Bに決定し、余りcが3である場合、格納対象のオブジェクトの振り分け先をサーバ[3]20Cに決定し、余りcが4、5又は6である場合、格納対象のオブジェクトの振り分け先をサーバ[4]20Dに決定し、余りcが7、8又は9である場合、格納対象のオブジェクトの振り分け先をサーバ[5]20Eに決定する。これにより、図6Bに示すように、格納対象のオブジェクトの各サーバへの振り分けを、図3に例示された新ルールに従う分配比率(2:1:1:3:3)で行うことが可能となる。
上記のように、格納対象のオブジェクトの識別情報に含まれる第2の部分202のハッシュ値aを、適用する振り分けルールに応じて定まる除数bで除算したときの余りcに応じて振り分け先を決定することで、格納対象のオブジェクトのサーバへの振り分けを、適用する振り分けルールに従う分配比率で行うことが可能となる。なお、余りcと、振り分け先となるサーバとの振り分けルール毎の対応関係は、ルール情報61に含まれていてもよいし、ルール情報61と別に記憶部13に保存されていてもよい。
送信部73は、サーバ[1]20A~サーバ[5]20Eのうち、決定部72によって決定された振り分け先となるサーバに格納対象のオブジェクトを送信する。格納対象のオブジェクトは、振り分け先のサーバが備えるハードディスク等の記憶媒体に記憶される。
ここで、サーバ[1]20A~サーバ[5]20Eのいずれかに既に格納されている既存オブジェクトを更新する場合について考える。この場合、既存オブジェクトの更新である更新オブジェクトが、既存オブジェクトとは別のオブジェクトとしてストレージシステム100に格納される。すなわち、ストレージシステム100におけるオブジェクトの更新は、いわゆる「データの上書き」ではなく、「更新オブジェクトの追加」によって行われる。このようなシステムにおいては、更新オブジェクトが対応する既存オブジェクトが格納されたサーバとは異なるサーバに格納されると、最新のオブジェクトの特定が困難となる。
ユーザは、既存オブジェクトを更新する場合、既存オブジェクトと同一の識別情報が付与された更新オブジェクトをバケット内に配置する。従って、情報処理装置10は、既存オブジェクトについて適用した振り分けルールと同じ振り分けルールに従って更新オブジェクトを振り分けることが可能である。
また、情報処理装置10は、上記したように、オブジェクトの識別情報に含まれる第2の部分202のハッシュ値aを、選択された振り分けルールに応じて定まる除数bで除算したときの余りcに応じて振り分け先を決定する。更新オブジェクトには、既存オブジェクトと同じ識別情報が付与されるので、更新オブジェクトについて算出される余りcは、既存オブジェクトについて算出される余りcと同一である。従って、情報処理装置10は、既存オブジェクトが格納されているサーバと同じサーバに更新オブジェクトを振り分けることが可能である。
以下に、情報処理装置10の作用について説明する。図7は、CPU11が、情報処理プログラム60を実行することによって実施される処理の流れの一例を示すフローチャートである。情報処理プログラム60は、例えば、端末装置50からオブジェクトの格納要求があった場合に実行される。なお、記憶部13には、ルール情報61が予め保存されているものとする。
ステップS1において、受付部70は、端末装置50から送信された格納対象のオブジェクトを受け付ける。
ステップS2において、特定部71は、ステップS1で受付けたオブジェクトについて、当該オブジェクトに付与された識別情報に含まれる第1の部分201に基づいて、適用する振り分けルールを特定する。例えば、第1の部分201が数値を含む場合、ルール情報61に含まれる複数の振り分けルールは、この数値について予め定められている範囲に対応付けられる。この場合、特定部71は格納対象のオブジェクトにおける第1の部分201に含まれる数値が、この数値について予め定められている範囲のうちのどの範囲に含まれるのかを判定し、判定した範囲に対応する振り分けルールを、ステップS1で受け付けたオブジェクトについて適用する振り分けルールとして特定する。
ステップS3において、決定部72は、ステップS2で特定された振り分けルールに従う振り分け先を、サーバ[1]20A~サーバ[5]20Eの中から決定する決定処理を行う。ここで、図8は、決定処理の詳細を示すフローチャートである。以下、決定処理について、図8のフローチャートを参照しつつ説明する。
ステップS11において、決定部72は、ステップS1で受け付けたオブジェクトの識別情報に含まれる第2の部分202のハッシュ値aを算出する。
ステップS12において、決定部72は、ステップS2で特定された振り分けルールに応じて定まる除数bでハッシュ値aを除算したときの余りcを算出する。
ステップS13において、決定部72は、ステップS12で算出した余りcの値に基づいて、ステップS1で受け付けたオブジェクトの振り分け先を決定する。
図7を参照し、ステップS4において、送信部73は、ステップS1で受け付けたオブジェクトを、ステップS3で決定した振り分け先となるサーバに送信する。当該オブジェクトは、振り分け先のサーバが備えるハードディスク等の記憶媒体に記憶される。
以上のように本実施形態に係る情報処理装置10によれば、ストレージノードとして機能するサーバが追加された場合に、オブジェクトの振り分け先として、追加されたサーバを含む新たな振り分けルールが生成されるので、追加されたサーバの効率的な使用が可能となる。このように、振り分けルールが変更可能なシステムにおいては、過去の振り分けルールに従って振り分けられた既存オブジェクトの更新である更新オブジェクトが、最新の振り分けルールに従って振り分けられることが考えられる。この場合、既存オブジェクトが格納されたサーバとは異なるサーバに更新オブジェクトが格納される場合がある。既存オブジェクトと更新オブジェクトとが互いに異なるサーバに格納されると、最新のオブジェクトの特定が困難となるおそれがある。この問題を解決する方法として、格納対象のオブジェクトと同じ識別情報が付与されたオブジェクトを格納しているか否かの問い合わせを各サーバに対して行う方法が考えられる。しかしながら、この方法によれば、格納対象のオブジェクトが多数ある場合、オブジェクト毎に問い合わせが必要となるため、処理時間が比較的長くなる。
本実施形態に係る情報処理装置10によれば、格納対象のオブジェクトの識別情報に含まれる第1の部分201に基づいて、適用する振り分けルールを特定し、特定した振り分けルールに従って、格納対象のオブジェクトを複数のサーバのいずれかに振り分ける。上記のように、更新オブジェクトには、既存オブジェクトと同じ識別情報が付与されるので、情報処理装置10は、既存オブジェクトについて適用された振り分けルールと同じ振り分けルールに従って更新オブジェクトを振り分けることが可能である。また、情報処理装置10は、オブジェクトの識別情報に含まれる第2の部分202の部分に基づいてオブジェクトの振り分け先となるサーバを決定するので、既存オブジェクトが格納されているサーバと同じサーバに更新オブジェクトを振り分けることが可能である。すなわち、本実施形態に係る情報処理装置10によれば、振り分けルールが複数存在する場合でも、最新のオブジェクトの特定を容易にすることができる。また、各サーバに対して問い合わせを行う場合と比較して、短い処理時間で、格納対象のオブジェクトの振り分けを行うことが可能となる。
また、オブジェクトの識別情報における第1の部分201が、当該オブジェクトの作成年月日等の、時間の経過に従って増加する数値を含み、且つ複数の振り分けルールが、上記数値について予め定められている範囲に対応付けられる。これにより、新旧の振り分けルールの使い分けを簡便且つ適切に行うことができる。
図9は、オブジェクトに付与される識別情報の他の例を示す図である。図9には、AAX/foo.txtという識別情報が付与されたオブジェクト3と、ABC/bar.txtという識別情報が付与されたオブジェクト4と、BAA/baz.txtという識別情報が付与されたオブジェクト5とが例示されている。オブジェクト3の識別情報に含まれるAAX/の部分、オブジェクト4の識別情報に含まれるABC/の部分、及びオブジェクト5の識別情報に含まれるBAA/の部分である第1の部分201は、オブジェクトキーにおけるプレフィックスに相当する部分である。オブジェクト3の識別情報に含まれるfoo.txtの部分、オブジェクト4の識別情報に含まれるbar.txtの部分、及びオブジェクト5の識別情報に含まれるbaz.txtの部分である第2の部分202は、オブジェクトキーにおけるオブジェクト名に相当する部分である。
このように、オブジェクトの識別情報の第1の部分201は、文字列を含んでいてもよい。なお、文字列には数値が含まれていてもよい。第1の部分201が文字列を含む場合、ルール情報61に含まれる複数の振り分けルールは、この文字列について定められている範囲に対応付けられる。具体的には、複数の振り分けルールは、辞書順又はユニコード値における昇順若しくは降順等の、文字列について予め定められている順序規則に従う順序の範囲に対応付けられる。
例えば、図3に例示されている旧ルールは、「A」で始まる文字列に対応付けられ、図3に例示されている新ルールは、辞書順における「B」以降の文字で始まる文字列に対応けられる。この場合、図9に例示されたオブジェクト3及び4については、第1の部分201が「A」で始まる文字列を含むので、旧ルールが適用される。図9に例示されたオブジェクト5については、第1部分201が「B」で始まる文字列を含むので、新ルールが適用される。なお、第1の部分201に含まれる文字列の範囲と、適用する振り分けルールとの対応関係は、ルール情報61に含まれていてもよいし、ルール情報61と別に記憶部13に保存されていてもよい。
このように、オブジェクトの識別情報に含まれる第1の部分201が数値以外の文字列を含む場合でも、情報処理装置10は、既存オブジェクトについて適用された振り分けルールと同じ振り分けルールに従って更新オブジェクトを振り分けることが可能であり、また、既存オブジェクトが格納されているサーバと同じサーバに更新オブジェクトを振り分けることが可能である。
なお、以上の説明では、決定部72が、オブジェクトの識別情報に含まれる第2の部分202に基づいて振り分け先となるサーバを決定する場合を例示したが、この態様に限定されない。決定部72は、第1の部分201及び第2の部分202の双方を含む識別情報の全ての部分に基づいて振り分け先となるサーバを決定してもよい。この場合、決定部72は、第1の部分201及び第2の部分202を含む識別情報の全ての部分についてハッシュ値aを算出し、適用する振り分けルールに応じて定まる除数bでハッシュ値aを除算したときの余りcを算出し、余りcに対応するサーバを、振り分け先となるサーバとして決定してもよい。
また、本実施形態では、ストレージノードとして機能するサーバの追加に伴って、振り分けルールの変更を行う場合を例示したが、この態様に限定されない。振り分けルールの変更は、任意のタイミングで行うこと可能である。また、過去の振り分けルールに従う振り分け先となるサーバと、最新の振り分けルールに従う振り分け先となるサーバが、部分的に一致していてもよいし、完全に一致していてもよいし、完全に不一致であってもよい。
上記の各実施形態において、例えば、受付部70、特定部71、決定部72及び送信部73といった各種の処理を実行する処理部(processing unit)のハードウェア的な構造としては、次に示す各種のプロセッサ(processor)を用いることができる。上記各種のプロセッサには、前述したように、ソフトウェア(プログラム)を実行して各種の処理部として機能する汎用的なプロセッサであるCPUに加えて、FPGA等の製造後に回路構成を変更可能なプロセッサであるプログラマブルロジックデバイス(Programmable Logic Device:PLD)、ASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が含まれる。
1つの処理部は、これらの各種のプロセッサのうちの1つで構成されてもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGAの組み合わせや、CPUとFPGAとの組み合わせ)で構成されてもよい。また、複数の処理部を1つのプロセッサで構成してもよい。
複数の処理部を1つのプロセッサで構成する例としては、第1に、クライアント及びサーバ等のコンピュータに代表されるように、1つ以上のCPUとソフトウェアの組み合わせで1つのプロセッサを構成し、このプロセッサが複数の処理部として機能する形態がある。第2に、システムオンチップ(System on Chip:SoC)等に代表されるように、複数の処理部を含むシステム全体の機能を1つのIC(Integrated Circuit)チップで実現するプロセッサを使用する形態がある。このように、各種の処理部は、ハードウェア的な構造として、上記各種のプロセッサの1つ以上を用いて構成される。
更に、これらの各種のプロセッサのハードウェア的な構造としては、より具体的には、半導体素子などの回路素子を組み合わせた電気回路(circuitry)を用いることができる。
また、上記実施形態では、情報処理プログラム60が記憶部13に予め記憶(インストール)されている態様を説明したが、これに限定されない。情報処理プログラム60は、CD-ROM(Compact Disc Read Only Memory)、DVD-ROM(Digital Versatile Disc Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の記録媒体に記録された形態で提供されてもよい。また、情報処理プログラム60は、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
なお、2020年8月21日に出願された日本国特許出願2020-140421の開示は、その全体が参照により本明細書に取り込まれる。また、本明細書に記載された全ての文献、特許出願および技術規格は、個々の文献、特許出願、および技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。
Claims (11)
- 少なくとも1つのプロセッサを備え、格納対象のオブジェクトを、予め設定された振り分けルールに従って複数のストレージノードのいずれかに振り分ける情報処理装置であって、
前記プロセッサは、
格納対象のオブジェクトを受付け、
受け付けたオブジェクトの識別情報に含まれる、振り分けルールに対応付けられた第1の部分に基づいて、適用する振り分けルールを特定し、
特定した振り分けルールに従って、受け付けたオブジェクトを前記複数のストレージノードのいずれかに振り分ける
情報処理装置。 - 前記第1の部分は、数値を含み、
複数の振り分けルールが、前記数値について予め定められている範囲に対応付けられており、
前記プロセッサは、前記数値に基づいて、前記複数の振り分けルールの中から適用する振り分けルールを特定する
請求項1に記載の情報処理装置。 - 前記数値は、時間の経過に従って増加する数値である
請求項2に記載の情報処理装置。 - 前記数値は、格納対象のオブジェクトの作成年月日に対応する数値を含む
請求項3に記載の情報処理装置。 - 前記第1の部分は、文字列を含み、
複数の振り分けルールが、前記文字列について予め定められている順序規則に従う順序の範囲に対応付けられており、
前記プロセッサは、前記文字列に基づいて、前記複数の振り分けルールの中から適用する振り分けルールを特定する
請求項1に記載の情報処理装置。 - 前記振り分けルールは、前記ストレージノードの追加に伴って更新され、
相対的に古い振り分けルールに従う振り分け先として、追加されたストレージノードが含まれておらず、
相対的に新しい振り分けルールに従う振り分け先として、追加されたストレージノードが含まれている
請求項1から請求項5のいずれか1項に記載の情報処理装置。 - 前記プロセッサは、前記識別情報に基づいて、格納対象のオブジェクトの振り分け先となるストレージノードを決定する
請求項1から請求項6のいずれか1項に記載の情報処理装置。 - 前記識別情報は、第2の部分を更に含み、
前記プロセッサは、前記第2の部分に基づいて、格納対象のオブジェクトの振り分け先となるストレージノードを決定する
請求項7に記載の情報処理装置。 - 前記プロセッサは、前記第2の部分のハッシュ値を、適用する振り分けルールに応じた除数で除算したときの余りの値に基づいて、格納対象のオブジェクトの振り分け先となるストレージノードを決定する
請求項8に記載の情報処理装置。 - 格納対象のオブジェクトを、予め設定された振り分けルールに従って複数のストレージノードのいずれかに振り分ける情報処理方法であって、
格納対象のオブジェクトを受付け、
受け付けたオブジェクトの識別情報に含まれる、振り分けルールに対応付けられた第1の部分に基づいて、適用する振り分けルールを特定し、
特定した振り分けルールに従って、受け付けたオブジェクトを前記複数のストレージノードのいずれかに振り分ける
処理を情報処理装置が備える少なくとも1つのプロセッサが実行する情報処理方法。 - 格納対象のオブジェクトを、予め設定された振り分けルールに従って複数のストレージノードのいずれかに振り分ける処理を情報処理装置が備える少なくとも1つのプロセッサに実行させるための情報処理プログラムであって、
格納対象のオブジェクトを受付け、
受け付けたオブジェクトの識別情報に含まれる、振り分けルールに対応付けられた第1の部分に基づいて、適用する振り分けルールを特定し、
特定した振り分けルールに従って、受け付けたオブジェクトを前記複数のストレージノードのいずれかに振り分ける
処理を前記プロセッサが実行する情報処理プログラム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP21858084.3A EP4202718A4 (en) | 2020-08-21 | 2021-07-15 | INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING METHOD, AND INFORMATION PROCESSING PROGRAM |
CN202180050389.9A CN115867901A (zh) | 2020-08-21 | 2021-07-15 | 信息处理装置、信息处理方法及信息处理程序 |
JP2022543325A JPWO2022038935A1 (ja) | 2020-08-21 | 2021-07-15 | |
US18/160,314 US20230168833A1 (en) | 2020-08-21 | 2023-01-27 | Information processing apparatus, information processing method, and information processing program |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020-140421 | 2020-08-21 | ||
JP2020140421 | 2020-08-21 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US18/160,314 Continuation US20230168833A1 (en) | 2020-08-21 | 2023-01-27 | Information processing apparatus, information processing method, and information processing program |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022038935A1 true WO2022038935A1 (ja) | 2022-02-24 |
Family
ID=80350322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2021/026635 WO2022038935A1 (ja) | 2020-08-21 | 2021-07-15 | 情報処理装置、情報処理方法、及び情報処理プログラム |
Country Status (6)
Country | Link |
---|---|
US (1) | US20230168833A1 (ja) |
EP (1) | EP4202718A4 (ja) |
JP (1) | JPWO2022038935A1 (ja) |
CN (1) | CN115867901A (ja) |
TW (1) | TW202211032A (ja) |
WO (1) | WO2022038935A1 (ja) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013093050A (ja) * | 2013-02-04 | 2013-05-16 | Intec Inc | ストレージサービス提供装置、システム、サービス提供方法、及びサービス提供プログラム |
JP2016537735A (ja) | 2013-08-31 | 2016-12-01 | 華為技術有限公司Huawei Technologies Co.,Ltd. | ストレージシステムにおいて操作要求を処理するための方法及び装置 |
JP2017184195A (ja) | 2016-03-31 | 2017-10-05 | 日本電気株式会社 | 通信管理装置、通信管理方法及びプログラム |
JP2017182286A (ja) * | 2016-03-29 | 2017-10-05 | 日本電気株式会社 | ストレージ管理システムおよびストレージ管理方法 |
JP2018520402A (ja) * | 2015-06-26 | 2018-07-26 | インテル・コーポレーション | 複数の選択可能なデータ処理ポリシーを有するオブジェクトベースのストレージクラスタ |
JP2020140421A (ja) | 2019-02-28 | 2020-09-03 | 京セラドキュメントソリューションズ株式会社 | ワークフローシステムおよびワークフロー管理プログラム |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001331509A (ja) * | 2000-05-22 | 2001-11-30 | Hitachi Ltd | リレーショナルデータベース処理装置、リレーショナルデータベースの処理方法及びリレーショナルデータベースの処理プログラムを記録したコンピュータ読み取り可能な記録媒体 |
EP3563268B1 (en) * | 2017-02-27 | 2022-09-14 | Timescale, Inc. | Scalable database system for querying time-series data |
-
2021
- 2021-07-15 CN CN202180050389.9A patent/CN115867901A/zh active Pending
- 2021-07-15 JP JP2022543325A patent/JPWO2022038935A1/ja not_active Abandoned
- 2021-07-15 WO PCT/JP2021/026635 patent/WO2022038935A1/ja unknown
- 2021-07-15 EP EP21858084.3A patent/EP4202718A4/en not_active Withdrawn
- 2021-08-09 TW TW110129217A patent/TW202211032A/zh unknown
-
2023
- 2023-01-27 US US18/160,314 patent/US20230168833A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013093050A (ja) * | 2013-02-04 | 2013-05-16 | Intec Inc | ストレージサービス提供装置、システム、サービス提供方法、及びサービス提供プログラム |
JP2016537735A (ja) | 2013-08-31 | 2016-12-01 | 華為技術有限公司Huawei Technologies Co.,Ltd. | ストレージシステムにおいて操作要求を処理するための方法及び装置 |
JP2018520402A (ja) * | 2015-06-26 | 2018-07-26 | インテル・コーポレーション | 複数の選択可能なデータ処理ポリシーを有するオブジェクトベースのストレージクラスタ |
JP2017182286A (ja) * | 2016-03-29 | 2017-10-05 | 日本電気株式会社 | ストレージ管理システムおよびストレージ管理方法 |
JP2017184195A (ja) | 2016-03-31 | 2017-10-05 | 日本電気株式会社 | 通信管理装置、通信管理方法及びプログラム |
JP2020140421A (ja) | 2019-02-28 | 2020-09-03 | 京セラドキュメントソリューションズ株式会社 | ワークフローシステムおよびワークフロー管理プログラム |
Non-Patent Citations (2)
Title |
---|
NAGATA, HIROAKI: "Log aggregation system combined with managed services. Fluentd, Kinesis, S3, Redshifts, CloudWatch Logs", WEB+DBPRESS, vol. 116, 7 May 2020 (2020-05-07), pages 140 - 147, XP009534714, ISBN: 978-4-297-11345-2 * |
See also references of EP4202718A4 |
Also Published As
Publication number | Publication date |
---|---|
EP4202718A1 (en) | 2023-06-28 |
TW202211032A (zh) | 2022-03-16 |
CN115867901A (zh) | 2023-03-28 |
EP4202718A4 (en) | 2024-01-17 |
US20230168833A1 (en) | 2023-06-01 |
JPWO2022038935A1 (ja) | 2022-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6965370B2 (ja) | ファイルシステムパーミッション設定方法及び装置 | |
JP6033805B2 (ja) | 分散リソース管理のためのバランスしたコンシステント・ハッシュ | |
US7587426B2 (en) | System and method for virtualizing a distributed network storage as a single-view file system | |
KR100473162B1 (ko) | 로그인 서비스 변수를 보관하는 방법 | |
US8463867B2 (en) | Distributed storage network | |
JP3899795B2 (ja) | ファイル管理システムおよび方法 | |
US9710336B2 (en) | File deduplication in a file system | |
JP2004054721A (ja) | ネットワークストレージ仮想化方法 | |
CN112889054A (zh) | 多租户数据库管理系统中数据库加密的系统和方法 | |
US8762434B1 (en) | Aliasing of exported paths in a storage system | |
JP5859417B2 (ja) | メタデータサーバとデータサーバとの間でaclの一貫性を維持する方法および装置 | |
US11016671B2 (en) | Snapshot block storage path structure wherein identification of blocks that are identical between two snapshots are determined without performing block by block comparison between the two snapshots | |
CN108200211B (zh) | 集群中镜像文件下载的方法、节点和查询服务器 | |
US7606802B2 (en) | Preserving log files in a distributed computing environment | |
KR100985690B1 (ko) | 복수의 ess 셀에 다운로드 가능한 콘텐츠를 저장하는 방법, 시스템 및 컴퓨터 판독가능 기록 매체 | |
WO2022038935A1 (ja) | 情報処理装置、情報処理方法、及び情報処理プログラム | |
US11403185B2 (en) | Network-accessible block-level snapshots | |
WO2022038934A1 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
JP6607044B2 (ja) | サーバー装置、分散ファイルシステム、分散ファイルシステム制御方法、および、プログラム | |
WO2022038933A1 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
CN108647053B (zh) | 注册表子键的去重方法及装置 | |
JPH05181723A (ja) | ファイル管理装置 | |
CN115964367A (zh) | 对象存储方法、装置、电子设备及存储介质 | |
CN116915420A (zh) | 配置信息的同步方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21858084 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2022543325 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2021858084 Country of ref document: EP Effective date: 20230321 |