WO2016006223A1 - 配置装置、配置方法及び配置プログラムを記憶する記録媒体 - Google Patents

配置装置、配置方法及び配置プログラムを記憶する記録媒体 Download PDF

Info

Publication number
WO2016006223A1
WO2016006223A1 PCT/JP2015/003383 JP2015003383W WO2016006223A1 WO 2016006223 A1 WO2016006223 A1 WO 2016006223A1 JP 2015003383 W JP2015003383 W JP 2015003383W WO 2016006223 A1 WO2016006223 A1 WO 2016006223A1
Authority
WO
WIPO (PCT)
Prior art keywords
placement
destination
placement destination
arrangement
destinations
Prior art date
Application number
PCT/JP2015/003383
Other languages
English (en)
French (fr)
Inventor
健一郎 石川
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to US15/324,779 priority Critical patent/US9779110B2/en
Priority to JP2016532431A priority patent/JP6508208B2/ja
Publication of WO2016006223A1 publication Critical patent/WO2016006223A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/1827Management specifically adapted to NAS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G1/00Storing articles, individually or in orderly arrangement, in warehouses or magazines
    • B65G1/02Storage devices
    • B65G1/04Storage devices mechanical
    • B65G1/137Storage devices mechanical with arrangements or automatic control means for selecting which articles are to be removed
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/4189Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the transport system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization

