US20150309923A1 - Storage control apparatus and storage system - Google Patents
Storage control apparatus and storage system Download PDFInfo
- Publication number
- US20150309923A1 US20150309923A1 US14/629,847 US201514629847A US2015309923A1 US 20150309923 A1 US20150309923 A1 US 20150309923A1 US 201514629847 A US201514629847 A US 201514629847A US 2015309923 A1 US2015309923 A1 US 2015309923A1
- Authority
- US
- United States
- Prior art keywords
- segment
- storage device
- data access
- storage
- data
- Prior art date
- Legal status (The legal status 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 status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0215—Addressing or allocation; Relocation with look ahead addressing means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/26—Using a specific storage system architecture
- G06F2212/261—Storage comprising a plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/313—In storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6024—History based prefetching
Definitions
- the embodiments discussed herein are related to a storage control apparatus and a storage system.
- a storage apparatus (storage device) is provided with a large-capacity and inexpensive hard disk drive (HDD), and stores data in the HDD.
- the storage apparatus is also provided with a solid state drive (SSD), or a dynamic random access memory (DRAM), which is more expensive per unit capacity compared with the HDD, but is capable of accessing at a higher speed.
- SSD solid state drive
- DRAM dynamic random access memory
- the storage apparatus reads ahead, from the HDD, data having a high possibility of being accessed, and copies the data to the SSD or the DRAM in advance so as to achieve high-speed access on the whole.
- read ahead is performed, for example, to read a continuous area when sequential access is detected, or performed based on access frequencies when random access is made.
- a storage control apparatus including a processor.
- the processor is configured to detect a dependency relationship between a first data access and a second data access made after passage of a delay time from the first data access.
- the first data access is made to a first storage area in a first storage device.
- the second data access is made to a second storage area in the first storage device.
- the processor is configured to transfer, when a current data access is made to the first storage area in a state in which the dependency relationship is detected, data in the second storage area to a second storage device before the delay time passes.
- the second storage device has a higher access speed than the first storage device.
- FIG. 1 is a diagram illustrating an exemplary configuration of a storage system according to a first embodiment
- FIG. 2 is a diagram illustrating an exemplary configuration of a storage system according to a second embodiment
- FIG. 3 is a diagram illustrating an exemplary configuration of a storage device to be targeted for control by the storage apparatus according to the second embodiment
- FIG. 4 is a diagram illustrating an exemplary hardware configuration of a CM according to the second embodiment
- FIG. 5 is a diagram illustrating a flowchart of number-of-accesses count processing according to the second embodiment
- FIG. 6 is a diagram illustrating an example of an access counter table according to the second embodiment
- FIG. 7 is a diagram illustrating a flowchart of read-ahead control processing according to the second embodiment
- FIG. 8 is a diagram illustrating an example of a high-load segment table according to the second embodiment.
- FIG. 9 is a diagram illustrating a flowchart of dependency relationship detection processing according to the second embodiment.
- FIG. 10 is a diagram illustrating an example of a high-load segment log table according to the second embodiment
- FIG. 11 is a diagram illustrating an example of a frequency table according to the second embodiment.
- FIG. 12 is a diagram illustrating an example of a dependency relationship table according to the second embodiment
- FIG. 13 is a diagram illustrating a flowchart of frequency table update processing according to the second embodiment
- FIG. 14 is a diagram illustrating a frequency table of combinations (from segment ID “S#0” to “S#322”) of a current high-load segment and a past high-load segment according to the second embodiment;
- FIG. 15 is a diagram illustrating a frequency table of combinations (from segment ID “S#5” to “S#322”) of a current high-load segment and a past high-load segment according to the second embodiment;
- FIG. 16 is a diagram illustrating a frequency table of combinations (from segment ID “S#225” to “S#322”) of a current high-load segment and a past high-load segment according to the second embodiment;
- FIG. 17 is a diagram illustrating a flowchart of high-frequency category search processing according to the second embodiment
- FIG. 18 is a diagram illustrating an example of a histogram based on the frequency table according to the second embodiment
- FIG. 19 is a diagram illustrating an example of a histogram based on the frequency table according to the second embodiment.
- FIG. 20 is a diagram illustrating a flowchart of dependency relationship table update processing according to the second embodiment
- FIG. 21 is a diagram illustrating a flowchart of read-ahead data determination processing according to the second embodiment
- FIG. 22 is a diagram illustrating an example of a transfer scheduled segment table according to the second embodiment.
- FIG. 23 is a diagram illustrating a flowchart of data transfer processing according to the second embodiment.
- FIG. 1 is a diagram illustrating an exemplary configuration of a storage system according to the first embodiment.
- a storage system 1 includes a storage control apparatus 2 , a first storage device 4 , and a second storage device 5 .
- the storage control apparatus 2 performs control on the first storage device 4 and the second storage device 5 .
- the first storage device 4 and the second storage device 5 are storage devices capable of storing data in a predetermined storage area, and include an HDD, an SSD, a DRAM, or the like, for example.
- the second storage device 5 is a storage device capable of making an access at a higher speed than the first storage device 4 .
- the first storage device 4 is an HDD
- the second storage device 5 is an SSD, for example.
- the second storage device 5 is a DRAM, for example.
- the storage control apparatus 2 performs “read ahead”, which copies data stored in the first storage device 4 to the second storage device 5 in advance so as to speed up data access.
- the “read ahead” means reading data stored in a low-speed device into a high-speed device in advance before an access is made to the data in the low-speed device.
- Access (data access) to data includes writing data in addition to reading data.
- the storage control apparatus 2 includes a control unit 3 .
- the control unit 3 detects a dependency relationship in which, after passage of a predetermined time from a time point of data access to a first storage area 4 a in the first storage device 4 , data access is made to a second storage area 4 b in the first storage device 4 .
- the control unit 3 may detect, based on a predetermined detection criteria, a dependency relationship in which it is highly probable that after passage of a predetermined time (for example, after the elapse of five minutes) of data access to the data 6 in the first storage area 4 a , data access is made to the data 7 in the second storage area 4 b .
- a dependency relationship has a deviation in the timing of accessing data.
- the control unit 3 copies data in the second storage area 4 b from the first storage device 4 to the second storage device 5 before the predetermined time passes.
- control unit 3 detects that data access is made to data 6 in the first storage area 4 a at timing t 4 . At this time, it is assumed that the control unit 3 has detected a dependency relationship in which after the elapse of five minutes from the data access to the data 6 in the first storage area 4 a , data access is made to the data 7 in the second storage area 4 b . The control unit 3 copies the data 7 from the first storage device 4 to the second storage device 5 before timing t 5 which is five minutes after the timing t 4 .
- the control unit 3 performs read ahead in this manner so as to improve access performance in the first storage device 4 and the second storage device 5 .
- FIG. 2 is a diagram illustrating an exemplary configuration of a storage system according to the second embodiment.
- a storage system 10 includes a host 11 , and a storage apparatus 13 which connects to the host 11 through a network 12 .
- the storage system 10 writes data to the storage apparatus 13 , or reads data from the storage apparatus 13 in accordance with an input/output (I/O) request demanded by the host 11 .
- I/O input/output
- FIG. 3 is a diagram illustrating an exemplary configuration of a storage device to be targeted for control by the storage apparatus 13 according to the second embodiment.
- the storage apparatus 13 includes a controller module (CM) 20 , an SSD 30 , and HDDs 31 ( 31 a , 31 b , 31 c , . . . , and 31 n ).
- the storage apparatus 13 includes one SSD 30 , but may include two or more SSDs 30 .
- the storage apparatus 13 includes a plurality of HDDs 31 a , 31 b , 31 c , . . . , and 31 n .
- the storage apparatus 13 is not limited to the case of including the SSD 30 and the HDDs 31 inside the apparatus, but may be externally connected to the SSD 30 and the HDDs 31 .
- the CM 20 functions as a control unit that controls the SSD 30 and the HDDs 31 .
- the SSD 30 functions as a storage device capable of accessing at a higher speed compared with the HDDs 31 . That is to say, the HDDs 31 correspond to the first storage device 4 in the first embodiment, and the SSD 30 corresponds to the second storage device 5 in the first embodiment.
- the HDDs 31 function as a large-capacity storage device compared with the SSD 30 . Accordingly, the SSD 30 is a storage device capable of functioning as a cache memory with respect to the HDDs 31 .
- FIG. 4 is a diagram illustrating an exemplary hardware configuration of the CM 20 according to the second embodiment.
- the CM 20 is one mode of the storage control apparatus, and receives an I/O request (a write request, a read request, or the like) from the host 11 , and controls access to the SSD and the HDDs.
- the storage apparatus 13 illustrated in FIG. 3 includes one CM 20 , but may have a redundant configuration including two or more CMs 20 .
- the CM 20 includes a processor 21 , a memory 22 , a disk adapter 23 , and a channel adapter 24 .
- the processor 21 , the memory 22 , the disk adapter 23 , and the channel adapter 24 are connected one another through a bus (not illustrated).
- the CM 20 is connected to the SSD 30 or the HDDs 31 through the disk adapter 23 , and is connected to the host 11 through the channel adapter 24 .
- the processor 21 controls the overall CM 20 , and performs control of the SSD 30 and the HDDs 31 .
- the processor 21 may be a multi-processor.
- the processor 21 is, for example, a central processing unit (CPU), a micro processing unit (MPU), a digital signal processor (DSP), an application specific integrated circuit (ASIC), or a programmable logic device (PLD).
- the processor 21 may be a combination of two or more elements among a CPU, an MPU, a DSP, an ASIC, and a PLD.
- the memory 22 includes a random access memory (RAM), and a nonvolatile memory, for example.
- the memory 22 holds data when the data is read from the SSD 30 or the HDD 31 .
- the memory 22 also stores user data and control information.
- the RAM is used as a main storage device of the CM 20 .
- the RAM temporarily stores at least part of an operating system (OS) program, firmware, and an application program, which are executed by the processor 21 .
- the RAM also stores various kinds of data used for processing by the processor 21 .
- the RAM may include a cache memory separately from the memory used for storing various kinds of data.
- the nonvolatile memory holds memory contents even at the time of power shut off to the storage apparatus 13 .
- the nonvolatile memory is, for example, a semiconductor storage device, such as an electrically erasable and programmable read-only memory (EEPROM), a flash memory, or the like, or an HDD or the like.
- EEPROM electrically erasable and programmable read-only memory
- the nonvolatile memory stores the OS program, the firmware, the application program, and various kinds of data.
- the disk adapter 23 performs interface control with the SSD 30 and the HDD 31 .
- the channel adapter 24 performs interface control with the host 11 .
- the processing function of the CM 20 (storage apparatus 13 ) according to the second embodiment may be achieved. It is also possible to achieve the storage control apparatus 2 illustrated in the first embodiment by similar hardware to that of the CM 20 illustrated in FIG. 4 .
- the CM 20 executes, for example, a program recorded in a computer-readable recording medium so as to achieve the processing function of the second embodiment.
- the program in which the processing contents to be executed by the CM 20 are described may be stored in various recording media.
- the program to be executed by the CM 20 may be stored in a nonvolatile memory.
- the processor 21 loads at least a part of the program in the nonvolatile memory to the memory 22 , and executes the program.
- the program to be executed by the CM 20 may also be stored in a portable recording medium, such as an optical disc, a memory device, a memory card, or the like (not illustrated).
- the optical disc includes a digital versatile disc (DVD), a DVD-RAM, a compact disc read-only memory (CD-ROM), a CD recordable/rewritable (CD-R/RW), and the like.
- the memory device is a recording medium provided with a communication function with an input/output interface or a device connection interface (not illustrated). For example, the memory device may write data to a memory card or read data from the memory card by the memory reader/writer.
- the memory card is a card-type recording medium.
- the program stored in the portable recording medium is installed into the nonvolatile memory under control of the processor 21 , for example, and then becomes possible to be executed.
- the processor 21 may directly read the program from the portable recording medium to execute the program.
- FIG. 5 is a flowchart illustrating the number-of-accesses count processing according to the second embodiment.
- the number-of-accesses count processing is processing for recording the number of accesses per minute for each segment.
- the number-of-accesses count processing is processing executed by the control unit (CM 20 ) after starting the storage apparatus 13 .
- a segment is a management unit produced by dividing the storage area to be managed into parts having a predetermined unit size.
- CM 20 control unit
- a storage area of one GB which is a unit produced by division of 100 GB by 100, becomes one segment.
- the control unit determines whether the timer of recording unit time (one minute) has expired or not.
- the recording unit time of the number of accesses is not limited to one minute, and may be determined in view of performing a suitable sampling, for example, assuring sufficient data, or the like. If the control unit determines that the timer has expired, the processing proceeds to S 12 , whereas if the control unit does not determine that the timer has expired, the processing proceeds to S 13 .
- the control unit changes the access counter tables.
- the control unit provides an access counter table for each recording unit time, and changes the access counter table for each one recording unit time. A description will be given later of the details of the access counter table with reference to FIG. 6 .
- S 13 The control unit determines whether there is access (for example, read access) to a segment or not. If the control unit determines that there is access to a segment, the processing proceeds to S 14 , whereas if the control unit determines that there is not access to a segment, the processing proceeds to S 11 .
- S 14 The control unit updates the access counter table corresponding to the current recording unit time.
- the control unit increments the number of accesses for the segment having the access by one so as to update the access counter table. After the control unit updates the access counter table, the processing proceeds to S 11 .
- control unit may record, in the access counter table, the number of accesses to the segment for each recording unit time.
- the counting of the number of accesses for each segment in this manner makes it possible to reduce processing load on the control unit compared with the counting of the number of accesses for each file.
- FIG. 6 is a diagram illustrating an example of the access counter table according to the second embodiment.
- An access counter table 200 records the number of accesses to a segment for each recording unit time.
- the access counter table 200 includes an item “segment ID”, and an item “number of accesses”.
- the item “segment ID” records identification information capable of uniquely identifying a segment.
- the item “number of accesses” records the number of accesses to a segment identified by the segment ID. For example, the segment having the segment ID “S#0” has the number of accesses of “235”. The segment having the segment ID “S#1” has the number of accesses of “112”. The segment having the segment ID “S#2” has the number of accesses of “522”.
- the access counter table records the number of accesses to a segment for each recording unit time.
- FIG. 7 is a flowchart illustrating the read-ahead control processing according to the second embodiment.
- the read-ahead control processing is the processing for copying data of one segment from the HDD 31 to the SSD 30 .
- the read-ahead control processing is performed by the control unit at each predetermined data transfer timing.
- the data transfer timing is a timing at which data transfer of one segment is performed from the HDD 31 to the SSD 30 to copy the data of the segment.
- the data transfer timing is determined in terms of a communication band that is allowed to be assigned to data transfer so that stable read ahead may be achieved. For example, in the case where it is possible to transfer data of one segment in one minute, the data transfer timing is for each one minute.
- the control unit obtains the number of accesses to each segment.
- the control unit refers to the access counter table of immediately before so that the number of accesses to each segment may be obtained.
- a high-load segment is a segment determined to have a larger number of accesses on the basis of a predetermined determination criterion.
- a high-load segment is a segment having the top number of accesses (for example, top three).
- the predetermined determination criterion may be determined to be all the segments exceeding a predetermined threshold value, or may be determined to be upper ones that exceed the predetermined threshold value.
- S 23 The control unit generates a high-load segment table that records high-load segments. A description will be given later of the details of the high-load segment table with reference to FIG. 8 .
- the control unit performs dependency relationship detection processing.
- the dependency relationship detection processing is the processing for detecting, as a dependency relationship, two high-load segments having an access time difference. A description will be given later of the details of the dependency relationship detection processing with reference to FIG. 9 .
- the control unit performs read-ahead data determination processing.
- the read-ahead data determination processing is processing for determining data to be a target of read ahead.
- the read-ahead data determination processing is the processing for determining the segment that stores data to be a target of read ahead. A description will be given later of the details of the read-ahead data determination processing with reference to FIG. 21 .
- the control unit performs data transfer processing.
- the data transfer processing is the processing for transferring (copying) the data stored in the segment determined in S 25 to the SSD 30 . A description will be given later of the details of the data transfer processing with reference to FIG. 23 .
- the control unit terminates the read-ahead control processing.
- FIG. 8 is a diagram illustrating an example of the high-load segment table according to the second embodiment.
- the high-load segment table 210 records the number of accesses to high-load segments for each recording unit time.
- the high-load segment table 210 includes an item “segment ID”, and an item “number of accesses”.
- the item “segment ID” records identification information that allows to uniquely identify a segment.
- the item “number of accesses” records the number of accesses to the segment identified by the segment ID. For example, the segment having the segment ID “S#322” has the number of accesses of “2,054”. The segment having the segment ID “S#25” has the number of accesses of “1,980”. The segment having the segment ID “S#8” has the number of accesses of “1,672”.
- the high-load segment table records the number of accesses to the high-load segments for each recording unit time.
- FIG. 9 is a flowchart illustrating the dependency relationship detection processing according to the second embodiment.
- the dependency relationship detection processing is processing for detecting, as a dependency relationship, two high-load segments having an access time difference.
- the dependency relationship detection processing is the processing performed by the control unit in S 24 of the read-ahead control processing.
- the control unit updates a high-load segment log table.
- the high-load segment log table is a table that records high-load segments for a predetermined time period as a log. A description will be given later of the details of the high-load segment log table with reference to FIG. 10 .
- the control unit extracts a combination of a current (the latest) high-load segment and a past high-load segment. This combination has an order relationship.
- the control unit performs frequency table update processing.
- the frequency table update processing is processing for updating a frequency table by reflecting the combination of high-load segments extracted in S 32 .
- a description will be given later of the details of the frequency table update processing with reference to FIG. 13 .
- the frequency table is a table in which an access frequency per time difference for each combination of high-load segments is recorded. A description will be given later of the details of the frequency table with reference to FIG. 11 .
- the control unit performs high-frequency category search processing.
- the high-frequency category search processing is processing for searching, with reference to the frequency table, a combination of high-load segments having a heavy access frequency per time difference. It may be recognized that such a combination of high-load segments indicates that there is a dependency relationship in which, after the elapse of a predetermined time from access to one of the high-load segments, access is made to the other of the high-load segments.
- the high-frequency category search processing is the processing for detecting such a dependency relationship. A description will be given later of the details of the high-frequency category search processing with reference to FIG. 17 .
- the control unit performs dependency relationship table update processing.
- the dependency relationship table update processing is the processing for updating a dependency relationship table by reflecting the dependency relationship detected in S 34 . A description will be given later of the details of the dependency relationship table update processing with reference to FIG. 20 .
- the dependency relationship table is a table that records the detected dependency relationship. A description will be given later of the details of the dependency relationship table with reference to FIG. 12 .
- S 36 The control unit determines whether all the combinations of the current high-load segment and the past high-load segment have been extracted or not. If some of the combinations of high-load segments have not been extracted, the processing proceeds to S 32 , whereas if all the combinations of high-load segments have been extracted, the control unit terminates the dependency relationship detection processing.
- FIG. 10 is a diagram illustrating an example of the high-load segment log table according to the second embodiment.
- a high-load segment log table 220 records a high-load segment in the latest 30 minutes as a log.
- the recording time 30 minutes of the log is an example, and the recording time may be changed to any number in accordance with a use environment.
- the recording time of the log may be rephrased to a monitoring time period for detecting a dependency relationship.
- the high-load segment log table 220 includes an item “time”, an item “segment ID”, and an item “number of accesses”.
- the item “time” represents time that goes back in time by “ ⁇ t” with the latest time as “0”.
- the item “segment ID” records identification information that allows a segment to be uniquely identified.
- the item “number of accesses” records the number of accesses to the segment identified by the segment ID.
- the high-load segment log table 220 indicates that there are three high-load segments, namely segments of segment IDs “S#322”, “S#25”, and “S#8” at time “0”, and that the segments have the number of accesses of “2,054”, “1,980”, and “1,672”, respectively.
- high-load segments recorded at a same time belong to a same time window. For example, a high-load segment recorded at time “0” belongs to the latest time window, and a high-load segment recorded at time “ ⁇ 1” belongs to the time window of one minute before.
- FIG. 11 is a diagram illustrating an example of the frequency table according to the second embodiment.
- a frequency table 230 is a table in which the frequency (the number of accesses) of the high-load segment having the segment ID “S#322” after accessing the high-load segment having the segment ID “S#38” is recorded for each time difference.
- the frequency table 230 includes an item “time difference” and an item “frequency”.
- the item “time difference” represents an access interval of two high-load segments, that is to say, a time difference.
- the item “frequency” records the number of times that the segment having the segment ID “S#322” became high load after the segment having the segment ID “S#38” had become high load for each time difference.
- the frequency table 230 indicates that one minute after the segment having the segment ID “S#38” had become high load, the number of times that the segment having the segment ID “S#322” became high load is “28”. Two minutes after the segment having the segment ID “S#38” had become high load, the number of times that the segment having the segment ID “S#322” became high load is “36”. Three minutes after the segment having the segment ID “S#38” had become high load, the number of times that the segment having the segment ID “S#322” became high load is “22”.
- frequency “35+1” indicates that the frequency is incremented by one from the number of accesses in response to the detection of accesses in the high-load segment log table 220 .
- the high-load segment log table 220 indicates that the segment ID “S#322” is recorded at time “0”, and the segment ID “S#38” is recorded two minutes before that time (time “ ⁇ 2”).
- the frequency table of the combination is updated for each combination of a high-load segment belonging to the latest time window and another high-load segment in the high-load segment log table 220 .
- FIG. 12 is a diagram illustrating an example of the dependency relationship table according to the second embodiment.
- a dependency relationship table 240 records the detected dependency relationships.
- a dependency relationship is detected by referencing the frequency table for each combination of high-load segments, and detecting a combination of high-load segments having a ratio of the frequency exceeding a threshold value (for example, 50%) among the overall frequencies recorded for each time difference.
- a threshold value for example, 50%
- the dependency relationship table 240 includes an item “dependency relationship”, an item “time difference”, and an item “establishment probability”.
- the item “dependency relationship” is a combination of high-load segments for which a dependency relationship has been detected.
- the item “time difference” is an access interval of the two high-load segments for which the dependency relationship has been detected.
- the item “establishment probability” is a ratio of the frequency, which is identified based on the item “dependency relationship” and the item “time difference”, to the overall frequencies.
- the dependency relationship “S#0 ⁇ S#322” and the time difference “three minutes” indicate that after three minutes from the access to the high-load segment having the segment ID “S#0”, access is made to the high-load segment having the segment ID “S#322”.
- the dependency relationship table 240 indicates that the frequency identified based on the dependency relationship “S#0 ⁇ S#322” and the time difference “three minutes” occupies “52%” of all the frequencies.
- the dependency relationship “S#8 ⁇ S#15” and the time difference “two minutes” indicate that after two minutes from the access to the high-load segment having the segment ID “S#8”, access is made to the high-load segment having the segment ID “S#15”.
- the dependency relationship table 24 indicates that the frequency identified based on the dependency relationship “S#8 ⁇ S#15” and the time difference “two minutes” occupies “66%” of all the frequencies.
- the dependency relationship “S#16 ⁇ S#7” and the time difference “five minutes” indicate that after five minutes from the access to the high-load segment having the segment ID “S#16”, access is made to the high-load segment having the segment ID “S#7”.
- the dependency relationship table 24 indicates that the frequency identified based on the dependency relationship “S#16 ⁇ S#7” and the time difference “five minutes” occupies “72%” of all the frequencies.
- FIG. 13 is a diagram illustrating a flowchart of the frequency table update processing according to the second embodiment.
- the frequency table update processing is the processing for updating the frequency table by reflecting the combination of high-load segments extracted in S 32 of the dependency relationship detection processing.
- the frequency table update processing is the processing performed by the control unit in S 33 of the dependency relationship detection processing.
- the control unit refers to the high-load segment log table, and extracts one of upper segments from the latest time window. For example, the control unit extracts the high-load segment having the segment ID “S#322” from the high-load segment log table 220 as an upper segment.
- the control unit refers to the high-load segment log table, and selects one of the holding time windows. For example, the control unit selects the time window of one minute before from the high-load segment log table 220 .
- the control unit refers to the high-load segment log table, and selects one of upper segments from the selected time window. For example, when the control unit selects the time window of one minute before in the high-load segment log table 220 , the control unit extracts the high-load segment having the segment ID “S#0” as an upper segment.
- the control unit calculates a time difference between the two extracted segments (upper segments). For example, a time difference between the high-load segment having the segment ID “S#322” extracted from the latest time window and the high-load segment having the segment ID “S#0” extracted from the selected time window is “1”.
- the control unit determines an upper segment having the smallest time difference to be a target of calculating the time difference, and determines the other upper segments not to be a target of calculating the time difference. For example, the high-load segment having the segment ID “S#0” extracted from the time window of 10 minutes before does not become the target of calculating the time difference, because the high-load segment having the segment ID “S#0” is extracted from the time window of one minute before.
- the control unit updates the frequency table on the basis of the combination of high-load segments and the calculated time difference.
- the control unit increments the corresponding frequency by one so as to update the frequency table.
- S 46 The control unit determines whether all the upper segments have been extracted from the selected time window or not. If the control unit has extracted all the upper segments from the selected time window, the processing proceeds to S 47 . If the control unit has not extracted some of the upper segments from the selected time window, the processing proceeds to S 43 , and the control unit selects another upper segment in S 43 .
- the control unit refers to the high-load segment log table, and determines whether all the holding time windows have been selected or not. If the control unit has selected all the holding time windows, the processing proceeds to S 48 . If the control unit has not selected some of the holding time windows, the processing proceeds to S 42 , and the control unit selects another time window in S 42 .
- S 48 The control unit determines whether all the upper segments have been extracted from the latest time window or not. If the control unit has not extracted some of the upper segments from the latest time window, the processing proceeds to S 41 , and extracts another upper segment in S 41 . If the control unit has extracted all the upper segments from the latest time window, the frequency table update processing is terminated.
- control unit may individually record access frequencies of the combinations of the current high-load segment and the past high-load segment for each time difference in the frequency table.
- FIG. 14 is a diagram illustrating a frequency table of a combination (from segment ID “S#0” to “S#322”) of the current high-load segment and the past high-load segment according to the second embodiment.
- a frequency table 232 is a table in which the frequency (the number of accesses) of the high-load segment having the segment ID “S#322” after accessing the high-load segment having the segment ID “S#0” is recorded for each time difference.
- the frequency table 232 has a similar structure to that of the frequency table 230 .
- the item “frequency” records the number of accesses to the high-load segment having the segment ID “S#322” after accessing the high-load segment having the segment ID “S#0” for each time difference.
- the frequency table 232 indicates that after one minute from the access to the high-load segment having the segment ID “S#0”, there has been “33” accesses to the high-load segment having the segment ID “S#322”.
- the description of the frequency “32+1” indicates that the frequency is incremented by one from the number of accesses in response to the detection of accesses in the high-load segment log table 220 .
- the high-load segment log table 220 indicates that the segment ID “S#322” is recorded at time “0”, and the segment ID “S#0” is recorded one minute before that time (time “ ⁇ 1”
- FIG. 15 is a diagram illustrating a frequency table of a combination (from segment ID “S#5” to “S#322”) of the current high-load segment and the past high-load segment according to the second embodiment.
- a frequency table 234 is a table in which the frequency (the number of accesses) of the high-load segment having the segment ID “S#322” after accessing the high-load segment having the segment ID “S#5” is recorded for each time difference.
- the frequency table 234 has a similar structure to that of the frequency table 230 .
- the item “frequency” records the number of accesses to the high-load segment having the segment ID “S#322” after accessing the high-load segment having the segment ID “S#5” for each time difference.
- the frequency table 234 indicates that after one minute from the access to the high-load segment having the segment ID “S#5”, there has been “16” accesses to the high-load segment having the segment ID “S#322”.
- the description of the frequency “15+1” indicates that the frequency is incremented by one from the number of the accesses in response to the detection of accesses in the high-load segment log table 220 .
- the high-load segment log table 220 indicates that the segment ID “S#322” is recorded at time “0”, and the segment ID “S#5” is recorded one minute before that time (time “ ⁇ 1”).
- FIG. 16 is a diagram illustrating a frequency table of a combination (from segment ID “S#225” to “S#322”) of the current high-load segment and the past high-load segment according to the second embodiment.
- the frequency table 236 is a table in which the frequency (the number of accesses) of the high-load segment having the segment ID “S#322” after accessing the high-load segment having the segment ID “S#225” is recorded for each time difference.
- the frequency table 236 has a similar structure to that of the frequency table 230 .
- the item “frequency” records the number of accesses to the high-load segment having the segment ID “S#322” after accessing the high-load segment having the segment ID “S#225” for each time difference.
- the frequency table 236 indicates that after one minute from the access to the high-load segment having the segment ID “S#225”, there has been “28” accesses to the high-load segment having the segment ID “S#322”.
- the description of the frequency “27+1” indicates that the frequency is incremented by one from the number of the accesses in response to the detection of accesses in the high-load segment log table 220 .
- the high-load segment log table 220 indicates that the segment ID “S#322” is recorded at time “0”, and the segment ID “S#225” is recorded one minute before that time (time “ ⁇ 1”).
- FIG. 17 is a diagram illustrating a flowchart of the high-frequency category search processing according to the second embodiment.
- the high-frequency category search processing is processing for searching, with reference to a frequency table, a combination of high-load segments having a heavy access frequency for each time difference.
- the high-frequency category search processing is the processing performed by the control unit in S 34 in the dependency relationship detection processing.
- the control unit selects one of the frequency tables updated in the frequency table update processing performed immediately before in the dependency relationship detection processing.
- the control unit calculates a total frequency of all the categories (time differences) in the frequency table selected in S 51 .
- the control unit performs grouping of three categories in ascending order of time difference in order to generate a group.
- grouping of three categories is one example, and grouping may be performed for one category, two adjacent categories, or four or more continuous categories.
- S 54 The control unit calculates a total frequency of the group generated in S 53 .
- the control unit determines whether the ratio of the total frequency of the group to the total frequency of all the categories is 50% or more. If the ratio of the total frequency of the group to the total frequency of all the categories is 50% or more, the processing proceeds to S 56 , whereas if the ratio is less than 50%, the processing proceeds to S 57 .
- the threshold value of 50% is an example, and the threshold value to be used for the determination may be set to any number in accordance with a use environment (for example, a communication band, the storage capacity of the SSD 30 , or the like).
- the control unit detects a high frequency category for the dependency relationship identified in the selected frequency table.
- the control unit makes the high frequency category identifiable, and holds it temporarily.
- S 57 The control unit shifts the grouping performed in S 53 by one time difference in the direction of a larger time difference.
- S 58 The control unit determines whether the total frequencies of all the groups have been calculated. If the total frequencies of all the groups have been calculated, the processing proceeds to S 59 , whereas if the total frequencies of some groups have not been calculated, the processing proceeds to S 54 .
- S 59 The control unit determines whether all the updated frequency tables have been selected or not. If some of the updated frequency tables have not been selected, the processing proceeds to S 51 and another frequency table is selected. If all the updated frequency tables have been selected, the control unit terminates the high-frequency category search processing.
- control unit may detect a combination of high-load segments having a strong dependency relationship and the time difference thereof.
- the criterion of the strength of dependency relationship may be adjusted by the threshold value set in S 55 .
- FIG. 18 is a diagram illustrating an example of a histogram based on a frequency table, which allows detection of a high frequency category, according to the second embodiment.
- a frequency table that allows detecting a high frequency category has a large number of occurrences in a specific time difference band.
- the control unit determines (evaluates) whether the ratio of a group gp0, which is generated by grouping the categories of time difference “1”, time difference “2”, and time difference “3” in the frequency table, to the entirety is over a threshold value or not.
- the evaluation of the group gp0 is that the ratio of occupying the entirety is not over the threshold value, and thus it becomes not possible to detect a high frequency category.
- group gp1 is generated by grouping the categories of time difference “2”, time difference “3”, and time difference “4”.
- the group gp1 has a large number of occurrences in the time difference “3”, and the time difference “4”. Accordingly, the evaluation of the group gp1 is that the ratio of occupying the entirety is over the threshold value, and thus a high frequency category is detected. Subsequently, the evaluation after group gp2, which is generated by shifting the group gp1, is omitted.
- Such a histogram has a peak in a specific time difference band. That is to say, in such a combination of high-load segments, a dependency relationship is recognized in a specific time difference band.
- FIG. 19 is a diagram illustrating an example of a histogram based on a frequency table, which makes it difficult to detect a high frequency category, according to the second embodiment.
- Such a histogram is flat on the whole, and does not have a peak in a specific time difference band. That is to say, in such a combination of high-load segments, a dependency relationship is not recognized in a specific time difference band.
- FIG. 20 is a diagram illustrating a flowchart of the dependency relationship table update processing according to the second embodiment.
- the dependency relationship table update processing is processing for updating the dependency relationship table by reflecting the dependency relationship detected in S 34 of the dependency relationship detection processing.
- the dependency relationship table update processing is the processing performed by the control unit in S 35 of the dependency relationship detection processing.
- S 61 The control unit determines whether there is a high-frequency category with regard to a target combination of high-load segments or not. If there is a high-frequency category, the processing proceeds to S 64 , whereas if there is no high-frequency category, the processing proceeds to S 62 .
- the control unit may determine whether there is a high-frequency category or not by detecting a high frequency category in S 56 of the high-frequency category search processing.
- S 62 The control unit determines whether the combination of high-load segments, for which no high-frequency category is detected in the dependency relationship detection processing, is recorded in the dependency relationship table or not. If the combination of high-load segments for which no high-frequency category is detected is recorded in the dependency relationship table, the processing proceeds to S 63 , whereas if the combination is not recorded in the dependency relationship table, the processing proceeds to S 68 .
- S 63 The control unit deletes the combination of high-load segments, for which no high-frequency category is detected, from the dependency relationship table, and the processing proceeds to S 68 .
- S 64 The control unit determines whether the combination of high-load segments, for which a high-frequency category is detected in the dependency relationship detection processing, is recorded in the dependency relationship table or not. If the combination of high-load segments for which a high-frequency category is detected is recorded in the dependency relationship table, the processing proceeds to S 66 , whereas if the combination is not recorded in the dependency relationship table, the processing proceeds to S 65 .
- the control unit adds the combination of high-load segments, for which a high-frequency category is detected, to the dependency relationship table.
- S 66 The control unit compares the time difference of the combination of high-load segments for which a high-frequency category is detected and the time difference of the same combination of high-load segments that is already recorded in the dependency relationship table, and determines whether they are the same or not. If the two time differences are the same, the processing proceeds to S 68 , whereas if the two time differences are not the same, the processing proceeds to S 67 .
- the control unit updates the dependency relationship table by the time difference of the combination of high-load segments for which a high-frequency category is detected.
- S 68 The control unit determines whether the dependency relationships have been updated (including add, and delete) for all the combinations of high-load segments or not. If the dependency relationships have not been updated for some of the combinations of high-load segments, the processing proceeds to S 61 , whereas if the dependency relationships have been updated for all the combinations of high-load segments, the dependency relationship table update processing is terminated.
- FIG. 21 is a diagram illustrating a flowchart of the read-ahead data determination processing according to the second embodiment.
- the read-ahead data determination processing is processing for determining data to be the target of read ahead.
- the read-ahead data determination processing is the processing performed by the control unit in S 25 of the read-ahead control processing.
- the control unit determines whether there are any entries including the current high-load areas (high-load segments) as starting points of dependency relationships in the dependency relationship table. If there are some entries including the current high-load areas as starting points of dependency relationships in the dependency relationship table, the processing proceeds to S 72 , whereas if there is no entry, the read-ahead data determination processing is terminated.
- the control unit adds segments included as ending points in the entries, which include the current high-load areas as starting points, to a transfer scheduled segment table.
- the transfer scheduled segment table is a table in which high-load segments to be copied from the HDD 31 to the SSD 30 are recorded. A description will be given later of the details of the transfer scheduled segment table with reference to FIG. 22 . After the control unit added the segments included in the entries as ending points to the transfer scheduled segment table, the read-ahead data determination processing is terminated.
- FIG. 22 is a diagram illustrating an example of the transfer scheduled segment table according to the second embodiment.
- a transfer scheduled segment table 250 records transfer scheduled segments, that is to say, the high-load segments to be copied from the HDD 31 to the SSD 30 .
- the transfer scheduled segment table 250 includes an item “segment ID”, and an item “time”.
- the item “segment ID” records identification information that allows a segment to be uniquely identified.
- the item “time” indicates a time until transfer completion.
- the high-load segment having the segment ID “S#15” is to be copied from the HDD 31 to the SSD 30 and the time until transfer completion of the segment is “two minutes”.
- the high-load segment having the segment ID “S#12” is to be copied from the HDD 31 to the SSD 30 and the time until transfer completion of the segment is “four minutes”.
- FIG. 23 is a flowchart illustrating the data transfer processing according to the second embodiment.
- the data transfer processing is the processing in which data stored in the segment determined in S 25 of the read-ahead control processing is copied (transferred) to the SSD 30 .
- the data transfer processing is the processing performed by the control unit in S 26 of the read-ahead control processing.
- the control unit calculates priorities of transfer scheduled segments (high-load segments) in the transfer scheduled segment table.
- the expression (1) may be used for calculating the priorities.
- the establishment probability in the expression (1) may be obtained from the item “establishment probability” in the dependency relationship table.
- the average number of accesses in the expression (1) may be obtained by calculating an average value of the item “frequency” in the frequency table.
- the time until transfer completion may be obtained from the item “time” in the transfer scheduled segment table. According to the expression (1), when there are two or more transfer scheduled segments having the same establishment probability ⁇ the average number of accesses, the control unit gives higher priority to a transfer scheduled segment having a smaller time until transfer completion.
- the control unit determines a transfer scheduled segment having the highest priority out of the transfer scheduled segments in the transfer scheduled segment table.
- the control unit copies data of the transfer scheduled segment having the highest priority from the HDD 31 to the SSD 30 .
- the control unit transfers data on segment basis. This data transfer is completed before the next data transfer processing is performed, and thus another data transfer will not be performed in an incomplete state of the current data transfer. To put it another way, the interval (for example, one minute) of data transfer processing is longer than a time taken for transferring data of one high-load segment.
- the control unit performs data transfer one by one for each segment in accordance with the priority, and inhibits parallel data transfer of two or more segments to avoid abortion of data transfer within respective times.
- the storage apparatus 13 detects the dependency relationship of accesses having a time difference so as to improve read ahead precision, and improves the access performance of the SSD 30 and the HDD 31 . It has not been possible to make such improvements by the read ahead responding to sequential access, or the read ahead responding to random access.
- the read ahead by detecting a dependency relationship of accesses having a time difference allows taking a larger time until transfer completion of data compared with read ahead techniques known so far, and thus excessive wide communication band is not used.
- the storage apparatus 13 may perform the read ahead by detecting a dependency relationship of accesses having a time difference together with the read ahead techniques known so far.
- the storage apparatus 13 searches for a category having a high access frequency by comparing the ratio of the total frequency of a group to the total frequency of all the categories with a threshold value.
- a well-known statistical determination method may be used.
- the storage apparatus 13 may detect a significant difference from the Poisson distribution using a method of testing.
- the above-described processing functions may be achieved by a computer.
- a program describing the processing contents of the functions of the storage control apparatus 2 or the storage apparatus 13 is provided.
- the above-described processing functions are achieved by the computer.
- the programs describing the processing contents may be recorded on a computer-readable recording medium.
- the computer-readable recording medium include a magnetic storage device, an optical disc, a magneto-optical recording medium, a semiconductor memory, and the like.
- Examples of the magnetic storage device include an HDD, a flexible disk (FD), a magnetic tape, and the like.
- Examples of the optical disc include a DVD, a DVD-RAM, a CD-ROM/RW, and the like.
- the magneto-optical recording medium include a magneto-optical disk (MO) and the like.
- a portable recording medium such as a DVD, a CD-ROM, and the like on which the program is recorded is marketed.
- the program may be stored in a storage device of a server computer, and transferred from the server computer to another computer through a network.
- the computer that executes the program stores the program recorded on the portable recording medium, or the program transferred from the server computer into the own storage device, for example. Then, the computer reads the program from the own storage device, and performs processing in accordance with the program.
- the computer may directly read the program from the portable recording medium, and to execute the processing in accordance with the program. Also, the computer may sequentially execute processing in accordance with a program received from a server computer connected through a network each time the program is transferred from the server computer.
- At least a part of the above-described processing functions may be achieved by an electronic circuit, such as a DSP, an ASIC, a PLD, or the like.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Debugging And Monitoring (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
A storage control apparatus includes a processor. The processor is configured to detect a dependency relationship between a first data access and a second data access made after passage of a delay time from the first data access. The first data access is made to a first storage area in a first storage device. The second data access is made to a second storage area in the first storage device. The processor is configured to transfer, when a current data access is made to the first storage area in a state in which the dependency relationship is detected, data in the second storage area to a second storage device before the delay time passes. The second storage device has a higher access speed than the first storage device.
Description
- This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2014-092781, filed on Apr. 28, 2014, the entire contents of which are incorporated herein by reference.
- The embodiments discussed herein are related to a storage control apparatus and a storage system.
- As one of high speed techniques in the storage field, “read ahead” is provided. In general, a storage apparatus (storage device) is provided with a large-capacity and inexpensive hard disk drive (HDD), and stores data in the HDD. The storage apparatus is also provided with a solid state drive (SSD), or a dynamic random access memory (DRAM), which is more expensive per unit capacity compared with the HDD, but is capable of accessing at a higher speed. The storage apparatus reads ahead, from the HDD, data having a high possibility of being accessed, and copies the data to the SSD or the DRAM in advance so as to achieve high-speed access on the whole.
- It is known that such read ahead is performed, for example, to read a continuous area when sequential access is detected, or performed based on access frequencies when random access is made.
- Related techniques are disclosed, for example, in Japanese Laid-open Patent Publication No. 2008-165315, Japanese Laid-open Patent Publication No. 2011-138321, Japanese Laid-open Patent Publication No. 2004-133934, Japanese Laid-open Patent Publication No. 2000-250803, and Japanese Laid-open Patent Publication No. 2009-266152.
- However, there is still a room for improvement in high-speed access to a storage device by reading ahead, and it is hard to say that the access performance is sufficient.
- According to an aspect of the present invention, provided is a storage control apparatus including a processor. The processor is configured to detect a dependency relationship between a first data access and a second data access made after passage of a delay time from the first data access. The first data access is made to a first storage area in a first storage device. The second data access is made to a second storage area in the first storage device. The processor is configured to transfer, when a current data access is made to the first storage area in a state in which the dependency relationship is detected, data in the second storage area to a second storage device before the delay time passes. The second storage device has a higher access speed than the first storage device.
- The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
- It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed.
-
FIG. 1 is a diagram illustrating an exemplary configuration of a storage system according to a first embodiment; -
FIG. 2 is a diagram illustrating an exemplary configuration of a storage system according to a second embodiment; -
FIG. 3 is a diagram illustrating an exemplary configuration of a storage device to be targeted for control by the storage apparatus according to the second embodiment; -
FIG. 4 is a diagram illustrating an exemplary hardware configuration of a CM according to the second embodiment; -
FIG. 5 is a diagram illustrating a flowchart of number-of-accesses count processing according to the second embodiment; -
FIG. 6 is a diagram illustrating an example of an access counter table according to the second embodiment; -
FIG. 7 is a diagram illustrating a flowchart of read-ahead control processing according to the second embodiment; -
FIG. 8 is a diagram illustrating an example of a high-load segment table according to the second embodiment; -
FIG. 9 is a diagram illustrating a flowchart of dependency relationship detection processing according to the second embodiment; -
FIG. 10 is a diagram illustrating an example of a high-load segment log table according to the second embodiment; -
FIG. 11 is a diagram illustrating an example of a frequency table according to the second embodiment; -
FIG. 12 is a diagram illustrating an example of a dependency relationship table according to the second embodiment; -
FIG. 13 is a diagram illustrating a flowchart of frequency table update processing according to the second embodiment; -
FIG. 14 is a diagram illustrating a frequency table of combinations (from segment ID “S# 0” to “S# 322”) of a current high-load segment and a past high-load segment according to the second embodiment; -
FIG. 15 is a diagram illustrating a frequency table of combinations (from segment ID “S# 5” to “S# 322”) of a current high-load segment and a past high-load segment according to the second embodiment; -
FIG. 16 is a diagram illustrating a frequency table of combinations (from segment ID “S# 225” to “S# 322”) of a current high-load segment and a past high-load segment according to the second embodiment; -
FIG. 17 is a diagram illustrating a flowchart of high-frequency category search processing according to the second embodiment; -
FIG. 18 is a diagram illustrating an example of a histogram based on the frequency table according to the second embodiment; -
FIG. 19 is a diagram illustrating an example of a histogram based on the frequency table according to the second embodiment; -
FIG. 20 is a diagram illustrating a flowchart of dependency relationship table update processing according to the second embodiment; -
FIG. 21 is a diagram illustrating a flowchart of read-ahead data determination processing according to the second embodiment; -
FIG. 22 is a diagram illustrating an example of a transfer scheduled segment table according to the second embodiment; and -
FIG. 23 is a diagram illustrating a flowchart of data transfer processing according to the second embodiment. - In the following, a detailed description will be given of embodiments with reference to the drawings.
- First, a description will be given of a storage system according to a first embodiment with reference to
FIG. 1 .FIG. 1 is a diagram illustrating an exemplary configuration of a storage system according to the first embodiment. - A
storage system 1 includes astorage control apparatus 2, afirst storage device 4, and asecond storage device 5. Thestorage control apparatus 2 performs control on thefirst storage device 4 and thesecond storage device 5. Thefirst storage device 4 and thesecond storage device 5 are storage devices capable of storing data in a predetermined storage area, and include an HDD, an SSD, a DRAM, or the like, for example. Thesecond storage device 5 is a storage device capable of making an access at a higher speed than thefirst storage device 4. When thefirst storage device 4 is an HDD, thesecond storage device 5 is an SSD, for example. When thefirst storage device 4 is an HDD or an SSD, thesecond storage device 5 is a DRAM, for example. - The
storage control apparatus 2 performs “read ahead”, which copies data stored in thefirst storage device 4 to thesecond storage device 5 in advance so as to speed up data access. The “read ahead” means reading data stored in a low-speed device into a high-speed device in advance before an access is made to the data in the low-speed device. Access (data access) to data, mentioned here, includes writing data in addition to reading data. - The
storage control apparatus 2 includes acontrol unit 3. Thecontrol unit 3 detects a dependency relationship in which, after passage of a predetermined time from a time point of data access to afirst storage area 4 a in thefirst storage device 4, data access is made to asecond storage area 4 b in thefirst storage device 4. - For example, it is assumed that data access is made to
data 6 in thefirst storage area 4 a at timing t0, and then data access is made to data 7 in thesecond storage area 4 b at timing t1 which is five minutes after t0. Also, it is assumed that data access is made todata 6 in thefirst storage area 4 a at timing t2, and then data access is made to data 7 in thesecond storage area 4 b at timing t3 which is five minutes after t2. By observing such a data access pattern, thecontrol unit 3 may detect, based on a predetermined detection criteria, a dependency relationship in which it is highly probable that after passage of a predetermined time (for example, after the elapse of five minutes) of data access to thedata 6 in thefirst storage area 4 a, data access is made to the data 7 in thesecond storage area 4 b. To put it another way, it is possible to say that a dependency relationship has a deviation in the timing of accessing data. - When data access is made to the
first storage area 4 a in a state of having detected the dependency relationship, thecontrol unit 3 copies data in thesecond storage area 4 b from thefirst storage device 4 to thesecond storage device 5 before the predetermined time passes. - For example, the
control unit 3 detects that data access is made todata 6 in thefirst storage area 4 a at timing t4. At this time, it is assumed that thecontrol unit 3 has detected a dependency relationship in which after the elapse of five minutes from the data access to thedata 6 in thefirst storage area 4 a, data access is made to the data 7 in thesecond storage area 4 b. Thecontrol unit 3 copies the data 7 from thefirst storage device 4 to thesecond storage device 5 before timing t5 which is five minutes after the timing t4. - The
control unit 3 performs read ahead in this manner so as to improve access performance in thefirst storage device 4 and thesecond storage device 5. - Next, a description will be given of a storage system according to a second embodiment with reference to
FIG. 2 .FIG. 2 is a diagram illustrating an exemplary configuration of a storage system according to the second embodiment. - A
storage system 10 includes ahost 11, and astorage apparatus 13 which connects to thehost 11 through anetwork 12. Thestorage system 10 writes data to thestorage apparatus 13, or reads data from thestorage apparatus 13 in accordance with an input/output (I/O) request demanded by thehost 11. - Next, a description will be given of a configuration of a storage device that is a target of control by the
storage apparatus 13 according to the second embodiment with reference toFIG. 3 .FIG. 3 is a diagram illustrating an exemplary configuration of a storage device to be targeted for control by thestorage apparatus 13 according to the second embodiment. - The
storage apparatus 13 includes a controller module (CM) 20, anSSD 30, and HDDs 31 (31 a, 31 b, 31 c, . . . , and 31 n). Thestorage apparatus 13 includes oneSSD 30, but may include two ormore SSDs 30. Thestorage apparatus 13 includes a plurality ofHDDs storage apparatus 13 is not limited to the case of including theSSD 30 and the HDDs 31 inside the apparatus, but may be externally connected to theSSD 30 and the HDDs 31. - The
CM 20 functions as a control unit that controls theSSD 30 and the HDDs 31. TheSSD 30 functions as a storage device capable of accessing at a higher speed compared with the HDDs 31. That is to say, the HDDs 31 correspond to thefirst storage device 4 in the first embodiment, and theSSD 30 corresponds to thesecond storage device 5 in the first embodiment. The HDDs 31 function as a large-capacity storage device compared with theSSD 30. Accordingly, theSSD 30 is a storage device capable of functioning as a cache memory with respect to the HDDs 31. - Next, a description will be given of a hardware configuration of the
CM 20 according to the second embodiment with reference toFIG. 4 .FIG. 4 is a diagram illustrating an exemplary hardware configuration of theCM 20 according to the second embodiment. - The
CM 20 is one mode of the storage control apparatus, and receives an I/O request (a write request, a read request, or the like) from thehost 11, and controls access to the SSD and the HDDs. Thestorage apparatus 13 illustrated inFIG. 3 includes oneCM 20, but may have a redundant configuration including two ormore CMs 20. - The
CM 20 includes aprocessor 21, amemory 22, adisk adapter 23, and achannel adapter 24. Theprocessor 21, thememory 22, thedisk adapter 23, and thechannel adapter 24 are connected one another through a bus (not illustrated). TheCM 20 is connected to theSSD 30 or the HDDs 31 through thedisk adapter 23, and is connected to thehost 11 through thechannel adapter 24. - The
processor 21 controls theoverall CM 20, and performs control of theSSD 30 and the HDDs 31. Theprocessor 21 may be a multi-processor. Theprocessor 21 is, for example, a central processing unit (CPU), a micro processing unit (MPU), a digital signal processor (DSP), an application specific integrated circuit (ASIC), or a programmable logic device (PLD). Also, theprocessor 21 may be a combination of two or more elements among a CPU, an MPU, a DSP, an ASIC, and a PLD. - The
memory 22 includes a random access memory (RAM), and a nonvolatile memory, for example. Thememory 22 holds data when the data is read from theSSD 30 or the HDD 31. Thememory 22 also stores user data and control information. For example, the RAM is used as a main storage device of theCM 20. The RAM temporarily stores at least part of an operating system (OS) program, firmware, and an application program, which are executed by theprocessor 21. The RAM also stores various kinds of data used for processing by theprocessor 21. The RAM may include a cache memory separately from the memory used for storing various kinds of data. - The nonvolatile memory holds memory contents even at the time of power shut off to the
storage apparatus 13. The nonvolatile memory is, for example, a semiconductor storage device, such as an electrically erasable and programmable read-only memory (EEPROM), a flash memory, or the like, or an HDD or the like. The nonvolatile memory stores the OS program, the firmware, the application program, and various kinds of data. - The
disk adapter 23 performs interface control with theSSD 30 and the HDD 31. Thechannel adapter 24 performs interface control with thehost 11. - With the above hardware configuration, the processing function of the CM 20 (storage apparatus 13) according to the second embodiment may be achieved. It is also possible to achieve the
storage control apparatus 2 illustrated in the first embodiment by similar hardware to that of theCM 20 illustrated inFIG. 4 . - The
CM 20 executes, for example, a program recorded in a computer-readable recording medium so as to achieve the processing function of the second embodiment. The program in which the processing contents to be executed by theCM 20 are described may be stored in various recording media. For example, the program to be executed by theCM 20 may be stored in a nonvolatile memory. Theprocessor 21 loads at least a part of the program in the nonvolatile memory to thememory 22, and executes the program. The program to be executed by theCM 20 may also be stored in a portable recording medium, such as an optical disc, a memory device, a memory card, or the like (not illustrated). The optical disc includes a digital versatile disc (DVD), a DVD-RAM, a compact disc read-only memory (CD-ROM), a CD recordable/rewritable (CD-R/RW), and the like. The memory device is a recording medium provided with a communication function with an input/output interface or a device connection interface (not illustrated). For example, the memory device may write data to a memory card or read data from the memory card by the memory reader/writer. The memory card is a card-type recording medium. - The program stored in the portable recording medium is installed into the nonvolatile memory under control of the
processor 21, for example, and then becomes possible to be executed. Theprocessor 21 may directly read the program from the portable recording medium to execute the program. - Next, a description will be given of number-of-accesses count processing according to the second embodiment with reference to
FIG. 5 .FIG. 5 is a flowchart illustrating the number-of-accesses count processing according to the second embodiment. - The number-of-accesses count processing is processing for recording the number of accesses per minute for each segment. The number-of-accesses count processing is processing executed by the control unit (CM 20) after starting the
storage apparatus 13. - A segment is a management unit produced by dividing the storage area to be managed into parts having a predetermined unit size. For example, when the control unit (CM 20) manages a storage area of 100 GB, a storage area of one GB, which is a unit produced by division of 100 GB by 100, becomes one segment. A unit of one-100th thereof is an example in order to restrict the dependency relationships up to about 10,000 (=100×100) varieties, and thus the division is not limited to this.
- S11: The control unit determines whether the timer of recording unit time (one minute) has expired or not. The recording unit time of the number of accesses is not limited to one minute, and may be determined in view of performing a suitable sampling, for example, assuring sufficient data, or the like. If the control unit determines that the timer has expired, the processing proceeds to S12, whereas if the control unit does not determine that the timer has expired, the processing proceeds to S13.
- S12: The control unit changes the access counter tables. The control unit provides an access counter table for each recording unit time, and changes the access counter table for each one recording unit time. A description will be given later of the details of the access counter table with reference to
FIG. 6 . - S13: The control unit determines whether there is access (for example, read access) to a segment or not. If the control unit determines that there is access to a segment, the processing proceeds to S14, whereas if the control unit determines that there is not access to a segment, the processing proceeds to S11.
- S14: The control unit updates the access counter table corresponding to the current recording unit time. The control unit increments the number of accesses for the segment having the access by one so as to update the access counter table. After the control unit updates the access counter table, the processing proceeds to S11.
- Thereby, the control unit may record, in the access counter table, the number of accesses to the segment for each recording unit time. The counting of the number of accesses for each segment in this manner makes it possible to reduce processing load on the control unit compared with the counting of the number of accesses for each file.
- Next, a description will be given of the access counter table with reference to
FIG. 6 .FIG. 6 is a diagram illustrating an example of the access counter table according to the second embodiment. An access counter table 200 records the number of accesses to a segment for each recording unit time. The access counter table 200 includes an item “segment ID”, and an item “number of accesses”. The item “segment ID” records identification information capable of uniquely identifying a segment. The item “number of accesses” records the number of accesses to a segment identified by the segment ID. For example, the segment having the segment ID “S# 0” has the number of accesses of “235”. The segment having the segment ID “S# 1” has the number of accesses of “112”. The segment having the segment ID “S# 2” has the number of accesses of “522”. - In this manner, the access counter table records the number of accesses to a segment for each recording unit time.
- Next, a description will be given of read-ahead control processing according to the second embodiment with reference to
FIG. 7 .FIG. 7 is a flowchart illustrating the read-ahead control processing according to the second embodiment. - The read-ahead control processing is the processing for copying data of one segment from the HDD 31 to the
SSD 30. The read-ahead control processing is performed by the control unit at each predetermined data transfer timing. The data transfer timing is a timing at which data transfer of one segment is performed from the HDD 31 to theSSD 30 to copy the data of the segment. The data transfer timing is determined in terms of a communication band that is allowed to be assigned to data transfer so that stable read ahead may be achieved. For example, in the case where it is possible to transfer data of one segment in one minute, the data transfer timing is for each one minute. - S21: The control unit obtains the number of accesses to each segment. The control unit refers to the access counter table of immediately before so that the number of accesses to each segment may be obtained.
- S22: The control unit extracts high-load segments by comparing the number of accesses to each segment. A high-load segment is a segment determined to have a larger number of accesses on the basis of a predetermined determination criterion. For example, a high-load segment is a segment having the top number of accesses (for example, top three). The predetermined determination criterion may be determined to be all the segments exceeding a predetermined threshold value, or may be determined to be upper ones that exceed the predetermined threshold value.
- S23: The control unit generates a high-load segment table that records high-load segments. A description will be given later of the details of the high-load segment table with reference to
FIG. 8 . - S24: The control unit performs dependency relationship detection processing. The dependency relationship detection processing is the processing for detecting, as a dependency relationship, two high-load segments having an access time difference. A description will be given later of the details of the dependency relationship detection processing with reference to
FIG. 9 . - S25: The control unit performs read-ahead data determination processing. The read-ahead data determination processing is processing for determining data to be a target of read ahead. To put it another way, the read-ahead data determination processing is the processing for determining the segment that stores data to be a target of read ahead. A description will be given later of the details of the read-ahead data determination processing with reference to
FIG. 21 . - S26: The control unit performs data transfer processing. The data transfer processing is the processing for transferring (copying) the data stored in the segment determined in S25 to the
SSD 30. A description will be given later of the details of the data transfer processing with reference toFIG. 23 . After performing the data transfer processing, the control unit terminates the read-ahead control processing. - Next, a description will be given of the high-load segment table with reference to
FIG. 8 .FIG. 8 is a diagram illustrating an example of the high-load segment table according to the second embodiment. The high-load segment table 210 records the number of accesses to high-load segments for each recording unit time. The high-load segment table 210 includes an item “segment ID”, and an item “number of accesses”. The item “segment ID” records identification information that allows to uniquely identify a segment. The item “number of accesses” records the number of accesses to the segment identified by the segment ID. For example, the segment having the segment ID “S# 322” has the number of accesses of “2,054”. The segment having the segment ID “S# 25” has the number of accesses of “1,980”. The segment having the segment ID “S# 8” has the number of accesses of “1,672”. - In this manner, the high-load segment table records the number of accesses to the high-load segments for each recording unit time.
- Next, a description will be given of the dependency relationship detection processing according to the second embodiment with reference to
FIG. 9 .FIG. 9 is a flowchart illustrating the dependency relationship detection processing according to the second embodiment. - The dependency relationship detection processing is processing for detecting, as a dependency relationship, two high-load segments having an access time difference. The dependency relationship detection processing is the processing performed by the control unit in S24 of the read-ahead control processing.
- S31: The control unit updates a high-load segment log table. The high-load segment log table is a table that records high-load segments for a predetermined time period as a log. A description will be given later of the details of the high-load segment log table with reference to
FIG. 10 . - S32: The control unit extracts a combination of a current (the latest) high-load segment and a past high-load segment. This combination has an order relationship.
- S33: The control unit performs frequency table update processing. The frequency table update processing is processing for updating a frequency table by reflecting the combination of high-load segments extracted in S32. A description will be given later of the details of the frequency table update processing with reference to
FIG. 13 . The frequency table is a table in which an access frequency per time difference for each combination of high-load segments is recorded. A description will be given later of the details of the frequency table with reference toFIG. 11 . - S34: The control unit performs high-frequency category search processing. The high-frequency category search processing is processing for searching, with reference to the frequency table, a combination of high-load segments having a heavy access frequency per time difference. It may be recognized that such a combination of high-load segments indicates that there is a dependency relationship in which, after the elapse of a predetermined time from access to one of the high-load segments, access is made to the other of the high-load segments. The high-frequency category search processing is the processing for detecting such a dependency relationship. A description will be given later of the details of the high-frequency category search processing with reference to
FIG. 17 . - S35: The control unit performs dependency relationship table update processing. The dependency relationship table update processing is the processing for updating a dependency relationship table by reflecting the dependency relationship detected in S34. A description will be given later of the details of the dependency relationship table update processing with reference to
FIG. 20 . The dependency relationship table is a table that records the detected dependency relationship. A description will be given later of the details of the dependency relationship table with reference toFIG. 12 . - S36: The control unit determines whether all the combinations of the current high-load segment and the past high-load segment have been extracted or not. If some of the combinations of high-load segments have not been extracted, the processing proceeds to S32, whereas if all the combinations of high-load segments have been extracted, the control unit terminates the dependency relationship detection processing.
- Next, a description will be given of the high-load segment log table with reference to
FIG. 10 .FIG. 10 is a diagram illustrating an example of the high-load segment log table according to the second embodiment. A high-load segment log table 220 records a high-load segment in the latest 30 minutes as a log. Therecording time 30 minutes of the log is an example, and the recording time may be changed to any number in accordance with a use environment. The recording time of the log may be rephrased to a monitoring time period for detecting a dependency relationship. - The high-load segment log table 220 includes an item “time”, an item “segment ID”, and an item “number of accesses”. The item “time” represents time that goes back in time by “−t” with the latest time as “0”. The item “segment ID” records identification information that allows a segment to be uniquely identified. The item “number of accesses” records the number of accesses to the segment identified by the segment ID.
- For example, the high-load segment log table 220 indicates that there are three high-load segments, namely segments of segment IDs “
S# 322”, “S# 25”, and “S# 8” at time “0”, and that the segments have the number of accesses of “2,054”, “1,980”, and “1,672”, respectively. - It is assumed that high-load segments recorded at a same time belong to a same time window. For example, a high-load segment recorded at time “0” belongs to the latest time window, and a high-load segment recorded at time “−1” belongs to the time window of one minute before.
- Next, a description will be given of the frequency table with reference to
FIG. 11 .FIG. 11 is a diagram illustrating an example of the frequency table according to the second embodiment. - A frequency table 230 is a table in which the frequency (the number of accesses) of the high-load segment having the segment ID “
S# 322” after accessing the high-load segment having the segment ID “S# 38” is recorded for each time difference. - The frequency table 230 includes an item “time difference” and an item “frequency”. The item “time difference” represents an access interval of two high-load segments, that is to say, a time difference. The item “frequency” records the number of times that the segment having the segment ID “
S# 322” became high load after the segment having the segment ID “S# 38” had become high load for each time difference. - For example, the frequency table 230 indicates that one minute after the segment having the segment ID “
S# 38” had become high load, the number of times that the segment having the segment ID “S# 322” became high load is “28”. Two minutes after the segment having the segment ID “S# 38” had become high load, the number of times that the segment having the segment ID “S# 322” became high load is “36”. Three minutes after the segment having the segment ID “S# 38” had become high load, the number of times that the segment having the segment ID “S# 322” became high load is “22”. - Here, the description of frequency “35+1” indicates that the frequency is incremented by one from the number of accesses in response to the detection of accesses in the high-load segment log table 220. The high-load segment log table 220 indicates that the segment ID “
S# 322” is recorded at time “0”, and the segment ID “S# 38” is recorded two minutes before that time (time “−2”). - In this manner, the frequency table of the combination is updated for each combination of a high-load segment belonging to the latest time window and another high-load segment in the high-load segment log table 220.
- Next, a description will be given of the dependency relationship table with reference to
FIG. 12 .FIG. 12 is a diagram illustrating an example of the dependency relationship table according to the second embodiment. - A dependency relationship table 240 records the detected dependency relationships. A dependency relationship is detected by referencing the frequency table for each combination of high-load segments, and detecting a combination of high-load segments having a ratio of the frequency exceeding a threshold value (for example, 50%) among the overall frequencies recorded for each time difference.
- The dependency relationship table 240 includes an item “dependency relationship”, an item “time difference”, and an item “establishment probability”. The item “dependency relationship” is a combination of high-load segments for which a dependency relationship has been detected. The item “time difference” is an access interval of the two high-load segments for which the dependency relationship has been detected. The item “establishment probability” is a ratio of the frequency, which is identified based on the item “dependency relationship” and the item “time difference”, to the overall frequencies.
- For example, the dependency relationship “
S# 0→S# 322” and the time difference “three minutes” indicate that after three minutes from the access to the high-load segment having the segment ID “S# 0”, access is made to the high-load segment having the segment ID “S# 322”. The dependency relationship table 240 indicates that the frequency identified based on the dependency relationship “S# 0→S# 322” and the time difference “three minutes” occupies “52%” of all the frequencies. The dependency relationship “S# 8→S# 15” and the time difference “two minutes” indicate that after two minutes from the access to the high-load segment having the segment ID “S# 8”, access is made to the high-load segment having the segment ID “S# 15”. The dependency relationship table 24 indicates that the frequency identified based on the dependency relationship “S# 8→S# 15” and the time difference “two minutes” occupies “66%” of all the frequencies. The dependency relationship “S#16→S#7” and the time difference “five minutes” indicate that after five minutes from the access to the high-load segment having the segment ID “S#16”, access is made to the high-load segment having the segment ID “S#7”. The dependency relationship table 24 indicates that the frequency identified based on the dependency relationship “S#16→S#7” and the time difference “five minutes” occupies “72%” of all the frequencies. - Next, a description will be given of the frequency table update processing according to the second embodiment with reference to
FIG. 13 .FIG. 13 is a diagram illustrating a flowchart of the frequency table update processing according to the second embodiment. - The frequency table update processing is the processing for updating the frequency table by reflecting the combination of high-load segments extracted in S32 of the dependency relationship detection processing. The frequency table update processing is the processing performed by the control unit in S33 of the dependency relationship detection processing.
- S41: The control unit refers to the high-load segment log table, and extracts one of upper segments from the latest time window. For example, the control unit extracts the high-load segment having the segment ID “
S# 322” from the high-load segment log table 220 as an upper segment. - S42: The control unit refers to the high-load segment log table, and selects one of the holding time windows. For example, the control unit selects the time window of one minute before from the high-load segment log table 220.
- S43: The control unit refers to the high-load segment log table, and selects one of upper segments from the selected time window. For example, when the control unit selects the time window of one minute before in the high-load segment log table 220, the control unit extracts the high-load segment having the segment ID “
S# 0” as an upper segment. - S44: The control unit calculates a time difference between the two extracted segments (upper segments). For example, a time difference between the high-load segment having the segment ID “
S# 322” extracted from the latest time window and the high-load segment having the segment ID “S# 0” extracted from the selected time window is “1”. - If the same upper segment is in another time window, the control unit determines an upper segment having the smallest time difference to be a target of calculating the time difference, and determines the other upper segments not to be a target of calculating the time difference. For example, the high-load segment having the segment ID “
S# 0” extracted from the time window of 10 minutes before does not become the target of calculating the time difference, because the high-load segment having the segment ID “S# 0” is extracted from the time window of one minute before. - S45: The control unit updates the frequency table on the basis of the combination of high-load segments and the calculated time difference. The control unit increments the corresponding frequency by one so as to update the frequency table.
- S46: The control unit determines whether all the upper segments have been extracted from the selected time window or not. If the control unit has extracted all the upper segments from the selected time window, the processing proceeds to S47. If the control unit has not extracted some of the upper segments from the selected time window, the processing proceeds to S43, and the control unit selects another upper segment in S43.
- S47: The control unit refers to the high-load segment log table, and determines whether all the holding time windows have been selected or not. If the control unit has selected all the holding time windows, the processing proceeds to S48. If the control unit has not selected some of the holding time windows, the processing proceeds to S42, and the control unit selects another time window in S42.
- S48: The control unit determines whether all the upper segments have been extracted from the latest time window or not. If the control unit has not extracted some of the upper segments from the latest time window, the processing proceeds to S41, and extracts another upper segment in S41. If the control unit has extracted all the upper segments from the latest time window, the frequency table update processing is terminated.
- In this manner, the control unit may individually record access frequencies of the combinations of the current high-load segment and the past high-load segment for each time difference in the frequency table.
- A description will be given of an update example of such a frequency table with reference to
FIG. 14 toFIG. 16 .FIG. 14 is a diagram illustrating a frequency table of a combination (from segment ID “S# 0” to “S# 322”) of the current high-load segment and the past high-load segment according to the second embodiment. - A frequency table 232 is a table in which the frequency (the number of accesses) of the high-load segment having the segment ID “
S# 322” after accessing the high-load segment having the segment ID “S# 0” is recorded for each time difference. The frequency table 232 has a similar structure to that of the frequency table 230. The item “frequency” records the number of accesses to the high-load segment having the segment ID “S# 322” after accessing the high-load segment having the segment ID “S# 0” for each time difference. - For example, the frequency table 232 indicates that after one minute from the access to the high-load segment having the segment ID “
S# 0”, there has been “33” accesses to the high-load segment having the segment ID “S# 322”. Here, the description of the frequency “32+1” indicates that the frequency is incremented by one from the number of accesses in response to the detection of accesses in the high-load segment log table 220. The high-load segment log table 220 indicates that the segment ID “S# 322” is recorded at time “0”, and the segment ID “S# 0” is recorded one minute before that time (time “−1” -
FIG. 15 is a diagram illustrating a frequency table of a combination (from segment ID “S# 5” to “S# 322”) of the current high-load segment and the past high-load segment according to the second embodiment. - A frequency table 234 is a table in which the frequency (the number of accesses) of the high-load segment having the segment ID “
S# 322” after accessing the high-load segment having the segment ID “S# 5” is recorded for each time difference. The frequency table 234 has a similar structure to that of the frequency table 230. The item “frequency” records the number of accesses to the high-load segment having the segment ID “S# 322” after accessing the high-load segment having the segment ID “S# 5” for each time difference. - For example, the frequency table 234 indicates that after one minute from the access to the high-load segment having the segment ID “
S# 5”, there has been “16” accesses to the high-load segment having the segment ID “S# 322”. Here, the description of the frequency “15+1” indicates that the frequency is incremented by one from the number of the accesses in response to the detection of accesses in the high-load segment log table 220. The high-load segment log table 220 indicates that the segment ID “S# 322” is recorded at time “0”, and the segment ID “S# 5” is recorded one minute before that time (time “−1”). -
FIG. 16 is a diagram illustrating a frequency table of a combination (from segment ID “S# 225” to “S# 322”) of the current high-load segment and the past high-load segment according to the second embodiment. - The frequency table 236 is a table in which the frequency (the number of accesses) of the high-load segment having the segment ID “
S# 322” after accessing the high-load segment having the segment ID “S# 225” is recorded for each time difference. The frequency table 236 has a similar structure to that of the frequency table 230. The item “frequency” records the number of accesses to the high-load segment having the segment ID “S# 322” after accessing the high-load segment having the segment ID “S# 225” for each time difference. - For example, the frequency table 236 indicates that after one minute from the access to the high-load segment having the segment ID “
S# 225”, there has been “28” accesses to the high-load segment having the segment ID “S# 322”. Here, the description of the frequency “27+1” indicates that the frequency is incremented by one from the number of the accesses in response to the detection of accesses in the high-load segment log table 220. The high-load segment log table 220 indicates that the segment ID “S# 322” is recorded at time “0”, and the segment ID “S# 225” is recorded one minute before that time (time “−1”). - Next, a description will be given of high-frequency category search processing according to the second embodiment with reference to
FIG. 17 . FIG. 17 is a diagram illustrating a flowchart of the high-frequency category search processing according to the second embodiment. - The high-frequency category search processing is processing for searching, with reference to a frequency table, a combination of high-load segments having a heavy access frequency for each time difference. The high-frequency category search processing is the processing performed by the control unit in S34 in the dependency relationship detection processing.
- S51: The control unit selects one of the frequency tables updated in the frequency table update processing performed immediately before in the dependency relationship detection processing.
- S52: The control unit calculates a total frequency of all the categories (time differences) in the frequency table selected in S51.
- S53: The control unit performs grouping of three categories in ascending order of time difference in order to generate a group. Here, grouping of three categories is one example, and grouping may be performed for one category, two adjacent categories, or four or more continuous categories.
- S54: The control unit calculates a total frequency of the group generated in S53.
- S55: The control unit determines whether the ratio of the total frequency of the group to the total frequency of all the categories is 50% or more. If the ratio of the total frequency of the group to the total frequency of all the categories is 50% or more, the processing proceeds to S56, whereas if the ratio is less than 50%, the processing proceeds to S57. The threshold value of 50% is an example, and the threshold value to be used for the determination may be set to any number in accordance with a use environment (for example, a communication band, the storage capacity of the
SSD 30, or the like). - S56: The control unit detects a high frequency category for the dependency relationship identified in the selected frequency table. The control unit makes the high frequency category identifiable, and holds it temporarily.
- S57: The control unit shifts the grouping performed in S53 by one time difference in the direction of a larger time difference.
- S58: The control unit determines whether the total frequencies of all the groups have been calculated. If the total frequencies of all the groups have been calculated, the processing proceeds to S59, whereas if the total frequencies of some groups have not been calculated, the processing proceeds to S54.
- S59: The control unit determines whether all the updated frequency tables have been selected or not. If some of the updated frequency tables have not been selected, the processing proceeds to S51 and another frequency table is selected. If all the updated frequency tables have been selected, the control unit terminates the high-frequency category search processing.
- In this manner, the control unit may detect a combination of high-load segments having a strong dependency relationship and the time difference thereof. The criterion of the strength of dependency relationship may be adjusted by the threshold value set in S55.
- Next, a description will be given of a frequency table that allows detection of a high frequency category with reference to
FIG. 18 andFIG. 19 .FIG. 18 is a diagram illustrating an example of a histogram based on a frequency table, which allows detection of a high frequency category, according to the second embodiment. - A frequency table that allows detecting a high frequency category has a large number of occurrences in a specific time difference band. The control unit determines (evaluates) whether the ratio of a group gp0, which is generated by grouping the categories of time difference “1”, time difference “2”, and time difference “3” in the frequency table, to the entirety is over a threshold value or not. In this case, the evaluation of the group gp0 is that the ratio of occupying the entirety is not over the threshold value, and thus it becomes not possible to detect a high frequency category. When the group gp0 is shifted, group gp1 is generated by grouping the categories of time difference “2”, time difference “3”, and time difference “4”. The group gp1 has a large number of occurrences in the time difference “3”, and the time difference “4”. Accordingly, the evaluation of the group gp1 is that the ratio of occupying the entirety is over the threshold value, and thus a high frequency category is detected. Subsequently, the evaluation after group gp2, which is generated by shifting the group gp1, is omitted. Such a histogram has a peak in a specific time difference band. That is to say, in such a combination of high-load segments, a dependency relationship is recognized in a specific time difference band.
- On the other hand, a frequency table that makes it difficult to detect a high frequency category conduces to a histogram as illustrated in
FIG. 19 .FIG. 19 is a diagram illustrating an example of a histogram based on a frequency table, which makes it difficult to detect a high frequency category, according to the second embodiment. Such a histogram is flat on the whole, and does not have a peak in a specific time difference band. That is to say, in such a combination of high-load segments, a dependency relationship is not recognized in a specific time difference band. - Next, a description will be given of dependency relationship table update processing according to the second embodiment with reference to
FIG. 20 .FIG. 20 is a diagram illustrating a flowchart of the dependency relationship table update processing according to the second embodiment. - The dependency relationship table update processing is processing for updating the dependency relationship table by reflecting the dependency relationship detected in S34 of the dependency relationship detection processing. The dependency relationship table update processing is the processing performed by the control unit in S35 of the dependency relationship detection processing.
- S61: The control unit determines whether there is a high-frequency category with regard to a target combination of high-load segments or not. If there is a high-frequency category, the processing proceeds to S64, whereas if there is no high-frequency category, the processing proceeds to S62. The control unit may determine whether there is a high-frequency category or not by detecting a high frequency category in S56 of the high-frequency category search processing.
- S62: The control unit determines whether the combination of high-load segments, for which no high-frequency category is detected in the dependency relationship detection processing, is recorded in the dependency relationship table or not. If the combination of high-load segments for which no high-frequency category is detected is recorded in the dependency relationship table, the processing proceeds to S63, whereas if the combination is not recorded in the dependency relationship table, the processing proceeds to S68.
- S63: The control unit deletes the combination of high-load segments, for which no high-frequency category is detected, from the dependency relationship table, and the processing proceeds to S68.
- S64: The control unit determines whether the combination of high-load segments, for which a high-frequency category is detected in the dependency relationship detection processing, is recorded in the dependency relationship table or not. If the combination of high-load segments for which a high-frequency category is detected is recorded in the dependency relationship table, the processing proceeds to S66, whereas if the combination is not recorded in the dependency relationship table, the processing proceeds to S65.
- S65: The control unit adds the combination of high-load segments, for which a high-frequency category is detected, to the dependency relationship table.
- S66: The control unit compares the time difference of the combination of high-load segments for which a high-frequency category is detected and the time difference of the same combination of high-load segments that is already recorded in the dependency relationship table, and determines whether they are the same or not. If the two time differences are the same, the processing proceeds to S68, whereas if the two time differences are not the same, the processing proceeds to S67.
- S67: The control unit updates the dependency relationship table by the time difference of the combination of high-load segments for which a high-frequency category is detected.
- S68: The control unit determines whether the dependency relationships have been updated (including add, and delete) for all the combinations of high-load segments or not. If the dependency relationships have not been updated for some of the combinations of high-load segments, the processing proceeds to S61, whereas if the dependency relationships have been updated for all the combinations of high-load segments, the dependency relationship table update processing is terminated.
- Next, a description will be given of read-ahead data determination processing according to the second embodiment with reference to
FIG. 21 .FIG. 21 is a diagram illustrating a flowchart of the read-ahead data determination processing according to the second embodiment. - The read-ahead data determination processing is processing for determining data to be the target of read ahead. The read-ahead data determination processing is the processing performed by the control unit in S25 of the read-ahead control processing.
- S71: The control unit determines whether there are any entries including the current high-load areas (high-load segments) as starting points of dependency relationships in the dependency relationship table. If there are some entries including the current high-load areas as starting points of dependency relationships in the dependency relationship table, the processing proceeds to S72, whereas if there is no entry, the read-ahead data determination processing is terminated.
- S72: The control unit adds segments included as ending points in the entries, which include the current high-load areas as starting points, to a transfer scheduled segment table. The transfer scheduled segment table is a table in which high-load segments to be copied from the HDD 31 to the
SSD 30 are recorded. A description will be given later of the details of the transfer scheduled segment table with reference toFIG. 22 . After the control unit added the segments included in the entries as ending points to the transfer scheduled segment table, the read-ahead data determination processing is terminated. - Next, a description will be given of the transfer scheduled segment table with reference to
FIG. 22 .FIG. 22 is a diagram illustrating an example of the transfer scheduled segment table according to the second embodiment. - A transfer scheduled segment table 250 records transfer scheduled segments, that is to say, the high-load segments to be copied from the HDD 31 to the
SSD 30. - The transfer scheduled segment table 250 includes an item “segment ID”, and an item “time”. The item “segment ID” records identification information that allows a segment to be uniquely identified. The item “time” indicates a time until transfer completion.
- For example, the high-load segment having the segment ID “
S# 15” is to be copied from the HDD 31 to theSSD 30 and the time until transfer completion of the segment is “two minutes”. The high-load segment having the segment ID “S# 12” is to be copied from the HDD 31 to theSSD 30 and the time until transfer completion of the segment is “four minutes”. - Next, a description will be given of data transfer processing according to the second embodiment with reference to
FIG. 23 .FIG. 23 is a flowchart illustrating the data transfer processing according to the second embodiment. - The data transfer processing is the processing in which data stored in the segment determined in S25 of the read-ahead control processing is copied (transferred) to the
SSD 30. The data transfer processing is the processing performed by the control unit in S26 of the read-ahead control processing. - S81: The control unit calculates priorities of transfer scheduled segments (high-load segments) in the transfer scheduled segment table. The expression (1) may be used for calculating the priorities.
-
Priority=(establishment probability×the average number of accesses)/time until transfer completion (1) - The establishment probability in the expression (1) may be obtained from the item “establishment probability” in the dependency relationship table. The average number of accesses in the expression (1) may be obtained by calculating an average value of the item “frequency” in the frequency table. The time until transfer completion may be obtained from the item “time” in the transfer scheduled segment table. According to the expression (1), when there are two or more transfer scheduled segments having the same establishment probability×the average number of accesses, the control unit gives higher priority to a transfer scheduled segment having a smaller time until transfer completion.
- S82: The control unit determines a transfer scheduled segment having the highest priority out of the transfer scheduled segments in the transfer scheduled segment table.
- S83: The control unit copies data of the transfer scheduled segment having the highest priority from the HDD 31 to the
SSD 30. The control unit transfers data on segment basis. This data transfer is completed before the next data transfer processing is performed, and thus another data transfer will not be performed in an incomplete state of the current data transfer. To put it another way, the interval (for example, one minute) of data transfer processing is longer than a time taken for transferring data of one high-load segment. The control unit performs data transfer one by one for each segment in accordance with the priority, and inhibits parallel data transfer of two or more segments to avoid abortion of data transfer within respective times. - In this manner, the
storage apparatus 13 detects the dependency relationship of accesses having a time difference so as to improve read ahead precision, and improves the access performance of theSSD 30 and the HDD 31. It has not been possible to make such improvements by the read ahead responding to sequential access, or the read ahead responding to random access. The read ahead by detecting a dependency relationship of accesses having a time difference allows taking a larger time until transfer completion of data compared with read ahead techniques known so far, and thus excessive wide communication band is not used. Thestorage apparatus 13 may perform the read ahead by detecting a dependency relationship of accesses having a time difference together with the read ahead techniques known so far. - In the high-frequency category search processing, the
storage apparatus 13 searches for a category having a high access frequency by comparing the ratio of the total frequency of a group to the total frequency of all the categories with a threshold value. However, a well-known statistical determination method may be used. For example, thestorage apparatus 13 may detect a significant difference from the Poisson distribution using a method of testing. - The above-described processing functions may be achieved by a computer. In that case, a program describing the processing contents of the functions of the
storage control apparatus 2 or thestorage apparatus 13 is provided. By executing the program on a computer, the above-described processing functions are achieved by the computer. The programs describing the processing contents may be recorded on a computer-readable recording medium. Examples of the computer-readable recording medium include a magnetic storage device, an optical disc, a magneto-optical recording medium, a semiconductor memory, and the like. Examples of the magnetic storage device include an HDD, a flexible disk (FD), a magnetic tape, and the like. Examples of the optical disc include a DVD, a DVD-RAM, a CD-ROM/RW, and the like. Examples of the magneto-optical recording medium include a magneto-optical disk (MO) and the like. - In order to distribute the program, for example, a portable recording medium, such as a DVD, a CD-ROM, and the like on which the program is recorded is marketed. Also, the program may be stored in a storage device of a server computer, and transferred from the server computer to another computer through a network.
- The computer that executes the program stores the program recorded on the portable recording medium, or the program transferred from the server computer into the own storage device, for example. Then, the computer reads the program from the own storage device, and performs processing in accordance with the program. The computer may directly read the program from the portable recording medium, and to execute the processing in accordance with the program. Also, the computer may sequentially execute processing in accordance with a program received from a server computer connected through a network each time the program is transferred from the server computer.
- Also, at least a part of the above-described processing functions may be achieved by an electronic circuit, such as a DSP, an ASIC, a PLD, or the like.
- All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Claims (9)
1. A storage control apparatus, comprising:
a processor configured to
detect a dependency relationship between a first data access and a second data access made after passage of a delay time from the first data access, the first data access being made to a first storage area in a first storage device, the second data access being made to a second storage area in the first storage device, and
transfer, when a current data access is made to the first storage area in a state in which the dependency relationship is detected, data in the second storage area to a second storage device before the delay time passes, the second storage device having a higher access speed than the first storage device.
2. The storage control apparatus according to claim 1 , wherein
the processor is configured to
detect a first time slot in which the first data access is made, the first time slot being one of contiguous time slots, each of the contiguous time slots having a first time span,
detect a second time slot in which the second data access is made, the second time slot being another one of the contiguous time slots,
count the delay time by the time slots each time the second data access is made, and
detect the dependency relationship on basis of a deviation of the delay time.
3. The storage control apparatus according to claim 2 , wherein
the first time span is larger than a time taken for transferring data in the second storage area.
4. The storage control apparatus according to claim 1 , wherein
the processor is configured to
transfer, if there are a plurality of candidates of data to be transferred, the plurality of candidates one by one in accordance with priorities set for the plurality of candidates.
5. The storage control apparatus according to claim 4 , wherein
the processor is configured to
set a higher priority for a first candidate among the plurality of candidates, the first candidate having a shorter remaining time until completion of data transfer.
6. The storage control apparatus according to claim 1 , wherein
each of the first storage area and the second storage area is a management unit produced by dividing a storage area in the first storage device into parts having a predetermined unit size.
7. The storage control apparatus according to claim 6 , wherein
the management unit is a unit of transferring data.
8. A storage system, comprising:
a first storage device;
a second storage device having a higher access speed than the first storage device; and
a storage control apparatus including:
a processor configured to
detect a dependency relationship between a first data access and a second data access made after passage of a delay time from the first data access, the first data access being made to a first storage area in the first storage device, the second data access being made to a second storage area in the first storage device, and
transfer, when a current data access is made to the first storage area in a state in which the dependency relationship is detected, data in the second storage area to the second storage device before the delay time passes.
9. A computer-readable recording medium having stored therein a program for causing a computer to execute a process, the process comprising:
detecting a dependency relationship between a first data access and a second data access made after passage of a delay time from the first data access, the first data access being made to a first storage area in a first storage device, the second data access being made to a second storage area in the first storage device; and
transferring, when a current data access is made to the first storage area in a state in which the dependency relationship is detected, data in the second storage area to a second storage device before the delay time passes, the second storage device having a higher access speed than the first storage device.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014092781A JP2015210718A (en) | 2014-04-28 | 2014-04-28 | Storage control device, storage system, and storage control program |
JP2014-092781 | 2014-04-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
US20150309923A1 true US20150309923A1 (en) | 2015-10-29 |
Family
ID=54334913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/629,847 Abandoned US20150309923A1 (en) | 2014-04-28 | 2015-02-24 | Storage control apparatus and storage system |
Country Status (2)
Country | Link |
---|---|
US (1) | US20150309923A1 (en) |
JP (1) | JP2015210718A (en) |
Cited By (76)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10102040B2 (en) | 2016-06-29 | 2018-10-16 | Amazon Technologies, Inc | Adjusting variable limit on concurrent code executions |
US10108443B2 (en) | 2014-09-30 | 2018-10-23 | Amazon Technologies, Inc. | Low latency computational capacity provisioning |
US10140137B2 (en) | 2014-09-30 | 2018-11-27 | Amazon Technologies, Inc. | Threading as a service |
US10162672B2 (en) | 2016-03-30 | 2018-12-25 | Amazon Technologies, Inc. | Generating data streams from pre-existing data sets |
US10162688B2 (en) | 2014-09-30 | 2018-12-25 | Amazon Technologies, Inc. | Processing event messages for user requests to execute program code |
US10203990B2 (en) | 2016-06-30 | 2019-02-12 | Amazon Technologies, Inc. | On-demand network code execution with cross-account aliases |
US10277708B2 (en) | 2016-06-30 | 2019-04-30 | Amazon Technologies, Inc. | On-demand network code execution with cross-account aliases |
US10282229B2 (en) | 2016-06-28 | 2019-05-07 | Amazon Technologies, Inc. | Asynchronous task management in an on-demand network code execution environment |
US10353678B1 (en) | 2018-02-05 | 2019-07-16 | Amazon Technologies, Inc. | Detecting code characteristic alterations due to cross-service calls |
US10353746B2 (en) | 2014-12-05 | 2019-07-16 | Amazon Technologies, Inc. | Automatic determination of resource sizing |
US10365985B2 (en) | 2015-12-16 | 2019-07-30 | Amazon Technologies, Inc. | Predictive management of on-demand code execution |
US10387177B2 (en) | 2015-02-04 | 2019-08-20 | Amazon Technologies, Inc. | Stateful virtual compute system |
US10437629B2 (en) | 2015-12-16 | 2019-10-08 | Amazon Technologies, Inc. | Pre-triggers for code execution environments |
US20190370408A1 (en) * | 2018-05-31 | 2019-12-05 | Microsoft Technology Licensing, Llc | Dataflow execution graph modification using intermediate graph |
US10528390B2 (en) | 2016-09-23 | 2020-01-07 | Amazon Technologies, Inc. | Idempotent task execution in on-demand network code execution systems |
US10552193B2 (en) | 2015-02-04 | 2020-02-04 | Amazon Technologies, Inc. | Security protocols for low latency execution of program code |
US10564946B1 (en) | 2017-12-13 | 2020-02-18 | Amazon Technologies, Inc. | Dependency handling in an on-demand network code execution system |
US10592269B2 (en) | 2014-09-30 | 2020-03-17 | Amazon Technologies, Inc. | Dynamic code deployment and versioning |
US10623476B2 (en) | 2015-04-08 | 2020-04-14 | Amazon Technologies, Inc. | Endpoint management system providing an application programming interface proxy service |
US10691498B2 (en) | 2015-12-21 | 2020-06-23 | Amazon Technologies, Inc. | Acquisition and maintenance of compute capacity |
US10725752B1 (en) | 2018-02-13 | 2020-07-28 | Amazon Technologies, Inc. | Dependency handling in an on-demand network code execution system |
US10733085B1 (en) | 2018-02-05 | 2020-08-04 | Amazon Technologies, Inc. | Detecting impedance mismatches due to cross-service calls |
US10754701B1 (en) | 2015-12-16 | 2020-08-25 | Amazon Technologies, Inc. | Executing user-defined code in response to determining that resources expected to be utilized comply with resource restrictions |
US10761737B2 (en) * | 2014-05-02 | 2020-09-01 | Marvell Asia Pte, Ltd. | Method and apparatus for caching data in an solid state disk (SSD) of a hybrid drive that includes the SSD and a hard disk drive (HDD) |
US10776171B2 (en) | 2015-04-08 | 2020-09-15 | Amazon Technologies, Inc. | Endpoint management system and virtual compute system |
US10776091B1 (en) | 2018-02-26 | 2020-09-15 | Amazon Technologies, Inc. | Logging endpoint in an on-demand code execution system |
US10824484B2 (en) | 2014-09-30 | 2020-11-03 | Amazon Technologies, Inc. | Event-driven computing |
US10831898B1 (en) | 2018-02-05 | 2020-11-10 | Amazon Technologies, Inc. | Detecting privilege escalations in code including cross-service calls |
US10884802B2 (en) | 2014-09-30 | 2021-01-05 | Amazon Technologies, Inc. | Message-based computation request scheduling |
US10884722B2 (en) | 2018-06-26 | 2021-01-05 | Amazon Technologies, Inc. | Cross-environment application of tracing information for improved code execution |
US10884812B2 (en) | 2018-12-13 | 2021-01-05 | Amazon Technologies, Inc. | Performance-based hardware emulation in an on-demand network code execution system |
US10884787B1 (en) | 2016-09-23 | 2021-01-05 | Amazon Technologies, Inc. | Execution guarantees in an on-demand network code execution system |
US10891145B2 (en) | 2016-03-30 | 2021-01-12 | Amazon Technologies, Inc. | Processing pre-existing data sets at an on demand code execution environment |
US10908927B1 (en) | 2019-09-27 | 2021-02-02 | Amazon Technologies, Inc. | On-demand execution of object filter code in output path of object storage service |
US10915371B2 (en) | 2014-09-30 | 2021-02-09 | Amazon Technologies, Inc. | Automatic management of low latency computational capacity |
US10942795B1 (en) | 2019-11-27 | 2021-03-09 | Amazon Technologies, Inc. | Serverless call distribution to utilize reserved capacity without inhibiting scaling |
US10949237B2 (en) | 2018-06-29 | 2021-03-16 | Amazon Technologies, Inc. | Operating system customization in an on-demand network code execution system |
EP3743801A4 (en) * | 2018-02-28 | 2021-03-24 | Micron Technology, Inc. | Multiple memory type memory module systems and methods |
US10996961B2 (en) | 2019-09-27 | 2021-05-04 | Amazon Technologies, Inc. | On-demand indexing of data in input path of object storage service |
US11010188B1 (en) | 2019-02-05 | 2021-05-18 | Amazon Technologies, Inc. | Simulated data object storage using on-demand computation of data objects |
US11016815B2 (en) | 2015-12-21 | 2021-05-25 | Amazon Technologies, Inc. | Code execution request routing |
US11023416B2 (en) | 2019-09-27 | 2021-06-01 | Amazon Technologies, Inc. | Data access control system for object storage service based on owner-defined code |
US11023311B2 (en) | 2019-09-27 | 2021-06-01 | Amazon Technologies, Inc. | On-demand code execution in input path of data uploaded to storage service in multiple data portions |
US11055112B2 (en) | 2019-09-27 | 2021-07-06 | Amazon Technologies, Inc. | Inserting executions of owner-specified code into input/output path of object storage service |
US11099917B2 (en) | 2018-09-27 | 2021-08-24 | Amazon Technologies, Inc. | Efficient state maintenance for execution environments in an on-demand code execution system |
US11099870B1 (en) | 2018-07-25 | 2021-08-24 | Amazon Technologies, Inc. | Reducing execution times in an on-demand network code execution system using saved machine states |
US11106477B2 (en) | 2019-09-27 | 2021-08-31 | Amazon Technologies, Inc. | Execution of owner-specified code during input/output path to object storage service |
US11115404B2 (en) | 2019-06-28 | 2021-09-07 | Amazon Technologies, Inc. | Facilitating service connections in serverless code executions |
US11119809B1 (en) | 2019-06-20 | 2021-09-14 | Amazon Technologies, Inc. | Virtualization-based transaction handling in an on-demand network code execution system |
US11119813B1 (en) | 2016-09-30 | 2021-09-14 | Amazon Technologies, Inc. | Mapreduce implementation using an on-demand network code execution system |
US11119826B2 (en) | 2019-11-27 | 2021-09-14 | Amazon Technologies, Inc. | Serverless call distribution to implement spillover while avoiding cold starts |
US11132213B1 (en) * | 2016-03-30 | 2021-09-28 | Amazon Technologies, Inc. | Dependency-based process of pre-existing data sets at an on demand code execution environment |
US11146569B1 (en) | 2018-06-28 | 2021-10-12 | Amazon Technologies, Inc. | Escalation-resistant secure network services using request-scoped authentication information |
US11159528B2 (en) | 2019-06-28 | 2021-10-26 | Amazon Technologies, Inc. | Authentication to network-services using hosted authentication information |
US11190609B2 (en) | 2019-06-28 | 2021-11-30 | Amazon Technologies, Inc. | Connection pooling for scalable network services |
US11188391B1 (en) | 2020-03-11 | 2021-11-30 | Amazon Technologies, Inc. | Allocating resources to on-demand code executions under scarcity conditions |
US11243953B2 (en) | 2018-09-27 | 2022-02-08 | Amazon Technologies, Inc. | Mapreduce implementation in an on-demand network code execution system and stream data processing system |
US11250007B1 (en) | 2019-09-27 | 2022-02-15 | Amazon Technologies, Inc. | On-demand execution of object combination code in output path of object storage service |
US11263220B2 (en) | 2019-09-27 | 2022-03-01 | Amazon Technologies, Inc. | On-demand execution of object transformation code in output path of object storage service |
US11308083B2 (en) * | 2019-04-19 | 2022-04-19 | International Business Machines Corporation | Automatic transformation of complex tables in documents into computer understandable structured format and managing dependencies |
US11360948B2 (en) | 2019-09-27 | 2022-06-14 | Amazon Technologies, Inc. | Inserting owner-specified data processing pipelines into input/output path of object storage service |
US11386230B2 (en) | 2019-09-27 | 2022-07-12 | Amazon Technologies, Inc. | On-demand code obfuscation of data in input path of object storage service |
US11388210B1 (en) | 2021-06-30 | 2022-07-12 | Amazon Technologies, Inc. | Streaming analytics using a serverless compute system |
US11394761B1 (en) | 2019-09-27 | 2022-07-19 | Amazon Technologies, Inc. | Execution of user-submitted code on a stream of data |
US11416628B2 (en) | 2019-09-27 | 2022-08-16 | Amazon Technologies, Inc. | User-specific data manipulation system for object storage service based on user-submitted code |
US11550713B1 (en) | 2020-11-25 | 2023-01-10 | Amazon Technologies, Inc. | Garbage collection in distributed systems using life cycled storage roots |
US11550944B2 (en) | 2019-09-27 | 2023-01-10 | Amazon Technologies, Inc. | Code execution environment customization system for object storage service |
US11593270B1 (en) | 2020-11-25 | 2023-02-28 | Amazon Technologies, Inc. | Fast distributed caching using erasure coded object parts |
US11656892B1 (en) | 2019-09-27 | 2023-05-23 | Amazon Technologies, Inc. | Sequential execution of user-submitted code and native functions |
US11714682B1 (en) | 2020-03-03 | 2023-08-01 | Amazon Technologies, Inc. | Reclaiming computing resources in an on-demand code execution system |
US11775640B1 (en) | 2020-03-30 | 2023-10-03 | Amazon Technologies, Inc. | Resource utilization-based malicious task detection in an on-demand code execution system |
US11861386B1 (en) | 2019-03-22 | 2024-01-02 | Amazon Technologies, Inc. | Application gateways in an on-demand network code execution system |
US11875173B2 (en) | 2018-06-25 | 2024-01-16 | Amazon Technologies, Inc. | Execution of auxiliary functions in an on-demand network code execution system |
US11943093B1 (en) | 2018-11-20 | 2024-03-26 | Amazon Technologies, Inc. | Network connection recovery after virtual machine transition in an on-demand network code execution system |
US11968280B1 (en) | 2021-11-24 | 2024-04-23 | Amazon Technologies, Inc. | Controlling ingestion of streaming data to serverless function executions |
US12015603B2 (en) | 2021-12-10 | 2024-06-18 | Amazon Technologies, Inc. | Multi-tenant mode for serverless code execution |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6564313B1 (en) * | 2001-12-20 | 2003-05-13 | Lsi Logic Corporation | System and method for efficient instruction prefetching based on loop periods |
US20040193858A1 (en) * | 2003-03-24 | 2004-09-30 | Infineon Technologies North America Corp. | Zero-overhead loop operation in microprocessor having instruction buffer |
US20100115211A1 (en) * | 2008-11-04 | 2010-05-06 | Gridlron Systems, Inc. | Behavioral monitoring of storage access patterns |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3468762B2 (en) * | 1988-09-30 | 2003-11-17 | 株式会社日立製作所 | Data loading method and apparatus |
JP3973597B2 (en) * | 2003-05-14 | 2007-09-12 | 株式会社ソニー・コンピュータエンタテインメント | Prefetch instruction control method, prefetch instruction control device, cache memory control device, object code generation method and device |
JP4404807B2 (en) * | 2005-05-25 | 2010-01-27 | エヌイーシーコンピュータテクノ株式会社 | Multiprocessor system, prefetch request control method used therefor, and program thereof |
JP2012064158A (en) * | 2010-09-17 | 2012-03-29 | Toshiba Corp | Memory management device and memory management method |
-
2014
- 2014-04-28 JP JP2014092781A patent/JP2015210718A/en active Pending
-
2015
- 2015-02-24 US US14/629,847 patent/US20150309923A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6564313B1 (en) * | 2001-12-20 | 2003-05-13 | Lsi Logic Corporation | System and method for efficient instruction prefetching based on loop periods |
US20040193858A1 (en) * | 2003-03-24 | 2004-09-30 | Infineon Technologies North America Corp. | Zero-overhead loop operation in microprocessor having instruction buffer |
US20100115211A1 (en) * | 2008-11-04 | 2010-05-06 | Gridlron Systems, Inc. | Behavioral monitoring of storage access patterns |
Cited By (93)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10761737B2 (en) * | 2014-05-02 | 2020-09-01 | Marvell Asia Pte, Ltd. | Method and apparatus for caching data in an solid state disk (SSD) of a hybrid drive that includes the SSD and a hard disk drive (HDD) |
US10824484B2 (en) | 2014-09-30 | 2020-11-03 | Amazon Technologies, Inc. | Event-driven computing |
US11263034B2 (en) | 2014-09-30 | 2022-03-01 | Amazon Technologies, Inc. | Low latency computational capacity provisioning |
US10956185B2 (en) | 2014-09-30 | 2021-03-23 | Amazon Technologies, Inc. | Threading as a service |
US10592269B2 (en) | 2014-09-30 | 2020-03-17 | Amazon Technologies, Inc. | Dynamic code deployment and versioning |
US10884802B2 (en) | 2014-09-30 | 2021-01-05 | Amazon Technologies, Inc. | Message-based computation request scheduling |
US11561811B2 (en) | 2014-09-30 | 2023-01-24 | Amazon Technologies, Inc. | Threading as a service |
US10915371B2 (en) | 2014-09-30 | 2021-02-09 | Amazon Technologies, Inc. | Automatic management of low latency computational capacity |
US10140137B2 (en) | 2014-09-30 | 2018-11-27 | Amazon Technologies, Inc. | Threading as a service |
US10108443B2 (en) | 2014-09-30 | 2018-10-23 | Amazon Technologies, Inc. | Low latency computational capacity provisioning |
US11467890B2 (en) | 2014-09-30 | 2022-10-11 | Amazon Technologies, Inc. | Processing event messages for user requests to execute program code |
US10162688B2 (en) | 2014-09-30 | 2018-12-25 | Amazon Technologies, Inc. | Processing event messages for user requests to execute program code |
US11126469B2 (en) | 2014-12-05 | 2021-09-21 | Amazon Technologies, Inc. | Automatic determination of resource sizing |
US10353746B2 (en) | 2014-12-05 | 2019-07-16 | Amazon Technologies, Inc. | Automatic determination of resource sizing |
US11461124B2 (en) | 2015-02-04 | 2022-10-04 | Amazon Technologies, Inc. | Security protocols for low latency execution of program code |
US11360793B2 (en) | 2015-02-04 | 2022-06-14 | Amazon Technologies, Inc. | Stateful virtual compute system |
US10552193B2 (en) | 2015-02-04 | 2020-02-04 | Amazon Technologies, Inc. | Security protocols for low latency execution of program code |
US10853112B2 (en) | 2015-02-04 | 2020-12-01 | Amazon Technologies, Inc. | Stateful virtual compute system |
US10387177B2 (en) | 2015-02-04 | 2019-08-20 | Amazon Technologies, Inc. | Stateful virtual compute system |
US10623476B2 (en) | 2015-04-08 | 2020-04-14 | Amazon Technologies, Inc. | Endpoint management system providing an application programming interface proxy service |
US10776171B2 (en) | 2015-04-08 | 2020-09-15 | Amazon Technologies, Inc. | Endpoint management system and virtual compute system |
US10365985B2 (en) | 2015-12-16 | 2019-07-30 | Amazon Technologies, Inc. | Predictive management of on-demand code execution |
US10437629B2 (en) | 2015-12-16 | 2019-10-08 | Amazon Technologies, Inc. | Pre-triggers for code execution environments |
US10754701B1 (en) | 2015-12-16 | 2020-08-25 | Amazon Technologies, Inc. | Executing user-defined code in response to determining that resources expected to be utilized comply with resource restrictions |
US11016815B2 (en) | 2015-12-21 | 2021-05-25 | Amazon Technologies, Inc. | Code execution request routing |
US10691498B2 (en) | 2015-12-21 | 2020-06-23 | Amazon Technologies, Inc. | Acquisition and maintenance of compute capacity |
US11243819B1 (en) | 2015-12-21 | 2022-02-08 | Amazon Technologies, Inc. | Acquisition and maintenance of compute capacity |
US11132213B1 (en) * | 2016-03-30 | 2021-09-28 | Amazon Technologies, Inc. | Dependency-based process of pre-existing data sets at an on demand code execution environment |
US10891145B2 (en) | 2016-03-30 | 2021-01-12 | Amazon Technologies, Inc. | Processing pre-existing data sets at an on demand code execution environment |
US10162672B2 (en) | 2016-03-30 | 2018-12-25 | Amazon Technologies, Inc. | Generating data streams from pre-existing data sets |
US10282229B2 (en) | 2016-06-28 | 2019-05-07 | Amazon Technologies, Inc. | Asynchronous task management in an on-demand network code execution environment |
US11354169B2 (en) | 2016-06-29 | 2022-06-07 | Amazon Technologies, Inc. | Adjusting variable limit on concurrent code executions |
US10102040B2 (en) | 2016-06-29 | 2018-10-16 | Amazon Technologies, Inc | Adjusting variable limit on concurrent code executions |
US10402231B2 (en) | 2016-06-29 | 2019-09-03 | Amazon Technologies, Inc. | Adjusting variable limit on concurrent code executions |
US10277708B2 (en) | 2016-06-30 | 2019-04-30 | Amazon Technologies, Inc. | On-demand network code execution with cross-account aliases |
US10203990B2 (en) | 2016-06-30 | 2019-02-12 | Amazon Technologies, Inc. | On-demand network code execution with cross-account aliases |
US10884787B1 (en) | 2016-09-23 | 2021-01-05 | Amazon Technologies, Inc. | Execution guarantees in an on-demand network code execution system |
US10528390B2 (en) | 2016-09-23 | 2020-01-07 | Amazon Technologies, Inc. | Idempotent task execution in on-demand network code execution systems |
US11119813B1 (en) | 2016-09-30 | 2021-09-14 | Amazon Technologies, Inc. | Mapreduce implementation using an on-demand network code execution system |
US10564946B1 (en) | 2017-12-13 | 2020-02-18 | Amazon Technologies, Inc. | Dependency handling in an on-demand network code execution system |
US10353678B1 (en) | 2018-02-05 | 2019-07-16 | Amazon Technologies, Inc. | Detecting code characteristic alterations due to cross-service calls |
US10831898B1 (en) | 2018-02-05 | 2020-11-10 | Amazon Technologies, Inc. | Detecting privilege escalations in code including cross-service calls |
US10733085B1 (en) | 2018-02-05 | 2020-08-04 | Amazon Technologies, Inc. | Detecting impedance mismatches due to cross-service calls |
US10725752B1 (en) | 2018-02-13 | 2020-07-28 | Amazon Technologies, Inc. | Dependency handling in an on-demand network code execution system |
US10776091B1 (en) | 2018-02-26 | 2020-09-15 | Amazon Technologies, Inc. | Logging endpoint in an on-demand code execution system |
US11003596B2 (en) | 2018-02-28 | 2021-05-11 | Micron Technology, Inc. | Multiple memory type memory module systems and methods |
US11734198B2 (en) | 2018-02-28 | 2023-08-22 | Micron Technology, Inc. | Multiple memory type memory module systems and methods |
EP3743801A4 (en) * | 2018-02-28 | 2021-03-24 | Micron Technology, Inc. | Multiple memory type memory module systems and methods |
US11461246B2 (en) | 2018-02-28 | 2022-10-04 | Micron Technology, Inc. | Multiple memory type memory module systems and methods |
US20190370408A1 (en) * | 2018-05-31 | 2019-12-05 | Microsoft Technology Licensing, Llc | Dataflow execution graph modification using intermediate graph |
US11875173B2 (en) | 2018-06-25 | 2024-01-16 | Amazon Technologies, Inc. | Execution of auxiliary functions in an on-demand network code execution system |
US10884722B2 (en) | 2018-06-26 | 2021-01-05 | Amazon Technologies, Inc. | Cross-environment application of tracing information for improved code execution |
US11146569B1 (en) | 2018-06-28 | 2021-10-12 | Amazon Technologies, Inc. | Escalation-resistant secure network services using request-scoped authentication information |
US10949237B2 (en) | 2018-06-29 | 2021-03-16 | Amazon Technologies, Inc. | Operating system customization in an on-demand network code execution system |
US11836516B2 (en) | 2018-07-25 | 2023-12-05 | Amazon Technologies, Inc. | Reducing execution times in an on-demand network code execution system using saved machine states |
US11099870B1 (en) | 2018-07-25 | 2021-08-24 | Amazon Technologies, Inc. | Reducing execution times in an on-demand network code execution system using saved machine states |
US11099917B2 (en) | 2018-09-27 | 2021-08-24 | Amazon Technologies, Inc. | Efficient state maintenance for execution environments in an on-demand code execution system |
US11243953B2 (en) | 2018-09-27 | 2022-02-08 | Amazon Technologies, Inc. | Mapreduce implementation in an on-demand network code execution system and stream data processing system |
US11943093B1 (en) | 2018-11-20 | 2024-03-26 | Amazon Technologies, Inc. | Network connection recovery after virtual machine transition in an on-demand network code execution system |
US10884812B2 (en) | 2018-12-13 | 2021-01-05 | Amazon Technologies, Inc. | Performance-based hardware emulation in an on-demand network code execution system |
US11010188B1 (en) | 2019-02-05 | 2021-05-18 | Amazon Technologies, Inc. | Simulated data object storage using on-demand computation of data objects |
US11861386B1 (en) | 2019-03-22 | 2024-01-02 | Amazon Technologies, Inc. | Application gateways in an on-demand network code execution system |
US11308083B2 (en) * | 2019-04-19 | 2022-04-19 | International Business Machines Corporation | Automatic transformation of complex tables in documents into computer understandable structured format and managing dependencies |
US11714675B2 (en) | 2019-06-20 | 2023-08-01 | Amazon Technologies, Inc. | Virtualization-based transaction handling in an on-demand network code execution system |
US11119809B1 (en) | 2019-06-20 | 2021-09-14 | Amazon Technologies, Inc. | Virtualization-based transaction handling in an on-demand network code execution system |
US11115404B2 (en) | 2019-06-28 | 2021-09-07 | Amazon Technologies, Inc. | Facilitating service connections in serverless code executions |
US11190609B2 (en) | 2019-06-28 | 2021-11-30 | Amazon Technologies, Inc. | Connection pooling for scalable network services |
US11159528B2 (en) | 2019-06-28 | 2021-10-26 | Amazon Technologies, Inc. | Authentication to network-services using hosted authentication information |
US11023311B2 (en) | 2019-09-27 | 2021-06-01 | Amazon Technologies, Inc. | On-demand code execution in input path of data uploaded to storage service in multiple data portions |
US11656892B1 (en) | 2019-09-27 | 2023-05-23 | Amazon Technologies, Inc. | Sequential execution of user-submitted code and native functions |
US11386230B2 (en) | 2019-09-27 | 2022-07-12 | Amazon Technologies, Inc. | On-demand code obfuscation of data in input path of object storage service |
US10908927B1 (en) | 2019-09-27 | 2021-02-02 | Amazon Technologies, Inc. | On-demand execution of object filter code in output path of object storage service |
US11394761B1 (en) | 2019-09-27 | 2022-07-19 | Amazon Technologies, Inc. | Execution of user-submitted code on a stream of data |
US11416628B2 (en) | 2019-09-27 | 2022-08-16 | Amazon Technologies, Inc. | User-specific data manipulation system for object storage service based on user-submitted code |
US11263220B2 (en) | 2019-09-27 | 2022-03-01 | Amazon Technologies, Inc. | On-demand execution of object transformation code in output path of object storage service |
US11250007B1 (en) | 2019-09-27 | 2022-02-15 | Amazon Technologies, Inc. | On-demand execution of object combination code in output path of object storage service |
US11860879B2 (en) | 2019-09-27 | 2024-01-02 | Amazon Technologies, Inc. | On-demand execution of object transformation code in output path of object storage service |
US10996961B2 (en) | 2019-09-27 | 2021-05-04 | Amazon Technologies, Inc. | On-demand indexing of data in input path of object storage service |
US11550944B2 (en) | 2019-09-27 | 2023-01-10 | Amazon Technologies, Inc. | Code execution environment customization system for object storage service |
US11023416B2 (en) | 2019-09-27 | 2021-06-01 | Amazon Technologies, Inc. | Data access control system for object storage service based on owner-defined code |
US11055112B2 (en) | 2019-09-27 | 2021-07-06 | Amazon Technologies, Inc. | Inserting executions of owner-specified code into input/output path of object storage service |
US11360948B2 (en) | 2019-09-27 | 2022-06-14 | Amazon Technologies, Inc. | Inserting owner-specified data processing pipelines into input/output path of object storage service |
US11106477B2 (en) | 2019-09-27 | 2021-08-31 | Amazon Technologies, Inc. | Execution of owner-specified code during input/output path to object storage service |
US11119826B2 (en) | 2019-11-27 | 2021-09-14 | Amazon Technologies, Inc. | Serverless call distribution to implement spillover while avoiding cold starts |
US10942795B1 (en) | 2019-11-27 | 2021-03-09 | Amazon Technologies, Inc. | Serverless call distribution to utilize reserved capacity without inhibiting scaling |
US11714682B1 (en) | 2020-03-03 | 2023-08-01 | Amazon Technologies, Inc. | Reclaiming computing resources in an on-demand code execution system |
US11188391B1 (en) | 2020-03-11 | 2021-11-30 | Amazon Technologies, Inc. | Allocating resources to on-demand code executions under scarcity conditions |
US11775640B1 (en) | 2020-03-30 | 2023-10-03 | Amazon Technologies, Inc. | Resource utilization-based malicious task detection in an on-demand code execution system |
US11593270B1 (en) | 2020-11-25 | 2023-02-28 | Amazon Technologies, Inc. | Fast distributed caching using erasure coded object parts |
US11550713B1 (en) | 2020-11-25 | 2023-01-10 | Amazon Technologies, Inc. | Garbage collection in distributed systems using life cycled storage roots |
US11388210B1 (en) | 2021-06-30 | 2022-07-12 | Amazon Technologies, Inc. | Streaming analytics using a serverless compute system |
US11968280B1 (en) | 2021-11-24 | 2024-04-23 | Amazon Technologies, Inc. | Controlling ingestion of streaming data to serverless function executions |
US12015603B2 (en) | 2021-12-10 | 2024-06-18 | Amazon Technologies, Inc. | Multi-tenant mode for serverless code execution |
Also Published As
Publication number | Publication date |
---|---|
JP2015210718A (en) | 2015-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20150309923A1 (en) | Storage control apparatus and storage system | |
US9977620B2 (en) | Storage device and storage system | |
US9665485B2 (en) | Logical and physical block addressing for efficiently storing data to improve access speed in a data deduplication system | |
CN107729558B (en) | Method, system and device for defragmenting file system and computer storage medium | |
US9563552B2 (en) | Storage control device and storage control method | |
KR101933766B1 (en) | Methods and systems for improving flash memory flushing | |
JP2018005446A (en) | Information processing apparatus, storage control program, and storage control method | |
US10095439B2 (en) | Tiered storage system, storage controller and data location estimation method | |
WO2017166815A1 (en) | Data updating method and device for a distributed database system | |
US10048866B2 (en) | Storage control apparatus and storage control method | |
US11169968B2 (en) | Region-integrated data deduplication implementing a multi-lifetime duplicate finder | |
US20140351628A1 (en) | Information processing device, control circuit, computer-readable recording medium for control program, and control method | |
JP2018073261A (en) | Information processing apparatus, information processing program, and information processing method | |
US10007436B2 (en) | Storage control apparatus and control method of storage control apparatus | |
US20140229496A1 (en) | Information processing device, information processing method, and computer program product | |
US9836222B2 (en) | Storage apparatus, storage control method, and storage system | |
US20180181307A1 (en) | Information processing device, control device and method | |
JP2020046929A (en) | Information processor and information processing program | |
CN111399765B (en) | Data processing method and device, electronic equipment and readable storage medium | |
US20170329553A1 (en) | Storage control device, storage system, and computer-readable recording medium | |
US10585592B2 (en) | Disk area isolation method and device | |
US11803469B2 (en) | Storing data in a log-structured format in a two-tier storage system | |
US8688916B2 (en) | Storage system and data processing method using cache memory | |
US20230418798A1 (en) | Information processing apparatus and information processing method | |
KR20170103403A (en) | Apparatus and method for processing big data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: FUJITSU LIMITED, JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:IWATA, SATOSHI;KAWABA, MOTOYUKI;SIGNING DATES FROM 20150129 TO 20150130;REEL/FRAME:035018/0146 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |