WO2013183143A1 - 管理システム及び管理方法 - Google Patents

管理システム及び管理方法 Download PDF

Info

Publication number
WO2013183143A1
WO2013183143A1 PCT/JP2012/064672 JP2012064672W WO2013183143A1 WO 2013183143 A1 WO2013183143 A1 WO 2013183143A1 JP 2012064672 W JP2012064672 W JP 2012064672W WO 2013183143 A1 WO2013183143 A1 WO 2013183143A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
storage
storage device
segment
disk
Prior art date
Application number
PCT/JP2012/064672
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 JP2014519763A priority Critical patent/JP5978297B2/ja
Priority to PCT/JP2012/064672 priority patent/WO2013183143A1/ja
Priority to US14/404,963 priority patent/US9870152B2/en
Publication of WO2013183143A1 publication Critical patent/WO2013183143A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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
    • G06F3/0647Migration mechanisms
    • 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Definitions

  • the present invention relates to a technique for managing the physical arrangement of data units in a database (hereinafter referred to as DB).
  • DBMS DB management subsystems
  • One of the features of DB is that it handles a large amount of data. Therefore, in many computer systems in which a DBMS operates, a system configuration in which a storage device having a large-capacity disk is connected to a computer in which the DBMS operates and the DB data is stored on the storage device is common.
  • Patent Document 1 is a technology that dynamically creates tasks each time data is read and multiplexes data reads by executing the tasks in parallel in an unordered manner. According to a DBMS using this technology, search performance can be dramatically improved as compared with a conventional DBMS that executes tasks in the order of occurrence.
  • the above-mentioned super large-scale DB often handles data with order added every day such as POS data and sensor data (for example, time-series data, hereinafter, order data), and search for this order data. Then, the more recent data, the higher the possibility of access.
  • order data for example, time-series data, hereinafter, order data
  • a DBMS that performs processing in high parallel and issues I / O to storage with high multiplexing to improve performance, to maximize performance, for example, as much as possible to increase I / O multiplicity It is necessary to issue I / O to this disk.
  • Patent Document 2 relates to an efficient logical volume management method.
  • data is unbalanced by performing data migration at the logical volume address (logical address) level.
  • a technique for solving the problem is disclosed.
  • data is not moved according to the contents of DB data. For example, even if there is a relationship between the logical address and the order of DB data, if the relationship is lost, data with close order relationship is concentrated on a specific disk, or the access range is widened on each disk. As a result, there is a possibility that I / O imbalance occurs and performance cannot be obtained.
  • the management system manages a plurality of data units constituting one or more schemas of the database in the storage device.
  • the storage apparatus has a plurality of first storage device sets each having a plurality of storage areas.
  • One or more schemas include an ordering schema configured by a plurality of data units having ordering in which each order is defined.
  • the management system configures an ordering schema Based on management information including mapping information, which is information indicating which data unit is stored in which storage area, and order information indicating the order of the data unit, in each of the plurality of storage areas of the first storage device set.
  • mapping information which is information indicating which data unit is stored in which storage area
  • order information indicating the order of the data unit, in each of the plurality of storage areas of the first storage device set
  • At least one first storage device such that a plurality of empty storage areas are distributed to the first storage device set and the second storage device set, in which two or more data units that are not in sequence among a plurality of stored data units are distributed Move from the set to the free storage area of the second storage device set.
  • the management system may be composed of a single computer or a kind of computer system composed of a plurality of computers.
  • FIG. 1 is a configuration diagram of an example of a computer system according to the first embodiment.
  • FIG. 2A is a configuration diagram of an example of schema information according to the first embodiment.
  • FIG. 2B is a configuration diagram of an example of DB mapping information according to the first embodiment.
  • FIG. 2C is a configuration diagram of an example of DB data additional information according to the first embodiment.
  • FIG. 3A is a configuration diagram of an example of OS mapping information according to the first embodiment.
  • FIG. 3B is a configuration diagram of an example of storage mapping information according to the first embodiment.
  • FIG. 4A is a configuration diagram of an example of DB data area management information according to the first embodiment.
  • FIG. 4B is a configuration diagram of an example of DB data area attribute information according to the first embodiment.
  • FIG. 4C is a configuration diagram of an example of DB data arrangement information according to the first embodiment.
  • FIG. 5A is a configuration diagram of an example of a data area addition instruction according to the first embodiment.
  • FIG. 5B is a configuration diagram of an example of a data movement instruction according to the first embodiment.
  • FIG. 5C is a diagram illustrating a physical arrangement example of the order-added DB data according to the first embodiment.
  • FIG. 6 is a flowchart of management processing according to the first embodiment.
  • FIG. 7 is a flowchart of data addition processing according to the first embodiment.
  • FIG. 8 is a flowchart of additional segment distribution processing according to the first embodiment.
  • FIG. 9A is a first diagram for explaining movement of DB data according to the first embodiment.
  • FIG. 9A is a first diagram for explaining movement of DB data according to the first embodiment.
  • FIG. 9B is a second diagram for explaining the movement of the DB data according to the first embodiment.
  • FIG. 10A is a third diagram for explaining the movement of the DB data according to the first embodiment.
  • FIG. 10B is a fourth diagram illustrating the movement of DB data according to the first embodiment.
  • FIG. 11A is a fifth diagram for explaining the movement of the DB data according to the first embodiment.
  • FIG. 11B is a sixth diagram illustrating the movement of DB data according to the first embodiment.
  • FIG. 12A is a seventh diagram illustrating the movement of DB data according to the first embodiment.
  • FIG. 12B is an eighth diagram for explaining the movement of the DB data according to the first embodiment.
  • FIG. 13 is a flowchart of additional segment distribution processing according to the second embodiment.
  • FIG. 14 is a flowchart of segment adjacency processing according to the second embodiment.
  • FIG. 15A is a first diagram for explaining movement of DB data according to the second embodiment.
  • FIG. 15B is a second diagram for explaining the movement of the DB data according to the first embodiment.
  • FIG. 16A is a third diagram for explaining the movement of the DB data according to the second embodiment.
  • FIG. 16B is a diagram for explaining an ideal arrangement of DB data.
  • FIG. 17A is a first diagram illustrating movement of DB data according to a modification.
  • FIG. 17B is a second diagram illustrating the movement of DB data according to the modification.
  • FIG. 18A is a third diagram for explaining the movement of the DB data according to the modification.
  • FIG. 17A is a first diagram illustrating movement of DB data according to a modification.
  • FIG. 17B is a second diagram illustrating the movement of DB data according to the modification.
  • FIG. 18A is a third diagram for explaining the movement
  • FIG. 18B is a fourth diagram illustrating the movement of DB data according to the modification.
  • FIG. 19A is a fifth diagram illustrating the movement of DB data according to the modification.
  • FIG. 19B is a sixth diagram illustrating the movement of DB data according to the modification.
  • processing may be described using “program” as the subject, but the program is defined by being executed by a processor (for example, a CPU (Central Processing Unit)) included in a computer, a storage device, or the like. Therefore, the subject of the processing may be a processor, using a storage resource (for example, a memory) and / or a communication interface device (for example, a communication port) as appropriate.
  • the processing described with the program as the subject may be processing performed by a processor or a device (computer, storage device, etc.) having the processor.
  • the controller may be the processor itself or may include a hardware circuit that performs part or all of the processing performed by the controller.
  • the program may be installed in each controller from a program source.
  • the program source may be, for example, a program distribution computer or a storage medium.
  • a serial interface or an Ethernet interface (Ethernet is a registered trademark) is used as an input / output device as an alternative to an input / output device in a computer, and a display device having a display, a keyboard, or a pointer device is connected to the interface. May be sent to the display device or input information may be received from the display device to display on the display device or accept input to replace the input and display on the input / output device. .
  • Ethernet is a registered trademark
  • Example 1 will be described.
  • FIG. 1 is a configuration diagram of an example of a computer system according to the first embodiment.
  • a computer 100 as an example of a management system and a storage device 150 are connected via communication networks 180 and 182.
  • the computer 100 executes a DBMS 120 that manages DB data stored in the storage apparatus 150.
  • the DBMS 120 is preferably a DBMS that improves performance by issuing I / O to the storage apparatus 150 with a high degree of parallelism.
  • the DBMS 120 receives a DB query, generates a query execution plan including information representing one or more database operations and an execution procedure of the one or more database operations necessary for executing the received query, and generates the query execution plan.
  • the received query may be executed based on the query execution plan that has been executed.
  • the DBMS 120 may dynamically generate a task for executing a database operation and execute the dynamically generated task in executing the query.
  • the DBMS 120 in executing the query, the DBMS 120 generates (a) a task for executing a database operation, and (b) executes the generated task, thereby obtaining data necessary for the database operation corresponding to the task.
  • C When executing the (N + 1) th database operation based on the execution result of the Nth database operation corresponding to the task executed in (b) above Includes newly generating a task based on the execution result (N is an integer of 1 or more), and (d) performing the above (b) and (c) for the newly generated task. If there are two or more executable tasks in (b) and (d) above, Them in parallel two or more of at least two tasks of the tasks may be adapted to run.
  • the DBMS 120 may be a DBMS conforming to the technique disclosed in Patent Document 1 described above.
  • the communication networks 180 and 182 may be a network such as a local area network (LAN) or a wide area network (WAN), or may be a network (storage area network: SAN) configured by a fiber channel or the like. good.
  • LAN local area network
  • WAN wide area network
  • SAN storage area network
  • FIG. 1 only one computer 100 and one storage device 150 are shown, but a plurality of computers may be used.
  • the computer 100 can be realized by a general computer, for example.
  • the computer 100 includes a CPU (control device) 104, an input / output device 106, a storage device 108, a memory 110, an I / F (1) 112, and an I / F (2) 114.
  • the CPU 104, the input / output device 106, the storage device 108, the memory 110, the I / F (1) 112, and the I / F (2) 114 are connected via the internal bus 102.
  • the I / F (1) 112 is an interface with the communication network 180.
  • the I / F (2) 114 is an interface with the communication network 182.
  • the input / output device 106 includes, for example, an input device such as a mouse and a keyboard, and an output device for a liquid crystal display.
  • a DBMS 120, a management program 130, and an operating system (hereinafter referred to as OS) 140 are stored in at least one of the storage device 108 and the memory 110 as an example of a management storage device.
  • the DBMS 120, the management program 130, and the OS 140 are executed by the CPU 104.
  • the DBMS 120 holds schema mapping information 122 relating to schemas such as DB tables and indexes, and DB mapping information 124 that associates DB data areas where DB data is logically stored with devices on the OS 140.
  • schema mapping information 122 relating to schemas such as DB tables and indexes
  • DB mapping information 124 that associates DB data areas where DB data is logically stored with devices on the OS 140.
  • the OS 140 holds OS mapping information 132 that associates a device on the OS 140 with a logical storage area on the storage apparatus 150.
  • the management program 140 acquires various types of information from the DBMS 120, the OS 130, and the control program 174 of the storage device 150 as necessary, and creates DB data area information 142 regarding the attributes of the DB data area, the actual DB data arrangement, and the like. Hold.
  • the management program 140 may be provided on another computer (for example, a host computer) connected to the computer 100 via the network 180 or 182 so as to operate on the other computer.
  • the storage apparatus 150 may be provided and operated on the storage apparatus 150.
  • the storage apparatus 150 includes a controller 154 and a plurality of disks (HDD: an example of a storage device) 156, and the controller 154 and the plurality of disks 156 are connected by an internal bus 152.
  • the controller 154 includes, for example, an I / F (1) 162, an I / F (2) 164, a CPU (control device) 166, a cache memory 168, and a memory 170.
  • the I / F (1) 162, I / F (2) 164, CPU 166, cache memory 168, and memory 170 are connected via an internal bus 160.
  • the I / F (1) 162 is an interface with the communication network 180.
  • the I / F (2) 164 is an interface with the communication network 182.
  • the memory 170 stores a control program 172 that controls the storage apparatus 150.
  • the control program 172 is executed by the CPU 166.
  • the control program 172 holds storage mapping information 174 that associates a logical storage area (LU) of the storage apparatus 150 with a physical storage area (segment) of the disk 156.
  • the disk 156 is, for example, a hard disk drive (magnetic storage device).
  • a plurality of disks 156 may be configured in a RAID (Redundant Array of Independent (or Inexpensive) Disks).
  • a storage device for example, a flash memory drive having other types of storage media may be provided.
  • the storage apparatus 150 When the storage apparatus 150 receives a data area addition instruction 500 and a data movement instruction 510, which will be described later, via the I / F (1) 162 or IF (2) 164 and receives the data area addition instruction 500, A storage area for storing data is added according to the contents of the instruction, and when a data movement instruction 510 is received, data (data unit) is moved according to the contents of the instruction.
  • FIG. 2A is a configuration diagram of an example of schema information according to the first embodiment.
  • the schema information 122 is information related to schemas such as tables and indexes constituting the DB, and has an entry for each schema.
  • Each entry includes a field 200 for registering an identifier for identifying a schema, a field 202 for registering a schema name, a field 204 for registering a schema type, a field 206 for registering a data type handled by the schema, and a schema storage.
  • types of data stored in the field 206 there are an order addition that indicates sequential data that is sequentially added and an unorder that indicates data that is not sequential data.
  • the schema for storing the order data is the order schema.
  • the schema information 122 is created when a DB is constructed, and updated when DB data is added / deleted.
  • FIG. 2B is a configuration diagram of an example of DB mapping information according to the first embodiment.
  • the DB mapping information 124 is information relating to the association between a DB data area in which each DB schema is stored and a device on the OS, and has an entry for each DB data area.
  • Each entry includes a field 220 for registering an identifier (DB data area ID) for identifying a DB data area, a field 222 for registering a file path of a device in which the DB data area is created, and a physical allocated to the DB data area.
  • Field 224 for registering the size of a typical storage area (in the figure, for example, the number of area units called allocated segments), and the number of segments used in the area allocated to the DB data area It has a field 226 for registration. In the present embodiment, for example, 4096 pages of data pages in the DB are stored in one segment.
  • the DB mapping information 124 is created when a DB is constructed, and is updated when a DB data area is added, deleted, or changed.
  • FIG. 2C is a configuration diagram of an example of DB data additional information according to the first embodiment.
  • the DB data addition information 126 is created by the DBMS 120 when DB data is added, and is transmitted to the management program 140.
  • the DB data addition information 126 is information related to the added DB data, and has an entry for each added DB data.
  • each DB data means every data unit with DB data of a predetermined data amount (for example, data amount corresponding to one segment) as a unit.
  • the data unit may be referred to as DB data.
  • Each entry includes a field 240 for registering an identifier (schema ID) of a schema to which DB data is added, a field 242 for registering an identifier (DB data area ID) of a DB data area to which DB data is added, and a DB to which DB data is added.
  • a field 244 for registering a logical address on the data area (in the figure, for example, logical page ID), a field 246 for registering the size of the added DB data (in the figure, for example, the number of data pages), and the like are added.
  • It has a field 248 for registering information (order information) that can specify the order of DB data, and a field 250 for registering information about the range of added DB data (for example, a range of IDs from 0 to 49999). Note that only when the data type of the schema of the added DB data is the order addition, the fields 248 and 250 are valid, and information corresponding to each is stored.
  • FIG. 3A is a configuration diagram of an example of OS mapping information according to the first embodiment.
  • the OS mapping information 132 is information that associates a device on the OS 130 with a logical storage area (LU) on the storage apparatus 150, and has an entry for each device. Each entry includes a field 300 for registering a file path on the OS 130 in which the device is created, and an identifier (storage device ID: ST-ID) for identifying the storage device 150 having a storage area (LU) corresponding to the device. And a field 304 for registering a number (LUN) for identifying a storage area (LU) corresponding to the device.
  • the OS mapping information 132 is created when the system is constructed, and is updated when the system configuration is changed.
  • FIG. 3B is a configuration diagram of an example of storage mapping information according to the first embodiment.
  • the storage mapping information 174 is information that associates a logical storage area (LU) of the storage apparatus 150 with a segment that is a physical area of the disk 156, and has an entry for each segment that constitutes the LU.
  • Each entry includes a field 310 for registering an identifier (ST-ID) for identifying the storage apparatus 150, a field 312 for registering a number (LUN) for identifying an LU, and an address of a logical storage area in the LU ( For example, a field 314 for registering a logical page ID), a field 316 for registering a number (disk No.) for identifying a disk storing the segment, and an address in the segment corresponding to the logical area of the field 314 ( For example, it has a field 318 for registering a physical page ID) and a field 320 for registering a number (segment number) for identifying a segment.
  • the segment No. stored in the field 320 is a number for uniquely identifying within the disc indicated by the disc No.
  • the storage mapping information 174 is created when the system is constructed, and is updated when the system configuration is changed.
  • the disk in the field 316 may be a single hard disk drive (HDD) or an RG (RaidRaGroup) in which a plurality of HDDs are configured in RAID.
  • one hard disk or RG is a storage device set.
  • FIG. 4A is a configuration diagram of an example of DB data area management information according to the first embodiment.
  • the DB data area management information 142 is created and held by the management program 140.
  • the DB data area management information 142 includes DB data area attribute information 400 and DB data arrangement information 402.
  • FIG. 4B is a configuration diagram of an example of DB data area attribute information according to the first embodiment.
  • the DB data area attribute information 400 is information related to the DB data area, and has an entry for each DB data area.
  • Each entry includes a field 410 for registering an identifier (DB data area ID) for identifying a DB data area, a field 412 for registering an identifier (schema ID) for identifying a schema stored in the DB data area, and a DB A field 414 for registering the type of data handled by the schema stored in the data area, a field 416 for registering an identifier for identifying the storage device 150 in which the DB data area is created, and a storage in which the DB data area is created
  • a field 418 for registering a number (LUN) for identifying a storage area (LU) on the device 150, a field 420 for registering the number of segments allocated to the DB data area, and an area allocated to the DB data area Field 422 for registering the number of segments used in the field Then have a field 424 for registering a subject to the number
  • the DB data area attribute information 400 includes the schema information 122 and DB mapping information 124 acquired from the DBMS 120 when the management program 140 is started, the OS mapping information 132 acquired from the OS 130, and the storage acquired from the control program 172 of the storage apparatus 150. Created based on the mapping information 174, and then updated as necessary when the DB data is added.
  • FIG. 4C is a configuration diagram of an example of DB data arrangement information according to the first embodiment.
  • the DB data arrangement information 402 is information relating to the physical arrangement of data units that are DB data having a predetermined data amount, and has an entry for each segment that can store one data unit.
  • Each entry includes a field 430 for registering an identifier (ST-ID) for identifying the storage apparatus 150, a field 432 for registering a number (LUN) for identifying an LU, and an address of a logical area in the LU (for example, , A logical page ID) field 434, a number for identifying the disk storing the segment (disk No.) 436, a segment identification number (segment No.) field 438, It has a field 440 for registering the order information of the DB data (data unit) stored in the segment, and a field 442 for registering information on the range of the DB data (data unit) stored in the segment.
  • the DB data arrangement information 402 is created when the management program 140 is started.
  • the DBMS 120 adds DB data and transmits the DB data addition information 126 to the management program 140, the DB data arrangement information 402 is changed depending on the contents of the DB data addition information 126. An addition is made.
  • FIG. 5A is a configuration diagram of an example of a data area addition instruction according to the first embodiment.
  • the data area addition instruction 500 is issued to the storage apparatus 150 by the management program 140.
  • the data area addition instruction 500 registers a field 502 for registering an identifier for identifying a storage apparatus 150 to which a data storage area (data area) is added, and a storage area (LU) number (LUN) for adding the data area.
  • a field 506 for registering the number of segments of the data area to be added.
  • the storage apparatus 150 that has received the data area addition instruction 500 adds the number of segments specified in the field 506 from the internal unused data area to the storage area specified in the field 504, and storage mapping information 174 is updated, and the result is returned to the management program 140.
  • FIG. 5B is a configuration diagram of an example of a data movement instruction according to the first embodiment.
  • the data movement instruction 510 is issued to the storage apparatus 150 by the management program 140.
  • the data movement instruction 510 includes a field 512 for registering an identifier for identifying a storage apparatus to which data is to be moved, a field 514 for registering the number (LUN) of a storage area (LU) to which data is to be moved, and the data migration source disk.
  • a field 516 for registering a number, a field 518 for registering a number for identifying a segment to which data is to be moved, a field 520 for registering a number for a disk to which data is to be moved, and a number for identifying a segment to which a data is to be moved are registered.
  • Field 522 for registering an identifier for identifying a storage apparatus to which data is to be moved
  • a field 514 for registering the number (LUN) of a storage area (LU) to which data is to be moved
  • the storage apparatus 150 that has received the data movement instruction 510 specifies the DB data (data unit) on the segment specified by the field 518 of the disk specified by the field 516 and is specified by the field 522 of the disk specified by the field 520.
  • the storage mapping information 174 is updated, and the result is returned to the management program 140.
  • FIG. 5C is a diagram illustrating a physical arrangement example of the order-added DB data according to the first embodiment.
  • LU 530 is composed of five disks 550 numbered 0-4. In each disk 550, five segments 542 with segment numbers 540 from 0 to 4 are allocated.
  • the segment 542 of the disk No. 0 segment No. 0 stores DB data (data unit) of order 1, the segment No. 0 of the disk No. 1 stores DB data of order 2, and the disk number 2
  • the segment No. 0 segment 542 stores order 3 DB data
  • the disk number 3 segment No 0 segment 542 stores order 4 DB data
  • DB data with order 5 is stored
  • DB data with order 6 is stored in segment 542 of segment No. 1 with disk number 0.
  • each segment 542 of each disk 550 stores order data.
  • DB data after 7 are stored.
  • the storage apparatus 150 stores DB data in a distributed manner so that continuous DB data is stored in different disks 550.
  • the logical storage areas on the LU 530 are, in order from the first storage area, the segment 542 of segment number 0 with disk number 0, the segment 542 of segment number 0 with disk number 1, the segment 542 with segment number 0 of disk number 2, and the disk number 3 Correspond to the segment 542 of the segment No 0, the segment 542 of the segment No 0 of the disk number 4, the segment 542 of the segment No 1 of the disk number 0, the segment 542 of the segment No 1 of the disk number 1.
  • FIG. 6 is a flowchart of management processing according to the first embodiment.
  • Management processing is realized by the CPU 104 of the computer 100 executing the management program 140.
  • the management process is started (step 600).
  • the management program 140 acquires the schema information 122 and the DB mapping information 124 from the DBMS 120 (Step 602), acquires the OS mapping information 132 from the OS 130 (Step 604), and acquires the storage mapping information 174 from the control program 172 of the storage apparatus 150. Acquire (step 606), create DB data area attribute information 400 and DB data arrangement information 402 based on the information (step 608), and then wait for reception of DB data additional information 126 from the DBMS 120. .
  • the management program 140 determines whether or not the DB data additional information 126 has been received from the DBMS 120 (step 610). As a result, when the DB data additional information 126 has been received (Yes in step 610), the data is added. Processing (see FIG. 7) is executed (step 612). After executing the data addition process, the management program 140 instructs the DBMS 120 to write the additional data to the storage apparatus 150, and the additional data is stored in the storage apparatus 150 in accordance with the instruction of the DBMS 120. The storage device 150 stores additional data in the free space so that continuous data is distributed to different disks.
  • the management program 140 After completing the data addition process, or when the DB data addition information 126 has not been received in step 610 (No in step 610), the management program 140 receives an instruction to end the management program 140 by the system administrator. If the end instruction is received (Yes in step S614), the management program 140 is ended and the management process is ended (step 616). If the instruction is not received (No in step S614), the process is repeated from step 610.
  • FIG. 7 is a flowchart of data addition processing according to the first embodiment.
  • the data addition process is realized by the CPU 104 of the computer 100 executing the management program 140.
  • the management program 140 updates the corresponding DB data area entry of the data area attribute information 400 based on the data addition information 126 received in step 610 of FIG. 6 (step 702), and assigns the entry of the DB data area. It is determined whether the ratio of the number of used segments to the number of segments is below a predetermined threshold (step 704).
  • the predetermined threshold value may be previously stored in the management program 140, or may be set by a system administrator or the like when the management program 140 is started. Further, in the above step 704, it is determined whether or not the number of unused segments is equal to or less than a predetermined amount depending on whether or not the ratio of the number of used segments to the number of allocated segments of entries in the DB data area falls below a predetermined threshold. However, instead of this, for example, it may be determined whether or not there are insufficient segments for storing additional DB data, and the absolute number of unused segments is a predetermined value. It may be determined whether or not:
  • step 704 if the ratio of the number of used segments to the number of allocated segments is below a predetermined threshold (Yes in step 704), the management program 140 performs the processing from step 706 onward, and falls below the threshold. If not (No in step 704), the data addition process is terminated (step 718).
  • step 706 the management program 140 sets information in each field of the data area addition instruction 500 and transmits it to the storage apparatus 150 (step 706). Specifically, the management program 140 sets the ST-ID of the field 416 of the corresponding DB data area entry in the DB data area attribute information table 400 in the field 502 of the data area addition instruction 500, and sets the LUN of the field 418.
  • the data area addition instruction 500 is set in the field 504, and the additional segment request number is set in the field 506.
  • the number of additional segment requests set in the field 506 of the data area addition instruction 500 may be a value given in advance by a system administrator or the like, or a value calculated from the current number of allocated segments (for example, the number of current allocated segments). Half).
  • the management program 140 receives the response of the data area addition instruction 500 transmitted in step 706 from the storage apparatus 150, and then reacquires the storage mapping information 174 from the storage apparatus 150 (step 708), and acquires the storage mapping information 174 acquired. Based on the information, an entry of the data arrangement information 402 regarding the newly added segment in the storage apparatus 150 is added (step 710).
  • the management program 140 searches for an entry corresponding to the DB data area to which the DB data of the data area attribute information 400 is added, and specifies the data type of the schema of the added DB data by the value of the field 414. (Step 712), it is determined whether or not the data type is an order addition, that is, whether or not the schema is an ordering schema (Step 714).
  • step 714 If the result of determination in step 714 is that the data type is order addition (Yes in step 714), the management program 140 executes additional segment distribution processing (see FIG. 8) (step 716), and then data addition The process ends (step 718). On the other hand, when the data type is not the order addition (No in step 714), the management program 140 ends the data addition process as it is (step 718).
  • FIG. 8 is a flowchart of additional segment distribution processing according to the first embodiment.
  • the additional segment distribution process is realized by the CPU 104 of the computer 100 executing the management program 140.
  • the management program 140 sets “1” to the variable N (step 802).
  • the management program 140 searches the DB data arrangement information 402 to determine whether the disk containing the Nth segment among the added segments is a newly added disk (second storage device set), that is, an existing one. It is determined whether or not it is not used as a disk (one or more first storage device set) constituting the entire DB data area (step 804). As a result, in the newly added disk (second storage device set), If not (No in Step 804), the process proceeds to Step 810.
  • step 804 if it is determined in step 804 that the disk is a newly added disk (second storage device set) (Yes in step 804), the management program 140 stores the data stored in the field 424 of the corresponding entry. Among the segments on the disk indicated by the moving disk No., the DB data (data unit) of the segment having the Nth oldest DB data in the order of the order information in the field 440 is replaced with the Nth segment of the newly added disk. The information is set in the data movement instruction 510 so as to move to the storage device 150 and transmitted to the storage apparatus 150 (step 806).
  • the management program 140 stores the disk number of the disk indicated by the data movement disk number in the field 516 of the data movement instruction 510, and the segment having the Nth oldest DB data on the disk in the field 518. , The disk number of the newly added disk is stored in the field 520, and the segment number of the Nth segment of the newly added disk is stored in the field 522.
  • the management program 140 receives the response of the data movement instruction 510 transmitted in step 806 from the storage device 150, and then updates the data arrangement information 402 according to the contents of the DB data movement (step 808). Specifically, the order information and data range information of the fields 440 and 442 of the entry corresponding to the segment of the source disk are registered in the fields 440 and 442 of the entry corresponding to the segment of the destination disk, and the migration is performed. Clear the contents of fields 440 and 442 of the original entry.
  • the management program 140 increments the variable N (+1) (step 810), and when the data is moved in step 806, the next disk (next first storage device set) is transferred to the data movement disk No in the field 424. ) Is set (step 812), and it is determined whether or not the variable N is the same as the number of added segments, that is, whether or not the number of added segments-1 times (steps 804 to 812) has been repeated (step 812). Step 814). As a result, when the variable N is smaller than the added number of segments (No in Step 814), the management program 140 executes the processing from Step 804 again. Accordingly, the processing in steps 804 to 812 is repeated only for the number of additional segments in the DB data area set in step 706.
  • step 814 when the variable N is the same as the number of added segments (Yes in step 814), the management program 140 ends the additional segment distribution process (step 816).
  • FIG. 9A is a first diagram illustrating movement of DB data according to the first embodiment.
  • FIG. 9B is a second diagram for explaining the movement of the DB data according to the first embodiment.
  • FIG. 10A is a third diagram illustrating the movement of the DB data according to the first embodiment.
  • FIG. 10B is a fourth diagram illustrating the movement of the DB data according to the first embodiment.
  • FIG. 11A is a fifth diagram illustrating the movement of the DB data according to the first embodiment.
  • FIG. 11B is a sixth diagram illustrating the movement of the DB data according to the first embodiment.
  • FIG. 12A is a seventh diagram illustrating the movement of the DB data according to the first embodiment.
  • FIG. 12B is an eighth diagram illustrating the movement of the DB data according to the first embodiment.
  • each rectangle inside the disk corresponds to a segment
  • the number on the left side of the rectangle indicates the number of the segment in the disk
  • the number written in the rectangle Indicates the order of the DB data (data unit) stored in the segment.
  • the number “1” in the rectangle indicates that data of order 1 is stored in the corresponding segment.
  • the segments arranged in the vertical direction are arranged along the sequence of addresses. That is, the segment being continuous (adjacent) means that the address range is continuous (adjacent).
  • P discs P is an integer of 2 or more
  • there are P (horizontal) ⁇ Q (vertical) segments Q is an integer of 1 or more). That is, each disk has Q segments.
  • the number of Q differs depending on the capacity of the disk (or which range of the disk is used as the DB data storage range).
  • the segments in the same row have the same address.
  • storage areas of five disks (a set of five first storage devices) of disks 900 to 908 are allocated as data areas for storing data of a certain schema at the time of starting processing.
  • the “disk” may be a single storage device or a plurality of storage devices (for example, a RAID (Redundant Array of Independent) (or Inexpensive) Disks) group).
  • Five segments are assigned to each of the disks 900 to 908.
  • Order 1 data data unit
  • order 2 data is stored in the segment No 0 segment of the disk 902
  • order 3 data is stored in the disk 904. It is stored in the segment No. 0, and each data is similarly stored in the segment of the disk.
  • Such a state is realized, for example, when the DBMS 120 (or the CPU 166 of the storage apparatus 150) sequentially switches the storage destination disks when storing sequentially from the head order data.
  • the data movement in the additional segment distribution processing is taken as an example. Is described below. It is assumed that the data migration disk number stored in the field 424 of the DB data area attribute information 400 indicates the disk 900.
  • the management program 140 monitors whether or not a new disk 910 is added to the disks 900 to 908 (a group of disks), and if a new disk 910 is added, detects it. good. In this state, the segments No. 0 to No. 4 of the disk 910 are unused.
  • the data in the next order for example, data from the order 26 to the order 30
  • the management program 140 moves the DB data moved from another disk and the DB data that is relatively out of order to the disk 910. Can be made. That is, it is possible to appropriately reduce the movement of continuous DB data to the disk 910. Thereafter, the management program 140 sets the data migration disk No in the field 424 of the DB data area attribute information 400 so as to indicate the next disk, that is, the disk 904.
  • step S804 to step 808 the management program 140 moves the data of the order 13 as shown in FIG. 11A. That is, when the additional segment distribution process is executed, the data migration disk No in the field 424 indicates the disk 904, so that the management program 140 has the Nth order in the disk 904 (here, the third position). ), The data of the segment (here, segment No. 2) having the old data (here, data of order 13) is added to the Nth (here, third) segment (here, segment No. 2) of the added disk 910. ). Thereafter, the management program 140 sets the data migration disk No in the field 424 of the DB data area attribute information 400 to point to the next disk, that is, the disk 906.
  • step S804 to step 808 when the variable N is set to 4 in the additional segment distribution process is executed, the management program 140 moves the data of the order 19 as shown in FIG. 11B. That is, when the additional segment distribution processing is executed, the data migration disk No in the field 424 indicates the disk 906, so that the management program 140 has the Nth order (here, the fourth) in the disk 906. ), The data of the segment (here, segment No. 3) having the old data (here, data of order 19) is added to the Nth (here, fourth) segment (here, segment No. 3) of the added disk 910. ). Thereafter, the management program 140 sets the data migration disk No in the field 424 of the DB data area attribute information 400 to point to the next disk, that is, the disk 908.
  • the state shown in FIG. 12A is obtained. That is, before new data is added, the unused segments are segment No. 0 of disk 900, segment No. 1 of disk 902, segment No. 2 of disk 904, segment No. 3 of disk 906, segment No. 4 of disk 910, etc. In other words, it is distributed to different disks.
  • the number of disks is P (P is an integer of 2 or more), and each disk has Q segments (Q is an integer of 1 or more).
  • Each disk has (P ⁇ Q) segments, and for every P pieces of DB data in which the order is continuous, P pieces of DB data in which the order is continuous are P pieces in the same row of different disks. Is stored in the segment.
  • the management program 140 determines that the free segment generated in the Xth disk is not adjacent to the segment storing the latest data unit in the Xth disk, and is the second newest DB in the Xth disk.
  • the data is moved from the segment storing the second new DB data to the empty segment in the Xth disk.
  • unused data areas are distributed to each disk, and thereafter, new data is added to the unused segments.
  • new data is added to the unused segments.
  • FIG. 12B the state shown in FIG. 12B is obtained. For example, assuming that access is made to the data for the most recent five segments (here, data of order 26 to order 30), the disk 900, the disk 902, the disk Since access is distributed to 904, the disk 906, and the disk 910, the degree of parallelism of processing is increased and the performance can be improved.
  • the physical access range (access) on the disk can be obtained only with the technique of the first embodiment. It is conceivable that there will be a disc that becomes wider. For example, in the disk 900, the range from segment No0 to segment No4 is accessed. The narrower the physical access range, the better the performance. Therefore, for a disk with an extended access range, the performance improvement rate becomes small.
  • a technique capable of narrowing a physical access range in a disk will be described.
  • segment adjacency processing (see FIG. 14) is further performed in the additional segment distribution processing in the computer system according to the first embodiment.
  • the configuration of the computer system according to the second embodiment is the same as that of the computer system according to the first embodiment shown in FIG.
  • the computer system according to the second embodiment will be described focusing on differences from the computer system according to the first embodiment.
  • FIG. 13 is a flowchart of additional segment distribution processing according to the second embodiment.
  • symbol is attached
  • step 1300 for executing segment adjacency processing is added between step 808 and step 810.
  • FIG. 14 is a flowchart of segment adjacency processing according to the second embodiment.
  • the management program 140 searches the DB data arrangement information 402 and newly adds a disk in which the Nth segment in the added segment (this variable N is a variable inherited from the additional segment distribution process) exists. It is determined whether the disk has been used, that is, whether it is not used as a disk constituting all existing DB data areas (step 1402). As a result, if it is not a newly added disk (No in step 1402). , The process proceeds to step 1410.
  • the management program 140 determines the segment that became the movement source in step 806 of the additional segment distribution processing in FIG.
  • the segment number of the unused segment and the segment number having the newest order information in the field 440 among all the segments of the disk to which the segment belongs are acquired (step 1404), and whether or not both segments are adjacent to each other That is, it is determined whether or not the segment numbers of both segments are ⁇ 1 (step 1406).
  • Step 1416 the management program 140 ends the segment adjacent processing (Step 1416).
  • the management program 140 determines the segment adjacent to the segment storing the newest data among all the segments of the disk. Information is set in the data movement instruction 510 so that the data is moved to the segment that became the movement source in Step 806 and transmitted to the storage apparatus 150. After receiving the response from the storage apparatus 150, the data arrangement information 402 is updated. (Step 1408), the segment adjacency processing is terminated (Step 1416).
  • step 1402 If it is determined in step 1402 that the disk is not a newly added disk (No in step 1402), the management program 140 determines the Nth segment (currently unused segment) in the added segment and the segment.
  • the segment No. of the segment with the newest order information in the field 440 is acquired from all the segments of the disk to which the segment belongs (step 1410), and whether or not both segments are adjacent, that is, the segment No. of both segments is It is determined whether or not ⁇ 1 (step 1412).
  • Step 1416 when both segments are adjacent (Yes in Step 1412), the management program 140 ends the segment adjacent processing (Step 1416).
  • the management program 140 determines the segment adjacent to the segment storing the newest data among all the segments of the disk. Information is set in the data movement instruction 510 so that the data is moved to the Nth segment in the added segment and transmitted to the storage apparatus 150. After receiving the response from the storage apparatus 150, the data arrangement information 402 is updated. (Step 1414), the segment adjacency process is terminated (Step 1416).
  • the data of the adjacent segment may be moved further.
  • the segment with the newest order and the unused segment are adjacent to each other on the same disk.
  • the present invention is not limited to this.
  • the statistical information of the search frequency may be stored in the management program 140, and the data may be moved so that the segments storing the data with the high search frequency are adjacent to each other.
  • the data of any segment within that range is set as a free area. You may make it move.
  • FIG. 15A is a first diagram illustrating movement of DB data according to the second embodiment.
  • FIG. 15B is a second diagram illustrating the movement of the DB data according to the first embodiment.
  • FIG. 16A is a third diagram for explaining the movement of the DB data according to the second embodiment.
  • FIG. 16B is a diagram for explaining an ideal data arrangement.
  • FIG. 15A is a diagram summarizing the state (FIG. 10B, FIG. 11A, FIG. 11B, FIG. 12A) before executing the segment adjacent processing in the additional segment distribution processing shown in FIG. 13 for convenience.
  • the segment adjacent process resulting from one added segment is performed following the process for one segment of the additional segment distribution process.
  • segment No. 0 data (order 1 data) of the disk 900 is moved to the segment No. 0 segment of the disk 910, it is shown in FIG. 15A by the segment adjacency process (step 1300).
  • segment here, the segment No. 3 adjacent to the segment (here, the segment No. 4 segment) having the most recent data (here, the data of the order 21) in the disk 900 is shown.
  • Segment data here, data of order 16
  • FIG. 11A after the data of segment No.
  • the state shown in FIG. 15B is obtained. That is, before new data is added, the unused segments are segment No. 3 of the disk 900, segment No. 3 of the disk 902, segment No. 3 of the disk 904, segment No. 3 of the disk 906, segment No. 4 of the disk 910, and so on. In other words, it is distributed to different disks. Further, the unused segment is adjacent to the segment having the newest data on each disk.
  • the added data area (segment) is distributed to each disk, and in each disk, an unused segment is adjacent to a segment having the latest data. New data is added to the used segment.
  • the state shown in FIG. 16A is obtained. For example, assuming that access is made to data for the latest five segments (here, data of order 26 to order 30), as in the first embodiment, Since access is distributed to the disk 900, the disk 902, the disk 904, the disk 906, and the disk 910, the degree of parallelism of processing is increased and the performance can be improved. Further, assuming that access is made to the most recent 10 segments of data (here, data of order 21 to order 30), in the first embodiment, the physical access range on the disk becomes wide.
  • the physical access range is limited to the segment No. 3 and the segment No. 4 in the disk 900. Therefore, the occurrence of a disk with a wide access range can be suppressed.
  • the narrower the physical access range on the disk the better the performance. Therefore, according to the second embodiment, the performance can be further improved as compared with the first embodiment.
  • FIG. 16B is a diagram for explaining an ideal data arrangement.
  • the arrangement of the data shown in FIG. 16B is, for example, from the state shown in FIG. 9B, the DB data is moved so as to be arranged in order according to the order information between the disks and within each disk, and then the unused segments are ordered. This can be realized by adding data from the property 26 to the order 30.
  • disk 902 disk 904, disk 906, disk 908, disk 910 Access is distributed to each other, the parallelism of processing is increased, and the performance can be improved. Further, assuming that the most recent 10 segments of data (in this case, data having an order of 21 to 30) are to be accessed, the access range is minimum on any disk.
  • This modification is different from the method for determining a segment to which data is moved in the additional segment distribution processing in the first embodiment.
  • the management program 140 uses the field 440 in the segment on the disk pointed to by the data migration disk No. stored in the field 424 of the corresponding entry.
  • the information is set in the data movement instruction 510 so that the DB data of the segment with the order of N + 1 oldest data is moved to the Nth segment of the newly added disk and transmitted to the storage apparatus 150. ing.
  • FIG. 17A is a first diagram for explaining the movement of DB data according to a modification.
  • FIG. 17B is a second diagram illustrating the movement of DB data according to the modification.
  • FIG. 18A is a third diagram for explaining the movement of the DB data according to the modification.
  • FIG. 18B is a fourth diagram illustrating the movement of DB data according to the modification.
  • FIG. 19A is a fifth diagram illustrating the movement of DB data according to the modification.
  • FIG. 19B is a sixth diagram illustrating the movement of DB data according to the modification.
  • step S804 to step 808 the data of the order 18 is moved as shown in FIG. 18A. That is, when the additional segment distribution processing is executed, the data migration disk No in the field 424 indicates the disk 904, and therefore, the order of the data in the disk 904 is N + 1th (here, fourth) oldest data ( Here, the data of the segment having the order 18 (here, segment No. 3) is moved to the Nth (here, third) segment (here, segment No. 2) of the added disk 910. It will be. Thereafter, the data migration disk No. in the field 424 of the DB data area attribute information 400 is set to indicate the next disk, that is, the disk 906.
  • step S804 to step 808 the data of the order 24 is moved as shown in FIG. 18B. That is, when the additional segment distribution processing is executed, the data migration disk No in the field 424 indicates the disk 906, and therefore, the order of the data in the disk 906 is N + 1th (here, fifth) oldest data ( Here, the data of the segment having the order 24 data (here, segment No. 4) is moved to the Nth (here, fourth) segment (here, segment No. 3) of the added disk 910. It will be. Thereafter, the data migration disk No. in the field 424 of the DB data area attribute information 400 is set to indicate the next disk, that is, the disk 908.
  • the state shown in FIG. 19A is obtained. That is, before new data is added, the unused segments are segment No. 1 of the disk 900, segment No. 2 of the disk 902, segment No. 3 of the disk 904, segment No. 4 of the disk 906, segment No. 5 of the disk 910, and so on. In other words, it is distributed to different disks.
  • unused data areas are distributed to the respective disks, and new data is then stored in the unused segments.
  • An addition is made.
  • the state shown in FIG. 19B is obtained.
  • data for the latest five segments here, data of order 26 to order 30
  • the degree of parallelism of processing is increased and the performance can be improved.
  • the additional segment distribution processing is performed when the DB data area is equal to or smaller than a predetermined amount (for example, the DB data area is insufficient or the number of used segments with respect to the allocated number of segments in the DB data area).
  • a predetermined amount for example, the DB data area is insufficient or the number of used segments with respect to the allocated number of segments in the DB data area.
  • the present invention is not limited to this, and may be performed in response to an instruction from a system administrator, for example.
  • a new disk is added, and the data of the disk segment constituting the existing DB data area is moved to the segment on the added disk.
  • the degree of parallelism can be increased and the performance can be improved.
  • the management program 140 may be executed by another computer connected to the computer 100.
  • the other computer may be a management system.

Landscapes

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

Abstract

管理システムは、ストレージ装置におけるデータベースの1以上のスキーマを構成する複数のデータ単位を管理する。ストレージ装置は、複数の記憶領域を有する複数の第1記憶デバイス集合を有する。1以上のスキーマには、それぞれの順序が規定される順序性を有する複数のデータ単位により構成される順序性スキーマが含まれている。1以上の第2記憶デバイスの集合でありそれぞれの記憶領域が空きの記憶領域である第2記憶デバイス集合が前記第1記憶デバイス集合に追加される場合に、管理システムは、第1記憶デバイス集合の複数の記憶領域にそれぞれ格納されている複数のデータ単位のうち順序が連続しない2以上のデータ単位を、複数の空き記憶領域が前記第1記憶デバイス集合及び第2記憶デバイス集合に分散するよう少なくとも1つの第1記憶デバイス集合から第2記憶デバイス集合の空き記憶領域に移動させる。

Description

管理システム及び管理方法
 本発明は、データベース(以下、DB)のデータ単位の物理的な配置を管理する技術に関する。
 現在、DBを基盤とする多くのアプリケーションが存在しており、DBに関する一連の処理・管理を行うDBMSは極めて重要なものとなっている。DBの特徴の一つは、多大な量のデータを扱うことである。そのため、DBMSが稼動する計算機システムの多くにおいては、DBMSが動作する計算機に大容量のディスクを持つ記憶装置を接続し、記憶装置上にDBデータを記憶するシステム形態が一般的である。
 このシステム形態をとっている場合においては、記憶装置のディスク上にデータが記憶されるので、DBに関する処理(DB処理)を行う際にはディスクに対してアクセスが必然的に発生する。特に、ペタバイトクラスの超大規模DBにおいて、そのDBのデータから、ある特定のデータを探し出す処理には膨大な時間を要することになる。そこで、大量のデータの中から特定のデータを探し出す検索処理を高速化する技術として、特許文献1に開示されている技術が知られている。
 特許文献1に開示されている技術は、データの読み出しを行う都度、タスクを動的に作成し、タスクを並列に非順序で実行することでデータの読み出しを多重化する技術である。当該技術を用いたDBMSによると、タスクを発生順に実行する従来のDBMSと比較して、検索性能を飛躍的に向上することができる。
特開2007-34414号公報 米国特許第6880102号明細書
 上記の超大規模DBは、POSデータやセンサデータ等、日々追加される順序性を持ったデータ(例えば、時系列データ等、以下、順序性データ)を扱うことが多く、この順序性データに対する検索では、直近のデータになるほどアクセスされる可能性が高くなるようなこともある。高並列で処理を実行し、高多重でストレージにI/Oを発行して性能向上を図るDBMSにおいては、性能を最大限引き出すため、例えば、I/O多重度を稼ぐために可能な限り多くのディスクに対してI/Oを発行する必要がある。しかし、ディスク間でDBデータの配置にアンバランス(例えば、特定のディスクにデータが集中して配置されている、特定のディスクに順序関係が近いデータが固まって配置されている等)があった場合、それはそのままI/Oのアンバランスに繋がり、結果として、I/O多重度を高めることができず、性能を引き出せないという課題がある。また、個々のディスクで見れば、物理的なアクセスレンジが狭ければ狭いほど性能は向上するため、ディスク内において順序性が保たれてDBデータが配置されている方が良い。
 I/Oアンバランスを解消するための従来技術として、I/O統計を用いたマイグレーション技術がある。この技術は、ディスク毎にI/Oの統計を取っておき、ある特定のディスクにI/Oが集中している場合は、そのディスク上のデータを別のディスクに移動し、I/O負荷のバランスを取る。しかし、この技術は、一旦I/Oのアンバランスが生じてからでないとマイグレーションが行われないため、その間は性能が低下してしまうという問題がある。
 また、特許文献2には、効率的な論理ボリュームの管理方法に関し、論理ボリュームへのデータ領域追加時に、論理ボリュームのアドレス(論理アドレス)レベルでデータのマイグレーションを行うことでデータ配置のアンバランスを解消する技術が開示されている。特許文献2に開示された、論理ボリュームの論理アドレスによってマイグレーションを行う技術では、DBのデータの内容に応じてデータの移動を行うわけではない。例え、論理アドレスとDBのデータの順序性に関係があったとしても、その関係が崩れた場合には特定のディスクに順序関係の近いデータが集中したり、個々のディスクでアクセスレンジが広くなったりし、その結果、I/Oのアンバランスが生じて性能を引き出せなくなる可能性がある。
 管理システムは、ストレージ装置におけるデータベースの1以上のスキーマを構成する複数のデータ単位を管理する。ストレージ装置は、複数の記憶領域を有する複数の第1記憶デバイス集合を有する。1以上のスキーマには、それぞれの順序が規定される順序性を有する複数のデータ単位により構成される順序性スキーマが含まれている。1以上の第2記憶デバイスの集合でありそれぞれの記憶領域が空きの記憶領域である第2記憶デバイス集合が前記第1記憶デバイス集合に追加される場合に、管理システムは、順序性スキーマを構成するどのデータ単位がどの記憶領域に記憶されているかを示す情報であるマッピング情報とデータ単位の順序を示す順序情報とを含む管理情報に基づいて、第1記憶デバイス集合の複数の記憶領域にそれぞれ格納されている複数のデータ単位のうち順序が連続しない2以上のデータ単位を、複数の空き記憶領域が前記第1記憶デバイス集合及び第2記憶デバイス集合に分散するよう少なくとも1つの第1記憶デバイス集合から第2記憶デバイス集合の空き記憶領域に移動させる。管理システムは、単一の計算機で構成されていても良いし、複数の計算機で構成された一種の計算機システムでも良い。
図1は、第1実施形態に係る計算機システムの一例の構成図である。 図2Aは、第1実施形態に係るスキーマ情報の一例の構成図である。 図2Bは、第1実施形態に係るDBマッピング情報の一例の構成図である。 図2Cは、第1実施形態に係るDBデータ追加情報の一例の構成図である。 図3Aは、第1実施形態に係るOSマッピング情報の一例の構成図である。 図3Bは、第1実施形態に係るストレージマッピング情報の一例の構成図である。 図4Aは、第1実施形態に係るDBデータ領域管理情報の一例の構成図である。 図4Bは、第1実施形態に係るDBデータ領域属性情報の一例の構成図である。 図4Cは、第1実施形態に係るDBデータ配置情報の一例の構成図である。 図5Aは、第1実施形態に係るデータ領域追加指示の一例の構成図である。 図5Bは、第1実施形態に係るデータ移動指示の一例の構成図である。 図5Cは、第1実施形態に係る順序追加型のDBデータの物理的な配置例を示す図である。 図6は、第1実施形態に係る管理処理のフローチャートである。 図7は、第1実施形態に係るデータ追加時処理のフローチャートである。 図8は、第1実施形態に係る追加セグメント分散処理のフローチャートである。 図9Aは、第1実施形態に係るDBデータの移動を説明する第1の図である。 図9Bは、第1実施形態に係るDBデータの移動を説明する第2の図である。 図10Aは、第1実施形態に係るDBデータの移動を説明する第3の図である。 図10Bは、第1実施形態に係るDBデータの移動を説明する第4の図である。 図11Aは、第1実施形態に係るDBデータの移動を説明する第5の図である。 図11Bは、第1実施形態に係るDBデータの移動を説明する第6の図である。 図12Aは、第1実施形態に係るDBデータの移動を説明する第7の図である。 図12Bは、第1実施形態に係るDBデータの移動を説明する第8の図である。 図13は、第2実施形態に係る追加セグメント分散処理のフローチャートである。 図14は、第2実施形態に係るセグメント隣接処理のフローチャートである。 図15Aは、第2実施形態に係るDBデータの移動を説明する第1の図である。 図15Bは、第1実施形態に係るDBデータの移動を説明する第2の図である。 図16Aは、第2実施形態に係るDBデータの移動を説明する第3の図である。 図16Bは、理想的なDBデータの配置を説明する図である。 図17Aは、変形例に係るDBデータの移動を説明する第1の図である。 図17Bは、変形例に係るDBデータの移動を説明する第2の図である。 図18Aは、変形例に係るDBデータの移動を説明する第3の図である。 図18Bは、変形例に係るDBデータの移動を説明する第4の図である。 図19Aは、変形例に係るDBデータの移動を説明する第5の図である。 図19Bは、変形例に係るDBデータの移動を説明する第6の図である。
 本発明の幾つかの実施例を、図面を参照して説明する。なお、以下に説明する実施例は特許請求の範囲にかかる発明を限定するものではなく、また実施例の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
 以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、計算機、ストレージ装置等に含まれるプロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又は通信インターフェースデバイス(例えば通信ポート)等を用いながら行うため、処理の主語がプロセッサとされてもよい。プログラムを主語として説明された処理は、プロセッサ或いはそのプロセッサを有する装置(計算機、ストレージ装置等)が行う処理としても良い。また、コントローラは、プロセッサそれ自体であっても良いし、コントローラが行う処理の一部又は全部を行うハードウエア回路を含んでも良い。プログラムは、プログラムソースから各コントローラにインストールされても良い。プログラムソースは、例えば、プログラム配布計算機又は記憶メディアであっても良い。
 また、計算機における入出力装置の代替としてシリアルインタフェースやイーサーネットインタフェース(イーサーネットは登録商標)を入出力装置とし、当該インタフェースにディスプレイ又はキーボード又はポインタデバイスを有する表示用装置を接続し、表示用情報を表示用装置に送信したり、入力用情報を表示用装置から受信することで、表示用装置で表示を行ったり、入力を受け付けることで入出力装置での入力及び表示を代替してもよい。
 まず、実施例1を説明する。
 図1は、実施例1に係る計算機システムの一例の構成図である。
 計算機システムにおいては、通信ネットワーク180、182を介して管理システムの一例としての計算機100と、ストレージ装置150とが接続される。計算機100は、ストレージ装置150に格納されているDBのデータを管理するDBMS120を実行する。
 このDBMS120は、高い並列度でストレージ装置150にI/Oを発行して性能向上を図るDBMSが望ましい。例えば、DBMS120は、DBのクエリを受け付け、受け付けたクエリを実行するために必要な1以上のデータベースオペレーションと1以上のデータベースオペレーションの実行手順とを表す情報を含んだクエリ実行プランを生成し、生成したクエリ実行プランに基づいて、上記受け付けたクエリを実行して良い。DBMS120は、そのクエリの実行において、データベースオペレーションを実行するためのタスクを動的に生成し、動的に生成されたタスクを実行して良い。例えば、DBMS120は、クエリの実行において、(a)データベースオペレーションを実行するためのタスクを生成すること、(b)生成されたタスクを実行することで、当該タスクに対応したデータベースオペレーションに必要なデータを読み出すためにデータベースへデータ読出し要求を発行すること、(c)上記(b)で実行されたタスクに対応したN番目のデータベースオペレーションの実行結果に基づき(N+1)番目のデータベースオペレーションを実行する場合には、当該実行結果に基づくタスクを新たに生成すること(Nは1以上の整数)、及び、(d)その新たに生成したタスクについて上記(b)及び上記(c)を行うこと、を行い、上記(b)及び(d)において、2以上の実行可能なタスクが存在する場合には、それら2以上のタスクのうちの少なくとも2つのタスクを並行して実行するようになっていて良い。このDBMS120は、前述した特許文献1に開示の技術に従うDBMSで良い。
 通信ネットワーク180、182は、ローカルエリアネットワーク(LAN)やワイドエリアネットワーク(WAN)等のネットワークであっても良く、また、ファイバチャネル等で構成されるネットワーク(ストレージエリアネットワーク:SAN)であっても良い。図1において、計算機100、及びストレージ装置150はそれぞれ1台のみ記載しているが、それぞれ複数台であっても良い。
 計算機100は、例えば一般的な計算機により実現することができる。例えば、計算機100は、CPU(制御デバイス)104、入出力装置106、記憶装置108、メモリ110、I/F(1)112、及び、I/F(2)114を有する。CPU104、入出力装置106、記憶装置108、メモリ110、I/F(1)112、及び、I/F(2)114は、内部バス102を介して接続されている。
 I/F(1)112は、通信ネットワーク180とのインタフェースである。I/F(2)114は、通信ネットワーク182とのインタフェースである。入出力装置106は、例えば、マウス、キーボード等の入力装置や、液晶ディスプレイの出力装置を含む。管理用記憶デバイスの一例としての記憶装置108、及びメモリ110の少なくとも一方には、DBMS120、管理プログラム130、オペレーティングシステム(以下、OS)140が格納される。DBMS120、管理プログラム130、及びOS140は、CPU104によって実行される。
 DBMS120は、DBの表や索引等のスキーマに関するスキーマ情報122と、DBのデータが論理的に格納されるDBデータ領域とOS140上のデバイスとを対応付けるDBマッピング情報124を保持する。DBMS120は、DBMS120がDBデータを追加した際、追加したDBデータに関するDBデータ追加情報126を作成し、管理プログラム140に送信する。OS140は、OS140上のデバイスとストレージ装置150上の論理的な記憶領域とを対応付けるOSマッピング情報132を保持する。管理プログラム140は、必要に応じてDBMS120、OS130、ストレージ装置150の制御プログラム174から各種情報を取得し、DBデータ領域の属性や実際のDBデータの配置等に関するDBデータ領域情報142を作成して保持する。尚、管理プログラム140は、ネットワーク180もしくはネットワーク182を介して計算機100と接続された別の計算機(例えば、ホスト計算機)に備えるようにして、当該別の計算機上で動作させても良く、また、ストレージ装置150に備えるようにして、当該ストレージ装置150上で動作させるようにしても良い。
 ストレージ装置150は、コントローラ154と、複数のディスク(HDD:記憶デバイスの一例)156を有し、コントローラ154及び複数のディスク156は内部バス152によって接続される。コントローラ154は、例えば、I/F(1)162、I/F(2)164、CPU(制御デバイス)166、キャッシュメモリ168、及びメモリ170を有する。I/F(1)162、I/F(2)164、CPU166、キャッシュメモリ168、及びメモリ170は、内部バス160を介して接続されている。
 I/F(1)162は、通信ネットワーク180とのインタフェースである。I/F(2)164は、通信ネットワーク182とのインタフェースである。メモリ170には、ストレージ装置150を制御する制御プログラム172が格納される。制御プログラム172は、CPU166によって実行される。
 制御プログラム172は、ストレージ装置150の論理的な記憶領域(LU:Logical Unit)と、ディスク156が有する物理的な記憶領域(セグメント)とを対応付けるストレージマッピング情報174を保持する。ディスク156は、例えばハードディスクドライブ(磁気記憶装置)である。ストレージ装置150においては、複数のディスク156をRAID(Redundant Array of Independent (or Inexpensive) Disks)構成にしても良い。尚、ディスク156に加えて、又は、ディスク156に代えて、他種の記憶メディアを有する記憶デバイス(例えばフラッシュメモリドライブ)を備えても良い。
 このストレージ装置150では、後述のデータ領域追加指示500、及びデータ移動指示510を、I/F(1)162又はIF(2)164を介して受信し、データ領域追加指示500を受け付けた際は、その指示の内容に応じてデータが格納される記憶領域を追加し、また、データ移動指示510を受け付けた際は、その指示の内容に応じてデータ(データ単位)の移動を行う。
 続いて、計算機100又はストレージ装置150に格納される各種情報の詳細について説明する。
 図2Aは、実施例1に係るスキーマ情報の一例の構成図である。
 スキーマ情報122は、DBを構成する表や索引等のスキーマに関する情報であり、スキーマ毎にエントリを有する。各エントリは、スキーマを識別するための識別子を登録するフィールド200、スキーマの名前を登録するフィールド202、スキーマの種別を登録するフィールド204、スキーマが扱うデータのタイプを登録するフィールド206、スキーマが格納されるデータ領域のID(DBデータ領域ID)を登録するフィールド208、使用しているデータページ数を登録するフィールド210を有する。フィールド206に格納されるデータのタイプとしては、逐次追加される順序性データであることを示す順序追加と、順序性データではないデータであることを示す非順序とがある。ここで、順序性データを格納するスキーマが順序性スキーマである。スキーマ情報122は、DB構築時に作成され、DBデータの追加・削除時に更新される。
 図2Bは、実施例1に係るDBマッピング情報の一例の構成図である。
 DBマッピング情報124は、DBの各スキーマが格納されるDBデータ領域とOS上のデバイスとの対応付けに関する情報であり、DBデータ領域毎にエントリを有する。各エントリは、DBデータ領域を識別するための識別子(DBデータ領域ID)を登録するフィールド220、DBデータ領域が作られるデバイスのファイルパスを登録するフィールド222、DBデータ領域に割当られている物理的な記憶領域のサイズ(同図では、例えば、割当てられているセグメントと呼ばれる領域単位の数)を登録するフィールド224、DBデータ領域に割当てられている領域の中で使用しているセグメント数を登録するフィールド226を有する。本実施例では、1つのセグメントには、例えば、DBにおけるデータページが4096ページ分格納される。DBマッピング情報124は、DB構築時に作成され、DBデータ領域の追加、削除、変更時に更新される。
 図2Cは、実施例1に係るDBデータ追加情報の一例の構成図である。
 DBデータ追加情報126は、DBMS120によりDBデータの追加時に作成され、管理プログラム140に送信される。DBデータ追加情報126は、追加したDBデータに関する情報であり、追加したDBデータ毎にエントリを有する。ここで、DBデータ毎とは、所定のデータ量(例えば、1セグメントに対応するデータ量)のDBデータを単位としたデータ単位毎を意味している。以下、データ単位について、DBデータということもある。各エントリは、DBデータを追加したスキーマの識別子(スキーマID)を登録するフィールド240、DBデータを追加したDBデータ領域の識別子(DBデータ領域ID)を登録するフィールド242、DBデータを追加したDBデータ領域上の論理的なアドレス(同図では、例えば、論理ページID)を登録するフィールド244、追加したDBデータのサイズ(同図では、例えば、データページ数)を登録するフィールド246、追加したDBデータの順序を特定可能な情報(順序性情報)を登録するフィールド248、追加したDBデータの範囲の情報(例えば、IDが0~49999の範囲等)を登録するフィールド250を有する。尚、追加したDBデータのスキーマのデータタイプが順序追加の場合のみ、フィールド248、及びフィールド250は有効となり、それぞれに対応する情報が格納される。
 図3Aは、実施例1に係るOSマッピング情報の一例の構成図である。
 OSマッピング情報132は、OS130上のデバイスと、ストレージ装置150上の論理的な記憶領域(LU)とを対応付ける情報であり、デバイス毎にエントリを有する。各エントリは、デバイスが作られているOS130上のファイルパスを登録するフィールド300、デバイスに対応する記憶領域(LU)を持つストレージ装置150を識別するための識別子(ストレージ装置ID:ST-ID)を登録するフィールド302、デバイスに対応する記憶領域(LU)を識別するための番号(LUN)を登録するフィールド304を有する。OSマッピング情報132は、システム構築時に作成され、システム構成に変更があった場合に更新される。
 図3Bは、実施例1に係るストレージマッピング情報の一例の構成図である。
 ストレージマッピング情報174は、ストレージ装置150の論理的な記憶領域(LU)と、ディスク156が有する物理的な領域であるセグメントとを対応付ける情報であり、LUを構成するセグメント毎にエントリを有する。各エントリは、ストレージ装置150を識別するめの識別子(ST-ID)を登録するフィールド310、LUを識別するための番号(LUN)を登録するフィールド312、LU内の論理的な記憶領域のアドレス(例えば、論理ページID)を登録するフィールド314、セグメントを格納しているディスクを識別するための番号(ディスクNo)を登録するフィールド316、フィールド314の論理的な領域に対応するセグメント内のアドレス(例えば、物理ページID)を登録するフィールド318、セグメントを識別するための番号(セグメントNo)を登録するフィールド320を有する。本実施例では、フィールド320に格納されるセグメントNoは、ディスクNoで示されるディスク内で一意に識別するための番号である。ストレージマッピング情報174は、システム構築時に作成され、システム構成に変更があった場合に更新される。なお、フィールド316におけるディスクとは、1台のハードディスクドライブ(HDD)であっても良いし、複数のHDDがRAID構成されたRG(Raid Group)であっても良い。ここで、1台のハードディスク、又はRGが、記憶デバイス集合である。
 図4Aは、実施例1に係るDBデータ領域管理情報の一例の構成図である。
 DBデータ領域管理情報142は、管理プログラム140により作成されて保持される。DBデータ領域管理情報142は、DBデータ領域属性情報400、DBデータ配置情報402を有する。
 図4Bは、実施例1に係るDBデータ領域属性情報の一例の構成図である。
 DBデータ領域属性情報400は、DBデータ領域に関する情報であり、DBデータ領域毎にエントリを有する。各エントリは、DBデータ領域を識別するための識別子(DBデータ領域ID)を登録するフィールド410、DBデータ領域に格納されるスキーマを識別するための識別子(スキーマID)を登録するフィールド412、DBデータ領域に格納されるスキーマが扱うデータのタイプを登録するフィールド414、DBデータ領域が作られているストレージ装置150を識別するための識別子を登録するフィールド416、DBデータ領域が作られているストレージ装置150上の記憶領域(LU)を識別するための番号(LUN)を登録するフィールド418、DBデータ領域に割当られているセグメント数を登録するフィールド420、DBデータ領域に割当られている領域の中で使用しているセグメント数を登録するフィールド422、次にデータ移動の対象となるディスクの番号(ディスクNo)を登録するフィールド424を有する。DBデータ領域属性情報400は、管理プログラム140起動時に、DBMS120から取得されたスキーマ情報122及びDBマッピング情報124、OS130から取得されたOSマッピング情報132、ストレージ装置150の制御プログラム172から取得されたストレージマッピング情報174に基づいて作成され、その後、DBデータに追加があった際に必要に応じて更新される。
 図4Cは、実施例1に係るDBデータ配置情報の一例の構成図である。
 DBデータ配置情報402は、所定のデータ量のDBデータであるデータ単位についての物理的配置に関する情報であり、1つのデータ単位を格納可能なセグメント毎にエントリを有する。各エントリは、ストレージ装置150を識別するめの識別子(ST-ID)を登録するフィールド430、LUを識別するための番号(LUN)を登録するフィールド432、LU内の論理的な領域のアドレス(例えば、論理ページID)を登録するフィールド434、セグメントを格納しているディスクを識別するための番号(ディスクNo)を登録する436、セグメントを識別するための番号(セグメントNo)を登録するフィールド438、セグメントに格納されているDBデータ(データ単位)の順序性情報を登録するフィールド440、セグメントに格納されているDBデータ(データ単位)の範囲の情報を登録するフィールド442を有する。DBデータ配置情報402は、管理プログラム140起動時に作成され、DBMS120がDBデータの追加を行ってDBデータ追加情報126を管理プログラム140に送信した際に、そのDBデータ追加情報126の内容によってエントリの追加が行われる。
 図5Aは、実施例1に係るデータ領域追加指示の一例の構成図である。
 データ領域追加指示500は、管理プログラム140により、ストレージ装置150に対して発行される。データ領域追加指示500は、データの記憶領域(データ領域)を追加するストレージ装置150を識別するための識別子を登録するフィールド502、データ領域を追加する記憶領域(LU)の番号(LUN)を登録するフィールド504、追加するデータ領域のセグメント数を登録するフィールド506を有する。データ領域追加指示500を受信したストレージ装置150は、内部で持っている未使用データ領域から、フィールド506で指定されたセグメント数のセグメントをフィールド504で指定された記憶領域に追加し、ストレージマッピング情報174を更新し、その結果を管理プログラム140に返信する。
 図5Bは、実施例1に係るデータ移動指示の一例の構成図である。
 データ移動指示510は、管理プログラム140により、ストレージ装置150に対して発行される。データ移動指示510は、データを移動するストレージ装置を識別するための識別子を登録するフィールド512、データを移動する記憶領域(LU)の番号(LUN)を登録するフィールド514、データ移動元のディスクの番号を登録するフィールド516、データ移動元のセグメントを識別するための番号を登録するフィールド518、データ移動先のディスクの番号を登録するフィールド520、データ移動先のセグメントを識別するための番号を登録するフィールド522を有する。データ移動指示510を受信したストレージ装置150は、フィールド516で指定されたディスクのフィールド518で指定されたセグメント上のDBデータ(データ単位)を、フィールド520で指定されたディスクのフィールド522で指定されたセグメントに移動し、ストレージマッピング情報174を更新し、その結果を管理プログラム140に返信する。
 図5Cは、実施例1に係る順序追加型のDBデータの物理的な配置例を示す図である。
 LU530は、番号0~4の5つのディスク550で構成される。各ディスク550では、セグメントNo540が0~4までの5つのセグメント542が割当てられる。ディスク番号0のセグメントNo0のセグメント542には、順序性1のDBデータ(データ単位)が格納され、ディスク番号1のセグメントNo0のセグメントには、順序性2のDBデータが格納され、ディスク番号2のセグメントNo0のセグメント542には、順序性3のDBデータが格納され、ディスク番号3のセグメントNo0のセグメント542には、順序性4のDBデータが格納され、ディスク番号4のセグメントNo0のセグメント542には、順序性5のDBデータが格納され、ディスク番号0のセグメントNo1のセグメント542には、順序性6のDBデータが格納され、同様にして、各ディスク550の各セグメント542に、順序性7以降のDBデータがそれぞれ格納される。ストレージ装置150は、図5Cに示すように、連続するDBデータが、異なるディスク550に格納されるように、DBデータを分散させて格納する。
 LU530上の論理的な記憶領域は、先頭の記憶領域から順に、ディスク番号0のセグメントNo0のセグメント542、ディスク番号1のセグメントNo0のセグメント542、ディスク番号2のセグメントNo0のセグメント542、ディスク番号3のセグメントNo0のセグメント542、ディスク番号4のセグメントNo0のセグメント542、ディスク番号0のセグメントNo1のセグメント542、ディスク番号1のセグメントNo1のセグメント542、・・・に対応している。
 次に、実施例1に係る計算機システムにおける処理動作を説明する。
 図6は、実施例1に係る管理処理のフローチャートである。
 管理処理は、計算機100のCPU104が管理プログラム140を実行することにより実現される。
 システム管理者等によって、計算機100上で、管理プログラム140が起動されると、管理処理を開始する(ステップ600)。
 管理プログラム140は、DBMS120からスキーマ情報122、DBマッピング情報124を取得し(ステップ602)、OS130からOSマッピング情報132を取得し(ステップ604)、ストレージ装置150の制御プログラム172からストレージマッピング情報174を取得し(ステップ606)、それらの情報に基づいてDBデータ領域属性情報400、及びDBデータ配置情報402を作成し(ステップ608)、その後、DBMS120からのDBデータ追加情報126の受信待ち状態となる。
 管理プログラム140は、DBMS120からDBデータ追加情報126を受信したか否かを判定し(ステップ610)、その結果、DBデータ追加情報126を受信した場合(ステップ610でYes)には、データ追加時処理(図7参照)を実行する(ステップ612)。データ追加時処理を実行後には、管理プログラム140は、DBMS120に追加データのストレージ装置150への書込み指示を行うこととなり、DBMS120の指示に従って追加データがストレージ装置150に格納されることとなる。なお、ストレージ装置150は、連続するデータが異なるディスクに分散されるように空き領域に対して追加データを格納する。
 データ追加時処理を終了した後、もしくはステップ610でDBデータ追加情報126を受信していない場合(ステップ610でNo)は、管理プログラム140は、システム管理者による管理プログラム140の終了の指示を受けたか否かを判定し(ステップ614)、その結果、終了の指示を受けた場合(ステップS614でYes)には、管理プログラム140を終了して管理処理を終了する(ステップ616)、一方、終了の指示を受けていない場合(ステップS614でNo)には、ステップ610から処理を繰り返す。
 図7は、実施例1に係るデータ追加時処理のフローチャートである。
 データ追加時処理は、計算機100のCPU104が管理プログラム140を実行することにより実現される。
 管理プログラム140は、図6のステップ610で受信したデータ追加情報126を基に、データ領域属性情報400の対応するDBデータ領域のエントリを更新し(ステップ702)、当該DBデータ領域のエントリの割当セグメント数に対する使用セグメント数の割合が所定の閾値を下回ったか否かを判定する(ステップ704)。尚、この所定の閾値は予め管理プログラム140が内部に持っておいても良いし、管理プログラム140の起動時等にシステム管理者等から設定されても良い。また、上記ステップ704においては、DBデータ領域のエントリの割当セグメント数に対する使用セグメント数の割合が所定の閾値を下回ったか否かにより、未使用のセグメント数が所定量以下であるか否かを判定するようにしているが、これに代えて、例えば、追加するDBデータを格納するためのセグメントが不足するか否かを判定しても良く、また、未使用のセグメント数の絶対数が所定値以下であるか否かを判定しても良い。
 ステップ704の判定の結果、割当セグメント数に対する使用セグメント数の割合が所定の閾値を下回っている場合(ステップ704でYes)には、管理プログラム140は、ステップ706以降の処理を行い、閾値を下回っていない場合(ステップ704でNo)には、データ追加時処理を終了する(ステップ718)。
 ステップ706では、管理プログラム140は、データ領域追加指示500の各フィールドに情報をセットしてストレージ装置150に送信する(ステップ706)。具体的には、管理プログラム140は、DBデータ領域属性情報テーブル400の対応するDBデータ領域のエントリのフィールド416のST-IDをデータ領域追加指示500のフィールド502にセットし、フィールド418のLUNをデータ領域追加指示500のフィールド504にセットし、フィールド506に追加セグメント要求数をセットする。尚、データ領域追加指示500のフィールド506に設定する追加セグメント要求数は、予めシステム管理者等から与えられた値としても良いし、現在の割当セグメント数から計算した値(例えば、現割当セグメント数の半分)としても良い。
 管理プログラム140は、ステップ706で送信したデータ領域追加指示500の応答をストレージ装置150から受信した後、ストレージ装置150からストレージマッピング情報174を再取得し(ステップ708)、取得したストレージマッピング情報174の情報に基づいて、ストレージ装置150において新たに追加されたセグメントに関するデータ配置情報402のエントリを追加する(ステップ710)。
 続いて、管理プログラム140は、データ領域属性情報400のDBデータが追加されたDBデータ領域に対応するエントリを検索して、追加されたDBデータのスキーマのデータタイプをフィールド414の値により特定し(ステップ712)、そのデータタイプが順序追加であるか否か、すなわち、当該スキーマが順序性スキーマであるか否かを判定する(ステップ714)。
 ステップ714の判定の結果、データタイプが順序追加の場合(ステップ714でYes)には、管理プログラム140は、追加セグメント分散処理(図8参照)を実行し(ステップ716)、その後、データ追加時処理を終了する(ステップ718)。一方、データタイプが順序追加でない場合(ステップ714でNo)には、管理プログラム140は、そのままデータ追加時処理を終了する(ステップ718)。
 図8は、実施例1に係る追加セグメント分散処理のフローチャートである。
 追加セグメント分散処理は、計算機100のCPU104が管理プログラム140を実行することにより実現される。
 管理プログラム140は、変数Nに“1”をセットする(ステップ802)。次いで、管理プログラム140は、DBデータ配置情報402を検索して、追加したセグメントの中のN番目のセグメントが存在するディスクが新しく追加されたディスク(第2記憶デバイス集合)か、すなわち、既存の全DBデータ領域を構成するディスク(1以上の第1記憶デバイス集合)として使われていないか否かを判定し(ステップ804)、この結果、新しく追加されたディスク(第2記憶デバイス集合)ではない場合(ステップ804でNo)には、処理をステップ810に進める。
 一方、ステップ804の判定の結果、新しく追加されたディスク(第2記憶デバイス集合)である場合(ステップ804でYes)には、管理プログラム140は、対応するエントリのフィールド424に格納されているデータ移動ディスクNoが指すディスク上のセグメントの中で、フィールド440の順序性情報の順序がN番目に古いDBデータを持つセグメントのDBデータ(データ単位)を、新しく追加されたディスクのN番目のセグメントに移動するようにデータ移動指示510に情報をセットしてストレージ装置150に送信する(ステップ806)。具体的には、管理プログラム140は、データ移動指示510のフィールド516に、データ移動ディスクNoが示すディスクのディスクNoを格納し、フィールド518に、当該ディスク上のN番目に古いDBデータを持つセグメントのセグメントNoを格納し、フィールド520に、新しく追加されたディスクのディスクNoを格納し、フィールド522に、新しく追加されたディスクのN番目のセグメントのセグメントNoを格納する。
 次いで、管理プログラム140は、ステップ806で送信したデータ移動指示510の応答をストレージ装置150から受信した後、DBデータ移動の内容に応じてデータ配置情報402を更新する(ステップ808)。具体的には、移動元のディスクのセグメントに対応するエントリのフィールド440及び442の順序性情報及びデータ範囲情報を、移動先のディスクのセグメントに対応するエントリのフィールド440及び442に登録し、移動元のエントリのフィールド440及び442の内容をクリアする。
 続いて、管理プログラム140は、変数Nをインクリメント(+1)し(ステップ810)、ステップ806でデータを移動した場合は、フィールド424のデータ移動ディスクNoに次のディスク(次の第1記憶デバイス集合)の番号をセットし(ステップ812)、変数Nが追加したセグメント数と同じか否か、すなわち、追加したセグメント数-1回処理(ステップ804~ステップ812)を繰り返したか否かを判定する(ステップ814)。この結果、変数Nが追加したセグメント数よりも小さい場合(ステップ814でNo)には、管理プログラム140は、ステップ804からの処理を再び実行する。従って、ステップ706でセットしたDBデータ領域の追加セグメント数-1回だけステップ804~812の処理が繰り返されることとなる。この処理により、連続するDBデータが一つのディスクに集まらないようにしつつ、複数のディスク900~910に空き領域が分散されることとなる。また、この処理により、複数のディスク900~910にほぼ同数の空き領域(空きセグメント)が備えられることとなる。
 一方、ステップ814の判定の結果、変数Nが追加したセグメント数と同じである場合(ステップ814でYes)には、管理プログラム140は、追加セグメント分散処理を終了する(ステップ816)。
 次に、図7に示すデータ追加時処理と、図8に示す追加セグメント分散処理とが実行された場合におけるDBデータの移動の具体例を説明する。
 図9Aは、実施例1に係るDBデータの移動を説明する第1の図である。図9Bは、実施例1に係るDBデータの移動を説明する第2の図である。図10Aは、実施例1に係るDBデータの移動を説明する第3の図である。図10Bは、実施例1に係るDBデータの移動を説明する第4の図である。図11Aは、実施例1に係るDBデータの移動を説明する第5の図である。図11Bは、実施例1に係るDBデータの移動を説明する第6の図である。図12Aは、実施例1に係るDBデータの移動を説明する第7の図である。図12Bは、実施例1に係るDBデータの移動を説明する第8の図である。ここで、これら図面においては、ディスク(900等)の内部の各矩形は、それぞれセグメントに対応し、矩形の左横の数字は、当該ディスクにおけるセグメントの番号を示し、矩形内に記載された数字は、当該セグメントに格納されているDBデータ(データ単位)の順序性を示している。例えば、矩形内の数字が“1”は、順序性1のデータが対応するセグメントに格納されていることを示している。また、図示の個々のディスクにおいて、縦方向に並んだセグメントは、アドレスの並びに沿って並んでいるものとする。つまり、セグメントが連続(隣接)しているとは、アドレス範囲が連続(隣接)していることを意味する。図によれば、P個のディスクがある場合(Pは2以上の整数)、P(横)×Q(縦)個のセグメントを有する(Qは1以上の整数)。つまり、各ディスクが、Q個のセグメントを有する。Qの数は、ディスクの容量(或いはディスクのうちのどの範囲をDBデータの格納範囲とするか)に応じて異なる。同一行にあるセグメントは、アドレスが同一とする。
 図9Aに示すように、処理を開始する時点における或るスキーマのデータが格納されるデータ領域としては、ディスク900~908の5つのディスク(5つの第1記憶デバイス集合)の記憶領域が割り当てられている。すなわち、ここでいう「ディスク」は、単体の記憶デバイスでも良いし、複数の記憶デバイス(例えばRAID(Redundant Array of Independent (or Inexpensive) Disks)グループ)でも良い。ディスク900~908には、それぞれ5つのセグメントが割り当てられている。順序性1のデータ(データ単位)は、ディスク900のセグメントNo0のセグメントに格納され、順序性2のデータは、ディスク902のセグメントNo0のセグメントに格納され、順序性3のデータは、ディスク904のセグメントNo0のセグメントに格納されており、同様にして各データがディスクのセグメントに格納されている。このような状態は、例えば、DBMS120(或いは、ストレージ装置150のCPU166)が、先頭の順序性データから順に格納する際に、格納先とするディスクを順次切り替えることにより、実現される。
 このような状態において、スキーマのデータを格納するための記憶領域として、新しくディスク910(第2記憶デバイス集合)の5つのセグメントを追加する場合を例に挙げて、追加セグメント分散処理におけるデータの移動を以下説明する。尚、DBデータ領域属性情報400のフィールド424に格納されたデータ移動ディスクNoは、ディスク900を指しているものとする。
 スキーマのデータを格納する領域は、新しくディスク910の5つのセグメントが追加されると、図9Bに示すように、ディスク900~ディスク908の既存のデータ領域に対して、新たなディスク910の5つのセグメントが追加されることとなる。例えば、管理プログラム140が、ディスク900~ディスク908(ディスクの一群)に新たなディスク910が追加されたか否かを監視していて、新たなディスク910が追加された場合にはそれを検出して良い。この状態では、ディスク910のセグメントNo0~No4のセグメントが未使用となっている。ここで、図8に示す追加セグメント分散処理を実行しなかった場合には、次の順序のデータ(例えば、順序性26から順序性30までのデータ)は、ディスク910のセグメントNo0からセグメントNo4のセグメントに順次追加されることになる。この状態で、直近の5セグメント分のデータ(この例では、順序性26から順序性30のデータ)にアクセスすることを想定すると、ディスク910にアクセスが集中してしまい、結果として処理の並列度が高まらず性能を向上することができない。
 図9Bに示す状態において、追加セグメント分散処理における変数N=1とした場合の処理(ステップS804~ステップ808)が実行されると、図10Aに示すように管理プログラム140は、順序性1のデータ(データ単位)を移動する。すなわち、追加セグメント分散処理が実行されると、フィールド424のデータ移動ディスクNoがディスク900を指しているので、管理プログラム140は、ディスク900の中で順序性がN番目(ここでは、1番目)に古いデータ(ここでは、順序性1のデータ)を持つセグメント(ここでは、セグメントNo0)のデータを、追加したディスク910のN番目(ここでは、1番目)のセグメント(ここでは、セグメントNo0のセグメント)に移動させる。この後、管理プログラム140は、DBデータ領域属性情報400のフィールド424のデータ移動ディスクNoを、次のディスク、すなわち、ディスク902を指すようにセットする。
 その後、追加セグメント分散処理における変数N=2とした場合の処理(ステップS804~ステップ808)が実行されると、図10Bに示すように、管理プログラム140は、順序性7のデータを移動させる。すなわち、追加セグメント分散処理が実行されると、フィールド424のデータ移動ディスクNoは、ディスク902を指しているので、管理プログラム140は、ディスク902の中で順序性がN番目(ここでは、2番目)に古いデータ(ここでは、順序性7のデータ)を持つセグメント(ここでは、セグメントNo1)のデータを、追加したディスク910のN番目(ここでは、2番目)のセグメント(ここでは、セグメントNo1)に移動させる。ここで、逐次インクリメントされるN番目に古いDBデータを移動させるようにするので、管理プログラム140は、他のディスクから移動されたDBデータと、順序が比較的はなれたDBデータをディスク910に移動させることができる。すなわち、ディスク910に連続するDBデータが移動されることを適切に低減することができる。この後、管理プログラム140は、DBデータ領域属性情報400のフィールド424のデータ移動ディスクNoを、次のディスク、すなわち、ディスク904を指すようにセットする。
 その後、追加セグメント分散処理における変数N=3とした場合の処理(ステップS804~ステップ808)が実行されると、図11Aに示すように、管理プログラム140は、順序性13のデータを移動させる。すなわち、追加セグメント分散処理が実行されると、フィールド424のデータ移動ディスクNoは、ディスク904を指しているので、管理プログラム140は、ディスク904の中で順序性がN番目(ここでは、3番目)に古いデータ(ここでは、順序性13のデータ)を持つセグメント(ここでは、セグメントNo2)のデータを、追加したディスク910のN番目(ここでは、3番目)のセグメント(ここでは、セグメントNo2)に移動させる。この後、管理プログラム140は、DBデータ領域属性情報400のフィールド424のデータ移動ディスクNoを、次のディスク、すなわち、ディスク906を指すようにセットする。
 その後、追加セグメント分散処理における変数N=4とした場合の処理(ステップS804~ステップ808)が実行されると、図11Bに示すように、管理プログラム140は、順序性19のデータを移動させる。すなわち、追加セグメント分散処理が実行されると、フィールド424のデータ移動ディスクNoは、ディスク906を指しているので、管理プログラム140は、ディスク906の中で順序性がN番目(ここでは、4番目)に古いデータ(ここでは、順序性19のデータ)を持つセグメント(ここでは、セグメントNo3)のデータを、追加したディスク910のN番目(ここでは、4番目)のセグメント(ここでは、セグメントNo3)に移動させる。この後、管理プログラム140は、DBデータ領域属性情報400のフィールド424のデータ移動ディスクNoを、次のディスク、すなわち、ディスク908を指すようにセットする。
 図9Bの状態に対して、追加セグメント分散処理が実行されて、データの移動が終わった場合には、図12Aに示す状態となる。すなわち、新たなデータの追加が行われる前において、未使用のセグメントが、ディスク900のセグメントNo0、ディスク902のセグメントNo1、ディスク904のセグメントNo2、ディスク906のセグメントNo3、ディスク910のセグメントNo4といったように、異なるディスクに分散されることとなる。
 図12Aに示す状態において、DBMS120により、順序性26から順序性30までのデータがストレージ装置150に追加されると、図12Bに示すように連続するデータが異なるディスクに分散されて格納されることとなる。すなわち、順序性26のデータは、ディスク900のセグメントNo0のセグメントに格納され、順序性27のデータは、ディスク902のセグメントNo1のセグメントに格納され、順序性28のデータは、ディスク904のセグメントNo2のセグメントに格納され、順序性29のデータは、ディスク906のセグメントNo3のセグメントに格納され、順序性30のデータは、ディスク910のセグメントNo4のセグメントに格納される。
 すなわち、以上の説明によれば、ディスクの数がPであり(Pは2以上の整数)、各ディスクが、Q個のセグメントを有しており(Qは1以上の整数)、故に、P個のディスクが、(P×Q)個のセグメントを有しており、順番が連続したP個のDBデータ毎に、順番が連続したP個のDBデータが、異なるディスクの同一行のP個のセグメントに格納されるようになっている。この場合、管理プログラム140は、X番目の第1記憶デバイス集合のうちX番目に古いデータを(Xは整数、且つ、X=0、1、…、(Q-1))、X番目のディスクのセグメントから追加されたディスクの空きセグメントに移動させる。その後、管理プログラム140は、X番目のディスクに生じた空きセグメントが、X番目のディスクにおける最新のデータ単位を格納しているセグメントに隣接していない場合、X番目のディスクにおける2番目に新しいDBデータを、2番目に新しいDBデータを記憶しているセグメントから、X番目のディスクにおける空きセグメントに移動させる。
 以上説明したように、実施例1によると、未使用のデータ領域(セグメント)が各ディスクに分散されることとなり、その後、その未使用のセグメントに対して新たなデータの追加が行われる。この結果、図12Bに示す状態となり、例えば、直近の5セグメント分のデータ(ここでは、順序性26から順序性30のデータ)に対してアクセスすることを想定すると、ディスク900、ディスク902、ディスク904、ディスク906、ディスク910にアクセスが分散するため、処理の並列度が高まり、性能を向上することが可能となる。
 ここで、直近の10セグメント分のデータ(ここでは、順序性21から順序性30のデータ)にアクセスすることを想定すると、実施例1の技術だけでは、ディスク上の物理的なアクセスレンジ(アクセスされる範囲)が広くなってしまうディスクが出てくる場合が考えられる。例えば、ディスク900では、セグメントNo0からセグメントNo4までの範囲に対してアクセスされることとなる。物理的なアクセスレンジが狭ければ狭いほど性能は向上するため、アクセスレンジが広がったディスクに関しては、性能向上の割合が小さくなってしまう。これに対して、以下の実施例2では、ディスクにおける物理的なアクセスレンジを狭めることができる技術を説明する。
 次に、実施例2に係る計算機システムについて説明する。
 実施例2に係る計算機システムは、実施例1に係る計算機システムにおける追加セグメント分散処理において、更にセグメント隣接処理(図14参照)を行うようにしたものである。実施例2に係る計算機システムの構成は、図1に示す実施例1に係る計算機システムと同様である。以下、実施例2に係る計算機システムについて、実施例1に係る計算機システムとの相違点を中心に説明する。
 図13は、実施例2に係る追加セグメント分散処理のフローチャートである。なお、図8に示す実施例1に係る追加セグメント分散処理と同様な部分には、同一の符号を付している。
 実施例2における追加セグメント分散処理においては、ステップ808とステップ810との間にセグメント隣接処理(図14参照)を実行するステップ1300が追加されている。
 図14は、実施例2に係るセグメント隣接処理のフローチャートである。
 管理プログラム140は、DBデータ配置情報402を検索して、追加したセグメントの中のN番目(この変数Nは、追加セグメント分散処理から引き継いだ変数である。)のセグメントが存在するディスクが新しく追加されたディスクか、すなわち、既存の全DBデータ領域を構成するディスクとして使われていないか否かを判定し(ステップ1402)、この結果、新しく追加されたディスクではない場合(ステップ1402でNo)には、処理をステップ1410に進める。
 ステップ1402の判定の結果、新しく追加されたディスクの場合(ステップS1402でYes)には、管理プログラム140は、図13の追加セグメント分散処理のステップ806で移動元になったセグメント、すなわち、現在、未使用のセグメントのセグメントNoと、当該セグメントが属するディスクの全セグメントの中でフィールド440の順序性情報が一番新しいセグメントNoとを取得し(ステップ1404)、両セグメントが隣接しているか否か、すなわち、両セグメントのセグメントNoが±1であるか否かを判定する(ステップ1406)。
 その結果、両セグメントが隣接している場合(ステップ1406でYes)には、管理プログラム140は、セグメント隣接処理を終了する(ステップ1416)。一方、両者のセグメントが隣接していない場合(ステップ1406でNo)には、管理プログラム140は、そのディスクの全セグメントの中で一番新しいデータを格納しているセグメントに隣接しているセグメントのデータを、ステップ806で移動元になったセグメントに移動するようにデータ移動指示510に情報をセットしてストレージ装置150に送信し、ストレージ装置150からその応答を受信後、データ配置情報402を更新して(ステップ1408)、セグメント隣接処理を終了する(ステップ1416)。
 ステップ1402の判定の結果、新しく追加されたディスクではない場合(ステップ1402でNo)には、管理プログラム140は、追加したセグメント中のN番目のセグメント(現在、未使用のセグメント)と、当該セグメントが属するディスクの全セグメントの中でフィールド440の順序性情報が一番新しいセグメントのセグメントNoとを取得し(ステップ1410)、両セグメントが隣接しているか否か、すなわち、両セグメントのセグメントNoが±1であるか否かを判定する(ステップ1412)。
 その結果、両セグメントが隣接している場合(ステップ1412でYes)には、管理プログラム140は、セグメント隣接処理を終了する(ステップ1416)。一方、両者のセグメントが隣接していない場合(ステップ1412でNo)には、管理プログラム140は、そのディスクの全セグメントの中で一番新しいデータを記憶しているセグメントに隣接しているセグメントのデータを、追加したセグメント中のN番目のセグメントに移動するようにデータ移動指示510に情報をセットしてストレージ装置150に送信し、ストレージ装置150からその応答を受信後、データ配置情報402を更新して(ステップ1414)、セグメント隣接処理を終了する(ステップ1416)。
 尚、同一ディスク上で順序性が一番新しいデータを記憶しているセグメントの両隣のセグメントが未使用の場合は、更にその隣のセグメントのデータを移動するようにしても良い。また、セグメント隣接処理では、同一ディスク上で順序性が一番新しいセグメントと、未使用のセグメントとが隣接するようにしているが、本発明はこれに限られず、例えば、各スキーマのデータ範囲に対する検索頻度の統計情報を管理プログラム140の内部にもっておいて、検索頻度の高いデータを記憶しているセグメント同士が、隣接するようにデータの移動を行っても良い。また、一番新しいデータが格納されているセグメントに対して所定の範囲内(例えば、前後2セグメント以内)に空き領域が存在しない場合に、その範囲内のいずれかのセグメントのデータを空き領域に移動させるようにしても良い。
 次に、図14に示すセグメント隣接処理を行った場合におけるDBデータの移動の具体例を説明する。
 図15Aは、実施例2に係るDBデータの移動を説明する第1の図である。図15Bは、実施例1に係るDBデータの移動を説明する第2の図である。図16Aは、実施例2に係るDBデータの移動を説明する第3の図である。図16Bは、理想的なデータ配置を説明する図である。
 図15Aは、図13に示す追加セグメント分散処理において、セグメント隣接処理を実行する前の状態(図10B、図11A、図11B、図12A)を便宜的にまとめて示した図である。尚、追加した1つのセグメントに起因するセグメント隣接処理は、追加セグメント分散処理の1つのセグメントに対する処理に引き続いて行われる。
 まず、図10Bに示すように、ディスク900のセグメントNo0のデータ(順序性1のデータ)がディスク910のセグメントNo0のセグメントに移動した後には、セグメント隣接処理(ステップ1300)により、図15Aに示すように、ディスク900の中で順序性が一番新しいデータ(ここでは、順序性21のデータ)を持つセグメント(ここでは、セグメントNo4のセグメント)に隣接しているセグメント(ここでは、セグメントNo3のセグメント)のデータ(ここでは、順序性16のデータ)を、追加セグメント分散処理によって未使用となったセグメント(ここでは、セグメントNo0のセグメント)に移動する。同様にして、図11Aに示すように、ディスク902のセグメントNo1のデータ(順序性7のデータ)がディスク910のセグメントNo1のセグメントに移動した後には、図15Aに示すように、ディスク902のセグメントNo3のデータ(ここでは、順序性17のデータ)をセグメントNo1のセグメントに移動する。また、図11Bに示すように、ディスク904のセグメントNo2のデータ(順序性13のデータ)がディスク910のセグメントNo2のセグメントに移動した後には、図15Aに示すように、ディスク904のセグメントNo3のデータ(ここでは、順序性18のデータ)をセグメントNo2のセグメントに移動する。ディスク906に関しては、ディスク906の中で順序性が一番新しいデータ(ここでは、順序性24のデータ)を持つセグメント(ここでは、セグメントNo4のセグメント)と、追加セグメント分散処理によって未使用となったセグメント(ここでは、セグメントNo3のセグメント)が隣接しているため、セグメント隣接処理によってデータの移動は行われない。
 セグメント隣接処理が実行されて、データの移動が終わった場合には、図15Bに示す状態となる。すなわち、新たなデータの追加が行われる前において、未使用のセグメントが、ディスク900のセグメントNo3、ディスク902のセグメントNo3、ディスク904のセグメントNo3、ディスク906のセグメントNo3、ディスク910のセグメントNo4といったように、異なるディスクに分散されることとなる。また、未使用のセグメントが、各ディスクの一番新しいデータを持つセグメントと隣接することとなる。
 図15Bに示す状態において、順序性26から順序性30までのデータが追加されると、図16Aに示すように異なるディスクに分散されて格納されることとなる。すなわち、順序性26のデータは、ディスク900のセグメントNo3のセグメントに格納され、順序性27のデータは、ディスク902のセグメントNo3のセグメントに格納され、順序性28のデータは、ディスク904のセグメントNo3のセグメントに格納され、順序性29のデータは、ディスク906のセグメントNo3のセグメントに格納され、順序性30のデータは、ディスク910のセグメントNo4のセグメントに格納される。
 以上により、実施例2では、追加されたデータ領域(セグメント)が各ディスクに分散され、且つ個々のディスクでは未使用のセグメントが最新のデータを持つセグメントと隣接されることとなり、その後、その未使用のセグメントに対して新たなデータの追加が行われる。この結果、図16Aに示す状態となり、例えば、直近の5セグメント分のデータ(ここでは、順序性26から順序性30のデータ)に対してアクセスすることを想定すると、実施例1と同様に、ディスク900、ディスク902、ディスク904、ディスク906、ディスク910にアクセスが分散するため、処理の並列度が高まり、性能を向上することが可能となる。更に、直近の10セグメント分のデータ(ここでは、順序性21から順序性30のデータ)にアクセスすることを想定すると、実施例1では、ディスク上の物理的なアクセスレンジが広くなってしまうディスク(例えばディスク900)が発生したが、実施例2では、ディスク900においては、物理的なアクセスレンジがセグメントNo3とセグメントNo4のセグメントに限られるので、アクセスレンジが広くなるディスクの発生が抑えられる。ディスク上の物理的なアクセス範囲は狭ければ狭いほど性能は良くなるため、実施例2によると、実施例1に比して、更に性能を向上することが可能となる。
 ここで、DBデータの理想的な配置を示して、実施例2の効果についてさらに説明する。
 図16Bは、理想的なデータ配置を説明する図である。
 図16Bに示すデータの配置は、例えば、図9Bの状態から、ディスク間、及び各ディスク内で順序性情報に従った順番に並ぶようにDBデータを移動し、その後、未使用のセグメントに順序性26から順序性30までのデータを追加することにより実現することができる。
 図16Bに示す状態において、直近の5セグメント分のデータ(ここでは、順序性26から順序性30のデータ)にアクセスすることを想定すると、ディスク902、ディスク904、ディスク906、ディスク908、ディスク910にアクセスが分散し、処理の並列度が高まり性能を向上することが可能となる。更に、直近の10セグメント分のデータ(ここでは順序性21から30のデータ)にアクセスすることを想定すると、どのディスクにおいてもアクセスレンジは最小となる。
 ここで、図9Bに示す状態から図16Bに示す状態にするためには、セグメントのデータ移動が20回必要になる。これに対して、図9Bに示す状態から、図16Aに示す状態にするためには、セグメントのデータ移動は7回で済む。図16Bに示すような理想的な状態するためのデータ移動の回数と、図16Aに示すような状態するためのデータ移動の回数との差は、スキーマを構成するセグメントの数が多くなれば多くなるほど、大きくなってしまう。実施例2によると、セグメントの移動回数とそのオーバヘッドを抑えながら、ある範囲のデータのアクセスでは理想的なデータ配置の状態と同様の効果が得られる。
 次に、実施例1の変形例について説明する。
 本変形例は、実施例1における追加セグメント分散処理において、データを移動させる対象とするセグメントを決定する方法を異ならせたものである。
 具体的には、図8に示す追加セグメント分散処理のステップ806において、管理プログラム140は、対応するエントリのフィールド424に格納されているデータ移動ディスクNoが指すディスク上のセグメントの中で、フィールド440の順序性情報の順序がN+1番目に古いセグメントのDBデータを、新しく追加されたディスクのN番目のセグメントに移動するようにデータ移動指示510に情報をセットしてストレージ装置150に送信するようにしている。
 次に、変形例に係る追加セグメント分散処理が実行された場合におけるDBデータの移動の具体例を説明する。
 図17Aは、変形例に係るDBデータの移動を説明する第1の図である。図17Bは、変形例に係るDBデータの移動を説明する第2の図である。図18Aは、変形例に係るDBデータの移動を説明する第3の図である。図18Bは、変形例に係るDBデータの移動を説明する第4の図である。図19Aは、変形例に係るDBデータの移動を説明する第5の図である。図19Bは、変形例に係るDBデータの移動を説明する第6の図である。
 図9Bに示す状態において、変形例に係る追加セグメント分散処理における変数N=1とした場合の処理(ステップS804~ステップ808)が実行されると、図17Aに示すように、順序性6のデータが移動される。すなわち、追加セグメント分散処理が実行されると、フィールド424のデータ移動ディスクNoがディスク900を指しているので、ディスク900の中で順序性がN+1番目(ここでは、2番目)に古いデータ(ここでは、順序性6のデータ)を持つセグメント(ここでは、セグメントNo1)のデータが、追加したディスク910のN番目(ここでは、1番目)のセグメント(ここでは、セグメントNo0のセグメント)に移動されることになる。この後、DBデータ領域属性情報400のフィールド424のデータ移動ディスクNoは、次のディスク、すなわち、ディスク902を指すようにセットされる。
 その後、追加セグメント分散処理における変数N=2とした場合の処理(ステップS804~ステップ808)が実行されると、図17Bに示すように、順序性12のデータが移動される。すなわち、追加セグメント分散処理が実行されると、フィールド424のデータ移動ディスクNoは、ディスク902を指しているので、ディスク902の中で順序性がN+1番目(ここでは、3番目)に古いデータ(ここでは、順序性12のデータ)を持つセグメント(ここでは、セグメントNo2)のデータが、追加したディスク910のN番目(ここでは、2番目)のセグメント(ここでは、セグメントNo1)に移動されることになる。この後、DBデータ領域属性情報400のフィールド424のデータ移動ディスクNoは、次のディスク、すなわち、ディスク904を指すようにセットされる。
 その後、追加セグメント分散処理における変数N=3とした場合の処理(ステップS804~ステップ808)が実行されると、図18Aに示すように、順序性18のデータが移動される。すなわち、追加セグメント分散処理が実行されると、フィールド424のデータ移動ディスクNoは、ディスク904を指しているので、ディスク904の中で順序性がN+1番目(ここでは、4番目)に古いデータ(ここでは、順序性18のデータ)を持つセグメント(ここでは、セグメントNo3)のデータが、追加したディスク910のN番目(ここでは、3番目)のセグメント(ここでは、セグメントNo2)に移動されることになる。この後、DBデータ領域属性情報400のフィールド424のデータ移動ディスクNoは、次のディスク、すなわち、ディスク906を指すようにセットされる。
 その後、追加セグメント分散処理における変数N=4とした場合の処理(ステップS804~ステップ808)が実行されると、図18Bに示すように、順序性24のデータが移動される。すなわち、追加セグメント分散処理が実行されると、フィールド424のデータ移動ディスクNoは、ディスク906を指しているので、ディスク906の中で順序性がN+1番目(ここでは、5番目)に古いデータ(ここでは、順序性24のデータ)を持つセグメント(ここでは、セグメントNo4)のデータが、追加したディスク910のN番目(ここでは、4番目)のセグメント(ここでは、セグメントNo3)に移動されることになる。この後、DBデータ領域属性情報400のフィールド424のデータ移動ディスクNoは、次のディスク、すなわち、ディスク908を指すようにセットされる。
 その後、追加セグメント分散処理が実行されて、データの移動が終わった場合には、図19Aに示す状態となる。すなわち、新たなデータの追加が行われる前において、未使用のセグメントが、ディスク900のセグメントNo1、ディスク902のセグメントNo2、ディスク904のセグメントNo3、ディスク906のセグメントNo4、ディスク910のセグメントNo5といったように、異なるディスクに分散されることとなる。
 図19Aに示す状態において、順序性26から順序性30までのデータが追加されると、図19Bに示すように連続するデータが異なるディスクに分散されて格納されることとなる。すなわち、順序性26のデータは、ディスク900のセグメントNo1のセグメントに格納され、順序性27のデータは、ディスク902のセグメントNo2のセグメントに格納され、順序性28のデータは、ディスク904のセグメントNo3のセグメントに格納され、順序性29のデータは、ディスク906のセグメントNo4のセグメントに格納され、順序性30のデータは、ディスク910のセグメントNo4のセグメントに格納される。
 以上説明したように、変形例によると、実施例1と同様に、未使用のデータ領域(セグメント)が各ディスクに分散されることとなり、その後、その未使用のセグメントに対して新たなデータの追加が行われる。この結果、図19Bに示す状態となり、例えば、直近の5セグメント分のデータ(ここでは、順序性26から順序性30のデータ)に対してアクセスすることを想定すると、ディスク900、ディスク902、ディスク904、ディスク906、ディスク910にアクセスが分散するため、処理の並列度が高まり、性能を向上することが可能となる。さらに、変形例によると、実施例1に比して、古いデータを各ディスクの先頭に近いセグメントに格納することができる。なお、変形例に対して、実施例2と同様な処理を行うようにしてもよい。
 上記した実施例1及び実施例2では、追加セグメント分散処理は、DBデータの領域が所定量以下の場合(例えば、DBデータ領域が不足するか、もしくはDBデータ領域の割当セグメント数に対する使用セグメント数の割合が所定の閾値を下回った場合)に行われるようにしていたが、これに限られず、例えば、システム管理者からの指示等を契機として行われるようにしても良い。これにより、DBデータ領域が不足していなくても、新しくディスクを追加して、追加したディスク上のセグメントに既存のDBデータ領域を構成するディスクのセグメントのデータを移動することで、I/Oの並列度を高め、性能を向上することができる。
 以上、幾つかの実施例及び変形例を説明したが、本発明は、それらの実施例及び変形例に限られない。例えば、計算機100に接続された別の計算機で、管理プログラム140が実行されても良い。その場合、当該別の計算機が、管理システムで良い。
100…計算機、120…DBMS、122…スキーマ情報、124…DBマッピング情報、126…DBデータ追加情報、130…OS、132…OSマッピング情報、140…管理プログラム、142…DBデータ領域管理情報、150…ストレージ装置、154…コントローラ、156…ディスク(HDD)、172…制御プログラム、174…ストレージマッピング情報、180、182…ネットワーク

Claims (15)

  1.  ストレージ装置におけるデータベースの1以上のスキーマを構成する複数のデータ単位を管理する管理システムであって、
     記憶資源と、
     前記記憶資源に接続された制御デバイスと
    を有し、
     前記ストレージ装置は、複数の記憶領域を有する複数の第1記憶デバイス集合を有し、
     前記1以上のスキーマには、それぞれの順序が規定される順序性を有する複数のデータ単位により構成される順序性スキーマが含まれており、
     前記記憶資源は、前記順序性スキーマを構成するどのデータ単位がどの記憶領域に記憶されているかを示す情報であるマッピング情報と、前記データ単位の順序を示す順序情報とを含む管理情報を記憶し、
     前記第1記憶デバイス集合は、1以上の第1記憶デバイスの集合であり、
     前記制御デバイスは、
     (A)1以上の第2記憶デバイスの集合でありそれぞれの記憶領域が空きの記憶領域である第2記憶デバイス集合が前記第1記憶デバイス集合に追加される場合に、前記管理情報に基づいて、前記第1記憶デバイス集合の複数の記憶領域にそれぞれ格納されている複数のデータ単位のうち順序が連続しない2以上のデータ単位を、複数の空き記憶領域が前記第1記憶デバイス集合及び前記第2記憶デバイス集合に分散するよう少なくとも1つの前記第1記憶デバイス集合から前記第2記憶デバイス集合の空き記憶領域に移動させる、
    管理システム。
  2.  第1記憶デバイス集合の数は、Pであり(Pは2以上の整数)、各第1の記憶デバイスが、Q個の記憶領域を有しており(Qは1以上の整数)、故に、P個の第1記憶デバイス集合が、(P×Q)個の記憶領域を有しており、
     順番が連続したP個のデータ単位毎に、順番が連続したP個のデータ単位が、異なる第1記憶デバイス集合の、同一行のP個の記憶領域に格納されており、
     前記制御デバイスは、前記(A)において、X番目の第1記憶デバイス集合のうちX番目に古いデータ単位を(Xは整数、且つ、X=0、1、…、(Q-1))、X番目の第1記憶デバイス集合の記憶領域から前記第2記憶デバイス集合の空き記憶領域に移動させる、
    請求項1に記載の管理システム。
  3.  前記(A)の後、前記制御デバイスは、前記X番目の第1記憶デバイス集合に生じた空き記憶領域が、前記X番目の第1記憶デバイス集合における最新のデータ単位を格納している記憶領域に隣接していない場合、前記X番目の第1記憶デバイス集合における2番目に新しいデータ単位を、前記2番目に新しいデータ単位を記憶している記憶領域から、前記X番目の第1記憶デバイス集合における空き記憶領域に移動させる、
    請求項2に記載の管理システム。
  4.  前記(A)において、前記制御デバイスは、前記第1記憶デバイス集合から前記第2記憶デバイス集合へのデータ単位の移動を、Y回行った場合に(Yは自然数)、前記(A)を終了し、
     前記Yの値は、前記第2記憶デバイス集合が有する記憶領域の数以下である、
    請求項2に記載の管理システム。
  5.  前記制御デバイスは、
     前記第1記憶デバイス集合が複数ある場合に、前記第1記憶デバイス集合と同数のデータ単位をそれぞれの前記第1記憶デバイス集合から前記第2記憶デバイス集合に移動させる、
    請求項1に記載の管理システム。
  6.  前記制御デバイスは、
     前記第1記憶デバイス集合が複数ある場合に、前記第2記憶デバイス集合に移動させる前記データ単位の選択対象とする前記第1記憶デバイス集合を順次切り替えることにより、同数のデータ単位がそれぞれの前記第1記憶デバイス集合から前記第2記憶デバイス集合に移動されるようにする、
    請求項5に記載の管理システム。
  7.  前記制御デバイスは、
     前記第1記憶デバイス集合が複数ある場合に、複数の前記第1記憶デバイス集合からそれぞれ順序が比較的はなれたデータ単位を前記第2記憶デバイス集合に移動させる、
    請求項6に記載の管理システム。
  8.  前記制御デバイスは、
     前記第2記憶デバイス集合に移動させる前記データ単位についての前記第1記憶デバイス集合内における順序の順位を、異なる前記第1記憶デバイス集合間で異ならせる、
    請求項7に記載の管理システム。
  9.  前記制御デバイスは、
     (B)前記第1記憶デバイス集合における前記順序性スキーマの前記データ単位を格納可能な記憶領域の空き領域が所定量以下であると判定した場合に、前記順序性スキーマのデータ単位を格納可能な新たな記憶領域を追加させ、前記追加させる新たな記憶領域が前記第2記憶デバイス集合の記憶領域であるか否かを判定し、前記新たな記憶領域が前記第2記憶デバイス集合の記憶領域である場合に、前記(A)を行う
    請求項1に記載の管理システム。
  10.  前記制御デバイスは、
     前記データベースの前記スキーマに対する新たなデータ単位の追加が発生したか否かを判定し、
     前記データ単位の追加が発生した場合に、前記(B)を行い、
     前記(A)を行った後に、前記新たなデータ単位を、前記空き領域に格納させることにより、連続する前記データ単位が異なる記憶デバイス集合に格納されるようにする
    請求項9に記載の管理システム。
  11.  前記制御デバイスは、
     前記(A)を実行した後に、
     (C)前記空き領域と、当該空き領域が含まれる前記第1記憶デバイス集合における最新のデータ単位が格納された記憶領域とが所定の範囲内に存在しない場合に、前記所定の範囲内のデータ単位を前記空き領域に移動させる
    請求項1に記載の管理システム。
  12.  前記制御デバイスは、
     前記(C)において、前記所定の範囲とは、前記空き領域に隣接する範囲である
    請求項11に記載の管理システム。
  13.  前記制御デバイスは、
     前記(C)を行った後に、新たなデータ単位を前記空き領域に格納することにより、前記第1記憶デバイス集合における新しい複数のデータ単位が、前記第1記憶デバイス集合の比較的限られた範囲に格納されるようにする
    請求項11に記載の管理システム。
  14.  ストレージ装置におけるデータベースの1以上のスキーマを構成する複数のデータ単位を管理するコンピュータに実行させるためのコンピュータプログラムであって、
     前記ストレージ装置は、複数の記憶領域を有する複数の第1記憶デバイス集合を有し、
     前記1以上のスキーマには、それぞれの順序が規定される順序性を有する複数のデータ単位により構成される順序性スキーマが含まれており、
     前記コンピュータプログラムは、
     1以上の第2記憶デバイスの集合でありそれぞれの記憶領域が空きの記憶領域である第2記憶デバイス集合が前記第1記憶デバイス集合に追加されるか否かを判断し、
     前記判断の結果が肯定的の場合に、前記順序性スキーマを構成するどのデータ単位がどの記憶領域に記憶されているかを示す情報であるマッピング情報と前記データ単位の順序を示す順序情報とを含む管理情報を基に、前記第1記憶デバイス集合の複数の記憶領域にそれぞれ格納されている複数のデータ単位のうち順序が連続しない2以上のデータ単位を、複数の空き記憶領域が前記第1記憶デバイス集合及び前記第2記憶デバイス集合に分散するよう少なくとも1つの前記第1記憶デバイス集合から前記第2記憶デバイス集合の空き記憶領域に移動させる、
    ことを前記コンピュータに実行させるコンピュータプログラム。
  15.  ストレージ装置におけるデータベースの1以上のスキーマを構成する複数のデータ単位を管理する方法であって、
     前記ストレージ装置は、複数の記憶領域を有する複数の第1記憶デバイス集合を有し、
     前記1以上のスキーマには、それぞれの順序が規定される順序性を有する複数のデータ単位により構成される順序性スキーマが含まれており、
     前記方法は、
     1以上の第2記憶デバイスの集合でありそれぞれの記憶領域が空きの記憶領域である第2記憶デバイス集合が前記第1記憶デバイス集合に追加されるか否かを判断し、
     前記判断の結果が肯定的の場合に、前記順序性スキーマを構成するどのデータ単位がどの記憶領域に記憶されているかを示す情報であるマッピング情報と前記データ単位の順序を示す順序情報とを含む管理情報を基に、前記第1記憶デバイス集合の複数の記憶領域にそれぞれ格納されている複数のデータ単位のうち順序が連続しない2以上のデータ単位を、複数の空き記憶領域が前記第1記憶デバイス集合及び前記第2記憶デバイス集合に分散するよう少なくとも1つの前記第1記憶デバイス集合から前記第2記憶デバイス集合の空き記憶領域に移動させる、
    管理方法。
PCT/JP2012/064672 2012-06-07 2012-06-07 管理システム及び管理方法 WO2013183143A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2014519763A JP5978297B2 (ja) 2012-06-07 2012-06-07 管理システム及び管理方法
PCT/JP2012/064672 WO2013183143A1 (ja) 2012-06-07 2012-06-07 管理システム及び管理方法
US14/404,963 US9870152B2 (en) 2012-06-07 2012-06-07 Management system and management method for managing data units constituting schemas of a database

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/064672 WO2013183143A1 (ja) 2012-06-07 2012-06-07 管理システム及び管理方法

Publications (1)

Publication Number Publication Date
WO2013183143A1 true WO2013183143A1 (ja) 2013-12-12

Family

ID=49711560

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/064672 WO2013183143A1 (ja) 2012-06-07 2012-06-07 管理システム及び管理方法

Country Status (3)

Country Link
US (1) US9870152B2 (ja)
JP (1) JP5978297B2 (ja)
WO (1) WO2013183143A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10642633B1 (en) * 2015-09-29 2020-05-05 EMC IP Holding Company LLC Intelligent backups with dynamic proxy in virtualized environment
KR20190067540A (ko) * 2017-12-07 2019-06-17 에스케이하이닉스 주식회사 스토리지 시스템 및 그것의 동작 방법
CN108228107A (zh) * 2018-01-02 2018-06-29 联想(北京)有限公司 一种数据传输方法、数据传输装置及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003077111A1 (fr) * 2002-03-13 2003-09-18 Fujitsu Limited Controleur pour dispositif raid
JP2007179146A (ja) * 2005-12-27 2007-07-12 Hitachi Ltd データスキーマのマッピングプログラム及び計算機システム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5502836A (en) * 1991-11-21 1996-03-26 Ast Research, Inc. Method for disk restriping during system operation
US6530035B1 (en) 1998-10-23 2003-03-04 Oracle Corporation Method and system for managing storage systems containing redundancy data
JP4611830B2 (ja) 2005-07-22 2011-01-12 優 喜連川 データベース管理システム及び方法
JP5141402B2 (ja) * 2008-06-26 2013-02-13 富士通株式会社 ストレージシステム,コピー制御方法およびコピー制御装置
US9176779B2 (en) * 2008-07-10 2015-11-03 Juniper Networks, Inc. Data access in distributed systems
JP2010033261A (ja) * 2008-07-28 2010-02-12 Hitachi Ltd ストレージ装置及びその制御方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003077111A1 (fr) * 2002-03-13 2003-09-18 Fujitsu Limited Controleur pour dispositif raid
JP2007179146A (ja) * 2005-12-27 2007-07-12 Hitachi Ltd データスキーマのマッピングプログラム及び計算機システム

Also Published As

Publication number Publication date
JPWO2013183143A1 (ja) 2016-01-21
US9870152B2 (en) 2018-01-16
JP5978297B2 (ja) 2016-08-24
US20150177984A1 (en) 2015-06-25

Similar Documents

Publication Publication Date Title
US8386532B2 (en) Mechanism for co-located data placement in a parallel elastic database management system
US8719529B2 (en) Storage in tiered environment for colder data segments
US7689573B2 (en) Prefetch appliance server
Ahn et al. ForestDB: A fast key-value storage system for variable-length string keys
US8296286B2 (en) Database processing method and database processing system
US11321302B2 (en) Computer system and database management method
US9740722B2 (en) Representing dynamic trees in a database
US20140181455A1 (en) Category based space allocation for multiple storage devices
WO2012095771A1 (en) Sparse index table organization
JP6707797B2 (ja) データベース管理システム及びデータベース管理方法
US10242053B2 (en) Computer and data read method
JP5858307B2 (ja) データベース管理システム、計算機、データベース管理方法
US20170270149A1 (en) Database systems with re-ordered replicas and methods of accessing and backing up databases
Goswami et al. Graphmap: Scalable iterative graph processing using nosql
JP5978297B2 (ja) 管理システム及び管理方法
JP6974706B2 (ja) 情報処理装置、ストレージシステムおよびプログラム
JP6108418B2 (ja) データベース管理システム、計算機、データベース管理方法
Bin et al. An efficient distributed B-tree index method in cloud computing
Mazumdar et al. An index scheme for fast data stream to distributed append-only store
JP7458610B2 (ja) データベースシステム、及びクエリ実行方法
US11868352B2 (en) Systems and methods for spilling data for hash joins
Wang et al. KT-store: a key-order and write-order hybrid key-value store with high write and range-query performance
Herodotou Towards a distributed multi-tier file system for cluster computing
Chen et al. CSMqGraph: Coarse-Grained and Multi-external-storage Multi-queue I/O Management for Graph Computing
Fukatani et al. Lightweight Dynamic Redundancy Control with Adaptive Encoding for Server-based Storage

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014519763

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14404963

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

Country of ref document: EP

Kind code of ref document: A1