WO2016157417A1 - データ配置プログラム、データ配置装置、及びデータ配置方法 - Google Patents

データ配置プログラム、データ配置装置、及びデータ配置方法 Download PDF

Info

Publication number
WO2016157417A1
WO2016157417A1 PCT/JP2015/060158 JP2015060158W WO2016157417A1 WO 2016157417 A1 WO2016157417 A1 WO 2016157417A1 JP 2015060158 W JP2015060158 W JP 2015060158W WO 2016157417 A1 WO2016157417 A1 WO 2016157417A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
relevance
segment
degree
information
Prior art date
Application number
PCT/JP2015/060158
Other languages
English (en)
French (fr)
Inventor
村田美穂
佐伯敏章
今村信貴
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to PCT/JP2015/060158 priority Critical patent/WO2016157417A1/ja
Publication of WO2016157417A1 publication Critical patent/WO2016157417A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Definitions

  • This specification relates to a data arrangement program, a data arrangement apparatus, and a data arrangement method.
  • Data storage system stores a large amount of data in a storage such as a disk. Since a low-speed storage device such as a disk has a low processing capacity (throughput) per unit time, a cache technology is used.
  • the cache technology is a technology that uses a memory to shorten the processing time when a control device with a high processing speed reads data from a low-speed storage device faster.
  • the control device reads data from the low-speed storage device
  • the data can be read from the memory that is read and written faster than the low-speed storage device from the next time by temporarily holding the read data in the memory.
  • cache technology there is a technology (hereinafter referred to as “data rearrangement technology”) that collects related data in the same segment and rearranges the data based on the access history (for example, patents). Reference 1).
  • FIG. 1 is a diagram for explaining the degree of association and data arrangement for each data pair by the data rearrangement technique.
  • the frequency of access (relevance information) is recorded for each data pair from the data access history (history of what data was accessed in what order) for each data pair.
  • a data pair refers to two data that are accessed consecutively.
  • the data accessed now is paired with the data accessed immediately before, and the frequency of occurrence of the pair is recorded.
  • the data pair and its access frequency are A ⁇ B (twice), B ⁇ C (once), C ⁇ A, as shown in FIG. (2 times), B ⁇ D (1 time), D ⁇ E (1 time), E ⁇ C (1 time). Pairs with high access frequency are considered highly related.
  • these data When these data are arranged in two segments, they are divided into a group of data A, B, and C and a group of data D and E as shown in FIG. Based on this group, data A, B, C, D, and E are rearranged for each segment. The division is performed so that the degree of association across the two segments is small and the number of data belonging to each segment is substantially equal.
  • the segment is a set of data that is recognized to be related, and is the minimum unit of reading and writing on the disk.
  • the segment to which the data belongs may be read from the disk to the cache, and other data belonging to the segment may be requested continuously. is there. As a result, the cache hit rate may increase.
  • the demerit due to the increase in cost due to the large segment size increases rather than the merit of placing highly relevant data based on the relationship for a certain period in the same segment.
  • the cache hit rate is still likely to be low because the segments are in the middle of growth where related data are not sufficiently collected.
  • the cache hit rate is likely to be high to some extent.
  • the data arrangement program causes a computer to execute the following process.
  • the computer monitors the degree of association between data based on the frequency of access to the pair during the monitoring period for each pair of data that is continuously accessed by an access request to the storage device.
  • the storage device stores a plurality of segments, which are data groups grouped according to the relevance between the data.
  • the computer generates relevance evaluation information, which is the relevance level in the monitoring period, based on the trend information indicating the size trends of the plurality of segments stored in the storage device and the relevance level monitored.
  • the computer groups the data based on the relevance evaluation information, and specifies the arrangement target data for each group.
  • FIG. 2 shows (A) an example of data arrangement based on the relation between actual data and (B) data between the data by the data rearrangement technique when the relation changes greatly during the accumulation period of the relation information.
  • An example of data arrangement based on relevance is shown.
  • data rearrangement is not performed within the accumulation period of relevance information.
  • FIG. 2A shows an example of data arrangement based on the relationship between actual data.
  • the data A, B, C, and D are arranged in a segment including the data A and C and a segment including the data B and C at the time t0.
  • the rearrangement timing is time t1.
  • FIG. 2B shows an example of data arrangement based on the relevance by the data rearrangement technique. As an example, it is assumed that the data A, B, C, and D are arranged in a segment including the data A and C and a segment including the data B and C at the time t0.
  • the relevance information is accumulated only at the interval of time t1, and therefore, it is not possible to monitor the variation in the relevance between the data between times t0 and t1.
  • a cumulative value of the number of accesses in which the relevant data is accessed is held.
  • FIG. 2 (B) the relationship (cumulative value) between the data A and B has increased by the time t1, so the data A is also at the time t1. , B are determined to be strongly related. As a result, by executing the rearrangement, the segment including the data A, B, and C and the segment including the data D are allocated.
  • the cache hit rate may increase (merit). That is, when there is a request for certain data, the segment to which the data belongs is read from the disk to the cache, and other data belonging to the segment may be requested continuously. As a result, the cache hit rate may increase.
  • the cache hit rate is still likely to be low because the segments are in the middle of growth where related data are not sufficiently collected.
  • the cache hit rate is likely to be high to some extent.
  • FIG. 3 shows an example of a data arrangement device in the present embodiment.
  • the data arrangement device 1 includes a monitoring unit 2, a generation unit 3, and a specification unit 4.
  • the monitoring unit 2 monitors the degree of association between data based on the frequency of access to the pair during the monitoring period for each pair of data that is continuously accessed by an access request to the storage device.
  • the storage unit stores a plurality of segments that are data groups grouped according to the relevance between the data. More specifically, the monitoring unit 2 continuously monitors the degree of association during the monitoring period.
  • An example of the monitoring unit 2 is a relevance extraction unit 22 described later.
  • the generating unit 3 generates relevance evaluation information, which is a relevance level in the monitoring period, based on the trend information indicating the size trends of the plurality of segments stored in the storage device and the relevance level monitored.
  • An example of the generation unit 3 is a relevance level determination unit 23.
  • the identifying unit 4 groups the data based on the relevance evaluation information, and identifies the arrangement target data for each group.
  • An example of the specifying unit 4 is an arrangement determining unit 24.
  • the generation unit 4 uses a weight that decreases with time.
  • the generation unit 4 increases the degree of weight reduction when the trend information is equal to or greater than the threshold, and decreases the degree of weight decrease when the trend information is equal to or greater than the threshold.
  • the relevance information can be adjusted according to the trend of the entire segment, that is, the growth status of the segment. That is, the degree of weight reduction can be adjusted according to the segment tendency. Therefore, by increasing the degree of weight reduction during the maturity period of segment growth, it is possible to generate relevance evaluation information as the final relevance level using the relevance level between the data of the most recent data pairs. As a result, an increase in the size of the segment can be suppressed, and deterioration in the segment reading performance can be suppressed.
  • the generation unit 4 multiplies each degree of association monitored intermittently in the monitoring period by a weight, and the weight decreases the weight exponentially as the degree of association monitored in the past.
  • the degree of weight reduction is determined by a smoothing coefficient based on trend information.
  • the weight of the degree of association between the data of the most recent data pair is the heaviest, and the weight of the association between the data of the past data pairs can be reduced. Thereby, it is possible to calculate the final relevance level in the monitoring period by placing importance on the tendency of the relevance level between the most recent data.
  • FIG. 4 shows an example of an information processing system in the present embodiment.
  • a server device hereinafter referred to as “server”
  • client 15 is connected to a client 15, which is an example of an information processing device, via a communication network (hereinafter referred to as “network”) 16.
  • the client 15 makes an access request (hereinafter referred to as “request”) such as data reading or writing to the server 11.
  • the server 11 includes a control device 12, a memory device (hereinafter referred to as “memory”) 13, and a storage device (disk) 14.
  • the control device 12 is a processor such as a central processing unit (CPU).
  • the storage device 14 is a disk device such as a hard disk drive (HDD). Hereinafter, the storage device 14 is referred to as a disk 14.
  • HDD hard disk drive
  • the memory 13 is a storage device that can be accessed at a higher speed than the disk 14. Examples of the memory 13 include a RAM (Random Access Memory), a flash memory, and the like.
  • the server 11 includes a ROM storing a BIOS (Basic Input / Output System), a program memory, and the like.
  • BIOS Basic Input / Output System
  • the program executed by the control device 12 may be acquired via the network 16, or may be acquired by mounting a computer-readable portable recording medium such as a portable memory or a CD-ROM on the server 11. Also good.
  • the program executed by the control device 12 includes a program that executes processing described in the present embodiment.
  • FIG. 5 is a diagram for explaining the relationship between the accumulation period T and the sub-period Ts in the present embodiment.
  • the accumulation period T is divided into a plurality of sub periods Ts. For each sub-period Ts, the number of times each data pair is accessed is measured. After the accumulation period T elapses, data rearrangement is performed.
  • FIG. 6 is a diagram for explaining a segment tendency in the present embodiment.
  • the control device 12 starts from 1 segment 1 data and collects related data together.
  • the period during the growth of the segment (the first half) is a period during which the segment should be formed using the relevance information widely.
  • some segments are large in size, but there are also small sized segments. Therefore, it can be said that the segment average size is small in the mid-term.
  • the period during which many segment sizes are large is a period in which segments should be formed using the most relevant relevance information.
  • the segment average size is large.
  • FIG. 7 shows an example of a server in this embodiment.
  • the server 11 includes the control device 12, the memory 13, and the disk 14.
  • the memory 13 includes an area (hereinafter, referred to as “cache area”) 13 a that caches a plurality of segments read from the disk 14 and temporarily stores them.
  • cache area 13 a that caches a plurality of segments read from the disk 14 and temporarily stores them.
  • any segment is extracted from the cache area 13a using an algorithm such as the least recently used (LRU) method or the least recently used (LFU) method and written back to the disk 14. It is.
  • LRU least recently used
  • LFU least recently used
  • the memory 13 holds a data management table 31, a relationship management table 32, and an average segment size 33 in an area other than the cache area 13a.
  • the data management table 31 stores information indicating a correspondence relationship between data, a segment where the data is arranged, and a data size.
  • the relevancy management table 32 stores the number of accesses to each data pair (access frequency (relevance)), that is, relevance information for each predetermined time interval.
  • the control device 12 functions as the input / output management unit 21, the relevance extraction unit 22, the relevance determination unit 23, the arrangement determination unit 24, and the segment size calculation unit 25 by executing the program according to the present embodiment.
  • the input / output management unit 21 searches the memory 13 in response to a request input from a request source such as the client 15, and if there is no data specified by the request in the memory 13, further searches the disk 14 and specifies the request. Send the data to the requester.
  • the request is not only transmitted by the client 15, but a process or other subject executed in the server 11 may be the issuer of the request. Further, when the input / output device is connected to the server 11, it is assumed that the user inputs a request to the input / output device.
  • the input / output management unit 21 When a request is input, the input / output management unit 21 first searches the memory 13 for data specified by the request. When the data specified by the request exists on the memory 13, the input / output management unit 21 reads the data from the memory 13 and returns it to the request source.
  • the input / output management unit 21 searches the disk 14 for the data specified by the request.
  • the input / output management unit 21 uses the data management table 31 to read all data included in the segment to which the data specified by the request belongs from the disk 14. .
  • the input / output management unit 21 returns the data specified by the request among all the data included in the read segment to the request source. At this time, the input / output management unit 21 stores all data included in the read segment in the memory 13.
  • the input / output management unit 21 has described the case where the process of storing all the data included in the segment read from the disk 14 in the memory 13 is performed at the timing of the request, but is not limited thereto.
  • the input / output management unit 21 may acquire an access frequency for a certain period, read a segment having a high access frequency from the disk 14 with priority, and store it in the memory 13.
  • the relevance extraction unit 22 accumulates relevance information for each data pair in the relevance management table 32 each time a request arrives, thereby making it based on the access frequency to the data pair at predetermined time (sub-period) intervals. Monitor the degree of association between data. More specifically, the relevance extraction unit 22 extracts data pairs that are continuously accessed from the access sequence at sub time intervals, and sets the access frequency (relevance) of the data pairs in the relevance management table 32. , “+1” is added.
  • the relevance determining unit 23 determines the final relevance for each data pair by applying a weight that decreases with time to the relevance for each sub-period of the data pair.
  • the arrangement determining unit 24 groups data based on the determined relevance, and determines the data arrangement by specifying the arrangement target data for each group (segment).
  • the arrangement determining unit 24 performs data relocation processing for reorganizing data belonging to a segment when there is a change in the configuration of data belonging to the segment according to the result of the relocation determination. That is, the arrangement determining unit 24 updates the correspondence information between the data and the segment held in the data management table 31. Then, the arrangement determining unit 24 clears the contents of the relationship management table 32.
  • the segment size calculation unit 25 refers to the data management table 31 when the relevance information for each data pair is accumulated in the relevance management table 32, and monitors the trend of the size (segment size) for each segment. That is, the segment size calculation unit 25 calculates the total data size (segment size) for each segment from the data management table 31, and calculates the segment average size 33 from the sizes of all segments.
  • the segment size calculation unit 25 stores the calculated segment average size 33 in a predetermined area in the memory 13.
  • FIG. 8 shows an example of a data management table in the present embodiment.
  • the data names (or keys) of all data stored in the memory 13 and the disk 14, the segment names corresponding to the data names, and the sizes of the data are stored in association with each other. .
  • FIG. 9 shows an example of an association management table in the present embodiment.
  • the relevancy management table 43 sequentially associates the data specified in the previous request for each data specified in the request to form a data pair, and the number of accesses to each data pair (per unit time) ( Strength of relevance), that is, relevance information is stored.
  • the number of accesses (relevance) to the data pair (AB) is four.
  • the number of accesses (relevance) to the data pair (BD) is two.
  • the number of accesses (relevance) to the data pair (DA) is one.
  • the number of accesses (relevance) to the data pair (CA) is three.
  • the number of accesses (relevance) to the data pair (CE) is one.
  • FIG. 10 shows the overall processing flow in this embodiment.
  • the control device 12 performs a monitoring process (S1). Specifically, the control device 12 accumulates relevance information between the data (frequency with which the pair is accessed continuously / simultaneously) for each accessed data pair for a certain period (accumulation period). As described with reference to FIG. 5, the relevance extraction unit 22 divides the accumulation period T into finer sub-periods (T1, T2,..., Tn), and the degree of relevance of the sub-period is determined for each sub-period. Record the cumulative value.
  • the segment size calculation unit 25 monitors and records information indicating the tendency of all segments in the managed storage device, that is, the segment average size described in FIG.
  • the relevance determination unit 23 obtains relevance (representing relevance between data) from the cumulative value of relevance for each sub-period and information indicating the trends of all segments. Relevance evaluation information evaluated according to the situation is generated (S2). The relevance evaluation information indicates the final relevance level for each data pair in the accumulation period T.
  • the relevance evaluation information is obtained by multiplying the relevance information by a weight that attenuates over time (older relevance information is reduced in weight).
  • “how to change the weight” is also adjusted in accordance with the degree of growth of the segment (how to reduce the “weight” can be changed according to the tendency of all segments).
  • the method of decreasing “weight” is determined according to the trend of all segments. For example, when an exponential weighted moving average method is used, a smoothing coefficient is determined. In addition, when the weighted moving average method is used, the inclination is determined.
  • the relevance determining unit 23 uses the function of “weight” determined as described above, weights the relevance information for each sub-period, and generates relevance evaluation information. This will be described with reference to FIG.
  • the placement determination unit 24 rearranges the data using the relevance evaluation information (S3). After the data rearrangement at S3, the control device 12 clears all the related information accumulated so far (S4).
  • FIG. 11 is a diagram for explaining the generation of relevance evaluation information in the present embodiment.
  • the relevance management table 32 the relevance obtained by weighting the relevance for each sub-period sequentially from the most recent sub-period (index-weighted moving average) is used as the relevance for each data pair. Sex evaluation information (final relevance).
  • the length of the accumulation period is T and the length of the sub-period is Ts.
  • the weights of the sub-periods Ts_k are determined as follows.
  • the weight of the last sub-period is set to N, and as shown in FIG. 11A, the weight is decreased exponentially as the previous sub-period is reached.
  • the degree of association determination unit 23 sets the final degree of association REL between the data pairs XY in the accumulation period T as Find using.
  • REL XY ⁇ ⁇ (P N + (1 ⁇ ) P N ⁇ 1 + (1 ⁇ 2 ) P N ⁇ 2 +...) ⁇ : smoothing coefficient (0 to 1). The weight decreases rapidly as the value of ⁇ increases.
  • is set to a small value in order to actively perform rearrangement.
  • new information is emphasized and old information is considered to some extent.
  • is set larger in order to suppress rearrangement. In this case, new information is emphasized and old information is not considered much.
  • the method for determining the smoothing coefficient ⁇ will be described in detail.
  • An initial value of the smoothing coefficient ⁇ is determined.
  • the segment size calculator 25 monitors the average segment size of the entire system based on the data management table 31 and stores it in a predetermined area of the memory 13.
  • the relevance determination unit 23 increases ⁇ by ⁇ (predetermined) from the current value. Increasing ⁇ means that the weight of old information becomes smaller.
  • the relevance determining unit 23 reduces ⁇ by ⁇ from the current value.
  • the weight is reduced to N-1, N-2, N-3,..., And the segment average size is equal to or greater than the predetermined threshold.
  • the weight N may be reduced to N-3, N-6, N-9,. However, if the reduced weight is less than 0, it is treated as 0 weight.
  • FIG. 12 shows an example of a flow from request arrival to arrangement determination in the present embodiment.
  • the control device 12 functions as the input / output management unit 21, the relevance extraction unit 22, the relevance determination unit 23, the arrangement determination unit 24, and the segment size calculation unit 25 by executing the program according to the present embodiment. .
  • the input / output management unit 21 reads (accesses) the data designated by the request input from the request source from the memory 13 or the disk 14 and transmits the data to the request source (S11). At this time, if the data specified by the request does not exist in the memory 13, the input / output management unit 21 uses the data management table 31 to read all data of the segment to which the data specified by the request belongs from the disk 14. Then, the input / output management unit 21 transmits the data specified by the request among all the data of the read segment to the request source.
  • the relevance extraction unit 22 updates information on the sub-period Ts_k in the relevancy management table 32 (S12). Specifically, the relevance extraction unit 22 records relevance information of the data pairs accessed continuously in the relevance management table 32 within the sub-period Ts_k (the number of accesses is incremented by +1).
  • the segment size calculation unit 25 calculates the average segment size in the data management table 31 and stores it in a predetermined area of the memory 13.
  • the relevance extraction unit 22 repeats the processes of S11 to S12 (“YES” in S13).
  • the relevance determination unit 23 calculates a smoothing coefficient ⁇ based on the segment average size (S15). S15 will be described in detail with reference to FIG.
  • the relevance determination unit 23 calculates relevance evaluation information for each data pair from the relevance information in the relevance management table 32 (S16).
  • the relevance extraction unit 22 weights the relevance level for each sub-period sequentially from the latest sub-period in the relevance management table 32 (index-weighted moving average). Relevance evaluation information for each data pair is calculated from the degree of relevance obtained.
  • the arrangement determining unit 24 After calculating the relevance evaluation information for each data pair, the arrangement determining unit 24 forms a graph structure of the relevance evaluation information for each data pair as described with reference to FIG. And the arrangement
  • the arrangement determining unit 24 determines whether or not it is necessary to change the data arrangement, that is, to reorganize the segments, based on the determined data arrangement for each segment (S18). Here, if there is a change in the data configuration for each segment determined in S17 and the data configuration for each segment registered in the data management table 31, the arrangement determination unit 24 needs to change the data arrangement. It is determined that
  • the arrangement determining unit 24 determines that the rearrangement is unnecessary. Also, depending on the method for determining the arrangement, the arrangement may not be made unless the data to be rearranged is on the cache. In this case, if the target data is not on the cache, the arrangement determining unit 24 determines that the rearrangement is unnecessary.
  • the arrangement determining unit 24 performs the process of S21.
  • the arrangement determining unit 24 performs the following process. That is, the arrangement determining unit 24 changes the association between the data and the segment based on the segment reconstruction result in S17 (S19).
  • the arrangement determining unit 24 updates the data management table 31 based on the correspondence between the changed data and the segment (S20).
  • the arrangement determining unit 24 clears the segment average size stored in the memory 13 (S21), and deletes the relevance information recorded in the relevance management table 43 (S22).
  • FIG. 13 shows a flow of the smoothing coefficient ⁇ calculation process (S15) in the present embodiment.
  • the relevance determination unit 23 reads the segment average size stored in the memory by the segment size calculation unit 25 from the predetermined area of the memory 13 (S15-1).
  • the relevance determination unit 23 determines whether or not the segment average size is equal to or larger than the threshold (S15-2).
  • the threshold value is stored in advance in the storage device of the server 11.
  • the relevance determination unit 23 sets “currently set ⁇ + ⁇ ” as the smoothing coefficient ⁇ (S15-3).
  • the relevance determining unit 23 sets “currently set ⁇ ” as the smoothing coefficient ⁇ (S15-4).
  • the importance of the degree of association between data pairs changes depending on the passage of time and the progress of rearrangement, so the weight of the degree of association is calculated in consideration of the passage of time and the progress of rearrangement. Then, the degree of association for each final data pair can be calculated. Thereby, even if the accumulation period is fixed, it is possible to calculate the degree of association in consideration of the progress of time passage and rearrangement.
  • the present invention is not limited to the embodiment described above, and various configurations or embodiments can be taken without departing from the gist of the present invention.