Definitions

  • the present invention relates to a technique for determining an arrangement destination of an object.
  • the placement destination where the object is placed is, for example, a storage device, a storage medium, a location, or a physical location. For example, by storing the relationship (association) between an object and a placement destination where the object is placed, the placement destination where the object is placed can be specified. If the placement destination where an object is placed cannot be identified at high speed, it is difficult to access the object at high speed.
  • the storage capacity necessary for storing the association between the object and the arrangement destination increases as the number of objects increases.
  • Patent Document 1 An example of an apparatus in which such a technique is used is disclosed in Patent Document 1, for example.
  • the apparatus of Patent Document 1 generates a pseudo-random number using an object identifier as a seed.
  • the pseudo-random number is uniquely determined for the seed.
  • the generation probability of the pseudo random number is uniform in the range of the pseudo random number.
  • the device of Patent Document 1 determines an arrangement destination related to a value range including a generated pseudo-random number as an arrangement destination of an object based on a table in which a relationship between a value range and an arrangement destination is recorded.
  • the device of Patent Literature 1 repeats generation of pseudo-random numbers until a pseudo-random number included in a range of values related to the arrangement destination is generated.
  • the placement destination is not determined unless a pseudo-random number that falls within the range of values associated with the placement destination is generated. In that case, until the generated pseudo random number falls within the range of values associated with the placement destination, the apparatus of Patent Document 1 updates the seed according to a predetermined method and the pseudo random number using the updated seed, for example. It repeats with occurrence. Therefore, the time required for the apparatus of Patent Document 1 to determine the placement destination is not determined. There is a possibility that the time for the device of Patent Document 1 to determine the placement destination may be extended by chance. Furthermore, the apparatus disclosed in Patent Document 1 rearranges objects when the placement destination, which is determined according to the rules, is changed due to the addition of the placement destination.
  • One of the objects of the present invention is to provide an arrangement device or the like that can reduce the processing cost related to the arrangement of an object when the arrangement destination where the object is arranged changes according to the rule and is changed by adding the arrangement destination. There is.
  • the placement device is assigned a setting value in response to receiving object information given to an object, and is assigned among one or more placement destinations where the object can be placed.
  • the placement destination determined based on the free capacity indicating the amount of the object that can be newly placed in each placement destination according to the addition of the placement destination is other than the placement destination added last.
  • a set value is assigned in response to receiving object information given to an object, and the setting value is given among one or more arrangement destinations where the object can be arranged.
  • the newly added placement destination whose set value is larger than the characteristic value uniquely derived based on the object information is determined as the placement destination where the object is placed, and the placement destination is The placement destination determined based on the free capacity indicating the amount of the object that can be newly placed in each placement destination according to the addition is the placement other than the placement destination added last.
  • the set value given to at least one of the placement destinations is changed so as not to change first.
  • a setting value is assigned to a computer in response to receiving object information assigned to an object, and the arrangement program can be arranged among one or more arrangement destinations where the object can be arranged.
  • the placement destination that is determined based on the free space that represents the amount of the object that can be newly placed in each of the placement destinations according to the addition of the placement destination is the last added Changing means for changing the setting value assigned to at least one of the placement destinations so as not to change to the placement destination other than the placement destination; Operate Te.
  • the present invention is also realized by a recording medium that stores the above arrangement program.
  • the present invention has an effect that it is possible to reduce the processing cost related to the arrangement of the object when the arrangement destination where the object is arranged, which is determined according to the rules, is changed by adding the arrangement destination.
  • FIG. 1 is a block diagram showing a configuration of an arrangement system 10 according to the first embodiment of the present invention.
  • FIG. 2 is a flowchart illustrating an example of the operation of the arrangement apparatus 100 according to the first embodiment when an arrangement destination is added.
  • FIG. 3 is a flowchart illustrating an example of the operation of the set value derivation process of the arrangement device 100 according to the first embodiment.
  • FIG. 4 is a diagram schematically illustrating an example of the order stored in the placement destination information storage unit 103 according to the first embodiment.
  • FIG. 5 is a flowchart illustrating an example of an operation of determining an arrangement destination where an object is arranged in the arrangement apparatus 100 according to the first embodiment.
  • FIG. 6 is a diagram schematically illustrating examples of parameters and characteristic values.
  • FIG. 1 is a block diagram showing a configuration of an arrangement system 10 according to the first embodiment of the present invention.
  • FIG. 2 is a flowchart illustrating an example of the operation of the arrangement apparatus 100 according to the first embodiment when an arrangement
  • FIG. 7 is a diagram schematically illustrating a result of determination by the determination unit 101 according to the first embodiment.
  • FIG. 8 is a flowchart illustrating an example of an operation of the placement apparatus 100 according to the first embodiment for estimating a placement destination candidate in which an object is placed.
  • FIG. 9 is a block diagram illustrating an example of a configuration of an arrangement system 10A according to a modification of the first embodiment.
  • FIG. 10 is a diagram illustrating an example of the configuration of the arrangement device 100B according to the second embodiment of this invention.
  • FIG. 11 is a diagram illustrating an example of a hardware configuration of a computer 1000 that can realize an arrangement apparatus and an arrangement execution apparatus according to each embodiment of the present invention.
  • FIG. 1 is a block diagram showing a configuration of an arrangement system 10 according to the present embodiment.
  • an arrangement system 10 includes an arrangement apparatus 100 and one or more servers (server 301 to server 30N).
  • the servers 301 to 30N are represented as a server array 300 in FIG.
  • the placement apparatus 100 and each server are connected to be communicable with each other.
  • each server is also referred to as an arrangement destination. That is, the servers 301 to 30N are also expressed as placement destinations 301 to 30N, respectively.
  • the placement device 100 is further connected to the instruction device 400 so as to be communicable.
  • Each placement destination (that is, each of the placement destination 301 to 30N) includes, for example, a storage area in which an object can be placed.
  • Each placement destination stores an object in the storage area in response to a placement request described later.
  • Each placement destination takes out an object stored in the storage area in response to a take-out request described later. Then, each placement destination sends the extracted object to the transmission source of the extraction request.
  • the object is, for example, a group of data (data set).
  • Object information is given to the object.
  • the object information is, for example, an object identifier.
  • the object information may include an attribute representing, for example, a property of the object.
  • the object information may include an object identifier.
  • the object information may be information unique to the object.
  • the same object information is given to the objects treated as the same object even if the contents of the object are updated. Further, different object information is given to objects handled as different objects. Further, when an object that is treated as the same object is arranged multiple times in one arrangement destination, the object arranged in the arrangement destination is replaced with the object arranged last.
  • the number of placement destinations can be increased, for example, by an operation of an administrator of the placement system 10.
  • the increase of the placement destination is performed by adding the placement destinations one by one, for example. Further, the increase of the placement destination is also performed, for example, by increasing the storage area of the placement destination added last. The storage area of the placement destination other than the placement destination added last is not increased.
  • “adding placement destinations” represents at least one of increasing the number of placement destinations and increasing the free capacity of the placement destination added last.
  • the free space at the placement destination is a value representing the amount of objects that can be newly placed at the placement destination.
  • the amount of objects may be represented by the number of objects, for example, when the sizes of the objects are the same.
  • the amount of object may be represented by the size of the object.
  • the instruction device 400 transmits to the placement device 100 a placement request that is a request to place the object at any of the placement destinations.
  • the arrangement request is, for example, a predetermined signal.
  • the instruction device 400 may transmit, to the placement device 100, an object that requests placement according to the placement request in addition to the placement request.
  • the instruction apparatus 400 may transmit an object to the arrangement apparatus 100 as an arrangement request. That is, the instruction device 400 may request the placement of the object by transmitting the object to the placement device 100.
  • the instruction device 400 further transmits to the placement device 100 a take-out request that is a request to take out an object placed at any of the placement destinations.
  • the extraction request is, for example, a predetermined signal.
  • the instruction device 400 may transmit, to the placement device 100, the identifier and object information of the object requested to be taken out by the take-out request in addition to the take-out request.
  • the instruction device 400 may transmit the identifier and object information of the object requesting the removal to the placement device 100 as the removal request. That is, the instruction device 400 may request extraction of the object by transmitting the object identifier and the object information.
  • the instruction device 400 may request to retrieve the object by transmitting the object identifier.
  • Arrangement apparatus 100 includes a determination unit 101, a change unit 102, an arrangement destination information storage unit 103, an estimation unit 104, a request processing unit 105, an arrangement unit 106, a detection unit 107, and an extraction unit 108.
  • the arrangement determination unit 110 included in the arrangement apparatus 100 includes a determination unit 101, a change unit 102, an arrangement destination information storage unit 103, and an estimation unit 104.
  • the request processing unit 105 receives the arrangement request and the extraction request described above from the instruction device 400.
  • the request processing unit 105 transmits a placement destination determination instruction, which is an instruction for determining a placement destination where the received object is placed, and the object information of the received object to the placement determination unit 110.
  • the determination unit 101 included in the arrangement determination unit 110 receives the transmitted arrangement destination determination instruction and the object information of the object.
  • the determination unit 101 uniquely determines an arrangement destination for the received object information and the arrangement destination when the arrangement destination determination instruction is received. The determination unit 101 will be described in detail later.
  • the placement unit 106 places the object whose placement is instructed by the placement instruction at the placement destination determined by the determination unit 101.
  • the placement unit 106 may receive the placement instruction, the placement destination identifier determined by the determination unit 101, and the object to be placed in the placement destination from the determination unit 101.
  • the placement unit 106 may transmit a response indicating that the object placement has been successful to the instruction device 400 via the request processing unit 105.
  • the request processing unit 105 transmits the placement destination estimation instruction and the received object information to the placement determination unit 110.
  • the placement destination estimation instruction is an instruction for estimating a placement destination candidate in which an object to which the received object information is assigned is placed.
  • the estimation unit 104 included in the arrangement determination unit 110 receives the transmitted arrangement destination estimation instruction and object information. Based on the received object information and the order in which the placement destinations are added, the estimation unit 104 is a placement destination candidate that is a placement destination in which the object to which the object information is assigned may be placed. Is estimated.
  • the estimation unit 104 may further specify the placement destination where the received object information is placed among the placement destinations included in the placement destination candidates.
  • the estimation unit 104 may further specify an arrangement destination with the latest addition order among the arrangement destinations where the objects to which the received object information is assigned are arranged.
  • the estimation unit 104 will be described in detail later.
  • the estimation unit 104 may transmit the identified placement destination identifier to the extraction unit 108 via the request processing unit 105, for example.
  • the estimation unit 104 may transmit the specified placement destination identifier, object identifier, and extraction request to the extraction unit 108.
  • the estimation unit 104 may transmit a data value representing the estimated placement destination candidate to the extraction unit 108 via the request processing unit 105, for example.
  • the estimation unit 104 may transmit the data value indicating the estimated placement destination candidate, the object identifier, and the extraction request to the extraction unit 108.
  • the fetching unit 108 may request the placement destination to take out the object.
  • the extraction unit 108 may request the extraction of the object from each of the arrangement destinations estimated as the arrangement destination candidates by the estimation unit 104.
  • the extraction unit 108 may select the placement destinations in descending order with respect to the addition order in order from the placement destination with the latest addition order among the placement destinations estimated as the placement destination candidates. Then, the extraction unit 108 may transmit an identifier of the object requested to be extracted and an object extraction request specified by the identifier to the selected placement destination.
  • the placement destination that has received the object identifier and the retrieval request may determine whether or not the object specified by the received identifier is placed at the placement destination.
  • the placement destination where the object specified by the received identifier is placed may be sent to the extraction unit 108.
  • the placement destination where the object specified by the received identifier is not placed may transmit a response indicating that the object is not placed to the extraction unit 108.
  • the extraction unit 108 may send the object to the instruction apparatus 400 via the request processing unit 105, for example.
  • the extraction unit 108 may transmit an object identifier and a request for confirming the existence of the object to each of the placement destination candidates.
  • the placement destination may perform processing for confirming whether or not the object specified by the received identifier is placed.
  • the placement destination may transmit a response indicating whether or not the object is placed to the extraction unit 108.
  • the extraction unit 108 may transmit the object identifier and the extraction request to the arrangement destination that has transmitted the response indicating that the object is arranged.
  • the instruction device 400 may transmit a deletion request for deleting an object from any placement destination to the placement device 100.
  • the instruction device 400 transmits an identifier of the object to be deleted, object information, and a deletion request to the request processing unit 105.
  • the request processing unit 105 and the extraction unit 108 operate in the same manner as when an extraction request is received.
  • the request transmitted to the placement destination is a deletion request.
  • the object specified by the identifier is deleted depending on the arrangement destination where the object is arranged.
  • the detection unit 107 identifies a server that operates as an arrangement destination. Then, the detection unit 107 acquires the free capacity of the placement destination from each of the identified placement destinations. The detection unit 107 further detects the addition of the placement destination. That is, the detection unit 107 detects an increase in the number of placement destinations and an increase in the storage area of the placement destination added last. For example, the detection unit 107 may transmit the identifier of the placement destination detected to be newly added to the changing unit 102 included in the placement determination unit 110. For example, the detecting unit 107 stores the identifier of the arrangement destination detected to be newly added in the arrangement destination information storage unit 103 so that the order in which each arrangement destination is added can be specified. Also good.
  • the detection unit 107 transmits the acquired information indicating the free capacity of each placement destination to the change unit 102.
  • the detection unit 107 may store the acquired information indicating the free capacity of each placement destination in the placement destination information storage unit 103.
  • the information indicating the free space is also simply referred to as free space. For example, “acquire free space” indicates that information indicating free space is acquired.
  • the determination unit 101 the change unit 102, the arrangement destination information storage unit 103, and the estimation unit 104 included in the arrangement determination unit 110 will be described.
  • the determination unit 101 determines an arrangement destination where the object is arranged among one or more arrangement destinations where the object can be arranged. For example, the determining unit 101 arranges an object on the basis of the combination of one or more arrangement destinations described above and the object information given to the object according to the free space of each arrangement destination.
  • An arrangement destination that is determined according to a rule for uniquely determining the ID is specified.
  • the rule is, for example, a procedure of processing performed using an object that links the object information to one of the one or more placement destinations described above.
  • the determination unit 101 determines the determined arrangement destination as an arrangement destination where the object is arranged.
  • the determination unit 101 first calculates a characteristic value that is a value uniquely determined based on the object information assigned to the object and the placement destination for each placement destination.
  • the determination unit 101 associates a characteristic value uniquely determined based on the object information given to the object and the arrangement destination with the arrangement destination.
  • the characteristic value derived by the determination unit 101 may be a value that is uniformly or almost uniformly distributed between the lower limit value and the upper limit value of the characteristic value for various possible object information.
  • the characteristic value is, for example, a hash of data obtained by concatenating object information and a server number.
  • the determination unit 101 may derive a hash of data obtained by concatenating the object information and the server number using a predetermined hash function that generates a hash.
  • the server number is a unique number assigned to the placement destination.
  • the server number may represent, for example, the order in which the placement destination is added to the placement system 10.
  • the server number may be an identifier of the arrangement destination. In the following description, the server number is also expressed as an arrangement destination number.
  • the characteristic value may be, for example, a pseudo-random value derived by using object information as a seed value.
  • the determination unit 101 may initialize a predetermined pseudorandom number generation function that generates pseudorandom numbers using the object information as a seed value.
  • the pseudo random number generation function may be a function that generates the same pseudo random number sequence when initialized using the same seed.
  • the determination part 101 should just generate
  • the determination unit 101 may generate, for example, the same number of pseudorandom numbers as the number of placement destinations. Then, the determination unit 101 may associate the generated pseudo random numbers with the arrangement destination as the characteristic value in the order in which the arrangement destination is added, for example.
  • the order of addition may be determined in advance for the arrangement destination existing in the initial state.
  • the initial state when there are a plurality of arrangement destinations, it is only necessary that different addition orders are determined in advance for each of the plurality of arrangement destinations.
  • each placement destination is given a parameter that is a value derived by the changing unit 102 based on the free space of the placement destination.
  • the parameters of each placement destination are stored in the placement destination information storage unit 103, for example.
  • the parameter is also expressed as “set value”. The parameter derivation by the changing unit 102 will be described in detail later.
  • the deciding unit 101 arranges the arrangement destination added last among the arrangement destinations whose characteristic values derived based on the object information are smaller than the assigned parameters, and the object to which the object information is assigned is arranged. Decide where to place.
  • the determination unit 101 transmits the determined placement destination identifier to the placement unit 106. For example, according to the rules described above, the object is placed in the last added location where the assigned setting value is greater than the characteristic value uniquely derived based on the object information attached to the object. Is to determine the placement destination.
  • the rule is specifically determined by the set value given to each placement destination. As will be described in detail later, the change of the rule by the changing unit 102 is performed by changing the set value according to the free space at the placement destination.
  • the changing unit 102 changes the rule for determining the placement destination, for example, in accordance with the addition of the placement destination.
  • the changing unit 102 may change the rule for determining the placement destination in response to the addition of the placement destination being detected by the detection unit 107.
  • the changing unit 102 may change the rule for determining the placement destination every time any object is placed.
  • the changing unit 102 may change the rule for determining the placement destination every time any object is deleted from the placement destination.
  • the changing unit 102 changes the rule so that the arrangement destination where an object is arranged, which is determined according to the rule, does not change to an arrangement destination other than the arrangement destination added last due to the change of the rule. .
  • the change of the rule is, for example, a change of a setting value given to at least one of the placement destinations.
  • the changing unit 102 When the placement system 10 starts operating, the changing unit 102 first receives, from the detection unit 107, for example, the free capacity of each placement destination existing at the time when the placement system 10 starts operating. The changing unit 102 calculates a parameter to be assigned to each placement destination based on the free space that represents the amount of objects that can be newly placed at each placement destination. Specifically, the changing unit 102 sequentially selects one arrangement destination from the arrangement destination. The changing unit 102 sets the parameter based on the selected free space of the placement destination and the sum of the free space of the selected placement destination and the free space of the placement destination added before the selected placement destination. calculate.
  • the changing unit 102 calculates the parameter such that the lower limit value of the parameter is the same as the lower limit value of the characteristic value and the upper limit value of the characteristic value is less than the upper limit value of the parameter.
  • the upper limit value of the parameter may be, for example, the smallest value that can be handled by the changing unit 102 among the values larger than the upper limit value of the characteristic value.
  • the changing unit 102 assigns the calculated parameter to the selected placement destination.
  • the changing unit 102 may store the calculated value in the placement destination information storage unit 103 as a parameter associated with the selected placement destination.
  • the changing unit 102 may further store the parameter in the placement destination information storage unit 103 as the maximum value of the parameter associated with the selected placement destination.
  • the changing unit 102 continues to select the placement destination and calculate the parameters until parameters assigned to all placement destinations are calculated.
  • the value of the parameter only needs to be larger as the free space at the selected placement destination is larger. Furthermore, the value of the parameter may be a smaller value as the sum of the free space at the selected placement destination and the free space at the placement destination added before the selected placement destination is larger. If the range of values that can be taken by the characteristic value is 0 or more and less than 1, the parameter is added before the selected placement destination free space and the selected placement destination free space. Any value divided by the sum of the free space at the placement destination may be used. In the following description, the value obtained by dividing the free space of the selected placement destination by the sum of the free space of the selected placement destination and the free space of the placement destination added before the selected placement destination is Indicated as a parameter.
  • the changing unit 102 may calculate a value obtained by multiplying the normal parameter by the difference between the upper limit value and the lower limit value.
  • the changing unit 102 may calculate a value obtained by adding a lower limit value to the calculated value as a parameter.
  • the changing unit 102 calculates the parameters of each placement destination in the same manner when a predetermined event occurs.
  • the event is, for example, addition of an arrangement destination.
  • the event may be that an object is placed.
  • the event may be that an object is deleted.
  • the event may be another event.
  • the event may be a combination of a plurality of events.
  • the changing unit 102 may similarly calculate the parameters of each placement destination when any of a plurality of predetermined events occurs.
  • the changing unit 102 updates the parameters of each placement destination and the maximum value of the parameters stored in the placement destination information storage unit 103.
  • the change unit 102 stores, for each placement destination, parameters related to the placement destination stored in the placement destination information storage unit 103, for example, according to the placement destination parameters calculated according to the occurrence of the event. replace. Furthermore, for each placement destination, the change unit 102 replaces the maximum parameter value with the calculated parameter when the calculated placement destination parameter is larger than the maximum parameter value associated with the placement destination.
  • the placement destination information storage unit 103 stores parameters for each placement destination.
  • the placement destination information storage unit 103 stores information that can specify the order of addition of each placement destination.
  • the placement destination information storage unit 103 may store the free capacity of each placement destination.
  • the placement destination information storage unit 103 further stores the maximum parameter value for each placement destination.
  • the estimation unit 104 selects placement destination candidates in which the object to which the object information is assigned may be stored, for example, as follows: ,presume.
  • the estimation unit 104 first calculates a characteristic value based on the received object information according to the same method as the determination unit 101. That is, the characteristic value calculated by the estimation unit 104 for the combination of the object information and the arrangement destination is the same as the characteristic value calculated by the determination unit 101 for the combination of the same object information and the arrangement destination.
  • the determination unit 101 calculates, for example, a hash of data obtained by concatenating object information and a server number as a characteristic value. In this case, for example, for each of the placement destinations, the estimation unit 104 calculates, as the characteristic value, a hash of data obtained by connecting the received object information and the server number of the placement destination.
  • the determination unit 101 may assign, for example, pseudo random numbers generated by a pseudo random number generation function initialized using object information as a seed to a placement destination as a characteristic value in the added order. Good.
  • the estimation unit 104 assigns the pseudo-random numbers generated using the same pseudo-random number generation function initialized using the object information as a seed to each placement destination in the same added order. Assign as a value.
  • the characteristic value is a value uniquely determined based on the object information and the arrangement destination. That is, the determination unit 101 and the estimation unit 104 always calculate the same characteristic value if the combination of the object information and the arrangement destination is the same. As described above, the determination unit 101 determines the arrangement destination that is added later and whose associated parameter is larger than the characteristic value as the arrangement in which the object is arranged. Therefore, when the characteristic value calculated based on the object assigned to the object and the placement destination is smaller than the maximum value of the parameter associated with the placement destination, the object is placed in the placement destination. There is a possibility.
  • the estimation unit 104 sets all of the placement destinations whose calculated characteristic values are smaller than the maximum parameter values stored in the placement destination information storage unit 103 as placement destination candidates.
  • the estimation unit 104 transmits the placement destination candidates to the extraction unit 108.
  • the estimation unit 104 may transmit the identifier of each placement destination included in the placement destination candidates.
  • FIG. 2 is a flowchart showing an example of the operation of the arrangement apparatus 100 according to this embodiment when an arrangement destination is added.
  • the placement apparatus 100 may perform the operation shown in FIG. 2 periodically, for example.
  • the detection unit 107 detects whether an arrangement destination has been added (step S101).
  • the detection unit 107 only has to detect an operating placement destination. And the detection part 107 should just detect that the arrangement
  • the detection unit 107 acquires the identifier of the added placement destination, for example, from the added placement destination.
  • the detection unit 107 further acquires information indicating the free space from each placement destination.
  • each placement destination may be designed to transmit information indicating the identifier and the free capacity in response to a request from the detection unit 107 to transmit information indicating the identifier and the free capacity.
  • the detection unit 107 stores the identifiers of the added placement destinations in the placement destination information storage unit 103 via the changing unit 102 in a format that can identify the order of addition.
  • the detection unit 107 may store the free space of each placement destination in the placement destination information storage unit 103 via the changing unit 102.
  • the detection unit 107 may detect that the placement destination has been added when the amount of objects that can be placed at the last added placement destination has increased. In this case, the detection unit 107 does not have to store the added placement destination identifier in the placement destination information storage unit 103.
  • the number of placement destinations increases by one. Further, the storage area of the placement destination added last can be increased. However, the number of placement destinations does not decrease. Further, the storage area of the placement destination other than the placement destination added last is not increased.
  • the administrator who added the placement destination may notify the detection unit 107 of the identifier of the added placement destination by operating a terminal device (not shown), for example.
  • the placement device 100 ends the operation shown in FIG.
  • the changing unit 102 selects one placement destination.
  • the changing unit 102 may select, for example, the latest added placement destination among the unselected placement destinations (step S104).
  • the changing unit 102 derives a parameter by performing a set value derivation process for the selected placement destination (step S105). The setting value deriving process will be described in detail below.
  • an object that is already placed in the placement destination is determined by the determination unit 101 as described later, even if the placement destination in which the object is placed is changed. There is no need to move to a new location.
  • FIG. 3 is a flowchart showing an example of the operation of the set value derivation process of the placement apparatus 100 of the present embodiment.
  • the changing unit 102 first calculates the sum of the free space at the selected placement destination and the free space at the placement destination added before the selected placement destination. That is, the changing unit 102 calculates the sum of the free capacities of all the placement destinations excluding the placement destination added after the selected placement destination (step S201). For example, as described above, the changing unit 102 derives a setting value, that is, a parameter, of the selected placement destination based on the free capacity of the selected placement destination and the sum of the free capacity calculated in Step S201 (Step S201). S202).
  • a setting value that is, a parameter
  • the changing unit 102 stores the parameter derived in step S202 in the placement destination information storage unit 103 as the selected placement destination parameter.
  • the changing unit 102 may store, for example, the combination of the parameter derived in step S202 and the selected placement destination identifier in the placement destination information storage unit 103.
  • the changing unit 102 compares the parameter derived in step S ⁇ b> 202 with the maximum value of the selected placement destination parameter stored in the placement destination information storage unit 103. When the derived parameter is not equal to the maximum value of the selected placement destination parameter (No in step S203), the placement apparatus 100 ends the operation illustrated in FIG.
  • the changing unit 102 selects the selected placement destination parameter stored in the placement destination information storage unit 103. Is updated (step S204). That is, the changing unit 102 may store the parameter derived in step S202 in the placement destination information storage unit 103 as the maximum value of the selected placement destination parameter.
  • FIG. 4 is a diagram schematically illustrating an example of the order stored in the placement destination information storage unit 103 of the present embodiment.
  • the identifier, the order, the parameter, and the maximum parameter value are stored in the placement destination information storage unit 103 in association with each other for each placement destination.
  • the parameter is included between 0 and 1.
  • the parameter of the placement destination that is the first in the order is the maximum among the parameters of the placement destination.
  • the changing unit 102 may calculate parameters according to the following procedure.
  • the changing unit 102 may calculate the parameter according to a procedure other than the following procedure.
  • is an operator representing multiplication
  • is an operator representing division
  • Step 1 For each placement destination, a value A j is calculated by dividing the free space by the largest free space among all placement destinations.
  • a j represents a value obtained by dividing the free capacity of the j-th placement destination by the maximum value of the free capacity.
  • Step 2 Calculate the sum of A j of all placement destinations. The reciprocal B of the calculated sum is calculated.
  • Step 3 Assign 1 to variable C.
  • Step 4 Select the placement destination j added last.
  • Step 5 A j ⁇ B ⁇ C is calculated as the parameter P j of the selected placement destination j.
  • Step 6 Calculate C ⁇ (1 ⁇ P j ). Substitute the calculated value into C.
  • Step 7 If the order of the selected placement destination is the first order, the procedure is terminated.
  • Step 8 Select the placement destination added one before the selected placement destination (ie, decrease j by 1), and return to Step 5.
  • P j calculated in step 5 is A j ⁇ B ⁇ C ⁇ (ED) + D.
  • the changing unit 102 may calculate the parameters of each placement destination when the placement destination is added.
  • the changing unit 102 may calculate parameters for each placement destination in accordance with the placement of the object at any placement destination.
  • the changing unit 102 may calculate the parameters of each placement destination before the determining unit 101 determines the placement destination where the object is placed.
  • the changing unit 102 may calculate the parameters of each placement destination before the estimation unit 104 estimates the placement destination candidates where the objects are placed. Further, when calculating a parameter, the changing unit 102 does not have to calculate the parameter of the placement destination if any of the placement destination parameters does not change.
  • FIG. 5 is a flowchart showing an example of an operation of determining an arrangement destination where an object is arranged in the arrangement apparatus 100 according to the present embodiment.
  • the placement apparatus 100 determines a placement destination parameter before determining a placement destination where an object is placed.
  • the request processing unit 105 receives an object and an arrangement instruction from the instruction device 400 (step S301). For example, object information such as an attribute or an identifier of the object is given to the received object.
  • the instruction device 400 may transmit object information in addition to the object.
  • the request processing unit 105 may receive object information in addition to the object.
  • the request processing unit 105 transmits a placement destination determination instruction and object information to the determination unit 101.
  • the determination unit 101 receives the placement destination determination instruction, no placement destination has been selected yet.
  • the changing unit 102 determines the placement destination parameter before the determining unit 101 determines the placement destination where the object is placed.
  • the changing unit 102 selects the placement destination added last among the placement destinations that have not been selected (step S302).
  • the changing unit 102 performs a setting value derivation process for deriving a setting value (that is, a parameter) for the selected placement destination.
  • Step S304 The set value deriving process in step S304 is the same as the set value deriving process in step S105 shown in FIG.
  • the changing unit 102 may perform the operation shown in FIG. 3 described above in the setting value deriving process in step S304.
  • the determination unit 101 derives a characteristic value based on the received object information attached to the object (step S305). As described above, the characteristic value of the present embodiment is uniquely determined for the combination of the object information and the arrangement destination.
  • the determining unit 101 compares the parameter of the selected placement destination derived in step S304 with the characteristic value derived in step S305. When the derived characteristic value is smaller than the parameter of the selected placement destination (Yes in step S306), the determination unit 101 determines the selected placement destination as the placement destination where the object is placed (step S307). If the derived characteristic value is not smaller than the selected placement destination parameter (No in step S306), placement device 100 repeats the operations in and after step S302.
  • the determination unit 101 determines the selected placement destination as the placement destination where the object is placed (step S307).
  • the parameter derived for the placement destination having the first order is larger than the upper limit value that the characteristic value can take. In that case, the derived characteristic value is smaller than the parameter of the selected placement destination. Accordingly, the selected placement destination is determined as the placement destination where the object is placed. Therefore, when the selected placement destination is the first placement destination in the order, the determination unit 101 can omit the operations from step S304 to step S306 as in the operation illustrated in FIG.
  • the placement unit 106 places the received object at the determined placement destination (step S308).
  • FIG. 6 is a diagram schematically showing examples of parameters and characteristic values.
  • servers 0 to 5 are identifiers of arrangement destinations.
  • the horizontal bar indicated by “P” represents the size of the parameter.
  • a black circle indicated by “R” represents the size of the characteristic value.
  • FIG. 6 schematically shows the parameters and characteristic values of the placement destinations from the server 0 to the server 5.
  • the parameters and characteristic values of the respective placement destinations are distributed between the upper limit value and the lower limit value represented by a broken line.
  • FIG. 7 is a diagram schematically showing the result of determination by the determination unit 101.
  • Identity in FIG. 7 represents the identifier of the arrangement destination.
  • Server 0 to server 5 are the same as server 0 to server 5 shown in FIG.
  • Order represents the order in which the placement destination is added to the placement system 10. The order indicates that the placement destination to which the order is assigned is added later as the value increases. The server 5 is the placement destination added most recently.
  • Value comparison indicates whether the parameter P is greater than the characteristic value R.
  • “Value comparison” shown in FIG. 7 represents the relationship between the parameters and characteristic values shown in FIG.
  • a circle of “object placement destination” represents a placement destination determined by the determination unit 101 as a placement destination where the object is placed.
  • the server 4 is the last added destination among the destinations whose characteristic values are equal to or less than the parameters. Therefore, the determination unit 101 determines the server 4 as an arrangement destination where the object is arranged as shown in FIG.
  • FIG. 8 is a flowchart showing an example of an operation of estimating an arrangement destination candidate in which an object is arranged in the arrangement apparatus 100 of the present embodiment. For example, when the placement apparatus 100 takes out an object, the placement apparatus 100 performs an operation of estimating a placement destination candidate where the taken-out object is placed, as shown in FIG.
  • the request processing unit 105 receives a retrieval request and object information from the instruction device 400 (step S401). Upon receiving the extraction request and the object information, the request processing unit 105 transmits an arrangement destination estimation instruction and object information to the estimation unit 104. When the estimation unit 104 receives the placement destination estimation instruction, no placement destination has been selected yet.
  • the estimation unit 104 selects the placement destination added last among the unselected placement destinations (Step S403).
  • the estimation unit 104 reads the maximum value of the selected placement destination parameter from the placement destination information storage unit 103 (step S404).
  • the estimation unit 104 derives a characteristic value based on the received object information (step S405). As described above, in this embodiment, the characteristic value is uniquely determined for the combination of the object information and the arrangement destination. Further, the estimation unit 104 derives a characteristic value by the same method as the determination unit 101.
  • the received object information in addition to the placement destination estimation instruction is object information given to the object placed at the placement destination determined by the determination unit 101.
  • the characteristic value that the estimation unit 104 derives for the combination of the received object information and the selected placement destination is calculated for the same combination when the determination unit 101 determines the placement destination given to the object information. This is the same as the characteristic value derived from
  • the estimation unit 104 compares the maximum value of the selected placement destination parameter with the characteristic value derived in step S405 (step S406).
  • the maximum value of the selected placement destination parameter is not larger than the derived characteristic value (No in step S406)
  • placement device 100 repeats the operations in and after step S402.
  • the maximum value of the parameter of the selected placement destination is larger than the derived characteristic value (Yes in step S406), there is a possibility that the determination unit 101 has determined the selected placement destination as the placement destination of the target object. is there.
  • the target object is an object to which the received object information is assigned.
  • the estimation unit 104 adds the selected placement destination to the placement destination candidate where the target object is placed (Ste S407). After step S407, the placement apparatus 100 repeats the operations after step S402.
  • the estimation unit 104 ends the placement destination candidate estimation.
  • the estimation unit 104 identifies the placement destination added last among the placement destination candidates in which the target object is placed (step S408).
  • the estimation unit 104 may perform access to inquire whether or not the target object specified by the received object identifier is arranged in each of the arrangement destinations included in the arrangement destination candidates.
  • the estimation unit 104 may perform the access via, for example, the request processing unit 105 or the reading unit 108.
  • the placement destination where the target object is placed may transmit a response indicating that the target object is placed to the estimation unit 104.
  • An arrangement destination where the target object is not arranged may return an error, for example, for the access.
  • the estimation unit 104 further specifies the arrangement destination added last among the arrangement destinations that transmitted the response indicating that the target object is arranged. do it.
  • the estimation unit 104 may select the placement destination added most recently from the placement destination candidates.
  • the estimation unit 104 may perform access to inquire whether or not the target object specified by the received identifier of the object is arranged at the selected arrangement destination.
  • the estimation unit 104 may specify the arrangement destination as the arrangement destination added last.
  • the estimation unit 104 may exclude the arrangement destination from the arrangement destination candidates. And the estimation part 104 should just repeat operation
  • the estimation unit 104 transmits the identified identifier of the arrangement destination where the target object is arranged to the extraction unit 108.
  • the extraction unit 108 extracts the target object from the arrangement destination where the target object is arranged (step S409).
  • the extraction unit 108 may extract the target object from the estimation unit 104 from the arrangement destination specified by the arrangement destination identifier received via the request processing unit 105.
  • the arrangement destination specified by the estimation unit 104 is the arrangement destination in which the addition order is the latest among the arrangement destinations in which the target object is arranged. .
  • the extraction unit 108 extracts the target object from the arrangement destination in which the addition order is the latest among the arrangement destinations where the target object is arranged.
  • the extraction unit 108 extracts the target object from the arrangement destinations that have transmitted the response indicating that the target object is arranged, and the arrangement destination having the latest addition order is added. What is necessary is just to transmit an extraction request.
  • the arrangement destination that has received the extraction request may send the target object to the extraction unit 108.
  • the extraction unit 108 may send the target object to the instruction device 400 via the request processing unit 105, for example.
  • the arrangement destination determined as the arrangement destination where the object is arranged is the arrangement destination existing at the time of determination It may vary depending on the combination. That is, the same object may be arranged at a plurality of arrangement destinations.
  • the target object is arranged a plurality of times while being updated, the object in the latest state is arranged in the arrangement destination added last among the arrangement destinations where the object is arranged.
  • step S408 the estimation unit 104 adds the arrangement added most recently among the arrangement destinations where the target object is arranged as described above. You only need to specify the destination Then, the extraction unit 108 may extract the target object from the arrangement destination specified in step S408. As a result, the takeout unit 108 can take out the target object arranged most recently. Therefore, even when the target object is arranged a plurality of times while being updated, the extraction unit 108 can extract the newest target object. Further, in step S408, the estimation unit 104 may perform an access to inquire whether or not the target object is arranged in order from the later addition order among the arrangement destinations included in the arrangement destination candidates.
  • the estimation unit 104 may end the access for inquiring whether or not the target object is arranged.
  • the extraction unit 108 may extract the target object from the arrangement destination that has transmitted the response indicating that the target object is arranged.
  • the placement destination candidates estimated by the estimation unit 104 are server 0, server 3, and server 4, as shown in FIG.
  • Feature 1 A placement destination where an object is placed is uniquely determined based on a value derived using the identifier of the object and information associating the placement destination with a value range.
  • Feature 2 Objects are placed at all placement destinations.
  • Feature 3 Even when placement destinations are added, objects are placed almost uniformly at all placement destinations. Only a minimal number of objects are moved to place the objects uniformly.
  • the arrangement device 100 includes the above-described feature 1 and feature 2. Furthermore, even if the placement apparatus 100 does not move the objects according to the addition of the placement destinations, the objects are arranged almost uniformly at the placement destinations as the number of objects to be placed increases.
  • an object is a group of data.
  • the object may be, for example, an object.
  • each placement destination only needs to have a place where the object can be placed.
  • positioning part 106 should just be a conveyance apparatus which can convey an object to each arrangement place.
  • the take-out unit 108 may be a transport device that can transport an object from each placement destination.
  • the first effect is that the processing cost related to the placement of the object can be reduced when the placement destination where the object is placed, which is determined according to the rules, changes due to the addition of the placement destination. There is.
  • the change unit 102 determines each placement location so that the placement location in which the object is placed is not changed to a placement location other than the placement location added last. This is because the change is made based on the previous free space. This is because the determination unit 101 determines the placement destination of the object in accordance with the rules changed by the changing unit 102.
  • the arrangement destination where the object to be taken out is placed is identified, for example, by checking the presence / absence of the object at all placement places where the object may be placed.
  • the arrangement in which the object is arranged is compared to the case where the arrangement destination in which the object is arranged can be changed to an arbitrary arrangement destination that exists when the arrangement destination is added by adding the arrangement destination.
  • the number of placement destinations that may be determined as destinations is limited. Therefore, when the rearranged objects are not rearranged, it is possible to reduce an increase in processing cost for specifying the placement destination of the extracted object. That is, in this case, in addition to reducing the processing cost of rearranging the object according to the addition of the placement destination, the placement apparatus 100 according to the present embodiment increases the processing cost for specifying the placement destination of the extracted object. Can be reduced.
  • the placement destination of the object determined based on the object information in accordance with the rule changed based on the free space of each placement destination is the newly added placement destination. It does not change to other placement destinations. That is, the changing unit 102 changes the above-described rule so that the change in the object placement destination due to the addition of the placement destination is minimized. If the free space of each placement destination after relocation is the same, if the object is rearranged only for the placement destination added last, the object is placed between placement destinations other than the placement destination added last The amount of objects to be rearranged is small compared to the case where the objects are rearranged.
  • the arrangement apparatus 100 can reduce the processing cost of the object rearrangement when the object is rearranged in accordance with a change in the rule for uniquely determining the object destination.
  • the placement destination where the object is placed which is determined according to the rules, is changed by adding the placement destination, the object is placed in each placement destination without rearranging the already placed object.
  • the object is placed in each placement destination without rearranging the already placed object.
  • the changing unit 102 changes the rule for uniquely determining the placement destination of the object according to the free capacity of each placement destination. For example, the changing unit 102 changes the rule so as to determine that an object is arranged at each of the arrangement destinations at a rate corresponding to the free space. As a result, the number of objects placed in each placement destination is equal or nearly equal as the number of placed objects increases, even if the objects already placed in any placement destination are not rearranged. become.
  • This embodiment further has a second effect that the maximum time required to determine the object placement destination can be shortened.
  • the determination unit 101 of this embodiment determines the placement destination where the object is placed by repeating the process of determining whether the selected placement destination is the placement destination where the object is placed. Because it does.
  • the number of processes does not exceed the number of arrangement destinations at the time when the process is started. As described above, the time for the device of Patent Document 1 to determine the placement destination may be extended by chance. However, in the present embodiment, even if the number of processes described above is increased by chance, the upper limit of the number of times is the number of placement destinations. Therefore, the arrangement apparatus 100 according to the present embodiment can reduce the maximum time required to determine the object arrangement destination.
  • FIG. 9 is a block diagram illustrating an example of a configuration of an arrangement system 10A according to a modification of the first embodiment.
  • the placement system 10A includes a placement device 100A, a placement execution device 200, and a server array 300.
  • the arrangement execution apparatus 200 the arrangement apparatus 100A, the arrangement destinations included in the server array 300, and the instruction apparatus 400 are connected to be communicable with each other.
  • the server array 300 and the instruction device 400 are the same as the server array 300 and the instruction device 400 of the first embodiment, respectively.
  • Each component of the arrangement device 100A is the same as the component to which the same code
  • Each component of the arrangement execution device 200 is the same as the component to which the same reference numeral is assigned in the arrangement device 100 of the first embodiment.
  • the determination unit 101 transmits the determined placement destination identifier to the placement unit 106 via the request processing unit 105, for example.
  • the placement unit 106 may receive from the request processing unit 105 a placement instruction that is an instruction to place an object, an identifier of the placement destination determined by the determination unit 101, and an object to be placed in the placement destination.
  • the estimation unit 104 transmits the placement destination candidate to the extraction unit 108 via the request processing unit 105, for example.
  • the estimation unit 104 transmits the specified identifier of the placement destination where the handling object is placed to the extraction unit 108 via the request processing unit 105.
  • the estimation unit 104 transmits, for example, the identified placement destination identifier to the request processing unit 105.
  • the request processing unit 105 transmits the extraction request, the identifier of the object to be extracted, and the identified placement destination identifier to the extraction unit 108.
  • the object is not sent via the determination unit 101 and the estimation unit 104 included in the placement apparatus 100A.
  • the object is sent between the request processing unit 105 and the arrangement unit 106 or the extraction unit 108.
  • the arrangement system 10A of the present modification performs the same operation as the arrangement system 10 of the first embodiment.
  • FIG. 10 is a diagram illustrating an example of the configuration of the arrangement device 100B according to the present embodiment.
  • the arrangement device 100 ⁇ / b> B includes a determination unit 101 and a change unit 102.
  • the determining unit 101 determines the placement destination where the object is placed among one or more placement destinations in response to receiving the object information given to the object.
  • a setting value is assigned to each placement destination.
  • the object can be placed at the placement destination.
  • the placement destination that the decision unit 101 decides as the placement destination where the object is placed is newly added with the assigned setting value larger than the characteristic value uniquely derived based on the object information.
  • the changing unit 102 changes at least any of the placement destinations so that the placement destination determined in accordance with the placement destination is not changed to the placement destination other than the placement destination added last.
  • the set value given to the crab is changed.
  • the changing unit 102 changes the setting value assigned to at least one of the placement destinations based on a free space that represents the amount of the object that can be newly placed at each of the placement destinations.
  • the arrangement determining unit 110B may be an apparatus that is communicably connected to the arrangement execution apparatus 200, such as the arrangement apparatus 100A illustrated in FIG.
  • the present embodiment described above has the same effect as the first embodiment.
  • the reason is the same as the reason for the effect of the first embodiment.
  • the placement device 100, the placement device 100A, the placement device 100B, and the placement execution device 200 can each be realized by a computer, a program for controlling the computer, or dedicated hardware.
  • the placement device 100, the placement device 100A, the placement device 100B, and the placement execution device 200 can also be realized by a combination of a computer, a program for controlling the computer, and dedicated hardware.
  • FIG. 11 is a diagram illustrating an example of a hardware configuration of a computer 1000 that can realize the placement device 100, the placement device 100A, the placement device 100B, and the placement execution device 200.
  • a computer 1000 includes a processor 1001, a memory 1002, a storage device 1003, and an I / O (Input / Output) interface 1004.
  • the computer 1000 can access the recording medium 1005.
  • the memory 1002 and the storage device 1003 are storage devices such as a RAM (Random Access Memory) and a hard disk, for example.
  • the recording medium 1005 is, for example, a storage device such as a RAM or a hard disk, a ROM (Read Only Memory), or a portable recording medium.
  • the storage device 1003 may be the recording medium 1005.
  • the processor 1001 can read and write data and programs from and to the memory 1002 and the storage device 1003.
  • the processor 1001 can access, for example, the instruction device 400 and each placement destination via the I / O interface 1004.
  • the processor 1001 can access the recording medium 1005.
  • the recording medium 1005 stores a program that causes the computer 1000 to operate as the arrangement apparatus 100, the arrangement apparatus 100A, the arrangement apparatus 100B, or the arrangement execution apparatus 200.
  • the processor 1001 loads, into the memory 1002, a program stored in the recording medium 1005 that causes the computer 1000 to operate as the placement device 100, the placement device 100A, the placement device 100B, or the placement execution device 200. Then, when the processor 1001 executes the program loaded in the memory 1002, the computer 1000 operates as the arrangement device 100, the arrangement device 100A, the arrangement device 100B, or the arrangement execution device 200.
  • the units included in the following groups are realized by, for example, a dedicated program that can read the function of each unit read from the recording medium 1005 that stores the program into the memory 1002 and a processor 1001 that executes the program. can do.
  • the above group includes a determination unit 101, a change unit 102, an estimation unit 104, a request processing unit 105, an arrangement unit 106, a detection unit 107, and an extraction unit 108.
  • the location information storage unit 103 can be realized by a memory 1002 included in the computer 1000 or a storage device 1003 such as a hard disk device.
  • some or all of the units included in the group and the placement destination information storage unit 103 can be realized by a dedicated circuit that realizes the function of each unit.
  • a set value is assigned to each of the objects, and the set value assigned among the one or more placement destinations where the object can be placed is included in the object information.
  • the placement destination determined based on the free space that represents the amount of the object that can be newly placed in each placement destination is the placement destination that was added last.
  • An arrangement device comprising:
  • the changing unit For each of the placement destinations, the changing unit includes a free space that represents the amount of the object that can be newly placed in a target placement destination that is the placement destination, and the placement destination added after the target placement destination. Deriving the setting value according to the sum of the free capacity of each of the arrangement destinations excluding the, and changing the setting value given to the target arrangement destination to the derived setting value, The placement device according to attachment 1.
  • the changing unit is configured such that the setting value given to the placement destination increases as the free space of the placement destination increases, and the setting value is added before the target placement destination.
  • the placement device For each of the placement destinations, when the derived setting value is larger than the maximum setting value of the placement destination stored in the placement destination information storage unit, the changing unit sets the placement value to the placement destination. As the maximum value of the previous set value, stored in the placement destination information storage means, The placement device further includes: In response to receiving the object information, all the arrangement destinations whose characteristic values calculated based on the attribute are smaller than the maximum value of the set values are arranged by the object to which the object information is assigned.
  • the placement device according to attachment 2 or 3 further comprising: an estimation unit that identifies the placement destination as a candidate.
  • the estimation means further specifies the placement destination that is included in the estimated placement destination candidates and that has the latest added order among the placement destinations where the object is placed,
  • the arrangement apparatus according to appendix 4, wherein the arrangement apparatus further includes a take-out means for taking out the object from the specified arrangement destination.
  • the determination unit is configured to distribute the plurality of characteristic values derived from the plurality of different pieces of object information so as to be uniformly or almost uniformly distributed between predetermined maximum values and minimum values.
  • the characteristic value is derived based on the object information given to
  • the changing unit is configured such that a ratio of the difference between the setting value and the minimum value of the placement destination to the difference between the maximum value and the minimum value is a ratio of the free capacity of the placement destination.
  • Appendix 7 The placement device according to any one of appendices 1 to 6, further comprising: a placement unit that places the object at the placement destination determined as the placement destination where the object is placed.
  • a set value is assigned to each of the objects, and the set value assigned among the one or more placement destinations where the object can be placed is included in the object information. Determining the most recently added placement destination that is larger than the characteristic value uniquely derived based on the placement location where the object is placed; In accordance with the addition of the placement destination, the placement destination determined based on the free space that represents the amount of the object that can be newly placed in each placement destination is the placement destination that was added last. Changing the setting value assigned to at least one of the placement destinations so as not to change to the placement destination other than Placement method.
  • a set value is assigned to each of the objects, and the set value assigned among the one or more placement destinations where the object can be placed is included in the object information.
  • the placement destination determined based on the free space that represents the amount of the object that can be newly placed in each placement destination is the placement destination that was added last.
  • Changing means for changing the set value given to at least one of the placement destinations so as not to change to the placement destination other than A placement program to be operated.
  • (Appendix 21) Computer The plurality of characteristic values derived from a plurality of different object information are given to the object so that they are uniformly or almost uniformly distributed between predetermined maximum and minimum values.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Manufacturing & Machinery (AREA)
  • Quality & Reliability (AREA)
  • Automation & Control Theory (AREA)
  • Mechanical Engineering (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

 規則に従って決定される、オブジェクトが配置される配置先が、配置先の追加によって変化する場合における、オブジェクトの配置に係る処理コストを低減できる配置装置を提供する。 本発明の一態様に係る配置装置は、オブジェクトに付与されたオブジェクト情報を受信するのに応じて、それぞれ設定値が付与され、前記オブジェクトが配置されうる1つ以上の配置先のうち、付与されている前記設定値が、前記オブジェクト情報に基づいて一意に導出された特性値より大きい、最も新しく追加された前記配置先を、前記オブジェクトが配置される前記配置先として決定する決定手段と、前記配置先が追加されるのに応じて、前記配置先の各々に新たに配置できる前記オブジェクトの量を表す空き容量に基づいて、決定される前記配置先が、最後に追加された前記配置先以外の前記配置先に変化しないように、前記配置先の少なくともいずれかに付与されている前記設定値を変更する変更手段と、を備える。

Description

配置装置、配置方法及び配置プログラムを記憶する記録媒体
 本発明は、オブジェクトの配置先を決定する技術に関する。
 複数の配置先のいずれかに配置されたオブジェクトを取り出すためには、オブジェクトが配置された配置先を特定する必要がある。オブジェクトが配置される配置先は、例えば、記憶装置、記憶媒体、場所、あるいは物理的な位置などである。例えば、オブジェクトと、そのオブジェクトが配置されている配置先との関連(関連性)を記憶しておくことによって、オブジェクトが配置された配置先を特定することができる。オブジェクトが配置された配置先を高速に特定できない場合、オブジェクトに高速にアクセスすることは難しい。オブジェクトとそのオブジェクトが配置されている配置先との関連をすべて記憶する場合、オブジェクトの数の増加に伴って、オブジェクトと配置先との関連を記憶するのに必要な記憶容量も増加する。膨大な数のオブジェクトが配置される場合、膨大な数の関連を記憶する必要がある。さらに、記憶されている膨大な数の関連を、消失しないよう維持する必要がある。膨大な数の関連を記憶するためには、膨大な数の関連を格納する記憶装置のコストが必要である。記憶されている膨大な数の関連を、消失しないように維持するためには、さらにコストが必要である。
 オブジェクトとそのオブジェクトの配置先との関係を記憶することなく、オブジェクトが配置される配置先を特定する方法として、例えば、オブジェクトの識別子などに基づき、オブジェクトの配置先を一意に決定する方法がある。
 そのような技術が使用される装置の例が、例えば、特許文献1において開示されている。特許文献1の装置は、オブジェクトの識別子をシードとして疑似乱数を発生させる。その疑似乱数は、シードに対して一意に定まる。また、その疑似乱数の発生確率は、その疑似乱数の値域において一様である。特許文献1の装置は、値の範囲と配置先との関連が記録される表に基づき、発生した疑似乱数が含まれる値の範囲に関連する配置先を、そのオブジェクトの配置先として決定する。特許文献1の装置は、配置先に関連する値の範囲に含まれる疑似乱数が発生するまで、疑似乱数の発生を繰り返す。
国際公開第2012/023384号
 特許文献1の技術では、配置先に関連付けられた値の範囲に入る疑似乱数が発生しない限り、配置先は決まらない。その場合、特許文献1の装置は、発生した疑似乱数が、配置先に関連付けられた値の範囲に入るまで、例えば、所定の方法に従ったシードの更新と更新されたシードを使用した疑似乱数の発生とを繰り返す。従って、特許文献1の装置が配置先を決定するのに必要な時間は定まらない。特許文献1の装置が配置先を決定する時間は、偶然によって伸びる可能性がある。さらに、特許文献1の装置は、規則に従って決定される、オブジェクトが配置される配置先が、配置先の追加によって変化した場合、オブジェクトの再配置を行う。
 本発明の目的の一つは、規則に従って決定される、オブジェクトが配置される配置先が、配置先の追加によって変化する場合における、オブジェクトの配置に係る処理コストを低減できる配置装置等を提供することにある。
 本発明の一態様に係る配置装置は、オブジェクトに付与されたオブジェクト情報を受信するのに応じて、それぞれ設定値が付与され、前記オブジェクトが配置されうる1つ以上の配置先のうち、付与されている前記設定値が、前記オブジェクト情報に基づいて一意に導出された特性値より大きい、最も新しく追加された前記配置先を、前記オブジェクトが配置される前記配置先として決定する決定手段と、前記配置先が追加されるのに応じて、前記配置先の各々に新たに配置できる前記オブジェクトの量を表す空き容量に基づいて、決定される前記配置先が、最後に追加された前記配置先以外の前記配置先に変化しないように、前記配置先の少なくともいずれかに付与されている前記設定値を変更する変更手段と、を備える。
 本発明の一態様に係る配置方法は、オブジェクトに付与されたオブジェクト情報を受信するのに応じて、それぞれ設定値が付与され、前記オブジェクトが配置されうる1つ以上の配置先のうち、付与されている前記設定値が、前記オブジェクト情報に基づいて一意に導出された特性値より大きい、最も新しく追加された前記配置先を、前記オブジェクトが配置される前記配置先として決定し、前記配置先が追加されるのに応じて、前記配置先の各々に新たに配置できる前記オブジェクトの量を表す空き容量に基づいて、決定される前記配置先が、最後に追加された前記配置先以外の前記配置先に変化しないように、前記配置先の少なくともいずれかに付与されている前記設定値を変更する。
 本発明の一態様に係る配置プログラムは、コンピュータを、オブジェクトに付与されたオブジェクト情報を受信するのに応じて、それぞれ設定値が付与され、前記オブジェクトが配置されうる1つ以上の配置先のうち、付与されている前記設定値が、前記オブジェクト情報に基づいて一意に導出された特性値より大きい、最も新しく追加された前記配置先を、前記オブジェクトが配置される前記配置先として決定する決定手段と、前記配置先が追加されるのに応じて、前記配置先の各々に新たに配置できる前記オブジェクトの量を表す空き容量に基づいて、決定される前記配置先が、最後に追加された前記配置先以外の前記配置先に変化しないように、前記配置先の少なくともいずれかに付与されている前記設定値を変更する変更手段と、して動作させる。本発明は、上述の配置プログラムを記憶する記録媒体によっても実現される。
 本発明には、規則に従って決定される、オブジェクトが配置される配置先が、配置先の追加によって変化する場合における、オブジェクトの配置に係る処理コストを低減できるという効果がある。
図1は、本発明の第1の実施形態に係る配置システム10の構成を示すブロック図である。 図2は、第1の実施形態の配置装置100の、配置先が追加される場合における動作の例を表すフローチャートである。 図3は、第1の実施形態の配置装置100の、設定値導出処理の動作の例を表すフローチャートである。 図4は、第1の実施形態の配置先情報記憶部103に格納されている順番などの例を模式的に表す図である。 図5は、第1の実施形態の配置装置100の、オブジェクトが配置される配置先を決定する動作の例を表すフローチャートである。 図6は、パラメータと特性値の例を模式的に表す図である。 図7は、第1の実施形態の、決定部101による決定の結果などを模式的に表す図である。 図8は、第1の実施形態の配置装置100の、オブジェクトが配置されている配置先の候補を推定する動作の例を表すフローチャートである。 図9は、第1の実施形態の変形例の配置システム10Aの構成の例を表すブロック図である。 図10は、本発明の第2の実施形態の配置装置100Bの構成の例を表す図である。 図11は、本発明の各実施形態に係る、配置装置及び配置実行装置を実現することができる、コンピュータ1000のハードウェア構成の一例を表す図である。
 次に、本発明を模範的に実施する形態について図面を参照して詳細に説明する。なお、以下に説明する実施形態は、請求の範囲に係る発明を限定しない。また実施形態の中で説明されている構成の組み合わせの全てが、発明の構成に必須であるとは限らない。
 <第1の実施形態>
 まず、本発明の第1の実施形態の配置システム10について、図面を参照して詳細に説明する。
 図1は、本実施形態に係る配置システム10の構成を示すブロック図である。図1を参照すると、本実施形態の配置システム10は、配置装置100と、1つ以上のサーバ(サーバ301~サーバ30N)とを含む。サーバ301~サーバ30Nは、図1において、サーバアレイ300と表記されている。配置装置100と各サーバとは、互いに通信可能に接続されている。以下の説明において、各サーバは、配置先とも表記される。すなわち、サーバ301~サーバ30Nは、それぞれ、配置先301~配置先30Nとも表記される。配置装置100は、さらに、指示装置400と通信可能に接続されている。
 各配置先(すなわち、配置先301~配置先30Nの各々)は、例えば、オブジェクトを配置することができる記憶領域を含む。各配置先は、後述される配置要求に応じて、オブジェクトを記憶領域に記憶する。各配置先は、後述される取り出し要求に応じて、記憶領域に格納されているオブジェクトを取り出す。そして、各配置先は、取り出したオブジェクトを取り出し要求の送信元に送る。
 オブジェクトは、例えば、ひとまとまりのデータ(データセット)である。オブジェクトには、オブジェクト情報が付与されている。オブジェクト情報は、例えば、オブジェクトの識別子である。オブジェクト情報は、オブジェクトの例えば性質などを表す属性を含んでいてもよい。オブジェクト情報は、オブジェクトの識別子を含んでいてもよい。オブジェクト情報は、オブジェクトに固有な情報であればよい。
 なお、本発明の各実施形態では、同一のオブジェクトとして扱われるオブジェクトには、オブジェクトの中身が更新されても、同一のオブジェクト情報が付与される。また、異なるオブジェクトとして扱われるオブジェクトには、異なるオブジェクト情報が付与される。さらに、1つの配置先に同一のオブジェクトとして扱われるオブジェクトが複数回配置される場合、その配置先に配置されているそのオブジェクトは、最も後に配置されたオブジェクトに置き換えられる。
 本実施形態では、配置先は、例えば、配置システム10の管理者の操作によって、増加し得る。配置先の増加は、例えば、配置先を1つずつ追加することによって行われる。また、配置先の増加は、例えば、最後に追加された配置先の記憶領域を増加させることによっても行われる。最後に追加された配置先以外の配置先の記憶領域は、増加しない。本発明の各実施形態では、「配置先を追加すること」は、配置先の数を増加させること、及び、最後に追加された配置先の空き容量を増加させることの少なくともいずれかを表す。配置先の空き容量は、その配置先に新たに配置することができるオブジェクトの量を表す値である。オブジェクトの量は、例えば、オブジェクトのサイズが同じである場合、オブジェクトの数によって表されていてもよい。オブジェクトの量は、オブジェクトのサイズによって表されていてもよい。
 指示装置400は、配置装置100に、オブジェクトを配置先のいずれかに配置する要求である配置要求を送信する。配置要求は、例えば、あらかじめ定められた信号である。指示装置400は、例えば、配置要求に加えて、その配置要求によって配置を要求するオブジェクトを、配置装置100に送信すればよい。指示装置400は、配置要求として、オブジェクトを、配置装置100に送信してもよい。すなわち、指示装置400は、オブジェクトを配置装置100に送信することによって、そのオブジェクトの配置を要求してもよい。
 指示装置400は、配置装置100に、さらに、配置先のいずれかに配置されているオブジェクトを取り出す要求である取り出し要求を送信する。取り出し要求は、例えば、あらかじめ定められた信号である。指示装置400は、例えば、取り出し要求に加えて、その取り出し要求によって取り出しを要求するオブジェクトの識別子及びオブジェクト情報を、配置装置100に送信すればよい。指示装置400は、取り出し要求として、取り出しを要求するオブジェクトの識別子及びオブジェクト情報を、配置装置100に送信してもよい。すなわち、指示装置400は、オブジェクトの識別子及びオブジェクト情報を送信することによって、そのオブジェクトの取り出しを要求してもよい。さらに、オブジェクト情報がオブジェクトの識別子である場合、指示装置400は、オブジェクトの識別子を送信することによって、オブジェクトの取り出しを要求すればよい。
 配置装置100は、決定部101と、変更部102と、配置先情報記憶部103と、推定部104と、要求処理部105と、配置部106と、検出部107と、取り出し部108とを含む。図1に示す例では、配置装置100に含まれる配置決定部110が、決定部101と、変更部102と、配置先情報記憶部103と、推定部104とを含む。
 要求処理部105は、前述の、配置要求と、取り出し要求とを、指示装置400から受信する。配置要求を受信した場合、要求処理部105は、受信したオブジェクトを配置する配置先を決定する指示である配置先決定指示と、受信したオブジェクトのオブジェクト情報とを、配置決定部110に送信する。配置決定部110に含まれる決定部101が、送信された配置先決定指示とオブジェクトのオブジェクト情報とを受信する。決定部101は、受信したオブジェクト情報と、配置先決定指示を受信した際の配置先とに対して一意に、配置先を決定する。決定部101については、後で詳細に説明する。
 配置部106は、配置指示によって配置を指示されたオブジェクトを、決定部101によって決定された配置先に配置する。配置部106は、配置指示と、決定部101によって決定された配置先の識別子と、配置先に配置するオブジェクトとを、決定部101から受け取ればよい。オブジェクトの配置が行われた場合、配置部106は、オブジェクトの配置が成功したことを表す応答を、要求処理部105を介して、指示装置400に送信してもよい。
 要求処理部105が取り出し要求を受信した場合、要求処理部105は、配置先推定指示と、受信したオブジェクト情報とを、配置決定部110に送信する。配置先推定指示は、受信したオブジェクト情報が付与されているオブジェクトが配置されている配置先の候補を推定する指示である。配置決定部110に含まれる推定部104が、送信された配置先推定指示とオブジェクト情報とを受信する。推定部104は、受信したオブジェクト情報と、配置先が追加された順番とに基づいて、そのオブジェクト情報が付与されているオブジェクトが配置されている可能性がある配置先である、配置先の候補を推定する。推定部104は、さらに、配置先の候補に含まれる配置先のうち、受信したオブジェクト情報が付与されているオブジェクトが配置されている配置先を特定してもよい。推定部104は、さらに、受信したオブジェクト情報が付与されているオブジェクトが配置されている配置先の中で、追加された順番が最も後である配置先を特定してもよい。推定部104については、後で詳細に説明する。推定部104は、特定した配置先の識別子を、例えば要求処理部105を介して、取り出し部108に送信してもよい。推定部104は、特定された配置先の識別子とオブジェクトの識別子と取り出し要求とを、取り出し部108に送信してもよい。推定部104は、推定した配置先の候補を表すデータ値を、例えば要求処理部105を介して、取り出し部108に送信してもよい。推定部104は、推定された配置先の候補を表すデータ値とオブジェクトの識別子と取り出し要求とを、取り出し部108に送信してもよい。
 取り出し部108は、推定部104によって特定された、受信したオブジェクト情報が付与されているオブジェクトが配置されている配置先の識別子を受信した場合、その配置先にオブジェクトの取り出しを要求すればよい。あるいは、取り出し部108は、推定部104によって配置先の候補として推定された配置先の各々に対して、オブジェクトの取り出しを要求してもよい。取り出し部108は、例えば、配置先の候補として推定された配置先のうち、追加の順番が最も後である配置先から順に、追加の順番に関して降順で、配置先を選択すればよい。そして、取り出し部108は、選択された配置先に、取り出しが要求されたオブジェクトの識別子と、その識別子によって特定されるオブジェクトの取り出し要求を送信すればよい。オブジェクトの識別子と取り出し要求とを受信した配置先は、その配置先に、受信した識別子によって特定されるオブジェクトが配置されているか否かを判定すればよい。受信した識別子によって特定されるオブジェクトが配置されている配置先は、そのオブジェクトを取り出し部108に送ればよい。受信した識別子によって特定されるオブジェクトが配置されていない配置先は、オブジェクトが配置されていないことを表す応答を、取り出し部108に送信すればよい。取り出し部108は、配置先からオブジェクトを受け取った場合、そのオブジェクトを、例えば要求処理部105を介して、指示装置400に送ればよい。
 取り出し部108は、配置先の候補の各々に、オブジェクトの識別子と、オブジェクトの有無を確認する要求とを送信してもよい。その場合、配置先は、受信した識別子によって特定されるオブジェクトが配置されているか否かを確認する処理を行えばよい。そして、配置先は、オブジェクトが配置されているか否かを表す応答を、取り出し部108に送信すればよい。取り出し部108は、オブジェクトが配置されていることを表す応答を送信した配置先に対して、オブジェクトの識別子と取り出し要求とを送信すればよい。
 指示装置400は、いずれかの配置先にオブジェクトを、その配置先から削除する削除要求を、配置装置100に送信してもよい。その場合、指示装置400は、例えば、削除するオブジェクトの識別子とオブジェクト情報と削除要求とを要求処理部105に送信する。その場合、要求処理部105及び取り出し部108は、取り出し要求を受信した場合と同様に動作する。ただし、この場合、配置先に送信される要求は削除要求である。また、識別子によって特定されるオブジェクトは、そのオブジェクトが配置されている配置先によって削除される。
 検出部107は、配置先として動作するサーバを特定する。そして、検出部107は、特定された配置先の各々から、その配置先の空き容量を取得する。検出部107は、さらに、配置先の追加を検出する。すなわち、検出部107は、配置先の数の増加及び最後に追加された配置先の記憶領域の増加を検出する。検出部107は、例えば、新たに追加されたことが検出された配置先の識別子を、配置決定部110に含まれる変更部102に送信すればよい。検出部107は、例えば、新たに追加されたことが検出された配置先の識別子を、各配置先の追加された順番を特定することができるように、配置先情報記憶部103に格納してもよい。検出部107は、取得した、配置先の各々の空き容量を表す情報を、変更部102に送信する。検出部107は、取得した、配置先の各々の空き容量を表す情報を、配置先情報記憶部103に格納してもよい。なお、本発明の各実施形態の説明において、空き容量を表す情報を、単に、空き容量とも表記する。例えば、「空き容量を取得する」は、空き容量を表す情報を取得することを表す。
 次に、配置決定部110に含まれる、決定部101と、変更部102と、配置先情報記憶部103と、推定部104とについて説明する。
 決定部101は、例えば、配置先決定指示及びオブジェクト情報を受信するのに応じて、オブジェクトが配置されうる1つ以上の配置先のうち、オブジェクトが配置される配置先を決定する。決定部101は、例えば、配置先の各々の空き容量に応じて、上述の1つ以上の配置先の組み合わせと、オブジェクトに付与されているオブジェクト情報とに基づいて、オブジェクトが配置される配置先を一意に決定する規則に従って定まる配置先を特定する。規則は、例えば、そのオブジェクト情報を、前述の一つ以上の配置先のいずれかに結びつける、オブジェクトを使用して行う処理の手順である。決定部101は、決定された配置先を、オブジェクトが配置される配置先に決定する。
 具体的には、決定部101は、まず、配置先の各々について、オブジェクトに付与されているオブジェクト情報と配置先とに基づいて一意に定まる値である特性値を算出する。決定部101は、オブジェクトに付与されているオブジェクト情報と配置先とに基づいて一意に定まる特性値を、その配置先に関連付ける。
 決定部101が導出する特性値は、例えば、あり得るさまざまなオブジェクト情報に対して、特性値の下限値と上限値の間で、一様又はほぼ一様に分布する値であればよい。特性値は、例えば、オブジェクト情報及びサーバ番号を連結したデータのハッシュである。その場合、決定部101は、ハッシュを生成させる、所定のハッシュ関数を使用して、オブジェクト情報及びサーバ番号を連結したデータのハッシュを導出すればよい。なお、サーバ番号は、配置先に付与されている、配置先に固有の番号である。サーバ番号は、例えば、配置先が配置システム10に追加された順番を表していてもよい。サーバ番号は、配置先の識別子であってもよい。以下の説明において、サーバ番号は、配置先番号とも表記される。
 特性値は、例えば、オブジェクト情報をシード値として使用することによって導出される疑似乱数の値であってもよい。その場合、決定部101は、オブジェクト情報をシード値として使用して、疑似乱数を発生させる、所定の疑似乱数生成関数を初期化すればよい。疑似乱数生成関数は、同じシードを使用して初期化された場合、同一の疑似乱数列を生成する関数であればよい。そして、決定部101は、その疑似乱数生成関数を使用して、疑似乱数を発生させればよい。その場合、決定部101は、例えば、配置先の数と同じ数の疑似乱数を発生させればよい。そして、決定部101は、例えば、配置先が追加された順番で、発生させた疑似乱数を、特性値として、配置先に関連付ければよい。オブジェクトがどの配置先にも配置されていない初期状態において、配置先が存在する場合、初期状態において存在する配置先にも、あらかじめ、追加された順番が定められていればよい。初期状態において、複数の配置先が存在する場合、それらの複数の配置先の各々にも、あらかじめ、異なる追加された順番が定められていればよい。
 また、各配置先には、変更部102によって配置先の空き容量に基づいて導出された値である、パラメータが付与されている。各配置先のパラメータは、例えば、配置先情報記憶部103に格納されている。以下の説明において、パラメータは、「設定値」とも表記される。変更部102によるパラメータの導出については、後で詳細に説明する。
 決定部101は、オブジェクト情報に基づいて導出された特性値が、付与されているパラメータより小さい配置先の中で、最も後に追加された配置先を、そのオブジェクト情報が付与されているオブジェクトが配置される配置先に決定する。決定部101は、決定した配置先の識別子を、配置部106に送信する。前述の規則は、例えば、付与されている設定値が、オブジェクトに付与されているオブジェクト情報に基づいて一意に導出された特性値より大きい、最も後に追加された配置先を、そのオブジェクトが配置される配置先に決定することである。その規則は、各配置先に付与されている設定値によって具体的に定まる。後で詳しく説明されるように、変更部102による規則の変更は、配置先に空き容量に応じて、設定値を変更することによって行われる。
 変更部102は、例えば、配置先が追加されるのに応じて、配置先を決定する規則を変更する。変更部102は、検出手段107によって配置先の追加が検出されるのに応じて、配置先を決定する規則を変更すればよい。変更部102は、いずれかのオブジェクトが配置されるたびに、配置先を決定する規則を変更してもよい。変更部102は、いずれかのオブジェクトが配置先から削除されるたびに、配置先を決定する規則を変更してもよい。変更部102は、規則に従って決定される、あるオブジェクトが配置される配置先が、その規則の変更によって、最後に追加された配置先以外の配置先に変化しないように、その規則の変更を行う。規則の変更は、具体的には、例えば、少なくともいずれかの配置先に付与されている設定値の変更である。
 以下では、変更部102について、さらに詳しく説明する。
 配置システム10が動作を開始した際、変更部102は、まず、配置システム10が動作を開始した時点において存在する配置先の各々の空き容量を、例えば検出部107から受信する。変更部102は、各配置先の、新たに配置することができるオブジェクトの量を表す空き容量に基づいて、各配置先に付与するパラメータを算出する。具体的には、変更部102は、配置先から、順次、1つの配置先を選択する。変更部102は、選択された配置先の空き容量と、選択された配置先の空き容量と選択された配置先より前に追加された配置先の空き容量との和とに基づいて、パラメータを算出する。変更部102は、パラメータの下限値が上述の特性値の下限値と同じであり、特性値の上限値がパラメータの上限値未満になるように、パラメータを算出する。パラメータの上限値は、例えば、特性値の上限値より大きい値のうち、変更部102が扱える最も小さい値であればよい。変更部102は、算出したパラメータを、選択した配置先に付与する。変更部102は、算出した値を、選択した配置先に関連付けられているパラメータとして、配置先情報記憶部103に格納すればよい。変更部102は、さらに、そのパラメータを、選択した配置先に関連付けられているパラメータの最大値として、配置先情報記憶部103に格納すればよい。変更部102は、全ての配置先に付与されるパラメータが算出されるまで、配置先の選択とパラメータの算出を続ける。
 パラメータの値は、選択された配置先の空き容量が大きいほど大きい値であればよい。さらに、パラメータの値は、選択された配置先の空き容量と選択された配置先より前に追加された配置先の空き容量との和が大きいほど、小さい値であればよい。特性値が取りうる値の範囲が0以上1未満であれば、パラメータは、選択された配置先の空き容量を、選択された配置先の空き容量と選択された配置先より前に追加された配置先の空き容量との和で割った値であればよい。以下の説明において、選択された配置先の空き容量を、選択された配置先の空き容量と選択された配置先より前に追加された配置先の空き容量との和で割った値を、正規パラメータと表記する。特性値が取りうる値の上限値及び下限値が1及び0でない場合、変更部102は、正規パラメータに、前述の上限値と下限値との差を掛けた値を算出すればよい。変更部102は、算出された値に、さらに、下限値を足した値を、パラメータとして算出すればよい。
 変更部102は、さらに、あらかじめ定められたイベントが発生した場合、同様に、各配置先のパラメータを算出する。イベントは、例えば、配置先の追加である。イベントは、オブジェクトが配置されることであってもよい。イベントは、オブジェクトが削除されることであってもよい。イベントは、他のイベントであってもよい。イベントは、複数のイベントの組み合わせであってもよい。変更部102は、さらに、あらかじめ定められた複数のイベントのいずれかが発生した場合に、同様に、各配置先のパラメータを算出してもよい。変更部102は、配置先情報記憶部103に格納されている、各配置先のパラメータとパラメータの最大値とを更新する。すなわち、変更部102は、配置先の各々について、配置先情報記憶部103に格納されている、その配置先に関連するパラメータを、例えばイベントの発生に応じて算出した、その配置先のパラメータによって置き換える。さらに、変更部102は、配置先の各々について、その配置先に関連するパラメータの最大値より、算出した、その配置先のパラメータが大きい場合、そのパラメータの最大値を、算出したパラメータによって置き換える。
 配置先情報記憶部103は、配置先毎に、パラメータを記憶する。配置先情報記憶部103は、各配置先の、追加された順番を特定できる情報を記憶する。配置先情報記憶部103は、各配置先の空き容量を記憶していてもよい。配置先情報記憶部103は、さらに、配置先毎に、パラメータの最大値を記憶する。
 推定部104は、例えば、配置先推定指示及びオブジェクト情報を受信するのに応じて、そのオブジェクト情報が付与されたオブジェクトが格納されている可能性がある配置先の候補を、例えば以下のように、推定する。
 推定部104は、まず、決定部101と同じ方法に従って、受信したオブジェクト情報に基づいて特性値を算出する。すなわち、推定部104が、オブジェクト情報と配置先との組み合わせに対して算出する特性値は、決定部101が、同じオブジェクト情報と配置先との組み合わせに対して算出する特性値と同じである。上述のように、決定部101は、例えば、オブジェクト情報及びサーバ番号を連結したデータのハッシュを、特性値として算出する。その場合、推定部104は、例えば、配置先の各々について、受信したオブジェクト情報とその配置先のサーバ番号を連結したデータのハッシュを、その特性値として算出する。上述のように、決定部101は、例えば、オブジェクト情報をシードとして使用して初期化した疑似乱数発生関数によって発生させた疑似乱数を、追加された順番で、特性値として配置先に割り当ててもよい。その場合、推定部104は、オブジェクト情報をシードとして使用して初期化された、同じ疑似乱数発生関数を使用して発生させた疑似乱数を、同様に追加された順番で、各配置先に特性値として割り当てればよい。
 上述のように、特性値は、オブジェクト情報と配置先とに基づいて、一意に定まる値である。すなわち、決定部101及び推定部104は、オブジェクト情報及び配置先の組み合わせが同じであれば、常に同じ特性値を算出する。上述のように、決定部101は、関連付けられているパラメータが特性値より大きい、最も後に追加された配置先を、オブジェクトが配置される配置に決定する。従って、オブジェクトに付与されているオブジェクトと配置先とに基づいて算出された特性値が、その配置先に関連付けられているパラメータの最大値より小さい場合、そのオブジェクトは、その配置先に配置されている可能性がある。推定部104は、算出した特性値が、配置先情報記憶部103に格納されているパラメータの最大値よりも小さい配置先の全てを、配置先の候補にする。推定部104は、配置先の候補を取り出し部108に送信する。推定部104は、配置先の候補に含まれる各配置先の識別子を送信すればよい。
 次に、本実施形態の配置装置100の動作について、図面を参照して詳細に説明する。
 図2は、本実施形態の配置装置100の、配置先が追加される場合における動作の例を表すフローチャートである。配置装置100は、例えば定期的に、図2に示す動作を行えばよい。
 まず、検出部107が、配置先が追加されたか否かを検出する(ステップS101)。検出部107は、動作している配置先を検出すればよい。そして、検出部107は、動作している配置先が増加した場合、配置先が追加されたことを検出すればよい。検出部107は、追加された配置先の識別子を、例えば、追加された配置先から取得する。検出部107は、さらに、各配置先から、空き容量を表す情報を取得する。その場合、各配置先は、検出部107からの、識別子及び空き容量を表す情報を送信する要求に応じて、識別子及び空き容量を表す情報を送信するよう設計されていればよい。検出部107は、変更部102を介して、配置先情報記憶部103に、追加された配置先の識別子を、追加された順番を特定できる形式で格納する。検出部107は、変更部102を介して、各配置先の空き容量を配置先情報記憶部103に格納してもよい。検出部107は、最後に追加された配置先に配置できるオブジェクトの量が増加した場合、配置先が追加されたことを検出してもよい。その場合、検出部107は、追加された配置先の識別子を配置先情報記憶部103に格納しなくてよい。本実施形態では、前述のように、配置先の数は1つずつ増加する。また、最後に追加された配置先の記憶領域は、増加し得る。しかし、配置先の数は減少しない。また、最後に追加された配置先以外の配置先の記憶領域は、増加しない。配置先を追加した管理者が、例えば図示されない端末装置を操作することによって、追加した配置先の識別子を検出部107に通知してもよい。
 配置先が追加されたことが検出されなかった場合(ステップS102においてNo)、配置装置100は、図2に示す動作を終了する。配置先が追加されたことが検出された場合(ステップS102においてYes)、全ての配置先が選択されており、未選択の配置先が存在しなければ(ステップS103においてNo)、配置装置100は、図2に示す動作を終了する。未選択の配置先が存在する場合(ステップS103においてYes)、変更部102は、1つの配置先を選択する。変更部102は、未選択の配置先の中で、例えば、最も遅く追加された配置先を選択すればよい(ステップS104)。変更部102は、選択された配置先について、設定値導出処理を行うことにより、パラメータを導出する(ステップS105)。設定値導出処理については、以下で詳細に説明する。
 本実施形態では、例えば配置先の追加などによって、後述されるように決定部101によって決定される、オブジェクトが配置される配置先が変化しても、既に配置先に配置されているオブジェクトを、変化後の配置先に移動させなくてよい。
 図3は、本実施形態の配置装置100の、設定値導出処理の動作の例を表すフローチャートである。図3を参照すると、変更部102は、まず、選択された配置先の空き容量及び選択された配置先より前に追加された配置先の空き容量の和を算出する。すなわち、変更部102は、選択された配置先より後に追加された配置先を除く、全ての配置先の空き容量の和を算出する(ステップS201)。変更部102は、例えば上述のように、選択された配置先の空き容量と、ステップS201において算出した空き容量の和とに基づいて、選択された配置先の設定値すなわちパラメータを導出する(ステップS202)。変更部102は、ステップS202において導出されたパラメータを、選択された配置先のパラメータとして、配置先情報記憶部103に格納する。変更部102は、例えば、ステップS202において導出されたパラメータと、選択された配置先の識別子との組み合わせを、配置先情報記憶部103に格納すればよい。変更部102は、ステップS202において導出したパラメータと、配置先情報記憶部103に格納されている、選択された配置先のパラメータの最大値とを比較する。導出されたパラメータが、選択された配置先のパラメータの最大値と等しくない場合(ステップS203においてNo)、配置装置100は、図3に示す動作を終了する。導出されたパラメータが、選択された配置先のパラメータの最大値に等しい場合(ステップS203においてYes)、変更部102は、配置先情報記憶部103に格納されている、選択された配置先のパラメータの最大値を更新する(ステップS204)。すなわち、変更部102は、ステップS202において導出されたパラメータを、選択された配置先のパラメータの最大値として、配置先情報記憶部103に格納すればよい。
 図4は、本実施形態の配置先情報記憶部103に格納されている順番などの例を模式的に表す図である。図4に示す例では、配置先の各々について、識別子と、順番と、パラメータと、パラメータの最大値とが、互いに関連付けされた状態で、配置先情報記憶部103に格納されている。図4に示す例では、パラメータは、0と1との間に含まれる。順番が最初である配置先のパラメータは、全ての配置先のパラメータの中で最大である。
 以下では、パラメータの計算の手順の一例について説明する。変更部102は、以下の手順に従ってパラメータを算出してもよい。変更部102は、以下の手順以外の手順に従って、パラメータを算出してもよい。なお、以下に示す式において、「×」は、掛け算を表す演算子であり、「÷」は、割り算を表す演算子である。
 ステップ1:配置先の各々について、空き容量を、全ての配置先の中で最も大きい空き容量で割った値Aを算出する。Aは、j番目の配置先の空き容量を空き容量の最大値で割った値を表す。
 ステップ2:全ての配置先のAの和を算出する。算出された和の逆数Bを算出する。
 ステップ3:変数Cに1を代入する。
 ステップ4:最後に追加された配置先jを選択する。
 ステップ5:選択された配置先jのパラメータPとして、A×B÷Cを算出する。
 ステップ6:C×(1-P)を計算する。計算された値をCに代入する。
 ステップ7:選択されている配置先の順番が最初の順番であれば、手順を終了する。
 ステップ8:選択されている配置先より1つ前に追加された配置先を選択し(すなわちjを1減少させ)、ステップ5へ戻る。
 パラメータの最小値がDであり、最大値がEである場合、ステップ5において計算されるPはA×B÷C×(E-D)+Dである。
 上述のように、変更部102は、配置先が追加された場合、各配置先のパラメータを算出すればよい。変更部102は、オブジェクトがいずれかの配置先に配置されるのに応じて、各配置先のパラメータを算出してもよい。変更部102は、決定部101が、オブジェクトが配置される配置先を決定する前に各配置先のパラメータを算出してもよい。変更部102は、推定部104が、オブジェクトが配置されている配置先の候補を推定する前に各配置先のパラメータを算出してもよい。また、変更部102は、パラメータを算出する際、いずれかの配置先のパラメータが変化しない場合、その配置先のパラメータを算出しなくてもよい。
 次に、本実施形態の配置装置100の、オブジェクトが配置される配置先を決定する動作について、図面を参照して詳細に説明する。
 図5は、本実施形態の配置装置100の、オブジェクトが配置される配置先を決定する動作の例を表すフローチャートである。図5に示す動作の例では、配置装置100は、オブジェクトが配置される配置先を決定する前に、配置先のパラメータを決定する。
 図5を参照すると、まず、要求処理部105が、指示装置400からオブジェクトと配置指示とを受け取る(ステップS301)。受信したオブジェクトには、例えばオブジェクトの属性や識別子などのオブジェクト情報が付与されている。指示装置400は、オブジェクトに加えて、オブジェクト情報を送信すればよい。要求処理部105は、オブジェクトに加えて、オブジェクト情報を受信すればよい。配置要求とオブジェクトとオブジェクト情報とを受信した要求処理部105は、決定部101に対して、配置先決定指示とオブジェクト情報とを送信する。決定部101が配置先決定指示を受信したとき、まだいずれの配置先も選択されていない。前述のように、図5に示す動作の例では、決定部101が、オブジェクトが配置される配置先を決定する前に、変更部102が、配置先のパラメータを決定する。
 変更部102は、未選択の配置先の中で、最も後に追加された配置先を選択する(ステップS302)。選択された配置先が、順番が最初の配置先ではない場合(ステップS302においてNo)、変更部102は、選択された配置先について、設定値(すなわちパラメータ)を導出する設定値導出処理を行う(ステップS304)。ステップS304における設定値導出処理は、図2に示すステップS105における設定値導出処理と同じである。変更部102は、ステップS304の設定値導出処理において、上述の図3に示す動作を行えばよい。
 次に、決定部101は、受信した、オブジェクトに付与されているオブジェクト情報に基づいて、特性値を導出する(ステップS305)。前述のように、本実施形態の特性値は、オブジェクト情報と配置先との組み合わせに対して一意に定まる。
 決定部101は、ステップS304において導出された、選択された配置先のパラメータと、ステップS305において導出された特性値とを比較する。導出された特性値が選択された配置先のパラメータより小さい場合(ステップS306においてYes)、決定部101は、選択された配置先を、オブジェクトが配置される配置先として決定する(ステップS307)。導出された特性値が選択された配置先のパラメータより小さくない場合(ステップS306においてNo)、配置装置100は、ステップS302以降の動作を繰り返す。
 選択された配置先が、順番が最初の配置先である場合(ステップS303においてYes)、決定部101は、選択された配置先を、オブジェクトが配置される配置先として決定する(ステップS307)。順番が最初の配置先に対して導出されるパラメータは、特性値が取りうる値の上限値より大きい。その場合、導出された特性値は、選択された配置先のパラメータより小さい。従って、選択された配置先は、オブジェクトが配置される配置先として決定される。よって、選択された配置先が、順番が最初の配置先である場合、決定部101は、図5に示す動作のように、ステップS304からステップS306までの動作を省略できる。
 配置部106は、受け取ったオブジェクトを、決定された配置先に配置する(ステップS308)。
 図6は、パラメータと特性値の例を模式的に表す図である。図6において、サーバ0からサーバ5は、配置先の識別子である。「P」によって示される横棒は、パラメータの大きさを表す。「R」によって示される黒丸は、特性値の大きさを表す。図6は、サーバ0からサーバ5までの各配置先のパラメータと特性値の大きさを模式的に示す。各配置先のパラメータ及び特性値は、破線によって表される上限値と下限値の間に分布する。
 図7は、決定部101による決定の結果などを模式的に表す図である。図7における「識別子」は、配置先の識別子を表す。サーバ0からサーバ5は、それぞれ、図6に示すサーバ0からサーバ5と同じである。「順番」は、配置先が配置システム10に追加された順番を表す。順番は、その値が大きいほど、その順番が付与されている配置先が後に追加されたことを表す。サーバ5が、最も後に追加された配置先である。「値の比較」は、パラメータであるPが、特性値であるRより大きいか否かを表す。図7に示す「値の比較」は、図6に示すパラメータと特性値との関係を表す。「オブジェクトの配置先」の円は、決定部101によって、オブジェクトが配置される配置先として決定される配置先を表す。
 図6及び図7に示す例では、特性値がパラメータ以下である配置先の中で、最も後に追加された配置先は、サーバ4である。従って、決定部101は、図7に示すように、サーバ4を、オブジェクトが配置される配置先として決定する。
 次に、本実施形態の配置装置100の、オブジェクトが配置されている配置先の候補を推定する動作について、図面を参照して詳細に説明する。
 図8は、本実施形態の配置装置100の、オブジェクトが配置されている配置先の候補を推定する動作の例を表すフローチャートである。配置装置100は、例えば、オブジェクトを取り出す際に、図8に例を示す、取り出されるオブジェクトが配置されている配置先の候補を推定する動作を行う。
 まず、要求処理部105が、取り出し要求とオブジェクト情報とを、指示装置400から受信する(ステップS401)。取り出し要求とオブジェクト情報を受信した要求処理部105は、配置先推定指示とオブジェクト情報とを、推定部104に送信する。推定部104が配置先推定指示を受信したとき、まだいずれの配置先も選択されていない。
 未選択の配置先が存在する場合(ステップS402においてYes)、推定部104は、未選択の配置先の中で、最も後に追加された配置先を選択する(ステップS403)。推定部104は、選択された配置先のパラメータの最大値を、配置先情報記憶部103から読み出す(ステップS404)。推定部104は、受信したオブジェクト情報に基づいて、特性値を導出する(ステップS405)。前述のように、本実施形態では、特性値はオブジェクト情報と配置先との組み合わせに対して一意に定まる。さらに、推定部104は、決定部101と同じ方法によって、特性値を導出する。配置先推定指示に加えて受信したオブジェクト情報は、決定部101によって決定された配置先に配置されているオブジェクトに付与されているオブジェクト情報である。推定部104が、受信したオブジェクト情報と選択された配置先の組み合わせに対して導出する特性値は、決定部101が、そのオブジェクト情報に付与されている配置先を決定する際、同じ組み合わせに対して導出した特性値と同じである。
 推定部104は、選択された配置先のパラメータの最大値と、ステップS405において導出された特性値とを比較する(ステップS406)。選択された配置先のパラメータの最大値が、導出された特性値より大きくない場合(ステップS406においてNo)、配置装置100は、ステップS402以降の動作を繰り返す。選択された配置先のパラメータの最大値が、導出された特性値より大きい場合(ステップS406においてYes)、決定部101が、選択された配置先を、対象オブジェクトの配置先として決定した可能性がある。対象オブジェクトは、受信したオブジェクト情報が付与されているオブジェクトである。従って、選択された配置先のパラメータの最大値が、導出された特性値より大きい場合、推定部104は、選択された配置先を、対象オブジェクトが配置されている配置先の候補に追加する(ステップS407)。ステップS407の後、配置装置100は、ステップS402以降の動作を繰り返す。
 全ての配置先が選択された場合(ステップS402においてNo)、推定部104は、配置先の候補の推定を終了する。
 次に、推定部104は、対象オブジェクトが配置されている配置先の候補のうち、最も後に追加された配置先を特定する(ステップS408)。
 推定部104は、まず、配置先の候補に含まれる配置先の各々に、受信したオブジェクトの識別子によって特定される対象オブジェクトが配置されているか否かを問い合わせるアクセスを行えばよい。推定部104は、そのアクセスを、例えば、要求処理部105や読み出し部108を介して行えばよい。そのアクセスが行われるのに応じて、対象オブジェクトが配置されている配置先は、対象オブジェクトが配置されていることを表す応答を、推定部104に対して送信すればよい。対象オブジェクトが配置されていない配置先は、そのアクセスに対して、例えばエラーを返せばよい。対象オブジェクトが複数の配置先に配置されている場合、推定部104は、さらに、対象オブジェクトが配置されていることを表す応答を送信した配置先の中で、最も後に追加された配置先を特定すればよい。
 推定部104は、配置先の候補から、最も後に追加された配置先を選択してもよい。推定部104は、選択した配置先に受信したオブジェクトの識別子によって特定される対象オブジェクトが配置されているか否かを問い合わせるアクセスを行ってもよい。選択された配置先から、対象オブジェクトが配置されていることを表す応答を受信した場合、推定部104は、その配置先を、最も後に追加された配置先として特定すればよい。選択された配置先から、対象オブジェクトが配置されていることを表す応答を受信しない場合、推定部104は、その配置先を、配置先の候補から除外すればよい。そして、推定部104は、最も後に追加された配置先の選択以降の動作を繰り返せばよい。
 推定部104は、特定した、対象オブジェクトが配置されている配置先の識別子を、取り出し部108に送信する。
 取り出し部108は、対象オブジェクトが配置されている配置先から、対象オブジェクトを取り出す(ステップS409)。ステップS409において、取り出し部108は、推定部104から、要求処理部105を介して受信した、配置先の識別子によって特定される配置先から、対象オブジェクトを取り出せばよい。対象オブジェクトが複数の配置先に配置されている場合、推定部104によって特定された配置先は、対象オブジェクトが配置されている配置先のうち、追加された順番が最も後である配置先である。その場合、取り出し部108は、ステップS409において、対象オブジェクトが配置されている配置先のうち、追加された順番が最も後である配置先から、対象オブジェクトを取り出す。具体的には、例えば、取り出し部108は、対象オブジェクトが配置されていることを表す応答を送信した配置先のうち、追加された順番が最も後である配置先に対して、対象オブジェクトを取り出す取り出し要求を送信すればよい。取り出し要求を受信した配置先は、対象オブジェクトを取り出し部108に送ればよい。取り出し部108は、対象オブジェクトを、例えば要求処理部105を介して、指示装置400に送ればよい。
 同じオブジェクト(例えば、同じオブジェクト情報及び識別子が付与されているオブジェクト)が、複数回配置された場合、そのオブジェクトが配置される配置先として決定される配置先は、決定の際に存在する配置先の組み合わせによって異なる可能性がある。すなわち、同じオブジェクトが複数の配置先に配置されている可能性がある。対象オブジェクトが、更新されながら複数回配置された場合、最新の状態のオブジェクトは、そのオブジェクトが配置されている配置先の中で、最も後に追加された配置先に配置されている。
 複数の配置先に対象オブジェクトが配置されている場合、上述のように、ステップS408において、推定部104は、前述のように対象オブジェクトが配置されている配置先のうち、最も後に追加された配置先を特定すればよい。そして、取り出し部108は、ステップS408において特定された配置先から対象オブジェクトを取り出せばよい。そのことにより、取り出し部108は、最も後に配置された対象オブジェクトを取り出すことができる。従って、対象オブジェクトが、更新されながら複数回配置された場合でも、取り出し部108は、最も新しい対象オブジェクトを取り出すことができる。また、ステップS408において、推定部104は、配置先の候補に含まれる配置先のうち、追加の順番が遅い方から順に、対象オブジェクトが配置されているか否かを問い合わせるアクセスを行ってもよい。対象オブジェクトが配置されていることを表す応答を受信した場合、推定部104は、対象オブジェクトが配置されているか否かを問い合わせるアクセスを終了すればよい。そして、ステップS409において、取り出し部108は、対象オブジェクトが配置されていることを表す応答を送信した配置先から、対象オブジェクトを取り出せばよい。
 例えば、図6に示すPが各配置先のパラメータの最大値であり、図6に示すRがオブジェクト情報に基づいて導出された特性値である場合、特性値がパラメータの最大値以下である配置先は、図7に示すように、サーバ0、サーバ3、及びサーバ4である。従って、推定部104によって推定される配置先の候補は、図7に示すように、サーバ0、サーバ3、及びサーバ4である。
 上述の特許文献1に記載されている装置は、以下の特徴を満たす。
 特徴1:オブジェクトが配置される配置先は、そのオブジェクトの識別子を使用して導出される値と、配置先と値の範囲とを関連付ける情報とに基づいて、を一意に決定される。
 特徴2:オブジェクトは、すべての配置先に配置される。
 特徴3:配置先が追加された場合であっても、オブジェクトはすべての配置先にほぼ一様に配置される。オブジェクトを一様に配置するために、最小限のオブジェクトのみが移動させられる。
 本実施形態の配置装置100は、上述の特徴1及び特徴2を備える。さらに、配置装置100は、配置先の追加に応じてオブジェクトを移動させなくても、配置されるオブジェクトの数が増えるのに従って、オブジェクトが各配置先にほぼ一様に配置された状態になる。
 以上の説明では、オブジェクトはひとまとまりのデータである。しかし、オブジェクトは、例えば物体などであってもよい。その場合、各配置先は、オブジェクトを配置できる場所を備えていればよい。そして、配置部106は、オブジェクトを各配置先まで運搬可能な運搬装置であればよい。取り出し部108は、オブジェクトを各配置先から運搬可能な運搬装置であればよい。
 以上で説明した本実施形態には、規則に従って決定される、オブジェクトが配置される配置先が、配置先の追加によって変化する場合における、オブジェクトの配置に係る処理コストを低減できるという第1の効果がある。
 その理由は、変更部102が、オブジェクトが配置される配置先を一意に決定する規則を、その規則によって定まる配置先が最後に追加された配置先以外の配置先に変化しないように、各配置先の空き容量に基づいて変更するからである。そして、決定部101が、変更部102によって変更された規則に従って、オブジェクトの配置先を決定するからである。
 配置されたオブジェクトの再配置を行わない場合、オブジェクトを取り出す際、取り出されるオブジェクトが配置されている配置先を特定する必要がある。取り出されるオブジェクトが配置されている配置先の特定は、例えば、例えば、オブジェクトが配置されている可能性がある全ての配置先にオブジェクトの有無を確認することによって行われる。本実施形態では、オブジェクトが配置される配置先が、配置先の追加によって、配置先が追加されたときに存在する任意の配置先に変更され得る場合と比較して、オブジェクトが配置される配置先として決定された可能性がある配置先の数が限定される。従って、配置されたオブジェクトの再配置を行わない場合、取り出されるオブジェクトの配置先を特定する処理コストの上昇を低減することができる。すなわち、この場合、本実施形態の配置装置100は、配置先の追加に応じてオブジェクトを再配置する処理コストを削減するのに加えて、取り出されるオブジェクトの配置先を特定する処理コストの上昇を低減することができる。
 また、本実施形態の変更部102によって規則が変更されても、各配置先の空き容量に基づいて変更された規則に従って、オブジェクト情報に基づいて定まるオブジェクトの配置先は、新しく追加された配置先以外の配置先に変化しない。すなわち、変更部102は、配置先の追加による、オブジェクトの配置先の変化が最小限になるように、上述の規則を変更する。再配置後の各配置先の空き容量が同じであれば、最後に追加された配置先に対してだけオブジェクトが再配置される場合、最後に追加された配置先以外の配置先の間でオブジェクトが再配置される場合と比較して、再配置されるオブジェクトの量は少ない。すなわち、既に配置されているオブジェクトを、配置先の追加に応じて本実施形態の変更部102によって変更された規則に従って再配置する場合、最小限のオブジェクトが再配置される。従って、本実施形態の配置装置100は、オブジェクトの配置先を一意に決定する規則の変更に応じてオブジェクトを再配置する場合、オブジェクトの再配置の処理コストを低減することができる。
 本実施形態には、規則に従って決定される、オブジェクトが配置される配置先が、配置先の追加によって変化した際、既に配置されているオブジェクトを再配置しなくても、各配置先にオブジェクトを均等又はほぼ均等に配置できるという第2の効果がある。
 その理由は、変更部102が、オブジェクトの配置先を一意に決定する規則を、配置先の各々の空き容量に応じて変更するからである。例えば、変更部102は、その規則を、配置先の各々に、空き容量に応じた割合でオブジェクトが配置されるように決定するように変更する。そのことにより、既にいずれかの配置先に配置されているオブジェクトを再配置しなくても、配置されるオブジェクトの数が増加するに従って、各配置先に配置されるオブジェクトの数は均等又はほぼ均等になる。
 本実施形態には、さらに、オブジェクトの配置先を決定するのに要する最大時間を短縮することができるという第2の効果がある。
 その理由は、本実施形態の決定部101が、選択された配置先が、オブジェクトが配置される配置先であるか否かを判定する処理を繰り返すことによって、オブジェクトが配置される配置先を決定するからである。その処理の回数は、その処理を始めた時点における配置先の個数を超えない。上述のように、特許文献1の装置が配置先を決定する時間は、偶然によって伸びる可能性がある。しかし、本実施形態では、偶然によって前述の処理の回数が増えた場合であっても、回数の上限は配置先の個数である。従って、本実施形態の配置装置100は、オブジェクトの配置先を決定するのに要する最大時間を短縮することができる。
 <第1の実施形態の変形例>
 図9は、第1の実施形態の変形例の配置システム10Aの構成の例を表すブロック図である。配置システム10Aは、配置装置100Aと、配置実行装置200と、サーバアレイ300とを含む。配置実行装置200は、配置装置100A、サーバアレイ300に含まれる各配置先、及び、指示装置400が、それぞれ通信可能に接続されている。サーバアレイ300及び指示装置400は、それぞれ、第1の実施形態のサーバアレイ300及び指示装置400と同じである。配置装置100Aの各構成要素は、第1の実施形態の配置装置100の、配置決定部110に含まれる、同一の符号が付与された構成要素と同じである。配置実行装置200の各構成要素は、第1の実施形態の配置装置100の同一の符号が付与された構成要素と同じである。ただし、決定部101は、決定した配置先の識別子を、例えば要求処理部105を介して、配置部106に送信する。配置部106は、オブジェクトを配置する指示である配置指示と、決定部101によって決定された配置先の識別子と、配置先に配置するオブジェクトとを、要求処理部105から受け取ればよい。推定部104は、配置先の候補を、例えば要求処理部105を介して、取り出し部108に送信する。推定部104は、特定した、対処オブジェクトが配置されている配置先の識別子を、要求処理部105を介して、取り出し部108に送信する。すなわち、推定部104は、例えば、特定した配置先の識別子を、要求処理部105に送信する。要求処理部105は、取り出し要求と、取り出されるオブジェクトの識別子と、特定した配置先の識別子とを、取り出し部108に送信する。オブジェクトは、配置装置100Aに含まれる決定部101や推定部104を介して送られない。オブジェクトは、要求処理部105と、配置部106又は取り出し部108との間で送られる。本変形例の配置システム10Aは、第1の実施形態の配置システム10と同じ動作を行う。
 <第2の実施形態>
 次に、本発明の第2の実施形態について、図面を参照して詳細に説明する。
 図10は、本実施形態の配置装置100Bの構成の例を表す図である。
 図10を参照すると、本実施形態の配置装置100Bは、決定部101と、変更部102と、を備える。決定部101は、オブジェクトに付与されたオブジェクト情報を受信するのに応じて、1つ以上の配置先のうち、前記オブジェクトが配置される前記配置先を決定する。配置先のそれぞれには、設定値が付与されている。配置先には、前記オブジェクトが配置されうる。決定部101が、前記オブジェクトが配置される前記配置先として決定する配置先は、付与されている前記設定値が、前記オブジェクト情報に基づいて一意に導出された特性値より大きい、最も新しく追加された前記配置先である。変更部102は、前記配置先が追加されるのに応じて、決定される前記配置先が、最後に追加された前記配置先以外の前記配置先に変化しないように、前記配置先の少なくともいずれかに付与されている前記設定値を変更する。変更部102は、前記配置先の各々に新たに配置できる前記オブジェクトの量を表す空き容量に基づいて、前記配置先の少なくともいずれかに付与されている前記設定値を変更する。
 図10に示す例では、決定部101及び変更部102が、配置決定部110Bと表記されている。配置決定部110Bは、図9に示す配置装置100Aのように、配置実行装置200に通信可能に接続された装置であってもよい。
 以上で説明した本実施形態には、第1の実施形態と同じ効果がある。その理由は、第1の実施形態の効果が生じる理由と同じである。
 <他の実施形態>
 配置装置100、配置装置100A、配置装置100B、及び配置実行装置200は、それぞれ、コンピュータ及びコンピュータを制御するプログラム、又は、専用のハードウェアにより実現することができる。配置装置100、配置装置100A、配置装置100B、及び配置実行装置200は、コンピュータ及びコンピュータを制御するプログラムと専用のハードウェアの組合せにより実現することもできる。
 図11は、配置装置100、配置装置100A、配置装置100B、及び配置実行装置200を実現することができる、コンピュータ1000のハードウェア構成の一例を表す図である。図11を参照すると、コンピュータ1000は、プロセッサ1001と、メモリ1002と、記憶装置1003と、I/O(Input/Output)インタフェース1004とを含む。また、コンピュータ1000は、記録媒体1005にアクセスすることができる。メモリ1002と記憶装置1003は、例えば、RAM(Random Access Memory)、ハードディスクなどの記憶装置である。記録媒体1005は、例えば、RAM、ハードディスクなどの記憶装置、ROM(Read Only Memory)、可搬記録媒体である。記憶装置1003が記録媒体1005であってもよい。プロセッサ1001は、メモリ1002と、記憶装置1003に対して、データやプログラムの読み出しと書き込みを行うことができる。プロセッサ1001は、I/Oインタフェース1004を介して、例えば、指示装置400、及び各配置先にアクセスすることができる。プロセッサ1001は、記録媒体1005にアクセスすることができる。記録媒体1005には、コンピュータ1000を、配置装置100、配置装置100A、配置装置100B、又は配置実行装置200として動作させるプログラムが格納されている。
 プロセッサ1001は、記録媒体1005に格納されている、コンピュータ1000を、配置装置100、配置装置100A、配置装置100B、又は配置実行装置200として動作させるプログラムを、メモリ1002にロードする。そして、プロセッサ1001が、メモリ1002にロードされたプログラムを実行することにより、コンピュータ1000は、配置装置100、配置装置100A、配置装置100B、又は配置実行装置200として動作する。
 以下に示すグループに含まれる部は、例えば、プログラムを記憶する記録媒体1005からメモリ1002に読み込まれた、各部の機能を実現することができる専用のプログラムと、そのプログラムを実行するプロセッサ1001により実現することができる。上述のグループは、決定部101、変更部102、推定部104、要求処理部105、配置部106、検出部107、及び、取り出し部108を含む。また、配置先情報記憶部103は、コンピュータ1000が含むメモリ1002やハードディスク装置等の記憶装置1003により実現することができる。あるいは、上述グループに含まれる部、及び、配置先情報記憶部103の一部又は全部を、各部の機能を実現する専用の回路によって実現することもできる。
 また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
 (付記1)
 オブジェクトに付与されたオブジェクト情報を受信するのに応じて、それぞれ設定値が付与され、前記オブジェクトが配置されうる1つ以上の配置先のうち、付与されている前記設定値が、前記オブジェクト情報に基づいて一意に導出された特性値より大きい、最も新しく追加された前記配置先を、前記オブジェクトが配置される前記配置先として決定する決定手段と、
 前記配置先が追加されるのに応じて、前記配置先の各々に新たに配置できる前記オブジェクトの量を表す空き容量に基づいて、決定される前記配置先が、最後に追加された前記配置先以外の前記配置先に変化しないように、前記配置先の少なくともいずれかに付与されている前記設定値を変更する変更手段と、
 を備える配置装置。
 (付記2)
 前記変更手段は、前記配置先の各々について、当該配置先である対象配置先に新たに配置することができる前記オブジェクトの量を表す空き容量と、前記対象配置先より後に追加された前記配置先を除く前記配置先の各々の前記空き容量の和と、に応じて前記設定値を導出し、前記対象配置先に付与されている前記設定値を、導出した前記設定値に変更する、
 付記1に記載の配置装置。
 (付記3)
 前記変更手段は、前記配置先に付与される前記設定値が、前記配置先の前記空き容量が大きいほど大きくなり、かつ、前記設定値が、前記対象配置先より前に追加された前記配置先の前記空き容量の和が大きいほど小さくなるように、前記対象配置先に割り当てられる前記設定値を導出する
 付記2に記載の配置装置。
 (付記4)
 前記変更手段は、前記配置先の各々について、配置先情報記憶手段に格納されている前記配置先の前記設定値の最大値より、導出した前記設定値が大きい場合、当該設定値を、前記配置先の前記設定値の最大値として、前記配置先情報記憶手段に格納し、
 前記配置装置は、さらに、
 前記オブジェクト情報を受信するのに応じて、当該属性に基づいて算出された前記特性値が前記設定値の最大値より小さい全ての前記配置先を、前記オブジェクト情報が付与されている前記オブジェクトが配置されている配置先の候補として特定する推定手段
 を備える付記2又は3に記載の配置装置。
 (付記5)
 前記推定手段は、さらに、推定された前記配置先の候補に含まれ、前記オブジェクトが配置されている前記配置先の中で、追加された順番が最も後である前記配置先を特定し、
 前記配置装置は、特定された前記配置先から、前記オブジェクトを取り出す取り出し手段をさらに備える
 付記4に記載の配置装置。
 (付記6)
 前記決定手段は、異なる複数の前記オブジェクト情報から導出される複数の前記特性値が、あらかじめ定められた最大値及び最小値との間に、一様又はほぼ一様に分布するように、前記オブジェクトに付与されている前記オブジェクト情報に基づいて前記特性値を導出し、
 前記変更手段は、前記配置先の各々について、当該配置先の前記設定値と前記最小値との差の、前記最大値と前記最小値の差に対する割合が、当該配置先の前記空き容量の、前記配置先が追加された際における前記配置先の各々の前記空き容量の和に対する割合になるように、前記配置先に付与する前記設定値を導出する
 付記2乃至5のいずれかに記載の配置装置。
 (付記7)
 前記オブジェクトが配置される前記配置先として決定された前記配置先に、前記オブジェクトを配置する配置手段
 をさらに備える付記1乃至6のいずれかに記載の配置装置。
 (付記8)
 前記配置先の各々と、付記1乃至7のいずれかに記載の配置装置とを含む配置システム。
 (付記9)
 オブジェクトに付与されたオブジェクト情報を受信するのに応じて、それぞれ設定値が付与され、前記オブジェクトが配置されうる1つ以上の配置先のうち、付与されている前記設定値が、前記オブジェクト情報に基づいて一意に導出された特性値より大きい、最も新しく追加された前記配置先を、前記オブジェクトが配置される前記配置先として決定し、
 前記配置先が追加されるのに応じて、前記配置先の各々に新たに配置できる前記オブジェクトの量を表す空き容量に基づいて、決定される前記配置先が、最後に追加された前記配置先以外の前記配置先に変化しないように、前記配置先の少なくともいずれかに付与されている前記設定値を変更する、
 配置方法。
 (付記10)
 前記配置先の各々について、当該配置先である対象配置先に新たに配置することができる前記オブジェクトの量を表す空き容量と、前記対象配置先より後に追加された前記配置先を除く前記配置先の各々の前記空き容量の和と、に応じて前記設定値を導出し、前記対象配置先に付与されている前記設定値を、導出した前記設定値に変更する、
 付記9に記載の配置方法。
 (付記11)
 前記配置先に付与される前記設定値が、前記配置先の前記空き容量が大きいほど大きくなり、かつ、前記設定値が、前記対象配置先より前に追加された前記配置先の前記空き容量の和が大きいほど小さくなるように、前記対象配置先に割り当てられる前記設定値を導出する
 付記10に記載の配置方法。
 (付記12)
 前記配置先の各々について、配置先情報記憶手段に格納されている前記配置先の前記設定値の最大値より、導出した前記設定値が大きい場合、当該設定値を、前記配置先の前記設定値の最大値として、前記配置先情報記憶手段に格納し、
 前記オブジェクト情報を受信するのに応じて、当該属性に基づいて算出された前記特性値が前記設定値の最大値より小さい全ての前記配置先を、前記オブジェクト情報が付与されている前記オブジェクトが配置されている配置先の候補として特定する、
 付記10又は11に記載の配置方法。
 (付記13)
 推定された前記配置先の候補に含まれ、前記オブジェクトが配置されている前記配置先の中で、追加された順番が最も後である前記配置先を特定し、
 前記配置装置は、特定された前記配置先から、前記オブジェクトを取り出す、
 付記12に記載の配置方法。
 (付記14)
 異なる複数の前記オブジェクト情報から導出される複数の前記特性値が、あらかじめ定められた最大値及び最小値との間に、一様又はほぼ一様に分布するように、前記オブジェクトに付与されている前記オブジェクト情報に基づいて前記特性値を導出し、
 前記配置先の各々について、当該配置先の前記設定値と前記最小値との差の、前記最大値と前記最小値の差に対する割合が、当該配置先の前記空き容量の、前記配置先が追加された際における前記配置先の各々の前記空き容量の和に対する割合になるように、前記配置先に付与する前記設定値を導出する
 付記10乃至13のいずれかに記載の配置方法。
 (付記15)
 前記オブジェクトが配置される前記配置先として決定された前記配置先に、前記オブジェクトを配置する、
 付記9乃至14のいずれかに記載の配置方法。
 (付記16)
 コンピュータを、
 オブジェクトに付与されたオブジェクト情報を受信するのに応じて、それぞれ設定値が付与され、前記オブジェクトが配置されうる1つ以上の配置先のうち、付与されている前記設定値が、前記オブジェクト情報に基づいて一意に導出された特性値より大きい、最も新しく追加された前記配置先を、前記オブジェクトが配置される前記配置先として決定する決定手段と、
 前記配置先が追加されるのに応じて、前記配置先の各々に新たに配置できる前記オブジェクトの量を表す空き容量に基づいて、決定される前記配置先が、最後に追加された前記配置先以外の前記配置先に変化しないように、前記配置先の少なくともいずれかに付与されている前記設定値を変更する変更手段と、
 して動作させる配置プログラム。
 (付記17)
 コンピュータを、
 前記配置先の各々について、当該配置先である対象配置先に新たに配置することができる前記オブジェクトの量を表す空き容量と、前記対象配置先より後に追加された前記配置先を除く前記配置先の各々の前記空き容量の和と、に応じて前記設定値を導出し、前記対象配置先に付与されている前記設定値を、導出した前記設定値に変更する前記変更手段と、
 して動作させる付記16に記載の配置プログラム。
 (付記18)
 コンピュータを、
 前記配置先に付与される前記設定値が、前記配置先の前記空き容量が大きいほど大きくなり、かつ、前記設定値が、前記対象配置先より前に追加された前記配置先の前記空き容量の和が大きいほど小さくなるように、前記対象配置先に割り当てられる前記設定値を導出する前記変更手段と、
 して動作させる付記17に記載の配置プログラム。
 (付記19)
 コンピュータを、
 前記配置先の各々について、配置先情報記憶手段に格納されている前記配置先の前記設定値の最大値より、導出した前記設定値が大きい場合、当該設定値を、前記配置先の前記設定値の最大値として、前記配置先情報記憶手段に格納する前記変更手段と、
 前記オブジェクト情報を受信するのに応じて、当該属性に基づいて算出された前記特性値が前記設定値の最大値より小さい全ての前記配置先を、前記オブジェクト情報が付与されている前記オブジェクトが配置されている配置先の候補として特定する推定手段と、
 して動作させる付記17又は18に記載の配置プログラム。
 (付記20)
 コンピュータを、
 さらに、推定された前記配置先の候補に含まれ、前記オブジェクトが配置されている前記配置先の中で、追加された順番が最も後である前記配置先を特定する前記推定手段と、
 特定された前記配置先から、前記オブジェクトを取り出す取り出し手段と、
 して動作させる付記19に記載の配置プログラム。
 (付記21)
 コンピュータを、
 異なる複数の前記オブジェクト情報から導出される複数の前記特性値が、あらかじめ定められた最大値及び最小値との間に、一様又はほぼ一様に分布するように、前記オブジェクトに付与されている前記オブジェクト情報に基づいて前記特性値を導出する前記決定手段と、
 前記配置先の各々について、当該配置先の前記設定値と前記最小値との差の、前記最大値と前記最小値の差に対する割合が、当該配置先の前記空き容量の、前記配置先が追加された際における前記配置先の各々の前記空き容量の和に対する割合になるように、前記配置先に付与する前記設定値を導出する前記変更手段と、
 して動作させる付記17乃至20のいずれかに記載の配置プログラム。
 (付記22)
 コンピュータを、
 前記オブジェクトが配置される前記配置先として決定された前記配置先に、前記オブジェクトを配置する配置手段と、
 して動作させる付記16乃至21のいずれかに記載の配置プログラム。
 以上、本発明を、上述した実施形態およびその変形例に適用した例として説明した。しかし、本発明の技術的範囲は、上述した各実施形態に記載した範囲には限定されない。当業者には、係る実施形態に対して多様な変更又は改良を加えることが可能であることは明らかである。そのような場合、係る変更又は改良を加えた新たな実施形態も、本発明の技術的範囲に含まれ得る。そしてこのことは、請求の範囲に記載した事項から明らかである。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 この出願は、2014年7月11日に出願された日本出願特願2014-143324を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 10  配置システム
 10A  配置システム
 100  配置装置
 100A  配置装置
 100B  配置装置
 101  決定部
 102  変更部
 103  配置先情報記憶部
 104  推定部
 105  要求処理部
 106  配置部
 107  検出部
 108  取り出し部
 110  配置決定部
 110B  配置決定部
 200  配置実行装置
 300  サーバアレイ
 301  配置先(サーバ)
 30N  配置先(サーバ)
 400  指示装置
 1000  コンピュータ
 1001  プロセッサ
 1002  メモリ
 1003  記憶装置
 1004  I/Oインタフェース
 1005  記録媒体

Claims (18)

  1.  オブジェクトに付与されたオブジェクト情報を受信するのに応じて、それぞれ設定値が付与され、前記オブジェクトが配置されうる1つ以上の配置先のうち、付与されている前記設定値が、前記オブジェクト情報に基づいて一意に導出された特性値より大きい、最も新しく追加された前記配置先を、前記オブジェクトが配置される前記配置先として決定する決定手段と、
     前記配置先が追加されるのに応じて、前記配置先の各々に新たに配置できる前記オブジェクトの量を表す空き容量に基づいて、決定される前記配置先が、最後に追加された前記配置先以外の前記配置先に変化しないように、前記配置先の少なくともいずれかに付与されている前記設定値を変更する変更手段と、
     を備える配置装置。
  2.  前記変更手段は、前記配置先の各々について、当該配置先である対象配置先に新たに配置することができる前記オブジェクトの量を表す空き容量と、前記対象配置先より後に追加された前記配置先を除く前記配置先の各々の前記空き容量の和と、に応じて前記設定値を導出し、前記対象配置先に付与されている前記設定値を、導出した前記設定値に変更する、
     請求項1に記載の配置装置。
  3.  前記変更手段は、前記配置先に付与される前記設定値が、前記配置先の前記空き容量が大きいほど大きくなり、かつ、前記設定値が、前記対象配置先より前に追加された前記配置先の前記空き容量の和が大きいほど小さくなるように、前記対象配置先に割り当てられる前記設定値を導出する
     請求項2に記載の配置装置。
  4.  前記変更手段は、前記配置先の各々について、配置先情報記憶手段に格納されている前記配置先の前記設定値の最大値より、導出した前記設定値が大きい場合、当該設定値を、前記配置先の前記設定値の最大値として、前記配置先情報記憶手段に格納し、
     前記配置装置は、さらに、
     前記オブジェクト情報を受信するのに応じて、当該属性に基づいて算出された前記特性値が前記設定値の最大値より小さい全ての前記配置先を、前記オブジェクト情報が付与されている前記オブジェクトが配置されている配置先の候補として特定する推定手段
     を備える請求項2又は3に記載の配置装置。
  5.  前記推定手段は、さらに、推定された前記配置先の候補に含まれ、前記オブジェクトが配置されている前記配置先の中で、追加された順番が最も後である前記配置先を特定し、
     前記配置装置は、特定された前記配置先から、前記オブジェクトを取り出す取り出し手段をさらに備える
     請求項4に記載の配置装置。
  6.  前記決定手段は、異なる複数の前記オブジェクト情報から導出される複数の前記特性値が、あらかじめ定められた最大値及び最小値との間に、一様又はほぼ一様に分布するように、前記オブジェクトに付与されている前記オブジェクト情報に基づいて前記特性値を導出し、
     前記変更手段は、前記配置先の各々について、当該配置先の前記設定値と前記最小値との差の、前記最大値と前記最小値の差に対する割合が、当該配置先の前記空き容量の、前記配置先が追加された際における前記配置先の各々の前記空き容量の和に対する割合になるように、前記配置先に付与する前記設定値を導出する
     請求項2乃至5のいずれかに記載の配置装置。
  7.  前記オブジェクトが配置される前記配置先として決定された前記配置先に、前記オブジェクトを配置する配置手段
     をさらに備える請求項1乃至6のいずれかに記載の配置装置。
  8.  前記配置先の各々と、請求項1乃至7のいずれかに記載の配置装置とを含む配置システム。
  9.  オブジェクトに付与されたオブジェクト情報を受信するのに応じて、それぞれ設定値が付与され、前記オブジェクトが配置されうる1つ以上の配置先のうち、付与されている前記設定値が、前記オブジェクト情報に基づいて一意に導出された特性値より大きい、最も新しく追加された前記配置先を、前記オブジェクトが配置される前記配置先として決定し、
     前記配置先が追加されるのに応じて、前記配置先の各々に新たに配置できる前記オブジェクトの量を表す空き容量に基づいて、決定される前記配置先が、最後に追加された前記配置先以外の前記配置先に変化しないように、前記配置先の少なくともいずれかに付与されている前記設定値を変更する、
     配置方法。
  10.  前記配置先の各々について、当該配置先である対象配置先に新たに配置することができる前記オブジェクトの量を表す空き容量と、前記対象配置先より後に追加された前記配置先を除く前記配置先の各々の前記空き容量の和と、に応じて前記設定値を導出し、前記対象配置先に付与されている前記設定値を、導出した前記設定値に変更する、
     請求項9に記載の配置方法。
  11.  前記配置先に付与される前記設定値が、前記配置先の前記空き容量が大きいほど大きくなり、かつ、前記設定値が、前記対象配置先より前に追加された前記配置先の前記空き容量の和が大きいほど小さくなるように、前記対象配置先に割り当てられる前記設定値を導出する
     請求項10に記載の配置方法。
  12.  前記配置先の各々について、配置先情報記憶手段に格納されている前記配置先の前記設定値の最大値より、導出した前記設定値が大きい場合、当該設定値を、前記配置先の前記設定値の最大値として、前記配置先情報記憶手段に格納し、
     前記オブジェクト情報を受信するのに応じて、当該属性に基づいて算出された前記特性値が前記設定値の最大値より小さい全ての前記配置先を、前記オブジェクト情報が付与されている前記オブジェクトが配置されている配置先の候補として特定する、
     請求項10又は11に記載の配置方法。
  13.  推定された前記配置先の候補に含まれ、前記オブジェクトが配置されている前記配置先の中で、追加された順番が最も後である前記配置先を特定し、
     前記配置装置は、特定された前記配置先から、前記オブジェクトを取り出す、
     請求項12に記載の配置方法。
  14.  コンピュータを、
     オブジェクトに付与されたオブジェクト情報を受信するのに応じて、それぞれ設定値が付与され、前記オブジェクトが配置されうる1つ以上の配置先のうち、付与されている前記設定値が、前記オブジェクト情報に基づいて一意に導出された特性値より大きい、最も新しく追加された前記配置先を、前記オブジェクトが配置される前記配置先として決定する決定手段と、
     前記配置先が追加されるのに応じて、前記配置先の各々に新たに配置できる前記オブジェクトの量を表す空き容量に基づいて、決定される前記配置先が、最後に追加された前記配置先以外の前記配置先に変化しないように、前記配置先の少なくともいずれかに付与されている前記設定値を変更する変更手段と、
     して動作させる配置プログラムを記憶する記録媒体。
  15.  コンピュータを、
     前記配置先の各々について、当該配置先である対象配置先に新たに配置することができる前記オブジェクトの量を表す空き容量と、前記対象配置先より後に追加された前記配置先を除く前記配置先の各々の前記空き容量の和と、に応じて前記設定値を導出し、前記対象配置先に付与されている前記設定値を、導出した前記設定値に変更する前記変更手段と、
     して動作させる配置プログラムを記憶する請求項14に記載の記録媒体。
  16.  コンピュータを、
     前記配置先に付与される前記設定値が、前記配置先の前記空き容量が大きいほど大きくなり、かつ、前記設定値が、前記対象配置先より前に追加された前記配置先の前記空き容量の和が大きいほど小さくなるように、前記対象配置先に割り当てられる前記設定値を導出する前記変更手段と、
     して動作させる配置プログラムを記憶する請求項15に記載の記録媒体。
  17.  コンピュータを、
     前記配置先の各々について、配置先情報記憶手段に格納されている前記配置先の前記設定値の最大値より、導出した前記設定値が大きい場合、当該設定値を、前記配置先の前記設定値の最大値として、前記配置先情報記憶手段に格納する前記変更手段と、
     前記オブジェクト情報を受信するのに応じて、当該属性に基づいて算出された前記特性値が前記設定値の最大値より小さい全ての前記配置先を、前記オブジェクト情報が付与されている前記オブジェクトが配置されている配置先の候補として特定する推定手段と、
     して動作させる配置プログラムを記憶する請求項15又は16に記載の記録媒体。
  18.  コンピュータを、
     さらに、推定された前記配置先の候補に含まれ、前記オブジェクトが配置されている前記配置先の中で、追加された順番が最も後である前記配置先を特定する前記推定手段と、
     特定された前記配置先から、前記オブジェクトを取り出す取り出し手段と、
     して動作させる配置プログラムを記憶する請求項17に記載の記録媒体。
PCT/JP2015/003383 2014-07-11 2015-07-06 配置装置、配置方法及び配置プログラムを記憶する記録媒体 WO2016006223A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US15/324,779 US9779110B2 (en) 2014-07-11 2015-07-06 Placement device, placement method and recording medium, that stores placement program information processing device
JP2016532431A JP6508208B2 (ja) 2014-07-11 2015-07-06 配置装置、配置方法及び配置プログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014143324 2014-07-11
JP2014-143324 2014-07-11

Publications (1)

Publication Number Publication Date
WO2016006223A1 true WO2016006223A1 (ja) 2016-01-14

Family

ID=55063875

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/003383 WO2016006223A1 (ja) 2014-07-11 2015-07-06 配置装置、配置方法及び配置プログラムを記憶する記録媒体

Country Status (3)

Country Link
US (1) US9779110B2 (ja)
JP (1) JP6508208B2 (ja)
WO (1) WO2016006223A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10942909B2 (en) * 2018-09-25 2021-03-09 Salesforce.Com, Inc. Efficient production and consumption for data changes in a database under high concurrency

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013025497A (ja) * 2011-07-19 2013-02-04 Nippon Telegr & Teleph Corp <Ntt> 分散処理システム、分散処理方法、負荷分散装置、負荷分散方法、及び、負荷分散プログラム
JP2013061739A (ja) * 2011-09-12 2013-04-04 Fujitsu Ltd データ管理装置、データ管理システム、データ管理方法、及びプログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7716180B2 (en) * 2005-12-29 2010-05-11 Amazon Technologies, Inc. Distributed storage system with web services client interface
WO2008136075A1 (ja) * 2007-04-20 2008-11-13 Fujitsu Limited ストレージ管理プログラム、ストレージ管理装置およびストレージ管理方法
JP2010257020A (ja) * 2009-04-22 2010-11-11 Hitachi Ltd データマイグレーション管理装置及び管理方法
JP5066209B2 (ja) * 2010-03-18 2012-11-07 株式会社東芝 コントローラ、データ記憶装置、及びプログラム
US9158808B2 (en) * 2010-08-19 2015-10-13 Nec Corporation Object arrangement apparatus for determining object destination, object arranging method, and computer program thereof
WO2012124178A1 (ja) * 2011-03-16 2012-09-20 日本電気株式会社 分散記憶システムおよび分散記憶方法
WO2013132779A1 (ja) * 2012-03-09 2013-09-12 日本電気株式会社 オブジェクト配置装置及び方法、コンピュータ・プログラム
JP6209926B2 (ja) * 2013-10-09 2017-10-11 富士通株式会社 ストレージ制御装置、およびストレージ装置の制御プログラム
JP6025149B2 (ja) * 2013-11-06 2016-11-16 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation データを管理するシステムおよび方法
WO2015145532A1 (ja) * 2014-03-24 2015-10-01 株式会社日立製作所 ストレージシステム及びデータ処理方法
US10684876B2 (en) * 2015-05-14 2020-06-16 Netapp, Inc. Migration of virtual machine data using native data paths

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013025497A (ja) * 2011-07-19 2013-02-04 Nippon Telegr & Teleph Corp <Ntt> 分散処理システム、分散処理方法、負荷分散装置、負荷分散方法、及び、負荷分散プログラム
JP2013061739A (ja) * 2011-09-12 2013-04-04 Fujitsu Ltd データ管理装置、データ管理システム、データ管理方法、及びプログラム

Also Published As

Publication number Publication date
JPWO2016006223A1 (ja) 2017-04-27
JP6508208B2 (ja) 2019-05-08
US20170205810A1 (en) 2017-07-20
US9779110B2 (en) 2017-10-03

Similar Documents

Publication Publication Date Title
US10776396B2 (en) Computer implemented method for dynamic sharding
JP7046172B2 (ja) シャード・データベースのシャード・テーブルにレコードを記憶するためのコンピュータ実装方法、コンピュータ・プログラム製品、およびシステム、シャード・データベースのシャード・テーブルからレコードを検索するためのコンピュータ実装方法、コンピュータ・プログラム製品、およびシステム、ならびにシャード・データベースを記憶するためのシステム
US8671313B2 (en) Management apparatus and management method
CN110737668B (zh) 数据存储方法、数据读取方法、相关设备及介质
JP5733124B2 (ja) データ管理装置、データ管理システム、データ管理方法、及びプログラム
US9210219B2 (en) Systems and methods for consistent hashing using multiple hash rings
JP2014517420A (ja) クラウド記憶のためのファイル処理方法、システム、およびサーバクラスタ化システム
US20200042422A1 (en) Log analysis method, system, and storage medium
US20220187807A1 (en) Material processing path selection method and device
WO2016044176A1 (en) Data processing method and apparatus in service-oriented architecture system, and the service-oriented architecture system
WO2015116040A1 (en) Data migration
CN112579591A (zh) 数据校验方法、装置、电子设备及计算机可读存储介质
US9684668B1 (en) Systems and methods for performing lookups on distributed deduplicated data systems
WO2016006223A1 (ja) 配置装置、配置方法及び配置プログラムを記憶する記録媒体
CN110825309A (zh) 数据读取方法、装置及系统、分布式系统
CN111147226B (zh) 数据存储方法、装置及存储介质
CN114268501B (zh) 数据处理方法、防火墙生成方法、计算设备及存储介质
US11082484B2 (en) Load balancing system
WO2016006222A1 (ja) 配置装置、配置方法及び配置プログラムを記憶する記録媒体
JP6110354B2 (ja) 異種記憶サーバおよびそのファイル記憶方法
CN111190858B (zh) 软件信息存储方法、装置、设备和存储介质
CN110968267B (zh) 数据管理方法、装置、服务器及系统
CN110968649B (zh) 用于管理数据集的方法、设备和计算机程序产品
JPWO2012053152A1 (ja) ストレージシステム、データ管理装置、方法及びプログラム
CN112035498A (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: 15818683

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016532431

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 15324779

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

Country of ref document: EP

Kind code of ref document: A1