Landscapes

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

Abstract

 コンピュータは、データ間の関連性に応じてグループ化されたデータ群である複数のセグメントが格納された格納装置に対するアクセス要求により連続してアクセスされたデータのペア毎に、ペアへのアクセス頻度に基づくデータ間の関連度をモニタ期間中にモニタし、格納装置に格納された複数のセグメントのサイズの傾向を示す傾向情報と、モニタされた関連度とに基づいて、モニタ期間における関連度である関連性評価情報を生成し、関連性評価情報に基づいてデータをグループ化し、グループ毎の配置対象のデータを特定する。

Description

データ配置プログラム、データ配置装置、及びデータ配置方法
 本明細書は、データ配置プログラム、データ配置装置、及びデータ配置方法に関する。
 データ格納システムは、大量のデータをディスク等のストレージに格納する。ディスク等の低速な記憶装置は、単位時間当たりの処理能力(スループット)が低いため、キャッシュ技術が利用されている。
 キャッシュ技術は、処理速度の速い制御装置が低速の記憶装置からデータをより速く読み出す場合にメモリを使用して処理時間を短縮する技術である。制御装置が低速の記憶装置からデータを読み出した場合、その読み出したデータを一時的にメモリに保持しておくことで、次回からは低速の記憶装置より読み書きが早いメモリからデータを読み出せる。
 ところが、メモリの容量を超えて大量データを処理する場合、ディスクへのアクセスが多発することで、データ処理性能が大きく劣化する。
 そこで、キャッシュ技術の1つとして、アクセス履歴に基づき、関連性のあるデータを同一のセグメントに取りまとめ、データの再配置を行う技術(以降、「データ再配置技術」という)がある(例えば、特許文献1)。
国際公開第2013/114538号 特開平7-200389号公報 特開2012-113348号公報 特許2014-142749号
 図1は、データ再配置技術によるデータペア毎の関連度とデータ配置について説明するための図である。データ再配置技術では、データのアクセス履歴(どういう順番でどのデータがアクセスされたかという履歴)から、データのペア毎に、それらが同時または連続してアクセスされた頻度(関連性情報)が記録される。
 データのペアとは、連続してアクセスされた2つのデータをいう。今アクセスされたデータと直前にアクセスされたデータをペアとし、そのペアが出現した頻度が記録される。
 例えば、図1(A)に示すように、データA,B,C,D,Eについて、A→B→C→A→B→D→E→C→Aの順でデータにアクセスされたとする。この場合のデータのペアとそのアクセス頻度(出現頻度、すなわち関連性情報)は、図1(B)に示すように、A→B(2回)、B→C(1回)、C→A(2回)、B→D(1回)、D→E(1回)、E→C(1回)である。アクセス頻度が高いペアのデータは、関連性が強いと考えられる。
 データ間の関連性をグラフで表すと、データA,B,C,D,Eは、図1(C)に示すような構造になる。
 これらのデータを2つのセグメントに配置しようとすると、図1(D)に示すように、データA、B、Cのグループと、データD、Eのグループに分けられる。このグループに基づいて、データA,B,C,D,Eは、セグメント毎に再配置される。2つのセグメントをまたぐ関連度が小さくなるよう、かつ各セグメントに属するデータ数がほぼ均等になるように分割される。ここで、セグメントとは、関連性が認められるデータの集合であり、ディスクに対する読み書きの最小単位である。
 このように、上述のデータ再配置技術ではデータのペア間のある一定期間の累積の関連性の強さに基づいて、関連性のあるデータが同一のセグメントに取りまとめられ、データの再配置が行われる。これにより、関連するデータ同士が次々に同じセグメントに集められていく。
 したがって、あるデータに対する処理要求(以下、「リクエスト」と称する)があると、そのデータが属するセグメントがディクスからキャッシュに読み出され、そのセグメントに属する他のデータも続けてリクエストされる可能性がある。その結果、キャッシュヒット率が高くなる可能性がある。
 一方で、データ再配置によってキャッシュ上のセグメントの内容が変わるため、そのセグメントをキャッシュから追い出す際、ディスクに書き戻す必要がある。データの参照しかされないユースケースにおいて、データ再配置が発生しない場合に比べて、データ再配置が発生する場合にはその書き戻すためのコスト(データにアクセスし、ロードするのに要する時間)が余分にかかる。
 よって、セグメントのサイズが大きくなるにつれ、一定期間の関係性に基づく関連性の高いデータを同一セグメントに配置するメリットよりも、セグメントのサイズが大きいことによる、コスト増加によるデメリットが増してくる。
 また、多くのセグメントのサイズが小さい場合、そのセグメントは関連するデータ同士が十分集められていない成長途中であるため、まだキャッシュヒット率が低い可能性が高い。一方で、多くのセグメントのサイズが大きい場合、そのセグメントは関連するデータ同士が十分に集められているため、キャッシュヒット率はある程度高い可能性が高い。
 このように、セグメントのサイズに応じて、セグメントの読み出し性能や、キャッシュヒット率に相違がある。したがって、全体のセグメントのサイズの傾向に基づいて、データ再配置に行うことが望ましい。
 本発明の一側面では、データアクセスによるセグメントの形成状況に応じた読み出し効率のよいデータ配置処理を可能とする技術を提供する。
 本発明の一側面に係るデータ配置プログラムは、コンピュータに、次の処理を実行させる。コンピュータは、格納装置に対するアクセス要求により連続してアクセスされたデータのペア毎に、ペアへのアクセス頻度に基づくデータ間の関連度をモニタ期間中にモニタする。格納装置には、データ間の関連性に応じてグループ化されたデータ群である複数のセグメントが格納されている。コンピュータは、格納装置に格納された複数のセグメントのサイズの傾向を示す傾向情報と、モニタされた関連度とに基づいて、モニタ期間における関連度である関連性評価情報を生成する。コンピュータは、関連性評価情報に基づいてデータをグループ化し、グループ毎の配置対象のデータを特定する。
 本発明の一側面によれば、データアクセスによるセグメントの形成状況に応じた読み出し効率のよいデータ配置処理を可能とする。
データ再配置技術によるデータペア毎の関連度とデータ配置について説明するための図である。 関連性情報の蓄積期間の途中で関連性が大きく変化する場合における、(A)実際のデータ間の関連性に基づくデータ配置例と、(B)データ再配置技術によるデータ間の関連性に基づくデータ配置例とを示す。 本実施形態におけるデータ配置装置の一例を示す。 本実施形態における情報処理システムの一例を示す。 本実施形態における蓄積期間T、サブ期間Tsの関係を説明するための図である。 本実施形態におけるセグメントの傾向について説明するための図である。 本実施形態におけるサーバの一例を示す。 本実施形態におけるデータ管理テーブルの一例を示す。 本実施形態における関連性管理テーブルの一例を示す。 本実施形態における全体の処理フローを示す。 本実施形態における関連性評価情報の生成を説明するための図である。 本実施形態におけるリクエスト到着から配置決定までのフロー例を示す。 本実施形態における平滑化係数αの算出処理(S15)のフローを示す。
 上述の課題について更に詳述する。
 図2は、関連性情報の蓄積期間の途中で関連性が大きく変化する場合における、(A)実際のデータ間の関連性に基づくデータ配置例と、(B)データ再配置技術によるデータ間の関連性に基づくデータ配置例とを示す。ここで、関連性情報の蓄積期間内には、データの再配置は行われない。
 図2(A)は、実際のデータ間の関連性に基づくデータ配置例を示す。時間t0の時点で、データA,B,C,Dは、一例として、データA,Cを含むセグメントと、データB,Cを含むセグメントに配置されているとする。ここで、再配置のタイミングが時間t1であるとする。
 時間t1までに、データ間の関連性が変化し、データA,B間の関連度は低下し、データC,D間の関連度が上昇している場合、再配置の実行により、データA,C、Dを含むセグメントと、データBを含むセグメントに配置される。
 図2(B)は、データ再配置技術による関連性に基づくデータ配置例を示す。時間t0の時点で、データA,B,C,Dは、一例として、データA,Cを含むセグメントと、データB,Cを含むセグメントに配置されているとする。
 データ再配置技術では、リソース浪費を防ぐため、時間t1の間隔でしか関連性情報は蓄積されていないため、時間t0~t1間のデータ間の関連性の変動をモニタすることはできない。しかしながら、データ再配置技術では、その関連性のあるデータがアクセスされたアクセス数の累積値が保持されている。
 したがって、図2(A)とは異なり、図2(B)では、時間t1までに、データA,B間の関連性(累積値)は上昇しているので、時間t1の時点でも、データA,Bは関連性が強いと判定される。その結果、再配置の実行により、データA,B,Cを含むセグメントと、データDを含むセグメントに配置される。
 しかしながら、時間t1の時点では、実際は、データC,Dは強い関連性を有するため、データCがアクセスされると、データDもアクセスされる可能性が高いが、データC,Dは同一のセグメントに配置されていない。そのため、一方のデータがメモリに存在しない可能性が高くなり、別途ディスクアクセスする必要が生じる。
 このように、以前は関連性が強かったデータ同士が、現在はあまり関連していない場合がある。上記のデータ再配置技術では、古い関連性情報も新しい関連性情報も一律に扱っている。そのため、最適なデータ配置を決める場合に、古い関連性情報の影響を受けてしまうので、読み出し性能の劣化(低キャッシュヒット率)につながる可能性がある。
 ところで、関連するデータ同士を次々に同じセグメントに集めていくと、キャッシュヒット率は高くなる可能性(メリット)がある。すなわち、あるデータに対するリクエストがあると、そのデータが属するセグメントがディクスからキャッシュに読み出され、そのセグメントに属する他のデータも続けてリクエストされる可能性がある。その結果、キャッシュヒット率が高くなる可能性がある。
 一方で、セグメントが大きすぎる(関連するデータ同士を集めすぎる)と、上述したように、1回のディスクアクセス時間が長くなるので、単一データに比べてディスクへの読み書きについてのコストが大きくなる(デメリット)。デメリットがメリットを上回るぐらいセグメントサイズが大きくなると、再配置によってむしろ読み出し性能が劣化することになる。
 したがって、デメリットがメリットを上回りそうか否かに応じて再配置を制御することが考えられる。
 また、多くのセグメントのサイズが小さい場合、そのセグメントは関連するデータ同士が十分集められていない成長途中であるため、まだキャッシュヒット率が低い可能性が高い。一方で、多くのセグメントのサイズが大きい場合、そのセグメントは関連するデータ同士が十分に集められているため、キャッシュヒット率はある程度高い可能性が高い。
 このように、セグメントのサイズに応じて、セグメントの読み出し性能やキャッシュヒット率に相違がある。このことから、古い関連性情報と新しい関連性情報を一律に扱わず、かつセグメント全体の傾向(成長度合い)に応じて、関連性情報を活用することが考えられる。
 そこで、本実施形態では、データアクセスによるセグメントの形成状況に応じた読み出し効率のよいデータ配置処理を可能とするデータ配置技術について説明する。
 図3は、本実施形態におけるデータ配置装置の一例を示す。データ配置装置1は、モニタリング部2、生成部3、特定部4を含む。
 モニタリング部2は、格納装置に対するアクセス要求により連続してアクセスされたデータのペア毎に、ペアへのアクセス頻度に基づくデータ間の関連度をモニタ期間中にモニタする。格納部には、データ間の関連性に応じてグループ化されたデータ群である複数のセグメントが格納されている。より具体的には、モニタリング部2は、関連度をモニタ期間中に継続的にモニタする。モニタリング部2の一例として、後述する関連性抽出部22が挙げられる。
 生成部3は、格納装置に格納された複数のセグメントのサイズの傾向を示す傾向情報と、モニタされた関連度とに基づいて、モニタ期間における関連度である関連性評価情報を生成する。生成部3の一例として、関連度決定部23が挙げられる。
 特定部4は、関連性評価情報に基づいてデータをグループ化し、グループ毎の配置対象のデータを特定する。特定部4の一例として、配置決定部24が挙げられる。
 このように構成することにより、データアクセスによるセグメントの形成状況に応じた読み出し効率のよいデータ配置処理が可能となる。
 また、生成部4は、時間経過と共に減少する重みを用いる。生成部4は、傾向情報が閾値以上の場合には重みの減少の度合いを大きくし、傾向情報が閾値以上の場合には重みの減少の度合いを小さくする。
 このように構成することにより、セグメント全体の傾向、すなわちセグメントの成長状況によって、関連度情報の調整することができる。すなわち、セグメントの傾向に応じて、重みの減少の度合いを調整することができる。そのため、セグメントの成長の成熟期において重みの減少の度合いを大きくすることで、直近のデータペアのデータ間の関連度を用いて、最終関連度としての関連性評価情報を生成することができる。その結果、セグメントのサイズの増大を抑制し、セグメントの読み出し性能の劣化を抑制できる。
 さらに、生成部4は、モニタ期間での断続的にモニタされた関連度のそれぞれに重みを乗じ、重みはより過去にモニタされた関連度ほど重みを指数関数的に減らしていく。ここで、重みの減少度合いは、傾向情報に基づく平滑化係数により決定される。
 このように構成することにより、直近のデータペアのデータ間の関連度の重み付けが最も重く、過去のデータペアのデータ間の関連度ほど、重み付けを軽くすることができる。これにより、より直近のデータ間の関連度の傾向を重視して、そのモニタ期間における最終的な関連度を算出することができる。
 以下では、本実施形態について、詳述する。
 図4は、本実施形態における情報処理システムの一例を示す。情報処理システムにおいて、サーバ装置(以下、「サーバ」と称する)11は、通信ネットワーク(以下、「ネットワーク」と称する)16を介して、情報処理装置の一例であるクライアント15と接続されている。クライアント15は、サーバ11にデータの読み込みや書込み等のアクセス要求(以下、「リクエスト」と称する)を行う。
 サーバ11は、制御装置12、メモリ装置(以下、「メモリ」と称する)13、ストレージ装置(ディスク)14を含む。制御装置12は、中央演算処理装置(CPU)等のプロセッサである。
 ストレージ装置14は、例えば、ハードディスクドライブ(HDD)等のディスク装置である。以下では、ストレージ装置14をディスク14と称する。
 メモリ13は、ディスク14に比して高速にアクセス可能な記憶装置である。メモリ13としては、例えば、RAM(Random Access Memory)、フラッシュメモリ等がある。
 サーバ11は、上記の構成に加えて、BIOS(Basic Input/Output System)を格納したROM、プログラムメモリ等を有する。制御装置12が実行するプログラムは、ネットワーク16を介して取得されてもよいし、可搬型メモリやCD-ROM等のコンピュータ読み取り可能な可搬型記録媒体がサーバ11に装着されることにより取得されてもよい。制御装置12が実行するプログラムには、本実施形態で説明する処理を実行するプログラムも含む。
 図5は、本実施形態における蓄積期間T、サブ期間Tsの関係を説明するための図である。関連性情報を蓄積する蓄積期間Tを予め決めておく。データアクセス頻度によって、時間当たりの関連性情報の数(データペアに対するアクセス頻度)も変わるので、ある程度関連性情報が溜まる時間(例えば、T=定数/平均アクセス頻度)を決めておく。
 次に、蓄積期間Tを複数のサブ期間Tsに分ける。サブ期間Ts毎に、各データペアがアクセスされた回数が計測される。
 蓄積期間Tの経過後、データ再配置が行われる。
 図6は、本実施形態におけるセグメントの傾向について説明するための図である。セグメントの形成に関して、制御装置12は、1セグメント1データから開始し、関連するデータ同士をまとめていく。
 セグメントの成長途中の期間(途上期)は、広く関連性情報を活用してセグメントを形成すべき期間である。途上期では、一部のセグメントのサイズは大きいが、小さいサイズのセグメントも存在する。したがって、途上期では、セグメント平均サイズが小さいといえる。
 一方、多くのセグメントのサイズが大きい期間(成熟期)は、直近の関連度の高い関連性情報を活用してセグメントを形成すべき期間である。成熟期では、セグメント平均サイズが大きい。
 このようにセグメント平均サイズによって、広く関連性情報を活用してセグメントを形成すべき期間であるのか、直近の関連度の高い関連性情報を活用してセグメントを形成すべき期間であるのかという全セグメントの傾向を掴むことができる。
 図7は、本実施形態におけるサーバの一例を示す。上述の通り、サーバ11は、制御装置12、メモリ13、ディスク14を含む。メモリ13は、ディスク14から読み出された複数のセグメントをキャッシングして、一時的に格納する領域(以下、「キャッシュ領域」と称する)13aを含む。キャッシュ領域13aの容量が不足した場合、Least Recently Used(LRU)方式や、least frequently used(LFU)方式等のアルゴリズムを用いて、キャッシュ領域13aからいずれかのセグメントが抽出され、ディスク14に書き戻される。
 メモリ13は、キャッシュ領域13a以外の領域に、データ管理テーブル31、関連性管理テーブル32、セグメント平均サイズ33を保持する。
 データ管理テーブル31は、データと、そのデータの配置先となるセグメントと、データサイズとの対応関係を示す情報を格納する。
 関連性管理テーブル32は、所定時間間隔毎の、各データペアへのアクセス回数(アクセス頻度(関連度))、すなわち関連性情報を格納する。
 制御装置12は、本実施形態に係るプログラムを実行することにより、入出力管理部21、関連性抽出部22、関連度決定部23、配置決定部24、セグメントサイズ算出部25として機能する。
 入出力管理部21は、クライアント15等の要求元から入力されたリクエストに応じてメモリ13を検索し、メモリ13にリクエストで指定されたデータがなければさらにディスク14を検索し、リクエストで指定されたデータを要求元に送信する。なお、リクエストは、クライアント15が送信するだけでなく、サーバ11において実行されているプロセスその他の主体がリクエストの発行元となる場合もあり得る。また、入出力装置がサーバ11に接続されている場合、ユーザが入出力装置に対してリクエストを入力することも想定される。
 リクエストが入力されると、入出力管理部21は、まずメモリ13からリクエストで指定されたデータを検索する。リクエストで指定されたデータがメモリ13上に存在する場合に、入出力管理部21は、そのデータをメモリ13から読み出して要求元に返信する。
 また、入出力管理部21は、リクエストで指定されたデータがメモリ13上に存在しない場合には、ディスク14からリクエストで指定されたデータを検索する。入出力管理部21は、リクエストで指定されたデータがディスク14上に存在する場合に、データ管理テーブル31を用いて、リクエストで指定されたデータの属するセグメントに含まれる全データをディスク14から読み出す。そして、入出力管理部21は、その読み出したセグメントに含まれる全データのうち、リクエストで指定されたデータを要求元に返信する。このとき、入出力管理部21は、その読み出したセグメントに含まれる全データをメモリ13に格納する。
 なお、上記では、入出力管理部21は、ディスク14から読み出したセグメントに含まれる全データをメモリ13へ格納する処理を、リクエストがあったタイミングで行う場合について説明したが、これに限定されない。例えば、入出力管理部21は、一定期間のアクセス頻度を取得してアクセス頻度が高いセグメントを優先的にディスク14から読み出してメモリ13に格納してもよい。
 関連性抽出部22は、リクエストが到着する度に、データペア毎の関連性情報を関連性管理テーブル32に蓄積することにより、所定時間(サブ期間)間隔で、データペアへのアクセス頻度に基づくデータ間の関連度をモニタする。より具体的には、関連性抽出部22は、サブ時間間隔で、アクセスシーケンスから続けてアクセスされたデータペアを抽出し、関連性管理テーブル32において、そのデータペアのアクセス頻度(関連度)に、“+1”を加算する。
 関連度決定部23は、データペアのサブ期間毎の関連度に対して、時間経過とともに減少する重みをかけて、データペア毎の最終的な関連度を決定する。
 配置決定部24は、決定された関連度に基づいてデータをグループ化し、グループ(セグメント)毎の配置対象のデータを特定することにより、データの配置を決定する。配置決定部24は、再配置の決定の結果に応じて、セグメントに属するデータの構成に変更があった場合、セグメントに属するデータの再編成を行うデータ再配置処理を行う。すなわち、配置決定部24は、データ管理テーブル31が保持しているデータとセグメントの対応情報を更新する。そして、配置決定部24は、関連性管理テーブル32の内容をクリアする。
 セグメントサイズ算出部25は、データペア毎の関連性情報が関連性管理テーブル32に蓄積される場合に、データ管理テーブル31を参照し、セグメント毎のサイズ(セグメントサイズ)の傾向をモニタする。すなわち、セグメントサイズ算出部25は、データ管理テーブル31から、セグメント毎のデータサイズの合計(セグメントサイズ)を算出し、全セグメントのサイズからセグメント平均サイズ33を算出する。セグメントサイズ算出部25は、算出したセグメント平均サイズ33を、メモリ13内の所定の領域に格納する。
 図8は、本実施形態におけるデータ管理テーブルの一例を示す。データ管理テーブル31には、メモリ13及びディスク14に格納された全データのデータ名(またはキー)と、そのデータ名に対応するセグメント名と、そのデータのサイズが対応付けられて格納されている。
 図9は、本実施形態における関連性管理テーブルの一例を示す。関連性管理テーブル43は、リクエストで指定されたデータ毎に、前回リクエストで指定されたデータを順次関係付けてデータペアとし、サブ時間間隔(単位時間あたり)で、各データペアへのアクセス回数(関連性の強さ)、すなわち関連性情報を格納する。
 例えば、サブ期間T1において、データペア(A-B)へのアクセス回数(関連度)は、4回である。データペア(B-D)へのアクセス回数(関連度)は、2回である。データペア(D-A)へのアクセス回数(関連度)は、1回である。データペア(C-A)へのアクセス回数(関連度)は、3回である。データペア(C-E)へのアクセス回数(関連度)は、1回である。
 図10は、本実施形態における全体の処理フローを示す。制御装置12は、モニタリング処理を行う(S1)。具体的には、制御装置12は、ある一定期間(蓄積期間)、アクセスされたデータペア毎に、そのデータ間の関連性情報(そのペアが連続/同時にアクセスされた頻度)を蓄積する。関連性抽出部22は、図5で説明したように、蓄積期間Tをさらに細かいサブ期間(T1,T2,・・・,Tn)に区切り、そのサブ期間毎に、そのサブ期間の関連度の累積値を記録する。
 セグメントサイズ算出部25は、データ管理テーブル31に基づいて、管理している記憶装置内の全セグメントの傾向を表す情報、すなわち図6で説明したセグメント平均サイズをモニタ・記録する。
 次に、関連度決定部23は、蓄積期間Tの最後に、上記のサブ期間ごとの関連度の累積値、全セグメントの傾向を表す情報から、関連性(データ間の関連性を表す)をその状況に応じて評価した、関連性評価情報を生成する(S2)。関連性評価情報は、その蓄積期間Tにおけるデータペア毎の最終的な関連度を示す。
 ここで、関連性評価情報は、関連性情報に対して、時間経過に伴って減衰する重み(古い関連性情報ほど重みを下げる)を乗じることで得られる。また、セグメントの成長度合いに合わせて、「重みの変え方」も調整される(「重み」の減少の仕方は、全セグメントの傾向によって変更できるようにする。)。
 関連性評価情報を生成する場合、全セグメントの傾向によって、「重み」の減少の方式が決められる。例えば、指数加重移動平均方式を用いる場合には、平滑化係数が決められる。また、加重移動平均方式を用いる場合には、その傾きが決められる。
 関連度決定部23は、上記によって決められた「重み」の関数を用い、サブ期間毎の関連性情報に重みをかけ、関連性評価情報を生成する。これについては、図11を用いて説明する。
 配置決定部24は、関連性評価情報を用いて、データを再配置する(S3)。制御装置12は、S3でのデータの再配置後、それまでに蓄積した関連性情報を全てクリアする(S4)。
 図11は、本実施形態における関連性評価情報の生成を説明するための図である。本実施形態では、関連性管理テーブル32で直近のサブ期間から順次サブ期間を遡ってサブ期間毎の関連度に重み付け(指数加重移動平均)を行って得られた関連度をデータペア毎の関連性評価情報(最終関連度)とする。
 蓄積期間の長さをTとし、サブ期間の長さをTsとする。このとき、サブ期間の個数Nは、N=T/Tsとなる。
 指数加重移動平均方式を用いる場合には、サブ期間Ts_k(=1~N)個の重みは、以下のようにして決められる。最後のサブ期間の重みをNとし、図11(A)に示すように、前のサブ期間に行くほど重みを指数関数的に減らしていく。
 次に、例えば、サブ期間Ts_kのデータペアX-Y間の関連度をPとすると、関連度決定部23は、蓄積期間TのデータペアX-Y間の最終関連度RELを以下の式を用いて求める。
  RELX-Y=α×(P+(1-α)PN-1+(1-α)PN-2+・・・)α:重みの減少度合いを決める平滑化係数(0~1)。αの値が大きいほど重みは急速に減少する。
 例えば、図11(B)に示すように、α=0.5の場合、データA-B間の最終関連度RELは、RELA-B=0.5*(4.7+0.5*4.5+・・・)≒7.2と計算される。
 ここで、平滑化係数αの決定方法について説明する。セグメント平均サイズが小さい間は、再配置があまり進んでいないといえる。この場合、積極的に再配置を行うために、αは小さめに設定される。この場合、新しい情報は重視され、古い情報はある程度考慮される。
 セグメント平均サイズがある程度以上大きくなった場合は、再配置が十分進んだといえる。この場合、再配置を抑えるため、αは大きめに設定される。この場合、新しい情報は重視され、古い情報はあまり考慮されない。
 平滑化係数αの決定方法について詳述する。平滑化係数αの初期値が決められている。セグメントサイズ算出部25は、データ管理テーブル31に基づいて、システム全体のセグメント平均サイズをモニタし、メモリ13の所定領域に格納する。
 セグメント平均サイズが予め決められた閾値を超えた場合、関連度決定部23は、αを現在の値からΔα(予め決めておく)分大きくする。αを大きくするということは、古い情報の重みがより小さくなることを意味する。
 平均サイズが予め決めた閾値を下回った場合、関連度決定部23は、αを現在の値からΔα分小さくする。
 なお、データペア毎の最終関連度として、サブ期間毎の関連度に重み付けを行う場合には、指数加重移動平均を用いるだけでなく、加重移動平均を用いても良い。
 この場合、例えば、セグメント平均サイズが予め決められた閾値未満の場合、重みを、N-1、N-2、N-3、・・・と減少させ、セグメント平均サイズが予め決められた閾値以上の場合、重みNを、N-3、N-6、N-9、・・・と減少させてもよい。ただし、減少された重みが0を下回った場合には、重み0として扱う。
 以下では、本実施形態の実施例について、さらに詳述する。
 図12は、本実施形態におけるリクエスト到着から配置決定までのフロー例を示す。制御装置12は、本実施形態に係るプログラムを実行することにより、入出力管理部21、関連性抽出部22、関連度決定部23、配置決定部24と、セグメントサイズ算出部25して機能する。
 入出力管理部21は、要求元から入力されたリクエストが指定するデータをメモリ13またはディスク14から読み出して(アクセスして)、要求元に送信する(S11)。このとき、リクエストが指定するデータがメモリ13に存在しない場合、入出力管理部21はデータ管理テーブル31を用いて、リクエストが指定するデータが属するセグメントの全データをディスク14から読み出す。そして、入出力管理部21は、読み出したセグメントの全データのうち、リクエストが指定するデータを要求元に送信する。
 関連性抽出部22は、関連性管理テーブル32のサブ期間Ts_kの情報を更新する(S12)。具体的には、関連性抽出部22は、関連性管理テーブル32に、サブ期間Ts_k内にて、その連続してアクセスされたデータペアの関連性情報を記録(アクセス数を+1加算)する。
 このとき、セグメントサイズ算出部25は、データ管理テーブル31内のセグメント平均サイズを算出し、メモリ13の所定領域に格納する。
 サブ期間Ts_kの間、関連性抽出部22は、S11~S12の処理を繰り返す(S13で「YES」)。
 まだ、蓄積期間T中である場合(S14で「YES」)、S11の処理に戻り、次のサブ期間Ts_k+1について、S11~S13の処理が行われる。
 蓄積期間Tが終了すると(S14で「NO」)、関連度決定部23は、セグメント平均サイズに基づいて、平滑化係数αを算出する(S15)。S15については、図13で詳述する。
 関連度決定部23は、関連性管理テーブル32の関連度の情報から、データペア毎の関連性評価情報を算出する(S16)。ここでは、関連性抽出部22は、図11で説明したように、関連性管理テーブル32で直近のサブ期間から順次サブ期間を遡ってサブ期間毎の関連度に重み付け(指数加重移動平均)を行って得られた関連度をデータペア毎の関連性評価情報を算出する。
 データペア毎の関連性評価情報を算出後、配置決定部24は、図1(D)で説明したように、データペア毎の関連性評価情報をグラフ構造化する。そして、配置決定部24は、そのグラフ構造に基づいて、データのグループ化を行うことにより、セグメント毎に配置するデータを決定する(S17)。
 次に、配置決定部24は、決定されたセグメント毎のデータ配置に基づいて、データ配置の変更、すなわちセグメントの再編成が必要か否かを判定する(S18)。ここでは、S17で決定されたセグメント毎のデータの構成と、データ管理テーブル31に登録されているセグメント毎のデータの構成とに変化がある場合、配置決定部24は、データ配置の変更が必要であると判定する。
 なお、S17において配置を決定した結果、データ管理テーブル31において、セグメント毎のデータが既にその決定された配置になっていた場合、配置決定部24は、再配置が不要と判断する。また、配置を決定する手法によっては、再配置対象のデータがキャッシュ上にある間でないと配置しないことがある。この場合、対象データがキャッシュ上になければ、配置決定部24は、再配置は不要と判断する。
 データ配置の変更が必要ない場合、すなわちデータとセグメントの対応付けの変更が不要と判定された場合(S18で「NO」)、配置決定部24は、S21の処理を行う。
 データ配置の変更が必要ある場合、すなわちデータとセグメントの対応付けの変更が必要と判定された場合(S18で「YES」)、配置決定部24は、次の処理を行う。すなわち、配置決定部24は、S17でのセグメントの再構成の結果に基づいて、データとセグメントの対応付けを変更する(S19)。
 配置決定部24は、その変更したデータとセグメントとの対応関係に基づいて、データ管理テーブル31を更新する(S20)。
 その後、配置決定部24は、メモリ13に格納されているセグメント平均サイズをクリアし(S21)、関連性管理テーブル43に記録されている関連性情報を削除する(S22)。
 図13は、本実施形態における平滑化係数αの算出処理(S15)のフローを示す。関連度決定部23は、メモリ13の所定領域から、セグメントサイズ算出部25によってメモリに格納されているセグメント平均サイズを読み出す(S15-1)。
 関連度決定部23は、セグメント平均サイズが閾値以上であるか否かを判定する(S15-2)。閾値は、サーバ11の記憶装置に予め記憶されている。
 セグメント平均サイズが閾値以上である場合(S15-2で「YES」)、関連度決定部23は、平滑化係数αに「現在設定されているα+Δα」を設定する(S15-3)。セグメント平均サイズが閾値より小さい場合(S15-2で「NO」)、関連度決定部23は、平滑化係数αに、「現在設定されているα-Δα」を設定する(S15-4)。
 本実施形態によれば、データペア間の関連度の重要性は、時間経過及び再配置の進み具合によって変化するので、その時間経過および再配置の進み具合を考慮して関連度の重みを算出し、最終的なデータペアごとの関連度を算出することができる。これにより、蓄積期間は固定であっても、時間経過・再配置の進み具合も考慮した関連度を算出することができる。
 これにより、古い関連度の影響を受けつつ直近のデータペア毎の関連度を重視した最終関連度に基づいて、データのグループ化を行ってデータ配置を行うことができる。セグメント平均サイズがある程度大きくなった場合(成熟期)、直近のデータペアの関連性の重みが重くなり、直近の関連度のデータ同士でセグメントが形成されると共に、蓄積期間内で比較的古いデータはそのセグメントから排除されやすくなる。その結果、セグメント形成の成熟期におけるセグメントサイズの増大を抑制することができる。これにより、セグメントの成熟期におけるセグメントが大きすぎる場合に、1回のディスクアクセス時間が長くなるので、単一データに比べてディスクへの読み書きについてのコストが大きくなることによるセグメントの読み出し性能の劣化を抑制できる。
 なお、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
 1   データ配置装置
 2   モニタリング部
 3   生成部
 4   特定部
 11  サーバ
 12  制御装置
 13  メモリ
 14  ディスク
 15  クライアント
 16  ネットワーク
 21  入出力管理部
 22  関連性抽出部
 23  関連度決定部
 24  配置決定部
 25  セグメントサイズ算出部
 13a キャッシュ領域
 31  データ管理テーブル
 32  関連性管理テーブル
 33  セグメント平均サイズ

Claims (6)

  1.  コンピュータに、
     データ間の関連性に応じてグループ化されたデータ群である複数のセグメントが格納された格納装置に対するアクセス要求により連続してアクセスされたデータのペア毎に、該ペアへのアクセス頻度に基づくデータ間の関連度をモニタ期間中にモニタし、
     前記格納装置に格納された前記複数のセグメントのサイズの傾向を示す傾向情報と、前記モニタされた前記関連度とに基づいて、該モニタ期間における前記関連度である関連性評価情報を生成し、
     前記関連性評価情報に基づいて前記データをグループ化し、グループ毎の配置対象のデータを特定する
     処理を実行させるデータ配置プログラム。
  2.  前記関連性評価情報の生成において、
     時間経過と共に減少する重みを用い、
     前記傾向情報が閾値以上の場合には前記重みの減少の度合いを大きくし、前記傾向情報が閾値以上の場合には前記重みの減少の度合いを小さくする
     ことを特徴とする請求項1に記載のデータ配置プログラム。
  3.  前記関連性評価情報の生成において、
     モニタ期間での断続的にモニタされた前記関連度のそれぞれに前記重みを乗じ、該重みはより過去にモニタされた関連度ほど前記重みを指数関数的に減らしていき、
     前記重みの減少度合いは、前記傾向情報に基づく平滑化係数により決定される
     ことを特徴とする請求項2に記載のデータ配置プログラム。
  4. (以下、項番下げ)
     前記モニタにおいて、前記関連度は前記モニタ期間中に継続的にモニタされることを特
    徴とする請求項1記載のデータ配置プログラム。
  5.  データ間の関連性に応じてグループ化されたデータ群である複数のセグメントが格納された格納装置に対するアクセス要求により連続してアクセスされたデータのペア毎に、該ペアへのアクセス頻度に基づくデータ間の関連度をモニタ期間中にモニタするモニタリング部と、
     前記格納装置に格納された前記複数のセグメントのサイズの傾向を示す傾向情報と、前記モニタされた前記関連度とに基づいて、該モニタ期間における前記関連度である関連性評価情報を生成する生成部と、
     前記関連性評価情報に基づいて前記データをグループ化し、グループ毎の配置対象のデータを特定する特定部と、
     を備えることを特徴とするデータ配置装置。
  6.  コンピュータが、
     データ間の関連性に応じてグループ化されたデータ群である複数のセグメントが格納された格納装置に対するアクセス要求により連続してアクセスされたデータのペア毎に、該ペアへのアクセス頻度に基づくデータ間の関連度をモニタ期間中にモニタし、
     前記格納装置に格納された前記複数のセグメントのサイズの傾向を示す傾向情報と、前記モニタされた前記関連度とに基づいて、該モニタ期間における前記関連度である関連性評価情報を生成し、
     前記関連性評価情報に基づいて前記データをグループ化し、グループ毎の配置対象のデータを特定する
     ことを特徴とするデータ配置方法。
     
PCT/JP2015/060158 2015-03-31 2015-03-31 データ配置プログラム、データ配置装置、及びデータ配置方法 WO2016157417A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/060158 WO2016157417A1 (ja) 2015-03-31 2015-03-31 データ配置プログラム、データ配置装置、及びデータ配置方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/060158 WO2016157417A1 (ja) 2015-03-31 2015-03-31 データ配置プログラム、データ配置装置、及びデータ配置方法

Publications (1)

Publication Number Publication Date
WO2016157417A1 true WO2016157417A1 (ja) 2016-10-06

Family

ID=57004010

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/060158 WO2016157417A1 (ja) 2015-03-31 2015-03-31 データ配置プログラム、データ配置装置、及びデータ配置方法

Country Status (1)

Country Link
WO (1) WO2016157417A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08263335A (ja) * 1995-03-20 1996-10-11 Toshiba Corp データ記憶装置
JP2015036865A (ja) * 2013-08-12 2015-02-23 富士通株式会社 データアクセス分析プログラム、データアクセス分析方法、及びデータアクセス分析装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08263335A (ja) * 1995-03-20 1996-10-11 Toshiba Corp データ記憶装置
JP2015036865A (ja) * 2013-08-12 2015-02-23 富士通株式会社 データアクセス分析プログラム、データアクセス分析方法、及びデータアクセス分析装置

Similar Documents

Publication Publication Date Title
EP3210121B1 (en) Cache optimization technique for large working data sets
JP3657170B2 (ja) 参照の局所性を動的に追跡する高効率技法
CN108139872B (zh) 一种缓存管理方法、缓存控制器以及计算机系统
JP6402647B2 (ja) データ配置プログラム、データ配置装置およびデータ配置方法
WO2012030900A1 (en) Method and system for removing cache blocks
JP6166616B2 (ja) 情報処理方法、情報処理装置及びプログラム
WO2013013549A1 (en) Adaptive record caching for solid state disks
CN105404595B (zh) 缓存管理方法及装置
US9851925B2 (en) Data allocation control apparatus and data allocation control method
RU2672726C1 (ru) Способ выполнения упреждающего чтения в системах хранения данных
JP2017162194A (ja) データ管理プログラム、データ管理装置、及びデータ管理方法
JP2017027301A (ja) ストレージ制御装置、階層化ストレージ制御プログラム、階層化ストレージ制御方法
WO2016147279A1 (ja) データ管理制御プログラム、データ管理制御装置、及びデータ管理制御方法
Ou et al. A penalty aware memory allocation scheme for key-value cache
WO2016157417A1 (ja) データ配置プログラム、データ配置装置、及びデータ配置方法
CN112445794B (zh) 一种大数据系统的缓存方法
EP3153972A1 (en) Data management program, data management device, and data management method
US8621156B1 (en) Labeled cache system
CN107819804B (zh) 云端储存设备系统及决定其架构的高速缓存中数据的方法
US11977488B2 (en) Cache prefetching method and system based on K-Truss graph for storage system, and medium
JP2016162247A (ja) データ管理プログラム、データ管理装置、及びデータ管理方法
CN115185861A (zh) 一种数据访问方法、装置及计算机设备
WO2022240318A1 (ru) Способ управления системой хранения данных и система хранения данных
US20160196074A1 (en) Data arrangement apparatus, storage medium, and data arrangement method
JP2017058904A (ja) キャッシュ装置およびキャッシュ装置の制御方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15887570

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15887570

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP