WO2011132357A1 - Data processing method, data processing device, and data processing program - Google Patents

Data processing method, data processing device, and data processing program Download PDF

Info

Publication number
WO2011132357A1
WO2011132357A1 PCT/JP2011/001143 JP2011001143W WO2011132357A1 WO 2011132357 A1 WO2011132357 A1 WO 2011132357A1 JP 2011001143 W JP2011001143 W JP 2011001143W WO 2011132357 A1 WO2011132357 A1 WO 2011132357A1
Authority
WO
WIPO (PCT)
Prior art keywords
input
prewrite
output buffer
buffer
management unit
Prior art date
Application number
PCT/JP2011/001143
Other languages
French (fr)
Japanese (ja)
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 US13/642,433 priority Critical patent/US20130212343A1/en
Priority to JP2012511518A priority patent/JP5450803B2/en
Publication of WO2011132357A1 publication Critical patent/WO2011132357A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device

Definitions

  • the present invention relates to a data processing method, a data processing apparatus, and a data processing program for a system having a buffer management component.
  • DBMS database management system
  • the data is temporarily stored in units called pages in order to compensate for differences in processing speed and transfer speed and to speed up processing.
  • the replacement processing refers to a case where pages on the buffer pool are written to the secondary storage device or the like and necessary data is read from the secondary storage device in units of pages, and writing from the buffer pool is not performed.
  • both processing for reading necessary data from the secondary storage device in units of pages are included.
  • LRU Least Recently Used
  • GCLOCK Generalized CLOCK
  • a page to be replaced on the buffer pool is searched.
  • the page to be replaced is determined, it is determined whether or not the page has been updated since it was read into the buffer pool. If there is an update as a result of the determination, a writing process for writing a page to be replaced is performed on a storage device other than the main memory such as a secondary storage device.
  • a read process for reading necessary data from the storage device that has performed the write process into the buffer pool in units of pages is performed. That is, in the replacement process, when the writing process occurs, the access response to the data required for the process becomes longer by the writing process compared to the case where the writing process does not occur.
  • Patent Document 2 discloses a technique for writing a page (hereinafter referred to as “dirty page”) that needs to be written when replacing a page asynchronously with the buffer management mechanism.
  • dirty page a page that needs to be written when replacing a page asynchronously with the buffer management mechanism.
  • all dirty pages are written asynchronously with the buffer management mechanism.
  • Such a process of writing out a dirty page in advance and asynchronously is called a prewrite process.
  • the page update and the page write process before the buffer management mechanism sets a specific page on the buffer pool as a replacement target. May be repeated.
  • the prewrite process effective for the specific page is only the prewrite process executed immediately before the page becomes the replacement target, and the write process generated in the prewrite process executed before that page is
  • the number of pages to be written in one prewrite process is appropriately managed, and only the pages that are to be replaced by the buffer management mechanism immediately after execution of the prewrite process are prewritten.
  • a method to be processed can be considered.
  • a method for selecting a page to be replaced differs for each algorithm for allocating resources on the buffer. Therefore, in order to realize the solution, a different prewrite processing method is required for each algorithm.
  • the pages stored in the buffer pool are managed as a circular list with a fixed order.
  • CLOCKHAND that points to the page while sequentially tracing the pages on the circular list. The search is made for pages that can be replaced on the circulation list.
  • the page management process occurs in the buffer management mechanism. Will be.
  • FIG. 15 shows an example in which page write processing occurs by the buffer management mechanism.
  • 15 (a) and 15 (b) are diagrams showing examples of the same circulation list, and FIG. 15 (b) shows the state of the circulation list after N hours have elapsed from FIG. 15 (a).
  • the CLOCKHAND 1500 points to the page 1501, and it is assumed that the prewrite process is executed for the page group (pages within the dotted line) from the page 1503 to the page 1504.
  • the page group to be prewritten includes a page that needs to be written, so the corresponding page is written.
  • the pages that need to be written out include pages 1503 and 1504 that can be replaced. That is, before the CLOCKHAND 1500 indicates, the prewrite processing of the pages 1503 and 1504 in which the updated data is stored is executed.
  • FIG. 16A, FIG. 16B, FIG. 16C, and FIG. 16D are diagrams showing examples of the same circulation list, and FIG. FIG. 16 (c) shows the state of the circulation list after a lapse of time, FIG. 16 (c) shows the state of the circulation list after a lapse of M ⁇ N time from FIG. 16 (b), and FIG. FIG. 16C shows the state of the circulation list after N hours have passed.
  • CLOCKHAND 1500 points to page 1501, and it is assumed that prewrite processing is executed for the page group from page 1501 to page 1504 on the circulation list.
  • the write process of page 1502, page 1503, and page 1504, which requires a write process and can be a page replacement target, is executed.
  • the amount of pages to be subjected to prewrite processing is small (appropriate amount) only for pages located near the page indicated by CLOCKHAND, so the prewrite processing does not need to be constantly operated. . In other words, after executing the prewrite process, it is possible to pause for a certain period and execute the subsequent prewrite process.
  • the replacement process refers to the page before the pre-write process and results in the replacement process. Writing process is required.
  • FIG. 17 shows an example in which the writing process is required in the replacement process because CLOCKHAND passes through the prewrite target page before the prewrite process is executed.
  • 17 (a), 17 (b), and 17 (c) are diagrams showing examples of the same circulation list.
  • FIG. 17 (b) shows the circulation list after N hours have elapsed from FIG. 17 (a).
  • FIG. 17 (c) shows the state of the circulation list when M ⁇ N hours have passed since FIG. 17 (b).
  • the CLOCKHAND 1500 points to the page 1501 and executes prewrite processing for the page group from the page positioned next to the page 1501 to the page 1502 on the circulation list. And At this time, in the prewrite process, a page 1502 writing process that requires a writing process and can be a page replacement target is executed.
  • the prewrite process is not executed during the lapse of M ⁇ N time from the time point of FIG. 17B to the time point of FIG. 17C, and the CLOCKHAND 1500 is shown in FIG.
  • the processing range of the prewrite processing executed at the time of 17 (a) is exceeded, when the CLOCKHAND 1500 points to the page 1503 at the time of FIG. 17 (c), the page 1503 is replaced in the buffer management mechanism replacement processing.
  • the writing process is executed.
  • FIG. 18 shows an example in which a writing process is required.
  • 18 (a), 18 (b), 18 (b '), 18 (c), and 18 (d) are diagrams showing examples of the same circulation list
  • FIG. 18 (b) is a diagram.
  • 18 (a) shows the state of the circulation list after N hours have elapsed
  • FIG. 18 (b ′) shows the state of the circulation list after L ⁇ N hours have passed since FIG. 18 (b).
  • FIG. 18 (c) shows the state of the circulation list after (M ⁇ L) ⁇ N hours have passed since FIG. 18 (b ′)
  • FIG. 18 (d) shows more N than FIG. 18 (c). It shows the status of the circular list after a lapse of time.
  • the CLOCKHAND 1500 points to the page 1501, and the prewrite process is executed for the page group from the page positioned next to the page 1501 to the page 1502 on the circulation list. To do.
  • a page 1502 writing process that requires a writing process and can be a page replacement target is executed.
  • the page 1502 write process is executed. Therefore, when the CLOCKHAND 1500 points to the page 1502 at the time of FIG. 18B, the buffer management mechanism replacement process executes the page 1502 write process. None happen.
  • the prewrite process is continuously executed during N hours from the time point of FIG. 18 (a) to the time point of FIG. 18 (b), and at the time point of FIG. 18 (b).
  • the prewrite process is executed for the page group from page 1503 to page 1504.
  • the present invention has been made in view of the above-described problems of the prior art, and an object of the present invention is to appropriately control prewrite processing in accordance with the movement of CLOCKHAND that sequentially refers to a plurality of input / output buffers.
  • a data processing method, a data processing apparatus, and a data processing program are provided.
  • the present invention provides a main storage device having a plurality of input / output buffers for temporarily storing data, a secondary storage device for storing the data, and a temporary storage in the input / output buffer.
  • a buffer management unit that manages replacement processing of data to be stored and data stored in the secondary storage device, and prewrite processing that performs pre-writing before the data stored in the input / output buffer is written in the buffer management unit
  • a data processing method for a computer having a prewrite management unit that manages the data, and when the buffer management unit performs the replacement process, the replacement target of the data while referring to the input / output buffer in order The input / output buffer to be selected, and the buffer management unit performs data replacement for the input / output buffer per predetermined time.
  • the prewrite management Section detects the execution timing of the prewrite process, the position information of the input / output buffer that performed the previous prewrite process, the position information of the input / output buffer currently referred to by the buffer management section, A step of selecting an input / output buffer to be subjected to the current prewrite process, and when the prewrite management unit has update data in an input / output buffer that is a candidate for the prewrite process.
  • the step of writing the data stored in the input / output buffer, and the pre-write management unit performs the next pre-write based on the reference speed. And determining the processing execution timing of the processing, the.
  • the present invention it is possible to appropriately control the prewrite processing in accordance with the movement of referring to a plurality of input / output buffers, and it is possible to improve the system throughput.
  • FIG. 10 is a diagram illustrating an example of a prewrite process in which a page writing process occurs in buffer management.
  • FIG. 10 is a diagram illustrating an example of a prewrite process in which a page writing process occurs in buffer management.
  • FIG. 10 is a diagram illustrating an example of a prewrite process in which a page writing process occurs in buffer management.
  • FIG. 10 is a diagram illustrating an example of a prewrite process in which a page writing process occurs in buffer management.
  • FIG. 1 is an overall configuration diagram of a computer system to which the present invention is applied.
  • a database management system 120 in which the prewrite unit 100 is incorporated is constructed in the data management server 101.
  • the data management server 101 includes a CPU (Central Processing Unit) 102 that executes each process described later, a main storage device 103 such as a RAM (Random Access Memory), a secondary storage device 104 such as a hard disk drive, This is realized by a configuration in which “NI” (Network Interface)) 123 is connected via the bus 108.
  • NI Network Interface
  • terminal devices 126 are connected to the data management server 101 as an access request source for data to be managed.
  • the database management system 120 is stored on the main storage device 103, and includes a data processing unit 129, a prewrite unit 100, and a buffer pool 106.
  • the CPU 102 causes the data processing unit 129 and the prewrite unit 100 to execute processing as a controller. That is, when the CPU 102 starts a program constituting the database management system 120, the data processing unit 129, the data processing unit 129, the prewrite unit 100, and the buffer management unit 110 are configured on the database management system 120. Become.
  • the buffer pool 106 is a data area for temporarily storing data stored in the secondary storage device 104 in units of pages, and is configured as a storage area for a plurality of input / output buffers.
  • the buffer pool 106 stores a circulation list 130 of a page set 109 including a page 105, a reference counter 121 corresponding to the page 105, and a dirty flag 107. At this time, each page set 109 is stored in the buffer pool 106 corresponding to each input / output buffer.
  • the data processing unit 129 includes an SQL analysis unit 127, a database operation unit 128, and a buffer management unit 110.
  • the buffer management unit 110 includes a GCLOCK page replacement unit 122 and a replacement execution number acquisition unit 124. As statistical information referred to by the prewrite unit 100, the CLOCKHAND position information 116, the CLOCKHAND movement information 119, and the buffer management per unit time. Each has a replacement execution number table 125 for managing the number of occurrences of the generated replacement process.
  • the buffer management unit 110 selects, for example, a buffer management for selecting an input / output buffer to be replaced for replacing the data with the data of the secondary storage device 104 from among a plurality of input / output buffers.
  • the input / output buffer (page set 109) to be replaced is found while selecting the input / output buffer (page set 109) to be replaced. Is counted as the number of replacement executions.
  • the buffer management unit 110 sequentially refers to information (page 105, reference counter 121, and dirty flag 107) stored in a plurality of input / output buffers, and counts permutations counted with the information of the referenced input / output buffer.
  • the speed (CLOCKHAND speed) for referring to information stored in a plurality of input / output buffers is calculated based on the number of executions.
  • the database management system 120 receives SQL, which is a database inquiry request from the terminal device 126, and is requested by the SQL analysis unit 127 through syntax analysis processing, semantic analysis processing, and optimization processing for determining an optimal access path for database access.
  • the database operation unit 128 executes database operation such as join in response to the SQL request, and issues a necessary data acquisition request to the buffer management unit 110.
  • the buffer management unit 110 increments the reference counter 121 corresponding to the page set 109 to which the data belongs, and exists in the buffer pool 106. Data returned to the access requester.
  • the buffer management unit 110 reads the requested data from the secondary storage device 104 and stores the requested data in the buffer pool 106.
  • the data stored in the page set 109 is returned to the access request source.
  • the GCLOCK page replacement unit 122 selects the page set 109 to be replaced from the page sets 109 existing on the buffer pool 106, and 2 The requested data is read from the next storage device 104, the read data is stored in the page set 109 to be replaced, and the read data is returned to the access request source. Then, “1” is set in the reference counter 121 corresponding to the page set 109 to be replaced, and the dirty flag 107 is reset on the assumption that there is no data difference with the secondary storage device 104.
  • the reference counter 121 corresponding to the page set 109 pointed to by a pointer called CLOCKHAND managed by the buffer management unit 110 is referred to and the value of the reference counter is set in advance. If it is equal to or less than a certain threshold, this page set 109 is set as a replacement target. For example, when the threshold value is “0” and the value of the reference counter corresponding to the page set 109 pointed to by the pointer called CLOCKHAND is “0” or less, this page set 109 is set as a replacement target.
  • the reference counter 121 corresponding to the page set 109 exceeds a preset threshold value (for example, “0”), the reference counter 121 corresponding to the page set 109 is decremented, and the CLOCKHAND The page set 109 positioned next to the page set 109 on the circulation list 130 is pointed to. Thereafter, the same processing is sequentially repeated until an appropriate page set 109 is selected as a replacement target.
  • a preset threshold value for example, “0”
  • the buffer management unit 110 is configured to write out stored data to the secondary storage device 104 when the corresponding dirty flag 107 is set for the page set 109 to be replaced.
  • the prewrite unit of the first embodiment performs a prewrite process in which the above-described dirty data is written to the secondary storage device 104 before the buffer management unit 110 writes the data stored in the page set 109. It is designed to execute and manage.
  • the prewrite unit 100 includes a start position determination unit 111, a target number determination unit 112, a prewrite actual processing unit 113, a start opportunity determination unit 114, and a standby unit 115, and is independent of the data processing unit 129 and in parallel. It is configured to work.
  • the prewrite unit 100 has a predetermined set of pages 105 in the page pool 109 stored in the buffer pool 106 before the buffer management unit 110 writes the page 105 to the secondary storage device 104. Export based on conditions.
  • the prewrite unit 100 When there is updated data (page 105) in the page set 109 that may be selected as a replacement target by the buffer management unit 110, the prewrite unit 100 includes CLOCKHAND position information 116, CLOCKHAND movement information 119, and With reference to the replacement execution number table 125, a page that needs to be written to the secondary storage device 104 is selected from the page set 109 including the updated data (page 105), and the writing process is executed.
  • the prewrite unit 100 is activated by an activation request from the database management system 120. At this time, the prewrite unit 100 repeats the processing executed from the start position determination unit 111 to the standby unit 115 until a stop request is received from the database management system 120.
  • the prelight unit 100 first activates the start position determination unit 111.
  • the start position determination unit 111 determines the page set 109 for starting the prewrite actual processing executed by the prewrite actual processing unit 113 from the circulation list 130 in the buffer pool 106.
  • the prelight unit 100 activates the target number determination unit 112.
  • the target number determination unit 112 determines the number of page sets 109 corresponding to a predetermined number to be processed in the prewrite actual processing executed by the prewrite actual processing unit 113. Thereafter, the prewrite unit 100 activates the prewrite actual processing unit 113.
  • the prewrite actual processing unit 113 needs to perform the writing process on the predetermined number of page sets 109 determined by the target number determination unit 112 in order from the page set 109 determined by the start position determination unit 111 by the start position determination unit 111. It is determined whether or not there is.
  • the prewrite actual processing unit 113 writes the data of the page 105 belonging to the page set 109 determined to need the writing process to the secondary storage device 104.
  • the prelight unit 100 activates the start opportunity determination unit 114.
  • the start opportunity determination unit 114 determines the time to wait in the standby unit 115.
  • the prewrite unit 100 activates the standby unit 115 and executes the standby process according to the standby time determined by the start opportunity determination unit 114.
  • FIG. 2 is a flowchart showing the processing contents of the start position determination unit 111.
  • FIG. 3 shows an example of the circulation list 130 of the page set 109 stored in the buffer pool 106 shown in FIG. 1, and is a schematic diagram showing the relationship between the CLOCKHAND position information 116 and the circulation list. Note that the page set 109 includes a page 105 and a reference counter 121 and a dirty flag 107 corresponding to the page 105.
  • the CLOCKHAND position information 116 is statistical information indicating the position of the page set 109 pointed to by CLOCKHAND.
  • the page set 302 is included in the CLOCKHAND position information 116. It is assumed that it is set.
  • the page set which is the best process start position of the prewrite actual process is determined by the CLOCKHAND traveling direction as viewed from the CLCOKHAND position information 116 at the start of the prewrite actual process. Further, it is assumed that the page set is positioned first by the specified value m. When the difference between the page set as the processing start position of the prewrite actual processing and the CLCOKHAND position information 116 is less than the specified value m or more than the specified value n + m, the prewrite processing cannot be normally continued. It shall be determined.
  • the specified values n and m are natural numbers (including 0), and both are set in advance by the database management system 120 or the prewrite unit 100 or as initial values.
  • the start position determination unit 111 first acquires the CLOCKHAND position information 116 possessed by the buffer management unit 110 in step 200.
  • step 201 the difference d between the CLOCKHAND position information and the page set for which the previous pre-write actual processing has been completed is calculated. If the difference d is less than the prescribed value m, in step 202, the page set as the processing start position of the immediately following prewrite actual process is set to a position advanced by the prescribed value m from the CLOCKHAND position information 116, and the starting position is set. The process of the determination part 111 is complete
  • the start position determination unit 111 next determines whether or not the difference d is greater than or equal to the specified value n + m in step 203. That is, it is determined whether CLOCKHAND is more than a certain distance away from the page set for which the previous prewrite actual processing has been completed.
  • step 202 the page set that is the processing start position of the current prewrite actual process is advanced from the CLOCKHAND position information 116 by the specified value m.
  • the setting of the start position determination unit 111 is completed.
  • the start position determining unit 111 determines the processing start position of the current prewrite actual process in step 204 as the previous prewrite actual process. Set to the page set next to the page set that has been processed, and CLOCKHAND is not too far away from the page set for which the previous prewrite actual processing has been completed, and the processing of the start position determination unit 111 is terminated. To do.
  • the specified value m is set to 2
  • the specified value n + m is set to 5
  • the page set for which the previous prewrite actual processing is completed is set as the page set 306.
  • the prescribed value m is a preset value used when determining the page set that is the best processing start position of the prewrite actual processing.
  • N + m is a preset value used when determining whether or not the prewrite process can be continued normally.
  • the difference d (“4”) is not less than the specified value m (“2”) and less than the specified value n + m (“5”). It is determined that the prewrite process can be normally continued even for the page set next to the page set for which the actual prewrite process has been completed. As a result, the page set as the processing start position of the immediately following prewrite actual process is set to the page set 307 next to the page set 306 for which the immediately preceding prewrite actual process has been completed. The above is the processing content of the start position determination unit 111.
  • FIG. 5 is a conceptual diagram showing an example of the replacement execution number table 125.
  • the replacement execution frequency table 125 is composed of i page replacement occurrence counts 500 and corresponding item numbers 502 and average page replacement occurrence counts 501 that are average values of i page replacement occurrence counts 500.
  • the page replacement occurrence count 500 is the number of times the replacement processing of the page 105 is executed in the GCLOCK page replacement section 122 during the unit time t.
  • FIG. 6 is a diagram showing the processing contents of the replacement execution number acquisition unit 124.
  • the replacement execution number acquisition unit 124 is activated as needed from the buffer management unit 110 every time a unit time t (for example, 1 second) elapses.
  • the replacement execution number acquisition unit 124 acquires the number of page replacement occurrences possessed by the GCLOCK page replacement unit 122.
  • the number of page replacement occurrences is a value incremented every time the page replacement process is executed in the GCLOCK page replacement unit 122.
  • step 601 the replacement execution number acquisition unit 124 sets 0 to the number of page replacement occurrences in order to measure the number of page replacement occurrences per unit time.
  • the replacement execution frequency acquisition unit 124 registers the page replacement occurrence frequency acquired in step 600 in the page replacement occurrence frequency 500 corresponding to the item number a in the replacement execution frequency table 125.
  • the item number a is a value managed by the replacement execution number acquisition unit 124 and is initialized to 1 when the buffer management unit 110 is activated.
  • step 603 the replacement execution frequency acquisition unit 124 calculates an average page replacement frequency 501 based on the page replacement frequency of items number 1 to i registered in the replacement frequency table 125.
  • the replacement execution number acquisition unit 124 increments item number a in step 604. At this time, if the value of a is i, 0 is set to a to return to the original value.
  • the specified value L is a value set in advance in the prewrite unit 100 in order to determine whether or not to change the number of prewrite processing targets from the specified value.
  • the number of processing targets for the default pre-write actual processing is the number of page sets that are located in front of the CLOCKHAND in the traveling direction as viewed from the processing start position set by the start position determination unit 111 and are to be replaced in the buffer management unit. That is.
  • step 401 the target number determination unit 112 determines the number of occurrences of the replacement process from the time point when the previous prewrite actual process is started to the start of the current process start position determination process based on the replacement execution number table 125. 500 is obtained, and the average replacement processing occurrence count y during that period is calculated.
  • the average page replacement process occurrence count x is a value calculated as the average replacement execution count from the past to the end of the current prewrite process start position determination process from the previous start time of the prewrite process.
  • the target number determination unit 112 acquires the processing target number of the predetermined prewrite actual process, and when the subtraction result z is ⁇ L ⁇ z ⁇ L, in step 403, the immediately following prewrite actual process is performed.
  • the number of processing targets of the page set 109 to be processed is set to the same number as the number of processing targets of the default prewrite actual processing.
  • the target number determination unit 112 processes the default prewrite actual process as the process target number of the page set to be processed in the current prewrite actual process. Set the result of adding f (z) from the number of objects.
  • the target number determination unit 112 processes the default prewrite actual process as the process target number of the page set 109 processed in the current prewrite actual process. Set the result of subtracting f (z) to the target number. The above is the processing content of the target number determination unit 112.
  • FIG. 7 is a diagram illustrating the processing contents of the prewrite actual processing unit 113.
  • the processing content of the prewrite actual processing unit 113 in the first embodiment will be described with reference to the flowchart of FIG.
  • step 700 the prewrite actual processing unit 113 sets the page set 109 at the processing start position set in the start position determination unit 111 as a processing target.
  • the prewrite actual processing unit 113 sets 0 to the processed page counter managed by the prewrite actual processing unit 113 and initializes it.
  • the processed page counter counts up when the page set that is the processing target is the replacement target in the buffer management because the prewrite actual processing is performed by the processing target number determined by the target number determination unit 112. It is managed by the prewrite actual processing unit 113.
  • step 702 the processing from step 703 to step 708 is repeated until the count value of the processed page counter becomes equal to or greater than the number of processing targets set by the target number determination unit 112.
  • step 703 it is determined whether or not the page set 109 to be processed is a replacement target in the buffer management. For example, it is determined whether or not the count value of the reference counter 121 is 0 (threshold) or less.
  • step 703 for example, when the count value of the reference counter 121 is 0 (threshold) or less and the page set 109 to be processed is a replacement target (step 703: YES), the processing is completed in step 704. Count up the page counter.
  • the prewrite actual processing unit 113 determines in step 705 whether or not the dirty flag 107 corresponding to the page set 109 is set. That is, it is determined whether or not updated data exists in the page set 109.
  • step 706 the page set 109 to be processed is registered in the write list managed by the prewrite actual processing unit 113.
  • step 707 regardless of the determination results in steps 703 and 705, a page set 109 that is positioned one ahead of the direction of CLOCKHAND when viewed from the page set 109 set as the processing target is newly added. Set as a target to be processed.
  • step 709 the processing from step 710 to step 713 is repeated until there is no page set 109 registered in the export list.
  • step 710 one page set 109 is extracted from the top of the export list.
  • step 711 the data of the page 105 corresponding to the extracted page set 109 is written as updated data to the secondary storage device 104.
  • step 712 the dirty flag 107 corresponding to the page set 109 extracted in step 711 is reset.
  • the above is the processing content of the prewrite actual processing unit 113.
  • the prewriting actual The page sets to be processed in the processing unit 113 are the page set 305 registered in the export list and the page set 308 not registered in the registration list.
  • the corresponding dirty flag 107 is set in the page set 305, and the corresponding dirty flag 107 is not set in the page set 308. Therefore, the page 105 corresponding to the page set 305 is not set. Are written to the secondary storage device 104 only.
  • FIG. 8 is a diagram illustrating the processing contents of the start opportunity determination unit 114.
  • the processing content of the start opportunity determination part 114 in 1st embodiment is demonstrated using the flowchart of FIG.
  • the start opportunity determination unit 114 first acquires the CLOCKHAND position information 116 from the buffer management unit 110 in step 800.
  • the start opportunity determination unit 114 acquires the CLOCKHAND movement information 119 from the buffer management unit 110 in step 801.
  • the CLOCKHAND movement information 119 is the number of page sets pointed to (referenced) by CLOCKHAND per unit time. That is, the CLOCKHAND movement information 119 is acquired from the buffer management unit 110 in order to see the movement speed of the CLOCKHAND while the prewrite process is being executed.
  • step 802 the start opportunity determination unit 114 specifies the reverse of the direction of CLOCKHAND from the position of the page set 109 last set as the processing target in the prewrite actual processing unit 113 in the current processing.
  • the page sets 109 separated by the value m are obtained.
  • step 802 the time until the CLOCKHAND position information 116 reaches the position of the page set 109 obtained in step 801 from the CLOCKHAND position information 116 acquired in step 800 and the CLOCKHAND movement information 119 acquired in step 801. Is calculated.
  • step 803 the time calculated in step 802 is set as the standby time for the standby unit 115.
  • the above is the processing content of the start opportunity determination unit 114.
  • the standby unit 115 executes the standby process based on the standby time set by the start opportunity determination unit 114. Then, after the standby process is completed, when there is no stop request for the prewrite unit 100 from the database management system 120, the standby unit 115 activates the start position determination unit 111 again and causes the prewrite unit 100 to start processing. .
  • the prescribed value m is “2”
  • the prescribed value n + m is “5”
  • the number of processing objects of the default prewrite actual processing is “3”
  • the prescribed value L is “1”
  • f (z) [
  • the replacement execution number table 125 handled in this example is the replacement execution number table 125 of FIG.
  • a series of processes executed in the order of the start position determination unit 111, the target number determination unit 112, the prewrite actual processing unit 113, the start trigger determination unit 114, and the standby unit 115 will be described as a group of one process. .
  • FIG. 9A schematically shows state transitions in the prelight unit 100 until the start position determination unit 111 is activated and the standby unit 115 enters standby processing.
  • CLOCKHAND position information 116a is acquired from the buffer management unit 110.
  • the CLOCKHAND position information 116a is the page set 900 at this time.
  • the page set for which the previous prelight actual processing is completed is referred to as a page set 901.
  • the difference between the page set 900 and the page set 901 is 3, and this value is not less than the specified value m “2” and less than the specified value n + m “5”. Is set to the page set 902.
  • the target number determination unit 112 determines the processing target number of the current prewrite actual process.
  • the page sets to be processed at this time are the page sets 903, 904, and 905.
  • the page set page 904 and the page corresponding to the page set page 905 105 data is written to the secondary storage device 104.
  • the start opportunity determination unit 114 determines a standby time until the start position determination unit 111 is activated next time.
  • the CLOCKHAND position information 116b is acquired from the buffer management unit 110.
  • FIG. 9A it is assumed that the page set 901 is the page set at the position indicated by the CLOCKHAND position information 116b when this processing is started.
  • the page set 906 is obtained from the page set 905 to be processed last in the previous prewrite actual process and the specified value m, and in addition to this, the page set 901 indicated by the CLOCKHAND position information 116b, and the buffer management unit 110 Based on the acquired CLOCKHAND movement information 119, a waiting time until the page set 906 indicated by the CLOCKHAND position information 116 is reached is calculated. Thereafter, based on the calculated standby time, the standby unit 115 executes standby processing until the start position determination unit 111 is activated again.
  • the CLOCKHAND movement information 119 is 2 page sets / second
  • the difference between the page set 901 indicated by the CLOCKHAND position information 116b and the page set 906 is 7, so the calculated waiting time is 3.5 seconds.
  • the start position determination unit 111 is activated again.
  • the CLOCKHAND position information 116 at the time of activation is the position of the page set 907, and the page set for which the previous prewrite actual processing has been completed is the page set 905b.
  • the difference from the set 905b is 6. Since this value is equal to or greater than the specified value n + m “5”, the page set that is the processing start position of the current prewrite actual process is advanced from the page set 907 by the specified value m “2” in the CLOCKHAND direction.
  • the page set 908 is set.
  • the target number determination unit 112 determines the number of processing targets of the prewrite actual processing unit 113 immediately after.
  • the page sets to be processed at this time are the page sets 904b, 905b, and 909, and the prewrite actual processing unit 113 resets the dirty flag 107 corresponding to the page set 905b and the page set 909, and then the page set page 905b.
  • the data of the page 105 corresponding to the page set page 909 is written to the secondary storage device 104.
  • the start opportunity determination unit 114 the next time based on the page set 905 b pointed to by the CLOCKHAND 116 d at the start of this processing, the page set 909 that was the last processing target of the current prewrite actual processing, and the CLOCKHAND movement information 119 The standby time until the start position determination unit 111 is activated is determined, and then the standby unit 115 executes standby processing.
  • the page 105 corresponding to the page set 905 is updated in response to a request from the terminal device 126 from the start of the standby process in FIG. 9A to the start of the start position determination processing unit 111 in FIG. 9B.
  • the page set in which the dirty flag 107 has been set is referred to as a page set 905b. Even in such a case, the execution of the write process to the secondary storage device 104 in the buffer management unit 110 is suppressed by executing the prewrite process.
  • the start position determination unit 111 is activated again.
  • the page set pointed to by the CLOCKHAND position information 116 at the time of activation is the page set 910, and the page set for which the previous prewrite actual processing is completed is the page set 909c.
  • a page set 911 is set.
  • the target number determination unit 112 determines the processing target number of the immediately following prewrite actual processing.
  • the target number determination unit 112 calculates the average number of replacement processing occurrences from the time when the immediately preceding prewrite actual process starts until the immediately preceding process start position determination process starts.
  • the number of page replacement processes that have occurred in the buffer management unit 110 from the start of the immediately preceding pre-write actual process to the start of the immediately preceding process start position determination process is 5 (page set 903). , 904, 905, 909, and 910), and the difference z between the numbers of occurrences of both average replacement processes calculated as a result is -7 ⁇ z ⁇ -6. Since this value is less than the specified value ⁇ L, the number of processing targets of the immediately following prewrite actual process is calculated based on f (z). At this time, the calculated processing target number is 5 by adding the calculation result 2 of f (z) to the processing target number of the predetermined prewrite actual processing.
  • the page sets to be processed at this time are the page sets 911, 912, 913, 914, and 915, and after resetting the dirty flag 107 corresponding to the page set 912 and the page set 915, the page set page 912 and the page set page.
  • the data of page 105 corresponding to 915 is written to the secondary storage device 104.
  • the start opportunity determination unit 114 the page set 913 to which the CLOCKHAND 116 points at the start of this process, the page set 915 that was the last processing target of the immediately preceding prewrite actual process, and the CLOCKHAND movement information 119
  • the standby time until the start position determination unit 111 is activated is determined, and then the standby unit 115 executes standby processing.
  • the processing start position of the prewrite actual processing, the number of processing targets, and the waiting time between prewrite processing are appropriately determined.
  • the page set 109 to be processed is always positioned in the forward direction of the CLOCKHAND when viewed from the CLOCKHAND position information 116.
  • the data of the page 105 that has been written in the immediately preceding pre-write actual process is updated by a request from the terminal device (user) 126, and the replacement process of the page 105 is performed in the buffer management. Is executed, the situation where the data writing process of the page 105 is executed is suppressed. This makes it possible to keep the buffer management processing response constant.
  • FIG. 10 is an overall configuration diagram related to the second embodiment of the present invention.
  • the database management system 120 shown in the second embodiment basically has the same configuration as that of the first embodiment (FIG. 1). However, the buffer management unit 110a and the prewrite unit 100a in the data processing unit 129 have the same configuration. The configuration is different.
  • the database management system 120 in the second embodiment will be described.
  • the buffer management unit 110a includes a GCLOCK page replacement unit 122a, a replacement execution number acquisition unit 124, and a prewrite activation unit 1000.
  • the buffer management unit 110a executes the replacement process of the page 105 in the GCLOCK page replacement unit 122a, and the replacement process of the page 105 ,
  • the prelight unit 100a is activated via the prelight activation unit 1000.
  • the GCLOCK page replacement unit 122a is activated by the buffer management unit 110a. First, in step 1200, the GCLOCK page replacement unit 122a selects a page set 109 to be replaced from the page sets 109 existing on the buffer pool 106 based on the GCLOCK page replacement algorithm.
  • step 1204 the number of activations of the GCLOCK page replacement unit 122a is acquired after the previous prewrite unit 100a has been activated, and the number of activations is incremented.
  • This activation count is managed by the buffer management unit 110a, and is initialized to 0 when the buffer management unit 110a is activated.
  • step 1205 the GCLOCK page replacement unit 122a acquires the number of processing targets of the previous prewrite actual process from the prewrite unit 100a.
  • the GCLOCK page replacement unit 122a compares the number of activations of the GCLOCK page replacement unit 122a acquired in Step 1204 with the number of processing targets acquired in Step 1205.
  • the prewrite is performed via the prewrite activation unit 1000 in step 1207.
  • the unit 100a is activated.
  • step 1201 the GCLOCK page replacement unit 122a determines whether the dirty flag 107 of the page set 109 selected in step 1200 is set.
  • step 1201 If it is determined in step 1201 that the dirty flag 107 is set (step 1201: YES), in step 1203, the data of the page 105 corresponding to the page set 109 is written to the secondary storage device 104, The process ends.
  • the prewrite activation unit 1000 initializes the number of activations of the GCLOCK page replacement unit 122a managed by the buffer management unit 110a with 0 after the prewrite unit 100a is activated.
  • the prewrite unit 100a includes a start position determination unit 111, a target number determination unit 112, and a prewrite actual processing unit 113a, and is activated by an activation request from the prewrite activation unit 1000 in the buffer management unit 110a.
  • the start position determination unit 111 determines the page set 109 for starting the prewrite actual process, and then the target number determination unit 112 determines the page set 109 to be processed by the prewrite actual process. Determine the number of.
  • the prewrite actual processing unit 113a the prewrite actual processing is executed, and the prewrite processing is terminated. Details of the prewrite actual processing unit 113a will be described later.
  • processing contents of the prewrite actual processing unit 113a in the second embodiment will be described with reference to the flowchart of FIG. 11, the processing contents of steps 700, 701, 703, 704, 705 and 707 are the same as in the first embodiment.
  • the prewrite actual processing unit 113a first executes the processing of steps 700 and 701, and then in step 1100, the processing from step 703 to step 1101 is performed on the processed page counter managed by the prewrite actual processing unit 113a. The process is repeated until the count value is equal to or greater than the processing target number set by the target number determining unit 112.
  • step 703 the prewrite actual processing unit 113a determines whether or not the page set 109 as a processing target is a replacement target in the buffer management unit 110a. 703: YES), in step 704, the count value of the processed page counter is counted up. On the other hand, if it is not a replacement target (step 703: NO), the process proceeds to step 707.
  • the prewrite actual processing unit 113a determines whether or not the dirty flag 107 corresponding to the page set 109 is set in step 705. If the dirty flag 107 is set (step 705: YES), In step 709a, the data of the page 105 corresponding to the page set 109 is written to the secondary storage device 104. Conversely, when the dirty flag is not set (step 705: NO), the process proceeds to step 707.
  • step 710a the dirty flag 107 corresponding to the page set 109 is reset, and finally, in step 706, when viewed from the page set 109 set as the processing target, one ahead of the CLOCKHAND progress direction. Is set as a new processing target.
  • the above is the processing content of the prewrite actual processing unit 113a.
  • the buffer management unit 110a can control the activation of the prewrite process.
  • the prewrite process is performed. to start.
  • the buffer management unit 110a controls the activation of the prewrite unit 100a.
  • the prewrite unit 100 basically has the next prewrite unit 100.
  • the buffer management unit 110 may activate the prewrite unit 100 only when CLOCKHAND passes through the page set 109 last processed in the immediately preceding prewrite processing.
  • the third embodiment can be combined with any of the first and second embodiments.
  • the database management system 120 shown in the third embodiment has the same configuration as that of the first embodiment (FIG. 1) or the second embodiment (FIG. 10).
  • the processing of the prelight actual processing unit 113b (not shown) is different from the first embodiment and the second embodiment.
  • FIG. 13 is a diagram showing the processing content of the prewrite actual processing unit 113b in the third embodiment, and is a diagram in which a part of the processing of the prewrite actual processing unit 113a in the second embodiment is changed.
  • the processes in steps 1300 to 1304 are different from those in the second embodiment.
  • the processing content of the prewrite actual processing unit 113b in the present embodiment will be described with reference to the flowchart of FIG.
  • the prewrite actual processing unit 113b first acquires the CLOCKHAND position information 116 from the buffer management unit 110a in step 1300.
  • step 1301 the prewrite actual processing unit 113b calculates a difference between the page set 109 that is exactly the processing target and the CLOCKHAND position information 116 in the repetitive processing, and the calculated difference is the specified value m. It is judged whether it is less than. That is, it is determined whether or not the page set 109 to be processed has been overtaken by CLOCKHAND or is likely to be overtaken in the near future.
  • the prewrite actual processing unit 113b determines that the page set 109 to be processed has been overtaken by CLOCKHAND (or may be overtaken soon), and the prewrite actual processing unit 113b performs step 1302 Then, the start position determination unit 111 is activated to reset the process start position in the actual prewrite processing unit 113b.
  • step 1303 the target number determination unit 112 is activated to reset the processing target number in the present prewrite unit.
  • step 1304 the prewrite actual processing unit 113b is activated, and the processing of the present prewrite actual processing unit 113b is terminated.
  • the prewrite actual processing unit 113b performs step 703. Migrate to The processes other than steps 1300, 1301, 1302, 1303, and 1304 are the same as the processes of the prewrite actual processing unit 113a.
  • FIG. 14 is a diagram showing the processing contents of a prewrite actual processing unit 113c (not shown) obtained by changing a part of the processing of the prewrite actual processing unit 113 in the first embodiment.
  • step 709 the prewrite actual processing unit 113c repeats the processing from step 710 to step 713 until there is no page set 109 registered in the export list.
  • the prewrite actual processing unit 113c first extracts one page set 109 from the top of the writing list in step 710, and then acquires the CLOCKHAND position information 116 from the buffer management unit 110 in step 1400.
  • step 1401 the prewrite actual processing unit 113c calculates a difference between the extracted page set 109 and the CLOCKHAND position information 116, and determines whether or not the calculated difference is less than a specified value m. . That is, it is determined whether the extracted page set 109 has been overtaken by CLOCKHAND (or whether there is a possibility of being overtaken soon).
  • the prewrite actual processing unit 113c activates the start position determination unit 111 in step 1402, and sets the processing start position in the prewrite actual processing unit 113c. Perform reconfiguration.
  • step 1403 the prewrite actual processing unit 113c activates the target number determination unit 112 and resets the number of processing targets in the prewrite actual processing unit 113c.
  • step 1404 the prewrite actual processing unit 113c is activated, and the processing of the prewrite actual processing unit 113c is terminated.
  • steps 1400, 1401, 1402, 1403, and 1404 are the same as those of the prewrite actual processing unit 113.
  • the CLOCKHAND position information 116 is acquired immediately before executing the writing process in the pre-write actual process, and the position of the CLOCKHAND position information 116 and the position of the page set 109 that executes the writing process.
  • the processing start position By executing the determination process, the determination process target number determination process, and the prewrite actual process again, it is possible to suppress the occurrence of the page writing process in the buffer management more than the first embodiment or the second embodiment. It becomes.
  • the database management system 120 is taken as an example, but the present invention is applicable to any system that requires buffer management.
  • GCLOCK is applied to an algorithm for determining data resource allocation
  • the algorithm can be used as a replacement target while sequentially tracing the circular list 130 of the page set 109 including GCLOCK.
  • An algorithm for searching the page 105 may be used.
  • Start timing determination unit 115 ... Standing unit 116 ... CLOCKHAND position information 119 ... CLOCKHAND movement information 120 ... Database management system 121 ... Reference counter 122, 122a ... GCLOCK page replacement unit 123 ... Network interface 124 ... Replacement execution frequency acquisition unit 125 ... Replacement execution frequency table 126 ... terminal 127 ... SQL analysis unit 128 ... database operation unit 129 ... data processing unit 130 ... page set circulation list 500 ... page replacement occurrence frequency 501 ... page replacement occurrence frequency average value 502 ... page replacement occurrence frequency corresponding term Number 1000 ... Reraito starting unit 1500 ... CLOCKHAND

Abstract

The disclosed data processing device has: a buffer management unit (110) that manages I/O buffers for a main memory device (103) and data replacement processes for a secondary memory device (104); and a pre-write management unit (100) that manages pre-write processes. The buffer management unit (110) sequentially references I/O buffers and selects an I/O buffer on which to perform replacement. The buffer management unit also determines a replacement count (how many times to perform I/O buffer replacement) and a referencing speed (the speed at which to sequentially reference the I/O buffers). When a pre-write process is executed, the pre-write management unit (100) selects the I/O buffer on which to perform the current pre-write process on the basis of I/O buffer position information from the previous pre-write process, position information for the I/O buffer currently being referenced by the buffer management unit, and the aforementioned replacement count. If that I/O buffer contains updated data, that data is written out to the secondary memory device, and the next pre-write process is executed in accordance with the aforementioned referencing speed.

Description

データ処理方法、データ処理装置及びデータ処理プログラムData processing method, data processing apparatus, and data processing program 参照による取り込みImport by reference
 本出願は、平成22年(2010年)4月22日に出願された日本特許出願特願2010-098652の優先権を主張し、その内容を参照することにより、本出願に取り込む。 This application claims the priority of Japanese Patent Application No. 2010-098652 filed on April 22, 2010, and is incorporated herein by reference.
 本発明は、バッファ管理コンポーネントを有するシステムのデータ処理方法、データ処理装置及びデータ処理プログラムに関する。 The present invention relates to a data processing method, a data processing apparatus, and a data processing program for a system having a buffer management component.
 データベース管理システム(DBMS)等のソフトウェアでは、データ処理を実行する際、処理速度や転送速度の差を補い、処理の高速化を図るために、データをページと呼ばれる単位毎に、一時的に主記憶装置上のバッファプールに記憶する。バッファプール上に全てのデータを記憶できるとは限らないため、バッファプール上には、バッファ管理機構によって、使用される可能性の高いデータが記憶されるようになっている。使用される可能性が高いデータを含むページ以外のページは2次記憶装置などに格納されており、必要に応じてバッファプール上のページと置換する置換処理を行うようになっている。
 ここで、置換処理とは、バッファプール上にあるページを2次記憶装置等に書出して、2次記憶装置から必要なデータをページ単位で読込む場合と、バッファプール上からの書出しを行わずに2次記憶装置から必要なデータをページ単位で読込む場合との両方の処理を含むものである。
In software such as a database management system (DBMS), when executing data processing, the data is temporarily stored in units called pages in order to compensate for differences in processing speed and transfer speed and to speed up processing. Store in the buffer pool on the storage device. Since not all data can be stored in the buffer pool, data that is likely to be used is stored on the buffer pool by the buffer management mechanism. Pages other than pages containing data that is highly likely to be used are stored in a secondary storage device or the like, and a replacement process is performed to replace pages on the buffer pool as necessary.
Here, the replacement processing refers to a case where pages on the buffer pool are written to the secondary storage device or the like and necessary data is read from the secondary storage device in units of pages, and writing from the buffer pool is not performed. In addition, both processing for reading necessary data from the secondary storage device in units of pages are included.
 置換処理において、バッファプール上の置換対象となるページを選択するといった、バッファ上のリソース割り当てを行うアルゴリズムとしてLRU(Least Recently Used)やGeneralized CLOCK(以下、GCLOCK)がある。
 LRUについては、特許文献1のDescription of the Related Artに纏められており、GCLOCKの詳細に関しては、非特許文献1のpp.17等で述べられている。
In replacement processing, there are LRU (Least Recently Used) and Generalized CLOCK (hereinafter, GCLOCK) as algorithms for allocating resources on a buffer, such as selecting a page to be replaced on the buffer pool.
LRU is summarized in Description of the Related Art of Patent Document 1, and details of GCLOCK are described in pp. 17 of Non-Patent Document 1.
 バッファ管理機構において、置換処理を実施する場合、まず、バッファプール上の置換対象となるページを探索する。探索の結果、置換対象となるページが決まった後、そのページがバッファプールに読み込まれてから更新があったか否かを判定する。前記判定の結果、更新があった場合、2次記憶装置等の主記憶以外の記憶装置に対し、置換対象となるページを書き出す書出し処理を行う。 When performing replacement processing in the buffer management mechanism, first, a page to be replaced on the buffer pool is searched. As a result of the search, after the page to be replaced is determined, it is determined whether or not the page has been updated since it was read into the buffer pool. If there is an update as a result of the determination, a writing process for writing a page to be replaced is performed on a storage device other than the main memory such as a secondary storage device.
 その後、書出し処理を行った記憶装置から必要なデータをページ単位でバッファプール上に読み込む読込み処理が実施されるようになっている。つまり、置換処理は、書出し処理が発生した場合は、発生しなかった場合に比べて、書出し処理の分、処理に必要なデータへのアクセスレスポンスが長くなる。 After that, a read process for reading necessary data from the storage device that has performed the write process into the buffer pool in units of pages is performed. That is, in the replacement process, when the writing process occurs, the access response to the data required for the process becomes longer by the writing process compared to the case where the writing process does not occur.
 特定のデータへのアクセスレスポンスを向上させる方法として、アクセス要求が発生する前に、ページの書出し処理を予め完了させておくことが考えられる。この点、特許文献2には、ページを置換する際に書き出しが必要となるページ(以下、「ダーティなページ」という。)を、バッファ管理機構とは非同期に書き出す技術が開示されている。特許文献2に開示された技術では、ダーティなページを、バッファ管理機構とは非同期に全て書き出すようになっている。このような、ダーティなページを、事前且つ非同期に書き出す処理をプレライト処理と呼ぶ。 As a method for improving the access response to specific data, it is conceivable to complete the page writing process before an access request is generated. In this regard, Patent Document 2 discloses a technique for writing a page (hereinafter referred to as “dirty page”) that needs to be written when replacing a page asynchronously with the buffer management mechanism. In the technique disclosed in Patent Document 2, all dirty pages are written asynchronously with the buffer management mechanism. Such a process of writing out a dirty page in advance and asynchronously is called a prewrite process.
 プレライト処理において、ダーティなページを全て書き出した後、バッファ管理機構が、バッファプール上に有るページを置換対象とするまでの間に、そのページに含まれるデータが更新されると、そのページは再度ダーティなページとなる。このため、その後バッファ管理機構がそのページを置換対象としたときに、ページの書出し処理が発生してしまうといった第一の問題がある。 In the pre-write process, if all the dirty pages are written and the data included in the page is updated before the buffer management mechanism makes the page in the buffer pool to be replaced, It becomes a dirty page again. For this reason, there is a first problem that a page writing process occurs when the page is subsequently replaced by the buffer management mechanism.
 また、前述したダーティなページを全て書き出すプレライト処理の場合では、バッファ管理機構がバッファプール上に有る特定のページを置換対象とするまでの間に、ページの更新と、そのページの書出し処理とが繰り返される可能性がある。このとき、その特定のページに対し有効なプレライト処理は、そのページが置換対象となる直前に実行されたプレライト処理だけであり、それ以前に実行されたプレライト処理で発生した書出し処理は、プレライト処理を実行するシステム全体に対してのオーバヘッド増大に繋がるといった第二の問題がある。 In addition, in the case of the above-described prewrite process for writing out all dirty pages, the page update and the page write process before the buffer management mechanism sets a specific page on the buffer pool as a replacement target. May be repeated. At this time, the prewrite process effective for the specific page is only the prewrite process executed immediately before the page becomes the replacement target, and the write process generated in the prewrite process executed before that page is There is a second problem that leads to an increase in overhead for the entire system that executes the prewrite process.
 前記2つの問題を解決するためには、一度のプレライト処理で書き出すページ数を適切に管理し、そのプレライト処理の実行直後にバッファ管理機構が置換対象とするようなページのみをプレライト処理の処理対象とする方法が考えられる。 In order to solve the above two problems, the number of pages to be written in one prewrite process is appropriately managed, and only the pages that are to be replaced by the buffer management mechanism immediately after execution of the prewrite process are prewritten. A method to be processed can be considered.
米国特許第7,096,321号公報US Pat. No. 7,096,321 特開2001-101080号公報Japanese Patent Laid-Open No. 2001-101080
 従来技術では、バッファ上のリソース割り当てを行うアルゴリズム毎に、置換対象となるページの選択方法が異なる。そのため、前記解決方法を実現するにあたり、アルゴリズム毎に異なるプレライト処理の処理方法が必要となる。
 GCLOCKでは、バッファプール上に格納されたページを、順番の固定された循環リストとして管理しており、ページの置換処理が発生する場合、前記循環リスト上のページを順に辿りながらページを指し示すCLOCKHANDによって、前記循環リスト上に点在している置換対象となり得るページを探索する。
In the prior art, a method for selecting a page to be replaced differs for each algorithm for allocating resources on the buffer. Therefore, in order to realize the solution, a different prewrite processing method is required for each algorithm.
In GCLOCK, the pages stored in the buffer pool are managed as a circular list with a fixed order. When a page replacement process occurs, CLOCKHAND that points to the page while sequentially tracing the pages on the circular list. The search is made for pages that can be replaced on the circulation list.
 つまり、GCLOCKを適用したバッファ管理において、プレライト処理実行直後に、バッファ管理機構において置換対象となるようなページのみをプレライト処理の処理対象とするためには、プレライト処理実行直後に、CLOCKHANDがポイントするページの近くに位置するページのみをプレライト処理の処理対象とする必要がある。 In other words, in the buffer management to which GCLOCK is applied, immediately after the prewrite process is executed, in order to make only the pages to be replaced by the buffer management mechanism the prewrite process, the CLOCKHAND It is necessary to make only the page located near the page pointed to by the prewrite process.
 例えば、プレライト処理の処理対象としているページの循環リスト上の位置と、CLOCKHANDが指し示しているページの循環リスト上の位置の差が大きく開いていると、バッファ管理機構においてページの書出し処理が発生することとなる。 For example, if the difference between the position on the circular list of the page to be processed by the prewrite process and the position on the circular list of the page pointed to by CLOCKHAND is wide, the page management process occurs in the buffer management mechanism. Will be.
 この事例を、図を用いて詳細に具体的に説明する。図15は、バッファ管理機構によってページの書出し処理が発生する例を示す。図15(a)と図15(b)は、同じ循環リストの例を示す図であり、図15(b)は、図15(a)よりN時間経過した前記循環リストの状態を示している。図15(a)の時点で、CLOCKHAND1500は、ページ1501を指し示しており、ページ1503からページ1504までのページ群(点線内のページ)を対象にプレライト処理が実行されるものとする。 This case will be described in detail with reference to the drawings. FIG. 15 shows an example in which page write processing occurs by the buffer management mechanism. 15 (a) and 15 (b) are diagrams showing examples of the same circulation list, and FIG. 15 (b) shows the state of the circulation list after N hours have elapsed from FIG. 15 (a). . As shown in FIG. 15A, the CLOCKHAND 1500 points to the page 1501, and it is assumed that the prewrite process is executed for the page group (pages within the dotted line) from the page 1503 to the page 1504.
 このプレライト処理では、プレライト対象のページ群に書出し処理が必要なページを含むため、該当するページの書出し処理が実行される。また、書出し処理が必要なページには、ページ置換の対象となり得るページ1503とページ1504とが含まれる。つまり、CLOCKHAND1500が指し示す前に、更新されたデータが格納されたページ1503とページ1504のプレライト処理が実行される。 In this prewrite process, the page group to be prewritten includes a page that needs to be written, so the corresponding page is written. The pages that need to be written out include pages 1503 and 1504 that can be replaced. That is, before the CLOCKHAND 1500 indicates, the prewrite processing of the pages 1503 and 1504 in which the updated data is stored is executed.
 しかし、図15の例では、ページ1501とページ1503との間においても書出し処理を必要とし且つ、ページ置換の対象となり得るページ1502が存在する。そのため、図15(b)の時点で、CLOCKHAND1500がページ1502を指し示したとき、バッファ管理機構において、更新されたデータが格納されたページ1502に対して、書出し処理が実行されることとなる。 However, in the example of FIG. 15, there is a page 1502 that needs to be written out between the pages 1501 and 1503 and can be a page replacement target. Therefore, when the CLOCKHAND 1500 points to the page 1502 at the time of FIG. 15B, the buffer management mechanism executes the writing process for the page 1502 in which the updated data is stored.
 また、プレライト処理において、書き出すページの量については、一度のプレライト処理で、大量のページの書出し処理を実行すると、上述した第一の問題と同様の問題が発生することになる。即ちバッファ管理機構によって置換対象される前に、再度ダーティなページとなってしまい、そのページをバッファ管理機構が置換対象としたときに、書出し処理が必要となるケースである。 In addition, regarding the amount of pages to be written in the prewrite process, if a large number of pages are written in a single prewrite process, the same problem as the first problem described above occurs. That is, the page becomes a dirty page again before being replaced by the buffer management mechanism, and when the page is replaced by the buffer management mechanism, a writing process is required.
 この事例を、図16を用いて具体的に説明する。図16(a)、図16(b)、図16(c)及び図16(d)は、同じ循環リストの例を示す図であり、図16(b)は、図16(a)よりN時間経過した前記循環リストの状態を示しており、図16(c)は、図16(b)より更にM×N時間経過した前記循環リストの状態を示しており、図16(d)は、図16(c)より更にN時間経過した前記循環リストの状態を示している。 This case will be specifically described with reference to FIG. FIG. 16A, FIG. 16B, FIG. 16C, and FIG. 16D are diagrams showing examples of the same circulation list, and FIG. FIG. 16 (c) shows the state of the circulation list after a lapse of time, FIG. 16 (c) shows the state of the circulation list after a lapse of M × N time from FIG. 16 (b), and FIG. FIG. 16C shows the state of the circulation list after N hours have passed.
 図16(a)の時点では、CLOCKHAND1500はページ1501を指し示しており、前記循環リスト上でページ1501からページ1504までのページ群を対象にプレライト処理が実行されるものとする。このとき、プレライト処理において、書出し処理を必要とし且つページ置換の対象となり得るページ1502、ページ1503及びページ1504の、書出し処理が実行される。 At the time of FIG. 16 (a), CLOCKHAND 1500 points to page 1501, and it is assumed that prewrite processing is executed for the page group from page 1501 to page 1504 on the circulation list. At this time, in the prewrite process, the write process of page 1502, page 1503, and page 1504, which requires a write process and can be a page replacement target, is executed.
 プレライト処理において、ページ1502の書出し処理が実行されることで、図16(b)の時点で、CLOCKHAND1500がページ1502を指し示したとき、ページ1502のデータは、プレライト処理で既に書き出されているので、ページ1502の置換処理で、書出し処理が実行されることはない。 In the prewrite process, when the page 1502 write process is executed, when the CLOCKHAND 1500 points to the page 1502 at the time of FIG. 16B, the data of the page 1502 has already been written by the prewrite process. Therefore, the writing process is not executed in the replacement process of the page 1502.
 しかし、図16(b)の時点から図16(c)の時点までM×N時間経過する間に、ページ1504に含まれるデータが更新された場合、再度ページ1504の書出し処理を必要とする状態になってしまう。そのため、図16(d)の時点で、CLOCKHAND1500がページ1504を指し示したとき、バッファ管理機構の置換処理において、ページ1504の書出し処理が実行されることとなる。 However, if the data included in the page 1504 is updated during the lapse of M × N time from the time point of FIG. 16B to the time point of FIG. 16C, a state where the write processing of the page 1504 is required again. Become. Therefore, when the CLOCKHAND 1500 points to the page 1504 at the time of FIG. 16D, the page 1504 writing process is executed in the replacement process of the buffer management mechanism.
 また、上述解決方法を実現するにあたり、プレライト処理の対象となるページの量は、CLOCKHANDが指し示すページ近くに位置するページのみ少量(適量)となるので、プレライト処理は常時動作する必要は無い。つまり、プレライト処理を実行後、一定期間休止し、続きのプレライト処理を実行させればよい。 Moreover, in realizing the above-described solution, the amount of pages to be subjected to prewrite processing is small (appropriate amount) only for pages located near the page indicated by CLOCKHAND, so the prewrite processing does not need to be constantly operated. . In other words, after executing the prewrite process, it is possible to pause for a certain period and execute the subsequent prewrite process.
 しかし、休止の期間が長く、プレライト休止中に前回実行したプレライト処理範囲をCLOCKHANDが通過してしまうと、置換処理でプレライト処理の実行前のページを参照し、結果、置換処理でページの書出し処理が必要となる。 However, if the pause period is long and CLOCKHAND passes through the pre-write processing range that was previously executed during the pre-write pause, the replacement process refers to the page before the pre-write process and results in the replacement process. Writing process is required.
 この事例を、図を用いて具体的に説明する。図17に、プレライト処理実行前にCLOCKHANDが、プレライト対象ページを通過してしまうために、置換処理で書出し処理が必要となる例を示す。図17(a)、図17(b)、図17(c)は、同じ循環リストの例を示す図であり、図17(b)は、図17(a)よりN時間経過した前記循環リストの状態を示しており、図17(c)は、図17(b)より更にM×N時間経過した前記循環リストの状態を示している。 This example will be described in detail with reference to the drawings. FIG. 17 shows an example in which the writing process is required in the replacement process because CLOCKHAND passes through the prewrite target page before the prewrite process is executed. 17 (a), 17 (b), and 17 (c) are diagrams showing examples of the same circulation list. FIG. 17 (b) shows the circulation list after N hours have elapsed from FIG. 17 (a). FIG. 17 (c) shows the state of the circulation list when M × N hours have passed since FIG. 17 (b).
 図17(a)の時点では、CLOCKHAND1500は、ページ1501を指し示しており、前記循環リスト上でページ1501の次に位置するページからページ1502までのページ群を対象に、プレライト処理を実行するものとする。このとき、プレライト処理において、書出し処理を必要とし且つページ置換の対象となり得るページ1502の書出し処理が実行される。 At the time of FIG. 17A, the CLOCKHAND 1500 points to the page 1501 and executes prewrite processing for the page group from the page positioned next to the page 1501 to the page 1502 on the circulation list. And At this time, in the prewrite process, a page 1502 writing process that requires a writing process and can be a page replacement target is executed.
 このプレライト処理において、ページ1502の書出し処理が実行されるので、図17(b)の時点で、CLOCKHAND1500がページ1502を指し示したとき、ページ1502の書出し処理が実行されることはない。 In this prewrite process, the write process of page 1502 is executed. Therefore, when the CLOCKHAND 1500 points to the page 1502 at the time of FIG. 17B, the write process of page 1502 is not executed.
 しかし、そのプレライト処理実行以降、図17(b)の時点から図17(c)の時点までM×N時間経過する間に、プレライト処理が実行されるようなことがなく、CLOCKHAND1500が図17(a)の時点で実行されたプレライト処理の処理範囲を超えてしまうと、図17(c)の時点でCLOCKHAND1500がページ1503を指し示したときに、バッファ管理機構の置換処理において、ページ1503の書出し処理が実行されることとなる。 However, after the prewrite process is executed, the prewrite process is not executed during the lapse of M × N time from the time point of FIG. 17B to the time point of FIG. 17C, and the CLOCKHAND 1500 is shown in FIG. When the processing range of the prewrite processing executed at the time of 17 (a) is exceeded, when the CLOCKHAND 1500 points to the page 1503 at the time of FIG. 17 (c), the page 1503 is replaced in the buffer management mechanism replacement processing. The writing process is executed.
 このような事例とは対照的に、プレライト処理が常時動作するか、休止時間が短すぎると、時間の経過と共にプレライト処理の処理対象としているページの循環リスト上の位置と、CLOCKHANDが指し示しているページの循環リスト上の位置の差が大きくなり、上述した第一の問題と同様の問題が発生してしまう。即ちプレライト処理後からCLOCKHANDが指し示す前に更新され、書出し処理が必要になってしまったページを、バッファ管理機構の置換処理において、再度書出し処理が必要となってしまう。 In contrast to these cases, if the prewrite process is always running or if the pause time is too short, the position of the page that is the target of the prewrite process on the cyclic list and the CLOCKHAND point over time. The difference in the position of the current page on the circulation list becomes large, and the same problem as the first problem described above occurs. In other words, pages that have been updated after the prewrite process and before CLOCKHAND pointed out and need to be written out will need to be written out again in the replacement process of the buffer management mechanism.
 この事例について、図を用いて具体的に説明する。図18に、書出し処理が必要となる例を示す。図18(a)、図18(b)図18(b´)、図18(c)、図18(d)は、同じ循環リストの例を示す図であり、図18(b)は、図18(a)よりN時間経過した前記循環リストの状態を示しており、図18(b´)は、図18(b)より更にL×N時間経過した前記循環リストの状態を示しており、図18(c)は、図18(b´)より更に(M―L)×N時間経過した前記循環リストの状態を示しており、図18(d)は、図18(c)より更にN時間経過した循環リストの状態を示している。 This case will be specifically described with reference to the drawings. FIG. 18 shows an example in which a writing process is required. 18 (a), 18 (b), 18 (b '), 18 (c), and 18 (d) are diagrams showing examples of the same circulation list, and FIG. 18 (b) is a diagram. 18 (a) shows the state of the circulation list after N hours have elapsed, and FIG. 18 (b ′) shows the state of the circulation list after L × N hours have passed since FIG. 18 (b). FIG. 18 (c) shows the state of the circulation list after (M−L) × N hours have passed since FIG. 18 (b ′), and FIG. 18 (d) shows more N than FIG. 18 (c). It shows the status of the circular list after a lapse of time.
 図18(a)の時点では、CLOCKHAND1500はページ1501を指し示しており、前記循環リスト上でページ1501の次に位置するページからページ1502までのページ群を対象にプレライト処理が実行されるものとする。このとき、プレライト処理において、書出し処理を必要とし且つページ置換の対象となり得るページ1502の書出し処理が実行される。 At the time of FIG. 18A, the CLOCKHAND 1500 points to the page 1501, and the prewrite process is executed for the page group from the page positioned next to the page 1501 to the page 1502 on the circulation list. To do. At this time, in the prewrite process, a page 1502 writing process that requires a writing process and can be a page replacement target is executed.
 このプレライト処理において、ページ1502の書出し処理が実行されるので、図18(b)の時点でCLOCKHAND1500がページ1502を指し示したとき、バッファ管理機構の置換処理で、ページ1502の書出し処理が実行されることはない。 In this prewrite process, the page 1502 write process is executed. Therefore, when the CLOCKHAND 1500 points to the page 1502 at the time of FIG. 18B, the buffer management mechanism replacement process executes the page 1502 write process. Never happen.
 しかし、このプレライト処理実行以降、図18(a)の時点から図18(b)の時点までN時間経過する間に、連続的にプレライト処理が実行され、図18(b)の時点で、ページ1503からページ1504までのページ群を対象にプレライト処理が実行されたとする。 However, after execution of the prewrite process, the prewrite process is continuously executed during N hours from the time point of FIG. 18 (a) to the time point of FIG. 18 (b), and at the time point of FIG. 18 (b). Suppose that the prewrite process is executed for the page group from page 1503 to page 1504.
 この2回目のプレライト処理において、書出し処理を必要とし且つページ置換の対象となり得るページ1503とページ1504の書出し処理が実行された場合、図18(b)の時点から図18(c)の時点までM×N時間経過する間に、ページ1504に含まれるデータが更新され、ページ1504が書出し処理の必要な状態となると、図18(d)の時点でCLOCKHAND1500がページ1504を指し示したとき、バッファ管理機構の置換処理において、ページ1504の書出し処理が再度実行されることとなる。 In the second prewrite process, when the write process of page 1503 and page 1504 that requires the write process and can be replaced is executed, the process from the time point of FIG. 18B to the time point of FIG. 18C. When M × N time elapses until the data included in the page 1504 is updated and the page 1504 becomes necessary for the writing process, when the CLOCKHAND 1500 points to the page 1504 at the time of FIG. In the management mechanism replacement process, the page 1504 writing process is executed again.
 つまり、CLOCKHANDの動きに合わせて、プレライト処理を適切に制御することが課題となる。 In other words, it is a problem to appropriately control the prelight processing according to the movement of CLOCKHAND.
 本発明は、前記従来技術の課題に鑑みて為されたものであり、その目的は、複数の入出力バッファを順に参照するCLOCKHANDの動きに合わせて、プレライト処理を適切に制御することができるデータ処理方法、データ処理装置およびデータ処理プログラムを提供することにある。 The present invention has been made in view of the above-described problems of the prior art, and an object of the present invention is to appropriately control prewrite processing in accordance with the movement of CLOCKHAND that sequentially refers to a plurality of input / output buffers. A data processing method, a data processing apparatus, and a data processing program are provided.
 上記目的を達成するため、本発明は、データを一時的に格納する複数の入出力バッファを有する主記憶装置と、前記データを格納する2次記憶装置と、前記入出力バッファに一時的に格納するデータ及び前記2次記憶装置に格納するデータの置換処理を管理するバッファ管理部と、前記入出力バッファに格納されたデータがバッファ管理部において書き出される前に、事前書出しを行うプレライト処理を管理するプレライト管理部と、を有する計算機のデータ処理方法であって、前記バッファ管理部が、前記置換処理を実施する際に、前記入出力バッファを順番に参照しながら前記データの置換対象となる入出力バッファを選定するステップと、前記バッファ管理部が、所定時間あたりに前記入出力バッファに対してデータの置換を行った回数である置換実行回数を計測するステップと、前記バッファ管理部が、所定時間あたりに前記複数の入出力バッファに格納されたデータを順番に参照する参照速度を算出するステップと、前記プレライト管理部が、プレライト処理の実行契機を検出し、前回プレライト処理を行った入出力バッファの位置情報と、現在バッファ管理部で参照されている入出力バッファの位置情報と、前記置換実行回数とに基づいて、今回のプレライト処理を行う対象となる入出力バッファを選定するステップと、前記プレライト管理部が、前記プレライト処理を行う候補となる入出力バッファに、更新データがある場合に、当該入出力バッファに格納されたデータを書き出すステップと、前記プレライト管理部が、前記参照速度に基づいて、次回のプレライト処理の処理実行契機を決定するステップと、を含む。 To achieve the above object, the present invention provides a main storage device having a plurality of input / output buffers for temporarily storing data, a secondary storage device for storing the data, and a temporary storage in the input / output buffer. A buffer management unit that manages replacement processing of data to be stored and data stored in the secondary storage device, and prewrite processing that performs pre-writing before the data stored in the input / output buffer is written in the buffer management unit A data processing method for a computer having a prewrite management unit that manages the data, and when the buffer management unit performs the replacement process, the replacement target of the data while referring to the input / output buffer in order The input / output buffer to be selected, and the buffer management unit performs data replacement for the input / output buffer per predetermined time. Measuring the number of executions of replacement that is a number; calculating a reference speed at which the buffer management unit sequentially refers to data stored in the plurality of input / output buffers per predetermined time; and the prewrite management Section detects the execution timing of the prewrite process, the position information of the input / output buffer that performed the previous prewrite process, the position information of the input / output buffer currently referred to by the buffer management section, A step of selecting an input / output buffer to be subjected to the current prewrite process, and when the prewrite management unit has update data in an input / output buffer that is a candidate for the prewrite process. The step of writing the data stored in the input / output buffer, and the pre-write management unit performs the next pre-write based on the reference speed. And determining the processing execution timing of the processing, the.
 本発明によれば、複数の入出力バッファを参照する動きに合わせて、プレライト処理を適切に制御することができ、システムのスループットの向上を図ることができる。 According to the present invention, it is possible to appropriately control the prewrite processing in accordance with the movement of referring to a plurality of input / output buffers, and it is possible to improve the system throughput.
本発明の第一の実施形態の構成を示す図である。It is a figure which shows the structure of 1st embodiment of this invention. 第一の実施形態における開始位置決定部の処理内容を示すフローチャートである。It is a flowchart which shows the processing content of the start position determination part in 1st embodiment. 本発明におけるページセットの循環リストの例を示した図である。It is the figure which showed the example of the circulation list of the page set in this invention. 第一の実施形態における対象数決定部の処理内容を示すフローチャートである。It is a flowchart which shows the processing content of the object number determination part in 1st embodiment. 本発明における置換実行回数表の例を示した図である。It is the figure which showed the example of the replacement execution frequency table | surface in this invention. 第一の実施形態における置換実行回数取得部の処理内容を示すフローチャートである。It is a flowchart which shows the processing content of the replacement execution frequency acquisition part in 1st embodiment. 第一の実施形態におけるプレライト実処理部の処理内容を示すフローチャートである。It is a flowchart which shows the processing content of the prelight real process part in 1st embodiment. 第一の実施形態における開始契機決定部の処理内容を示すフローチャートである。It is a flowchart which shows the processing content of the start opportunity determination part in 1st embodiment. 第一の実施形態における本発明の処理の概略を示す図である。It is a figure which shows the outline of the process of this invention in 1st embodiment. 本発明の第二の実施形態の構成を示す図である。It is a figure which shows the structure of 2nd embodiment of this invention. 第二の実施形態におけるプレライト実処理部の処理内容を示すフローチャートである。It is a flowchart which shows the processing content of the prelight real process part in 2nd embodiment. 第二の実施形態におけるプレライト起動部の処理内容を示すフローチャートである。It is a flowchart which shows the processing content of the prelight starting part in 2nd embodiment. 第三の実施形態を第一の実施形態に適用した場合のプレライト実処理部の処理内容を示すフローチャートである。It is a flowchart which shows the processing content of the prelight real process part at the time of applying 3rd embodiment to 1st embodiment. 第三の実施形態を第二の実施形態に適用した場合のプレライト実処理部の処理内容を示すフローチャートである。It is a flowchart which shows the processing content of the prelight real process part at the time of applying 3rd embodiment to 2nd embodiment. バッファ管理においてページの書出し処理が発生するプレライト処理の一例を示した図である。FIG. 10 is a diagram illustrating an example of a prewrite process in which a page writing process occurs in buffer management. バッファ管理においてページの書出し処理が発生するプレライト処理の一例を示した図である。FIG. 10 is a diagram illustrating an example of a prewrite process in which a page writing process occurs in buffer management. バッファ管理においてページの書出し処理が発生するプレライト処理の一例を示した図である。FIG. 10 is a diagram illustrating an example of a prewrite process in which a page writing process occurs in buffer management. バッファ管理においてページの書出し処理が発生するプレライト処理の一例を示した図である。FIG. 10 is a diagram illustrating an example of a prewrite process in which a page writing process occurs in buffer management.
[第一の実施形態]
 以下、本発明の第一実施形態について、図1を用いて説明する。
[First embodiment]
Hereinafter, a first embodiment of the present invention will be described with reference to FIG.
 図1は、本発明を適用した計算機システムの全体構成図である。プレライト部100が組み込まれるデータベース管理システム120は、データ管理サーバ101の中に構築される。データ管理サーバ101は、後記する各処理を実行するCPU(Central Processing Unit)102や、RAM(Random Access Memory)等の主記憶装置103、ハードディスクドライブ等の2次記憶装置104、ネットワークインタフェース(以下、「NI」(Network Interface)という。)123を、バス108を介して接続した構成で実現される。 FIG. 1 is an overall configuration diagram of a computer system to which the present invention is applied. A database management system 120 in which the prewrite unit 100 is incorporated is constructed in the data management server 101. The data management server 101 includes a CPU (Central Processing Unit) 102 that executes each process described later, a main storage device 103 such as a RAM (Random Access Memory), a secondary storage device 104 such as a hard disk drive, This is realized by a configuration in which “NI” (Network Interface)) 123 is connected via the bus 108.
 また、データ管理サーバ101には、管理するデータへのアクセス要求元として、多数の端末装置126が接続される。 In addition, a large number of terminal devices 126 are connected to the data management server 101 as an access request source for data to be managed.
 データベース管理システム120は、主記憶装置103上に格納されており、データ処理部129、プレライト部100及びバッファプール106から構成される。この際、CPU102は、コントローラとして、データ処理部129やプレライト部100にそれぞれ処理を実行させることになる。即ちCPU102が、データベース管理システム120を構成するプログラムを起動することで、データベース管理システム120上に、データ処理部129、データ処理部129、プレライト部100およびバッファ管理部110が構成されることになる。 The database management system 120 is stored on the main storage device 103, and includes a data processing unit 129, a prewrite unit 100, and a buffer pool 106. At this time, the CPU 102 causes the data processing unit 129 and the prewrite unit 100 to execute processing as a controller. That is, when the CPU 102 starts a program constituting the database management system 120, the data processing unit 129, the data processing unit 129, the prewrite unit 100, and the buffer management unit 110 are configured on the database management system 120. Become.
 バッファプール106は、2次記憶装置104に格納されているデータをページ単位で一時的に記憶するデータ領域であって、複数の入出力バッファの格納領域として構成されている。このバッファプール106は、ページ105と、ページ105に対応するリファレンスカウンタ121及びダーティフラグ107からなるページセット109の循環リスト130を格納する。この際、各ページセット109は、各入出力バッファに対応してバッファプール106に格納される。 The buffer pool 106 is a data area for temporarily storing data stored in the secondary storage device 104 in units of pages, and is configured as a storage area for a plurality of input / output buffers. The buffer pool 106 stores a circulation list 130 of a page set 109 including a page 105, a reference counter 121 corresponding to the page 105, and a dirty flag 107. At this time, each page set 109 is stored in the buffer pool 106 corresponding to each input / output buffer.
 データ処理部129は、SQL解析部127、データベース演算部128及びバッファ管理部110から構成される。 The data processing unit 129 includes an SQL analysis unit 127, a database operation unit 128, and a buffer management unit 110.
 バッファ管理部110は、GCLOCKページ置換部122及び置換実行回数取得部124から構成され、プレライト部100が参照する統計情報として、CLOCKHAND位置情報116、CLOCKHAND移動情報119及び単位時間当たりにバッファ管理で発生した置換処理の発生回数を管理する置換実行回数表125をそれぞれ持つ。 The buffer management unit 110 includes a GCLOCK page replacement unit 122 and a replacement execution number acquisition unit 124. As statistical information referred to by the prewrite unit 100, the CLOCKHAND position information 116, the CLOCKHAND movement information 119, and the buffer management per unit time. Each has a replacement execution number table 125 for managing the number of occurrences of the generated replacement process.
 この際、バッファ管理部110は、例えば、複数の入出力バッファの中から、そのデータを、2次記憶装置104のデータと置換するための置換対象となる入出力バッファを選定するためのバッファ管理処理を、プレライト部100によるプレライト処理と並列に実行する過程において、置換対象となる入出力バッファ(ページセット109)を選定する中で置換対象となる入出力バッファ(ページセット109)を発見した回数を置換実行回数として計数する。 At this time, the buffer management unit 110 selects, for example, a buffer management for selecting an input / output buffer to be replaced for replacing the data with the data of the secondary storage device 104 from among a plurality of input / output buffers. In the process of executing the process in parallel with the prewrite processing by the prewrite unit 100, the input / output buffer (page set 109) to be replaced is found while selecting the input / output buffer (page set 109) to be replaced. Is counted as the number of replacement executions.
 また、バッファ管理部110は、複数の入出力バッファに格納された情報(ページ105、リファレンスカウンタ121及びダーティフラグ107)を順番に参照するとともに、参照された入出力バッファの情報と計数された置換実行回数を基に複数の入出力バッファに格納された情報を参照する速度(CLOCKHANDの速度)を算出することとしている。 In addition, the buffer management unit 110 sequentially refers to information (page 105, reference counter 121, and dirty flag 107) stored in a plurality of input / output buffers, and counts permutations counted with the information of the referenced input / output buffer. The speed (CLOCKHAND speed) for referring to information stored in a plurality of input / output buffers is calculated based on the number of executions.
 データベース管理システム120は、端末装置126からのデータベース問い合わせ要求であるSQLを受け取り、SQL解析部127において、構文解析処理、意味解析処理及びデータベースアクセスの最適なアクセス経路を決定する最適化処理によって要求されたデータを特定し、データベース演算部128において、SQL要求に応じてジョインなどのデータベース演算を実行し、バッファ管理部110に対して、必要なデータの取得要求を出す。 The database management system 120 receives SQL, which is a database inquiry request from the terminal device 126, and is requested by the SQL analysis unit 127 through syntax analysis processing, semantic analysis processing, and optimization processing for determining an optimal access path for database access. The database operation unit 128 executes database operation such as join in response to the SQL request, and issues a necessary data acquisition request to the buffer management unit 110.
 バッファ管理部110は、既にバッファプール106内に要求されたデータが読み込まれていた場合、そのデータが属するページセット109に対応するリファレンスカウンタ121をインクリメントし、バッファプール106内に存在する、要求されたデータを、アクセス要求元に返却する。 If the requested data has already been read into the buffer pool 106, the buffer management unit 110 increments the reference counter 121 corresponding to the page set 109 to which the data belongs, and exists in the buffer pool 106. Data returned to the access requester.
 逆に、バッファ管理部110は、データベース演算部128から要求されたデータが、バッファプール106内に存在しないときには、2次記憶装置104内から、要求されたデータを読み出して、バッファプール106内のページセット109に格納するとともに、読み出したデータを、アクセス要求元に返却する。 Conversely, when the data requested from the database operation unit 128 does not exist in the buffer pool 106, the buffer management unit 110 reads the requested data from the secondary storage device 104 and stores the requested data in the buffer pool 106. The data stored in the page set 109 is returned to the access request source.
 このバッファプール106内に要求されたデータが読み込まれていなかった場合、GCLOCKページ置換部122において、バッファプール106上に存在するページセット109の中から置換対象となるページセット109を選定し、2次記憶装置104から要求されたデータを読み込み、読み込んだデータを置換対象のページセット109に格納するとともに、読み込んだデータを、アクセス要求元に返却するようになっている。そして、置換対象のページセット109に対応するリファレンスカウンタ121に「1」をセットし、2次記憶装置104との間にデータの差分がないとして、ダーティフラグ107をリセットする。 If the requested data is not read in the buffer pool 106, the GCLOCK page replacement unit 122 selects the page set 109 to be replaced from the page sets 109 existing on the buffer pool 106, and 2 The requested data is read from the next storage device 104, the read data is stored in the page set 109 to be replaced, and the read data is returned to the access request source. Then, “1” is set in the reference counter 121 corresponding to the page set 109 to be replaced, and the dirty flag 107 is reset on the assumption that there is no data difference with the secondary storage device 104.
 置換対象となるページセット109の選定方法としては、バッファ管理部110が管理するCLOCKHANDと呼ばれるポインタが指しているページセット109に対応するリファレンスカウンタ121を参照し、リファレンスカウンタの値が予め設定されている閾値以下であった場合、このページセット109を置換対象とする。例えば、閾値が「0」であり、CLOCKHANDと呼ばれるポインタが指しているページセット109に対応するリファレンスカウンタの値が「0」以下であった場合、このページセット109を置換対象とする。このとき、置換対象のページセット109に対応するダーティフラグ107がセットされていた場合(更新されたデータが存在する場合)、ページセット109に対応するページ105のデータを更新されたデータとして2次記憶装置104に書き出し、その後、2次記憶装置から読み出したデータを、置換対象のページセット109に格納するようになっている。 As a method for selecting the page set 109 to be replaced, the reference counter 121 corresponding to the page set 109 pointed to by a pointer called CLOCKHAND managed by the buffer management unit 110 is referred to and the value of the reference counter is set in advance. If it is equal to or less than a certain threshold, this page set 109 is set as a replacement target. For example, when the threshold value is “0” and the value of the reference counter corresponding to the page set 109 pointed to by the pointer called CLOCKHAND is “0” or less, this page set 109 is set as a replacement target. At this time, when the dirty flag 107 corresponding to the page set 109 to be replaced is set (when updated data exists), the data of the page 105 corresponding to the page set 109 is secondarily updated. Data written to the storage device 104 and then read from the secondary storage device is stored in the page set 109 to be replaced.
 また、ページセット109に対応するリファレンスカウンタ121の値が、予め設定されている閾値(例えば、「0」。)を上回っていた場合、そのページセット109に対応するリファレンスカウンタ121をデクリメントし、CLOCKHANDに、循環リスト130上で、そのページセット109の次に位置するページセット109をポイントさせるようになっている。その後、置換対象として適当なページセット109を選定するまで、順次同様の処理を繰り返す。 If the value of the reference counter 121 corresponding to the page set 109 exceeds a preset threshold value (for example, “0”), the reference counter 121 corresponding to the page set 109 is decremented, and the CLOCKHAND The page set 109 positioned next to the page set 109 on the circulation list 130 is pointed to. Thereafter, the same processing is sequentially repeated until an appropriate page set 109 is selected as a replacement target.
 次いで、第一実施形態のプレライト部100について説明する。上述のように、バッファ管理部110は、置換対象となるページセット109について、対応するダーティフラグ107がセットされている場合、格納されているデータを2次記憶装置104に書き出すように構成されているが、第一実施形態のプレライト部は、バッファ管理部110が、ページセット109に格納されたデータを書き出す前に、上述のダーティなデータを、2次記憶装置104に書き出すプレライト処理を実行・管理するようになっている。
 プレライト部100は、開始位置決定部111、対象数決定部112、プレライト実処理部113、開始契機決定部114及び待機部115から構成され、データ処理部129とは独立であり、パラレルに動作するように構成されている。即ちプレライト部100は、バッファプール106に格納されているページセット109において、ダーティフラグ107が設定されているページ105が、バッファ管理部110によって2次記憶装置104に書き出される前に、所定の条件に基づいて書き出すようになっている。
Next, the prelight unit 100 of the first embodiment will be described. As described above, the buffer management unit 110 is configured to write out stored data to the secondary storage device 104 when the corresponding dirty flag 107 is set for the page set 109 to be replaced. However, the prewrite unit of the first embodiment performs a prewrite process in which the above-described dirty data is written to the secondary storage device 104 before the buffer management unit 110 writes the data stored in the page set 109. It is designed to execute and manage.
The prewrite unit 100 includes a start position determination unit 111, a target number determination unit 112, a prewrite actual processing unit 113, a start opportunity determination unit 114, and a standby unit 115, and is independent of the data processing unit 129 and in parallel. It is configured to work. In other words, the prewrite unit 100 has a predetermined set of pages 105 in the page pool 109 stored in the buffer pool 106 before the buffer management unit 110 writes the page 105 to the secondary storage device 104. Export based on conditions.
 プレライト部100は、バッファ管理部110で置換対象として選定される可能性のあるページセット109の中に更新されたデータ(ページ105)が存在するときには、CLOCKHAND位置情報116、CLOCKHAND移動情報119及び置換実行回数表125を参考に、前記更新されたデータ(ページ105)を含むページセット109の中から、2次記憶装置104に書き出す必要のあるページを選定し、書き出す処理を実行する。 When there is updated data (page 105) in the page set 109 that may be selected as a replacement target by the buffer management unit 110, the prewrite unit 100 includes CLOCKHAND position information 116, CLOCKHAND movement information 119, and With reference to the replacement execution number table 125, a page that needs to be written to the secondary storage device 104 is selected from the page set 109 including the updated data (page 105), and the writing process is executed.
 以下、第一実施形態におけるプレライト処理の処理内容について説明する。
 まず、プレライト部100によって実行されるプレライト処理の概要について、図1を用いて説明する。
Hereinafter, the processing content of the prewrite processing in the first embodiment will be described.
First, an outline of the prewrite process executed by the prewrite unit 100 will be described with reference to FIG.
 プレライト部100は、データベース管理システム120からの起動要求によって起動される。この際、プレライト部100は、開始位置決定部111から待機部115まで実行される処理を、データベース管理システム120からの停止要求があるまで繰り返すようになっている。 The prewrite unit 100 is activated by an activation request from the database management system 120. At this time, the prewrite unit 100 repeats the processing executed from the start position determination unit 111 to the standby unit 115 until a stop request is received from the database management system 120.
 この繰り返し処理では、プレライト部100は、まず開始位置決定部111を起動する。開始位置決定部111は、プレライト実処理部113で実行するプレライト実処理を開始するページセット109を、バッファプール106内の循環リスト130から決定する。 In this iterative process, the prelight unit 100 first activates the start position determination unit 111. The start position determination unit 111 determines the page set 109 for starting the prewrite actual processing executed by the prewrite actual processing unit 113 from the circulation list 130 in the buffer pool 106.
 次に、プレライト部100は、対象数決定部112を起動する。対象数決定部112は、プレライト実処理部113で実行するプレライト実処理で処理対象とする所定数分のページセット109の数を決定する。この後、プレライト部100は、プレライト実処理部113を起動する。 Next, the prelight unit 100 activates the target number determination unit 112. The target number determination unit 112 determines the number of page sets 109 corresponding to a predetermined number to be processed in the prewrite actual processing executed by the prewrite actual processing unit 113. Thereafter, the prewrite unit 100 activates the prewrite actual processing unit 113.
 プレライト実処理部113は、開始位置決定部111で、開始位置と決定したページセット109から順に、対象数決定部112で決定した所定数のページセット109を対象に、書出し処理を行う必要があるか否かを判定する。プレライト実処理部113は、書出し処理を行う必要があると判定されたページセット109に属するページ105のデータを2次記憶装置104に対して書き出す。 The prewrite actual processing unit 113 needs to perform the writing process on the predetermined number of page sets 109 determined by the target number determination unit 112 in order from the page set 109 determined by the start position determination unit 111 by the start position determination unit 111. It is determined whether or not there is. The prewrite actual processing unit 113 writes the data of the page 105 belonging to the page set 109 determined to need the writing process to the secondary storage device 104.
 次に、プレライト部100は、開始契機決定部114を起動する。開始契機決定部114は、待機部115で待機する時間を決定する。最後に、プレライト部100は、待機部115を起動し、開始契機決定部114で決定された待機時間に従い待機処理を実行する。 Next, the prelight unit 100 activates the start opportunity determination unit 114. The start opportunity determination unit 114 determines the time to wait in the standby unit 115. Finally, the prewrite unit 100 activates the standby unit 115 and executes the standby process according to the standby time determined by the start opportunity determination unit 114.
 次に、上述したプレライト処理で各部が実行する具体的な処理を説明する。
 まず、開始位置決定部111の処理内容について図2及び図3を用いて説明する。
Next, specific processing executed by each unit in the above-described prewrite processing will be described.
First, the processing content of the start position determination part 111 is demonstrated using FIG.2 and FIG.3.
 図2は、開始位置決定部111の処理内容を示したフロー図である。
 図3は、図1に示すバッファプール106に格納されているページセット109の循環リスト130の一例を示したものであり、CLOCKHAND位置情報116と循環リストの関係を表した模式図である。
 なお、ページセット109は、ページ105、ページ105に対応するリファレンスカウンタ121及びダーティフラグ107から構成される。
FIG. 2 is a flowchart showing the processing contents of the start position determination unit 111.
FIG. 3 shows an example of the circulation list 130 of the page set 109 stored in the buffer pool 106 shown in FIG. 1, and is a schematic diagram showing the relationship between the CLOCKHAND position information 116 and the circulation list.
Note that the page set 109 includes a page 105 and a reference counter 121 and a dirty flag 107 corresponding to the page 105.
 また、第一実施形態において、CLOCKHAND位置情報116とは、CLOCKHANDがポイントしているページセット109の位置を示す統計情報であり、図3の例では、CLOCKHAND位置情報116には、ページセット302が設定されているものとする。 In the first embodiment, the CLOCKHAND position information 116 is statistical information indicating the position of the page set 109 pointed to by CLOCKHAND. In the example of FIG. 3, the page set 302 is included in the CLOCKHAND position information 116. It is assumed that it is set.
 また、第一実施形態において、プレライト処理を実行する上で、プレライト実処理の最良の処理開始位置であるページセットは、プレライト実処理開始時のCLCOKHAND位置情報116からみてCLOCKHANDの進行方向に、規定値mだけ先に位置するページセットであるものとする。プレライト実処理の処理開始位置とするページセットと、CLCOKHAND位置情報116との差が、規定値m未満若しくは規定値n+m以上となったとき、プレライト処理を正常に継続することができなくなると判定するものとする。規定値n及びmは、自然数(0を含む)であり、又いずれもデータベース管理システム120若しくはプレライト部100によって、あるいは初期値として予め設定されているものとする。 In the first embodiment, when executing the prewrite process, the page set which is the best process start position of the prewrite actual process is determined by the CLOCKHAND traveling direction as viewed from the CLCOKHAND position information 116 at the start of the prewrite actual process. Further, it is assumed that the page set is positioned first by the specified value m. When the difference between the page set as the processing start position of the prewrite actual processing and the CLCOKHAND position information 116 is less than the specified value m or more than the specified value n + m, the prewrite processing cannot be normally continued. It shall be determined. The specified values n and m are natural numbers (including 0), and both are set in advance by the database management system 120 or the prewrite unit 100 or as initial values.
 開始位置決定部111は、まずステップ200でバッファ管理部110が所持するCLOCKHAND位置情報116を取得する。 The start position determination unit 111 first acquires the CLOCKHAND position information 116 possessed by the buffer management unit 110 in step 200.
 次に、ステップ201で、前記CLOCKHAND位置情報と直前(前回)のプレライト実処理が終了したページセットとの差分dを算出する。前記差分dが規定値m未満であった場合、ステップ202で、直後のプレライト実処理の処理開始位置とするページセットをCLOCKHAND位置情報116から規定値mだけ進んだ位置に設定し、開始位置決定部111の処理を終了する。 Next, in step 201, the difference d between the CLOCKHAND position information and the page set for which the previous pre-write actual processing has been completed is calculated. If the difference d is less than the prescribed value m, in step 202, the page set as the processing start position of the immediately following prewrite actual process is set to a position advanced by the prescribed value m from the CLOCKHAND position information 116, and the starting position is set. The process of the determination part 111 is complete | finished.
 ステップ201で、差分dが規定値m以上であった場合、開始位置決定部111は、次に、ステップ203で、差分dが規定値n+m以上であるか否かを判定する。即ちCLOCKHANDが、直前のプレライト実処理が終了したページセットと一定の距離以上離れていないかを判定する。 If the difference d is greater than or equal to the specified value m in step 201, the start position determination unit 111 next determines whether or not the difference d is greater than or equal to the specified value n + m in step 203. That is, it is determined whether CLOCKHAND is more than a certain distance away from the page set for which the previous prewrite actual processing has been completed.
 この判定の結果、差分dが、規定値n+m以上であった場合、ステップ202において、今回のプレライト実処理の処理開始位置とするページセットをCLOCKHAND位置情報116から規定値mだけ進んだ位置に設定し、開始位置決定部111の処理を終了する。 If the difference d is greater than or equal to the specified value n + m as a result of this determination, in step 202, the page set that is the processing start position of the current prewrite actual process is advanced from the CLOCKHAND position information 116 by the specified value m. The setting of the start position determination unit 111 is completed.
 差分dが、規定値m以上であり且つ規定値n+m未満であった場合にのみ、開始位置決定部111は、ステップ204において、今回のプレライト実処理の処理開始位置を、前回のプレライト実処理が終了したページセットの次のページセットに設定し、CLOCKHANDが、前回のプレライト実処理が終了したページセットと余り離れ過ぎず且つ追い越しもしていないとして、開始位置決定部111の処理を終了する。 Only when the difference d is greater than or equal to the prescribed value m and less than the prescribed value n + m, the start position determining unit 111 determines the processing start position of the current prewrite actual process in step 204 as the previous prewrite actual process. Set to the page set next to the page set that has been processed, and CLOCKHAND is not too far away from the page set for which the previous prewrite actual processing has been completed, and the processing of the start position determination unit 111 is terminated. To do.
 図3の例に対し、規定値mを2、規定値n+mを5、前回のプレライト実処理が終了したページセットをページセット306と設定する。この際、規定値mとは、プレライト実処理の最良の処理開始位置であるページセットを決定する際に用いられる、予め設定される値である。また、n+mとは、プレライト処理を正常に継続できるかどうかを判定する際に用いられる、予め設定される値である。 In the example of FIG. 3, the specified value m is set to 2, the specified value n + m is set to 5, and the page set for which the previous prewrite actual processing is completed is set as the page set 306. In this case, the prescribed value m is a preset value used when determining the page set that is the best processing start position of the prewrite actual processing. N + m is a preset value used when determining whether or not the prewrite process can be continued normally.
 また、図3の例では、CLOCKHAND位置情報116におけるページセット302と、前回のプレライト実処理が終了したページセット306との間には、4ページ分(ページセット303、304、305、306)の差があるため、差分dは、4となる。 In the example of FIG. 3, there are four pages (page sets 303, 304, 305, 306) between the page set 302 in the CLOCKHAND position information 116 and the page set 306 for which the previous prewrite actual processing has been completed. Therefore, the difference d is 4.
 このとき、差分d(「4」)は、規定値m(「2」)以上であり且つ規定値n+m(「5」)未満であるため、今回のプレライト実処理の処理開始位置を、前回のプレライト実処理が終了したページセットの次のページセットとしても、正常にプレライト処理を継続可能であると判定する。これにより、直後のプレライト実処理の処理開始位置とするページセットを、直前のプレライト実処理が終了したページセット306の次のページセット307に設定する。
 以上が開始位置決定部111の処理内容である。
At this time, the difference d (“4”) is not less than the specified value m (“2”) and less than the specified value n + m (“5”). It is determined that the prewrite process can be normally continued even for the page set next to the page set for which the actual prewrite process has been completed. As a result, the page set as the processing start position of the immediately following prewrite actual process is set to the page set 307 next to the page set 306 for which the immediately preceding prewrite actual process has been completed.
The above is the processing content of the start position determination unit 111.
 次に、対象数決定部112の具体的処理を説明するが、それに先立ち対象数決定部112が使用する置換実行回数表125及びその表を作成する置換実行回数取得部124の処理を、図5及び図6を用いて具体的に説明する。 Next, specific processing of the target number determination unit 112 will be described. Prior to that, the replacement execution number table 125 used by the target number determination unit 112 and the processing of the replacement execution number acquisition unit 124 that creates the table are shown in FIG. And it demonstrates concretely using FIG.
 図5は、置換実行回数表125の一例を表した概念図である。置換実行回数表125は、i回分のページ置換発生回数500と、それに対応する項番502、i回分のページ置換発生回数500の平均値である平均ページ置換発生回数501から構成される。ページ置換発生回数500は、単位時間tの間にGCLOCKページ置換部122において、ページ105の置換処理が実行された回数である。 FIG. 5 is a conceptual diagram showing an example of the replacement execution number table 125. The replacement execution frequency table 125 is composed of i page replacement occurrence counts 500 and corresponding item numbers 502 and average page replacement occurrence counts 501 that are average values of i page replacement occurrence counts 500. The page replacement occurrence count 500 is the number of times the replacement processing of the page 105 is executed in the GCLOCK page replacement section 122 during the unit time t.
 図6は、置換実行回数取得部124の処理内容を示した図である。
 置換実行回数取得部124は、単位時間t(例えば、1秒)が経過する毎にバッファ管理部110から随時起動される。
FIG. 6 is a diagram showing the processing contents of the replacement execution number acquisition unit 124.
The replacement execution number acquisition unit 124 is activated as needed from the buffer management unit 110 every time a unit time t (for example, 1 second) elapses.
 置換実行回数取得部124は、まずステップ600において、GCLOCKページ置換部122が所持するページ置換発生回数を取得する。このページ置換発生回数は、GCLOCKページ置換部122においてページの置換処理が実行される毎にインクリメントされる値である。 First, in step 600, the replacement execution number acquisition unit 124 acquires the number of page replacement occurrences possessed by the GCLOCK page replacement unit 122. The number of page replacement occurrences is a value incremented every time the page replacement process is executed in the GCLOCK page replacement unit 122.
 次に、置換実行回数取得部124は、ステップ601において、次の単位時間毎のページ置換発生回数を計測するために、ページ置換発生回数に0を設定する。 Next, in step 601, the replacement execution number acquisition unit 124 sets 0 to the number of page replacement occurrences in order to measure the number of page replacement occurrences per unit time.
 次に、置換実行回数取得部124は、ステップ602において、ステップ600で取得したページ置換発生回数を、置換実行回数表125の項番aに対応するページ置換発生回数500に登録する。項番aは、置換実行回数取得部124によって管理される値であり、バッファ管理部110が起動された時に1で初期化される。 Next, in step 602, the replacement execution frequency acquisition unit 124 registers the page replacement occurrence frequency acquired in step 600 in the page replacement occurrence frequency 500 corresponding to the item number a in the replacement execution frequency table 125. The item number a is a value managed by the replacement execution number acquisition unit 124 and is initialized to 1 when the buffer management unit 110 is activated.
 次に、置換実行回数取得部124は、ステップ603において、置換実行回数表125に登録されている項番1から項番iのページ置換発生回数を基に平均ページ置換発生回数501を算出する。 Next, in step 603, the replacement execution frequency acquisition unit 124 calculates an average page replacement frequency 501 based on the page replacement frequency of items number 1 to i registered in the replacement frequency table 125.
 最後に、置換実行回数取得部124は、ステップ604において、項番aをインクリメントする。このときaの値がiであった場合は、元に戻るために、aに0を設定する。 Finally, the replacement execution number acquisition unit 124 increments item number a in step 604. At this time, if the value of a is i, 0 is set to a to return to the original value.
 以下、第一実施形態における対象数決定部112の処理内容について図4及び図5を用いて説明する。図5の詳細については前記の通りである。
 以下の説明において、規定値Lとは、プレライト実処理の処理対象数を規定値から変更するか否かを判定するために、予めプレライト部100において設定されている値である。
Hereinafter, processing contents of the target number determination unit 112 in the first embodiment will be described with reference to FIGS. 4 and 5. Details of FIG. 5 are as described above.
In the following description, the specified value L is a value set in advance in the prewrite unit 100 in order to determine whether or not to change the number of prewrite processing targets from the specified value.
 既定のプレライト実処理の処理対象数とは、開始位置決定部111で設定された処理開始位置からみて、CLOCKHANDの進行方向前方に位置し、バッファ管理部において置換対象となるページセットの数のことである。 The number of processing targets for the default pre-write actual processing is the number of page sets that are located in front of the CLOCKHAND in the traveling direction as viewed from the processing start position set by the start position determination unit 111 and are to be replaced in the buffer management unit. That is.
 対象数決定部112は、図4に示すように、まずステップ400でバッファ管理部110の置換実行回数表125を参照し、平均ページ置換発生回数501x(図5の例ではx=2.5回)を取得する。 As shown in FIG. 4, the target number determination unit 112 first refers to the replacement execution frequency table 125 of the buffer management unit 110 in step 400 to determine the average page replacement occurrence frequency 501x (x = 2.5 times in the example of FIG. 5). ) To get.
 次に、対象数決定部112は、ステップ401で、置換実行回数表125から、前回のプレライト実処理が開始された時点から今回の処理開始位置決定処理が開始されるまでの置換処理発生回数500を取得し、その間の平均置換処理発生回数yを算出する。 Next, in step 401, the target number determination unit 112 determines the number of occurrences of the replacement process from the time point when the previous prewrite actual process is started to the start of the current process start position determination process based on the replacement execution number table 125. 500 is obtained, and the average replacement processing occurrence count y during that period is calculated.
 次に、対象数決定部112は、ステップ402で、平均ページ置換処理発生回数xと前記平均置換処理発生回数yとの減算(x-y)を実行し、減算結果z(z=x-y)を取得する。この平均ページ置換処理発生回数xは、前回のプレライト処理開始時点よりも過去から、今回のプレライト処理の開始位置決定処理終了時点までの間における平均置換実行回数として算出される値である。 Next, in step 402, the target number determination unit 112 performs subtraction (xy) between the average page replacement process occurrence count x and the average replacement process occurrence count y, and the subtraction result z (z = xy). ) To get. The average page replacement process occurrence count x is a value calculated as the average replacement execution count from the past to the end of the current prewrite process start position determination process from the previous start time of the prewrite process.
 次に、対象数決定部112は、既定のプレライト実処理の処理対象数を取得し、減算結果zが、-L≦z≦Lであった場合、ステップ403で、直後のプレライト実処理で処理するページセット109の処理対象数を、既定のプレライト実処理の処理対象数と同数に設定する。 Next, the target number determination unit 112 acquires the processing target number of the predetermined prewrite actual process, and when the subtraction result z is −L ≦ z ≦ L, in step 403, the immediately following prewrite actual process is performed. The number of processing targets of the page set 109 to be processed is set to the same number as the number of processing targets of the default prewrite actual processing.
 減算結果zが、z<-Lであった場合、対象数決定部112は、ステップ404で、今回のプレライト実処理で処理するページセットの処理対象数として、既定のプレライト実処理の処理対象数から、f(z)を加算した結果を設定する。 When the subtraction result z is z <−L, the target number determination unit 112, in step 404, processes the default prewrite actual process as the process target number of the page set to be processed in the current prewrite actual process. Set the result of adding f (z) from the number of objects.
 減算結果zが、L<zであった場合、対象数決定部112は、ステップ405で、今回のプレライト実処理で処理するページセット109の処理対象数として、既定のプレライト実処理の処理対象数に、f(z)を減算した結果を設定する。
 以上が対象数決定部112の処理内容である。
When the subtraction result z is L <z, the target number determination unit 112, in step 405, processes the default prewrite actual process as the process target number of the page set 109 processed in the current prewrite actual process. Set the result of subtracting f (z) to the target number.
The above is the processing content of the target number determination unit 112.
 図7は、プレライト実処理部113の処理内容を示した図である。
以下、第一実施形態におけるプレライト実処理部113の処理内容について図7のフローチャートを用いて説明する。
FIG. 7 is a diagram illustrating the processing contents of the prewrite actual processing unit 113.
Hereinafter, the processing content of the prewrite actual processing unit 113 in the first embodiment will be described with reference to the flowchart of FIG.
 プレライト実処理部113は、まずステップ700で、開始位置決定部111において設定された処理開始位置のページセット109を処理対象とする。 First, in step 700, the prewrite actual processing unit 113 sets the page set 109 at the processing start position set in the start position determination unit 111 as a processing target.
 次に、プレライト実処理部113は、ステップ701で、プレライト実処理部113が管理する処理済ページカウンタに対して、0を設定して初期化する。処理済ページカウンタは、対象数決定部112で決定した処理対象数だけプレライト実処理を実施するため、処理対象となったページセットが、バッファ管理において置換対象となるときに、カウントアップするものであり、プレライト実処理部113によって管理される。 Next, in step 701, the prewrite actual processing unit 113 sets 0 to the processed page counter managed by the prewrite actual processing unit 113 and initializes it. The processed page counter counts up when the page set that is the processing target is the replacement target in the buffer management because the prewrite actual processing is performed by the processing target number determined by the target number determination unit 112. It is managed by the prewrite actual processing unit 113.
 次に、ステップ702において、ステップ703からステップ708までの処理を、処理済ページカウンタのカウント値が、対象数決定部112で設定した処理対象数以上になるまで繰り返す。 Next, in step 702, the processing from step 703 to step 708 is repeated until the count value of the processed page counter becomes equal to or greater than the number of processing targets set by the target number determination unit 112.
 この繰り返し処理では、まずステップ703で、処理対象であるページセット109が、バッファ管理において置換対象となるか否かを判定する。例えば、リファレンスカウンタ121のカウント値が0(閾値)以下か否かを判定する。 In this iterative process, first, in step 703, it is determined whether or not the page set 109 to be processed is a replacement target in the buffer management. For example, it is determined whether or not the count value of the reference counter 121 is 0 (threshold) or less.
 ステップ703の判定において、例えば、リファレンスカウンタ121のカウント値が0(閾値)以下で、処理対象であるページセット109が、置換対象となる場合(ステップ703:YES)は、ステップ704において、処理済ページカウンタをカウントアップする。 In the determination in step 703, for example, when the count value of the reference counter 121 is 0 (threshold) or less and the page set 109 to be processed is a replacement target (step 703: YES), the processing is completed in step 704. Count up the page counter.
 次に、プレライト実処理部113は、ステップ705で、そのページセット109に対応するダーティフラグ107がセットされているか否かを判定する。即ちそのページセット109に更新されたデータが存在するか否かを判定する。 Next, the prewrite actual processing unit 113 determines in step 705 whether or not the dirty flag 107 corresponding to the page set 109 is set. That is, it is determined whether or not updated data exists in the page set 109.
 ダーティフラグ107がセットされていた場合(ステップ705:YES)、ステップ706において、処理対象であるページセット109をプレライト実処理部113が管理する書出しリストに登録する。 If the dirty flag 107 is set (step 705: YES), in step 706, the page set 109 to be processed is registered in the write list managed by the prewrite actual processing unit 113.
 次に、ステップ707において、ステップ703、ステップ705の判定結果に関わらず、処理対象として設定されているページセット109から見て、CLOCKHANDの進行方向に対し一つ先に位置するページセット109を新たな処理対象として設定する。 Next, in step 707, regardless of the determination results in steps 703 and 705, a page set 109 that is positioned one ahead of the direction of CLOCKHAND when viewed from the page set 109 set as the processing target is newly added. Set as a target to be processed.
 次に、ステップ709において、ステップ710からステップ713までの処理を、書出しリストに登録されているページセット109がなくなるまで繰り返す。 Next, in step 709, the processing from step 710 to step 713 is repeated until there is no page set 109 registered in the export list.
 この繰り返し処理では、まずステップ710で、書出しリストの先頭から、ページセット109を一つ取り出す。 In this iterative process, first, in step 710, one page set 109 is extracted from the top of the export list.
 次に、ステップ711で、取り出したページセット109に対応するページ105のデータを、更新されたデータとして2次記憶装置104に対して書き出す。 Next, in step 711, the data of the page 105 corresponding to the extracted page set 109 is written as updated data to the secondary storage device 104.
 次に、ステップ712で、ステップ711で取り出したページセット109に対応するダーティフラグ107をリセットする。
 以上がプレライト実処理部113の処理内容である。
Next, in step 712, the dirty flag 107 corresponding to the page set 109 extracted in step 711 is reset.
The above is the processing content of the prewrite actual processing unit 113.
 以上の処理で、例えば、図3において、処理開始位置のページセットがページセット303であり、対象数決定部112において決定したプレライト実処理の処理対象数が2であった場合、プレライト実処理部113において処理対象となるページセットは、書出しリストに登録されているページセット305と、登録リストには登録されていないページセット308である。 In the above processing, for example, in FIG. 3, when the page set 303 at the processing start position is the page set 303 and the number of processing targets of the prewriting actual processing determined by the target number determination unit 112 is 2, the prewriting actual The page sets to be processed in the processing unit 113 are the page set 305 registered in the export list and the page set 308 not registered in the registration list.
 プレライト実処理部113では、ページセット305は、対応するダーティフラグ107がセットされており、ページセット308は、対応するダーティフラグ107がセットされていないことから、ページセット305に対応するページ105のデータのみが2次記憶装置104に書き出される。 In the prewrite actual processing unit 113, the corresponding dirty flag 107 is set in the page set 305, and the corresponding dirty flag 107 is not set in the page set 308. Therefore, the page 105 corresponding to the page set 305 is not set. Are written to the secondary storage device 104 only.
 図8は、開始契機決定部114の処理内容を示した図である。
 第一実施形態における、開始契機決定部114の処理内容について図8のフローチャートを用いて説明する。
FIG. 8 is a diagram illustrating the processing contents of the start opportunity determination unit 114.
The processing content of the start opportunity determination part 114 in 1st embodiment is demonstrated using the flowchart of FIG.
 開始契機決定部114は、まずステップ800において、バッファ管理部110よりCLOCKHAND位置情報116を取得する。 The start opportunity determination unit 114 first acquires the CLOCKHAND position information 116 from the buffer management unit 110 in step 800.
 次に、開始契機決定部114は、ステップ801において、バッファ管理部110からCLOCKHAND移動情報119を取得する。CLOCKHAND移動情報119とは、単位時間あたりにCLOCKHANDがポイント(参照)したページセットの数である。即ち本プレライト処理が実行されている間のCLOCKHANDの移動速度をみるために、バッファ管理部110からCLOCKHAND移動情報119を取得することとなる。 Next, the start opportunity determination unit 114 acquires the CLOCKHAND movement information 119 from the buffer management unit 110 in step 801. The CLOCKHAND movement information 119 is the number of page sets pointed to (referenced) by CLOCKHAND per unit time. That is, the CLOCKHAND movement information 119 is acquired from the buffer management unit 110 in order to see the movement speed of the CLOCKHAND while the prewrite process is being executed.
 次に、開始契機決定部114は、ステップ802において、今回の処理でプレライト実処理部113において最後に処理対象として設定されていたページセット109の位置からCLOCKHANDの進行方向とは逆に、規定値mだけ離れたページセット109を求める。 Next, in step 802, the start opportunity determination unit 114 specifies the reverse of the direction of CLOCKHAND from the position of the page set 109 last set as the processing target in the prewrite actual processing unit 113 in the current processing. The page sets 109 separated by the value m are obtained.
 さらに、ステップ802では、ステップ800で取得したCLOCKHAND位置情報116と、ステップ801で取得したCLOCKHAND移動情報119から、CLOCKHAND位置情報116が、ステップ801で求めたページセット109の位置に到達するまでの時間を算出する。 Further, in step 802, the time until the CLOCKHAND position information 116 reaches the position of the page set 109 obtained in step 801 from the CLOCKHAND position information 116 acquired in step 800 and the CLOCKHAND movement information 119 acquired in step 801. Is calculated.
 最後に、ステップ803において、待機部115に対して、ステップ802で算出した時間を待機時間として設定する。
 以上が、開始契機決定部114の処理内容である。
Finally, in step 803, the time calculated in step 802 is set as the standby time for the standby unit 115.
The above is the processing content of the start opportunity determination unit 114.
 開始契機決定部114の処理が終了した後、待機部115において、開始契機決定部114で設定した待機時間に基づき待機処理を実行する。
 そして、待機部115は、待機処理終了後、データベース管理システム120から、プレライト部100に対する停止要求がない場合は、再度、開始位置決定部111を起動し、プレライト部100に処理を開始させる。
After the process of the start opportunity determination unit 114 ends, the standby unit 115 executes the standby process based on the standby time set by the start opportunity determination unit 114.
Then, after the standby process is completed, when there is no stop request for the prewrite unit 100 from the database management system 120, the standby unit 115 activates the start position determination unit 111 again and causes the prewrite unit 100 to start processing. .
 次に、以上説明した第一実施形態におけるプレライト処理に関し、図9(a)から(c)を用いて、その処理動作を種々の条件に合わせて模式的に説明する。 Next, regarding the prewrite processing in the first embodiment described above, the processing operation will be schematically described according to various conditions with reference to FIGS.
 以下の説明において、規定値mは「2」、規定値n+mは「5」、既定のプレライト実処理の処理対象数は「3」、規定値Lは「1」、f(z)=[|z|/3]とする。また、本例で扱う置換実行回数表125は、図5の置換実行回数表125とする。また、開始位置決定部111、対象数決定部112、プレライト実処理部113、開始契機決定部114及び待機部115の順に実行される一連の処理を1つの処理のまとまりとして説明するものとする。 In the following description, the prescribed value m is “2”, the prescribed value n + m is “5”, the number of processing objects of the default prewrite actual processing is “3”, the prescribed value L is “1”, and f (z) = [ | z | / 3]. Also, the replacement execution number table 125 handled in this example is the replacement execution number table 125 of FIG. Also, a series of processes executed in the order of the start position determination unit 111, the target number determination unit 112, the prewrite actual processing unit 113, the start trigger determination unit 114, and the standby unit 115 will be described as a group of one process. .
 まず、図9(a)は、プレライト部100において、開始位置決定部111が起動され、待機部115が待機処理に入るまでの状態遷移を模式的に示す。まずバッファ管理部110から、CLOCKHAND位置情報116aを取得する。図9(a)では、この時点でCLOCKHAND位置情報116aはページセット900である。 First, FIG. 9A schematically shows state transitions in the prelight unit 100 until the start position determination unit 111 is activated and the standby unit 115 enters standby processing. First, CLOCKHAND position information 116a is acquired from the buffer management unit 110. In FIG. 9A, the CLOCKHAND position information 116a is the page set 900 at this time.
 次に、前回のプレライト実処理が終了したページセットをページセット901とする。このとき、ページセット900とページセット901との差は3であり、この値は規定値m「2」以上且つ規定値n+m「5」未満であるため、今回のプレライト実処理の処理開始位置となるページセットをページセット902に設定する。 Next, the page set for which the previous prelight actual processing is completed is referred to as a page set 901. At this time, the difference between the page set 900 and the page set 901 is 3, and this value is not less than the specified value m “2” and less than the specified value n + m “5”. Is set to the page set 902.
 次に、対象数決定部112において、今回のプレライト実処理の処理対象数を決定する。まず置換実行回数表125から、平均ページ置換発生回数501(本例では、図5の置換実行回数表125より、平均ページ置換発生回数x=2.5)を取得する。 Next, the target number determination unit 112 determines the processing target number of the current prewrite actual process. First, the average page replacement occurrence count 501 (in this example, the average page replacement occurrence count x = 2.5 from the replacement execution count table 125 of FIG. 5) is acquired from the replacement execution count table 125.
 次に、前回のプレライト実処理が開始した時点から今回の処理開始位置決定処理が開始するまでの平均置換処理発生回数yを算出する。仮に算出した結果が2(y=2)であるとすると、両平均置換処理発生回数の差(x-y)は0.5であるため、本例では、規定値Lに対し、―L=-1≦0.5≦1=Lとなり、直後のプレライト実処理の処理対象数は、既定のプレライト実処理の処理対象数(即ち「3」)となる。 Next, an average replacement process occurrence count y from the start of the previous prewrite actual process to the start of the current process start position determination process is calculated. If the calculated result is 2 (y = 2), the difference (xy) between the occurrence times of both average replacement processes is 0.5. In this example, −L = −1 with respect to the specified value L. .Ltoreq.0.5.ltoreq.1 = L, and the processing target number of the prewrite actual process immediately after is the predetermined processing target number of prewrite actual processing (that is, "3").
 次に、プレライト実処理部113において処理が実行される。このとき処理対象となるページセットはページセット903、904及び905であり、ページセット904とページセット905に対応するダーティフラグ107をリセットした後、ページセットページ904とページセットページ905に対応するページ105のデータを2次記憶装置104に書き出す。 Next, processing is executed in the prelight actual processing unit 113. The page sets to be processed at this time are the page sets 903, 904, and 905. After the dirty flag 107 corresponding to the page set 904 and the page set 905 is reset, the page set page 904 and the page corresponding to the page set page 905 105 data is written to the secondary storage device 104.
 最後に、開始契機決定部114において、次回、開始位置決定部111を起動するまでの待機時間を決定する。本処理を開始するにあたり、バッファ管理部110からCLOCKHAND位置情報116bを取得する。
 図9(a)では、本処理を開始した時のCLOCKHAND位置情報116bが指し示す位置のページセットをページセット901であるものとする。
Finally, the start opportunity determination unit 114 determines a standby time until the start position determination unit 111 is activated next time. In starting this processing, the CLOCKHAND position information 116b is acquired from the buffer management unit 110.
In FIG. 9A, it is assumed that the page set 901 is the page set at the position indicated by the CLOCKHAND position information 116b when this processing is started.
 次に、直前のプレライト実処理の最後の処理対象となるページセット905と規定値mからページセット906を求め、これに加え、前記CLOCKHAND位置情報116bが指し示すページセット901と、バッファ管理部110より取得したCLOCKHAND移動情報119を基に、CLOCKHAND位置情報116が指し示すページセット906に到達するまでの待機時間を算出する。その後、算出した待機時間に基づき、再度開始位置決定部111を起動するまで、待機部115において待機処理を実行する。 Next, the page set 906 is obtained from the page set 905 to be processed last in the previous prewrite actual process and the specified value m, and in addition to this, the page set 901 indicated by the CLOCKHAND position information 116b, and the buffer management unit 110 Based on the acquired CLOCKHAND movement information 119, a waiting time until the page set 906 indicated by the CLOCKHAND position information 116 is reached is calculated. Thereafter, based on the calculated standby time, the standby unit 115 executes standby processing until the start position determination unit 111 is activated again.
 例えば、CLOCKHAND移動情報119が、2ページセット/秒であった場合、CLOCKHAND位置情報116bが指し示すページセット901と、ページセット906との差が7であることから、算出した待機時間は3.5秒となる。 For example, if the CLOCKHAND movement information 119 is 2 page sets / second, the difference between the page set 901 indicated by the CLOCKHAND position information 116b and the page set 906 is 7, so the calculated waiting time is 3.5 seconds. Become.
 次に、待機処理終了後、再度開始位置決定部111が起動される。図9(b)において、起動時のCLOCKHAND位置情報116はページセット907の位置であり、また、直前のプレライト実処理が終了したページセットは、ページセット905bであるため、ページセット907とページセット905bとの差分は6となる。この値は、規定値n+m「5」以上であるため、今回のプレライト実処理の処理開始位置となるページセットには、ページセット907から、CLOCKHANDの進行方向に規定値m「2」だけ進めたページセット908を設定する。 Next, after the standby process is completed, the start position determination unit 111 is activated again. In FIG. 9B, the CLOCKHAND position information 116 at the time of activation is the position of the page set 907, and the page set for which the previous prewrite actual processing has been completed is the page set 905b. The difference from the set 905b is 6. Since this value is equal to or greater than the specified value n + m “5”, the page set that is the processing start position of the current prewrite actual process is advanced from the page set 907 by the specified value m “2” in the CLOCKHAND direction. The page set 908 is set.
 次に、対象数決定部112において、直後のプレライト実処理部113の処理対象数を決定する。まず置換実行回数表125から平均ページ置換発生回数501を取得する。平均ページ置換発生回数501は、図9(a)のときから変化はない(平均ページ置換発生回数x=2.5)ものとする。 Next, the target number determination unit 112 determines the number of processing targets of the prewrite actual processing unit 113 immediately after. First, the average page replacement occurrence count 501 is acquired from the replacement execution count table 125. It is assumed that the average page replacement occurrence frequency 501 does not change from the case of FIG. 9A (average page replacement occurrence frequency x = 2.5).
 次に、前回のプレライト実処理が開始した時点から、今回の処理開始位置決定処理が開始するまでの平均置換処理発生回数を算出する。 Next, the average number of replacement processing occurrences from the start of the previous prewrite actual processing until the start of the current processing start position determination processing is calculated.
 本例において、前回のプレライト実処理が開始した時点から、今回の処理開始位置決定処理が開始するまでにバッファ管理部110において、発生したページの置換処理の回数は、1回(ページセット901において実行)であるため、算出した平均置換処理発生回数と平均ページ置換発生回数501の差分z=1.5はL=1<1.5=zとなり、規定値Lを上回る。 In this example, the number of page replacement processes that have occurred in the buffer management unit 110 from the start of the previous prewrite actual process to the start of the current process start position determination process is one (page set 901). Therefore, the difference z = 1.5 between the calculated average replacement processing occurrence count and the average page replacement occurrence count 501 is L = 1 <1.5 = z, which exceeds the specified value L.
 従ってf(z)に基づき、直後のプレライト実処理の処理対象数を算出する。このとき、差分z=1.5であるため、処理対象数は、既定のプレライト実処理の処理対象数=「3」となる。 Therefore, based on f (z), calculate the number of processing targets for the immediately following prewrite actual processing. At this time, since the difference z = 1.5, the number of processing targets is “3” as the number of processing targets of the default prewrite actual processing.
 次に、プレライト実処理部113において処理が実行される。このとき処理対象となるページセットは、ページセット904b、905b及び909であり、プレライト実処理部113は、ページセット905bとページセット909に対応するダーティフラグ107をリセットした後、ページセットページ905bとページセットページ909に対応するページ105のデータを2次記憶装置104に書き出す。 Next, processing is executed in the prelight actual processing unit 113. The page sets to be processed at this time are the page sets 904b, 905b, and 909, and the prewrite actual processing unit 113 resets the dirty flag 107 corresponding to the page set 905b and the page set 909, and then the page set page 905b. The data of the page 105 corresponding to the page set page 909 is written to the secondary storage device 104.
 最後に、開始契機決定部114において、本処理開始時にCLOCKHAND116dがポイントするページセット905bと、今回のプレライト実処理の最後の処理対象であったページセット909とCLOCKHAND移動情報119を基に、次回、開始位置決定部111を起動するまでの待機時間を決定し、その後、待機部115において待機処理を実行する。 Finally, in the start opportunity determination unit 114, the next time based on the page set 905 b pointed to by the CLOCKHAND 116 d at the start of this processing, the page set 909 that was the last processing target of the current prewrite actual processing, and the CLOCKHAND movement information 119 The standby time until the start position determination unit 111 is activated is determined, and then the standby unit 115 executes standby processing.
 なお、ページセット905に対応するページ105は、図9(a)における待機処理開始時から図9(b)の開始位置決定処理部111起動までに、端末装置126からの要求に伴い更新されており、ダーティフラグ107がセットされていたページセットをページセット905bとする。以上のような場合にも、本プレライト処理を実行することで、バッファ管理部110における2次記憶装置104への書出し処理の発生が抑制されている。 Note that the page 105 corresponding to the page set 905 is updated in response to a request from the terminal device 126 from the start of the standby process in FIG. 9A to the start of the start position determination processing unit 111 in FIG. 9B. The page set in which the dirty flag 107 has been set is referred to as a page set 905b. Even in such a case, the execution of the write process to the secondary storage device 104 in the buffer management unit 110 is suppressed by executing the prewrite process.
 次に、前記待機処理終了後、再度開始位置決定部111が起動される。
 図9(c)において、起動時のCLOCKHAND位置情報116がポイントするページセットはページセット910であり、また、直前のプレライト実処理が終了したページセットはページセット909cであるため、ページセット910とページセット909cとの差分は、-1となる。この値は、規定値m未満であるため、直後のプレライト実処理の処理開始位置となるページセットには、ページセット910から、CLOCKHANDの進行方向に規定値m(m=2)だけ進めたページセット911を設定する。
Next, after the standby process ends, the start position determination unit 111 is activated again.
In FIG. 9C, the page set pointed to by the CLOCKHAND position information 116 at the time of activation is the page set 910, and the page set for which the previous prewrite actual processing is completed is the page set 909c. And the difference between the page set 909c is -1. Since this value is less than the specified value m, the page set that is the processing start position of the immediately following prewrite actual process is advanced from the page set 910 by the specified value m (m = 2) in the CLOCKHAND direction. A page set 911 is set.
 次に、対象数決定部112において、直後のプレライト実処理の処理対象数を決定する。まず、置換実行回数表125から平均ページ置換発生回数501を取得する。平均ページ置換発生回数501は、図9(a)のときより変化はない(平均ページ置換発生回数x=2.5)ものとする。 Next, the target number determination unit 112 determines the processing target number of the immediately following prewrite actual processing. First, the average page replacement occurrence count 501 is acquired from the replacement execution count table 125. It is assumed that the average page replacement occurrence frequency 501 is not changed (average page replacement occurrence frequency x = 2.5) as compared with the case of FIG.
 次に、対象数決定部112は、直前のプレライト実処理が開始した時点から直前の処理開始位置決定処理が開始するまでの平均置換処理発生回数を算出する。 Next, the target number determination unit 112 calculates the average number of replacement processing occurrences from the time when the immediately preceding prewrite actual process starts until the immediately preceding process start position determination process starts.
 本例において、直前のプレライト実処理が開始した時点から直前の処理開始位置決定処理が開始するまでに、バッファ管理部110において、発生したページの置換処理の回数は、5回(ページセット903、904、905、909、910において実行)であり、この結果算出される両平均置換処理発生回数の差分zが-7<z<-6であったとする。この値は、規定値-Lを下回るため、f(z)に基づき、直後のプレライト実処理の処理対象数を算出する。このとき、算出した処理対象数は、既定のプレライト実処理の処理対象数にf(z)の算出結果2が加算され、5となる。 In this example, the number of page replacement processes that have occurred in the buffer management unit 110 from the start of the immediately preceding pre-write actual process to the start of the immediately preceding process start position determination process is 5 (page set 903). , 904, 905, 909, and 910), and the difference z between the numbers of occurrences of both average replacement processes calculated as a result is -7 <z <-6. Since this value is less than the specified value −L, the number of processing targets of the immediately following prewrite actual process is calculated based on f (z). At this time, the calculated processing target number is 5 by adding the calculation result 2 of f (z) to the processing target number of the predetermined prewrite actual processing.
 次に、プレライト実処理部113において処理が実行される。このとき処理対象となるページセットは、ページセット911、912、913、914、915であり、ページセット912とページセット915に対応するダーティフラグ107をリセットした後、ページセットページ912とページセットページ915に対応するページ105のデータを2次記憶装置104に書き出す。 Next, processing is executed in the prelight actual processing unit 113. The page sets to be processed at this time are the page sets 911, 912, 913, 914, and 915, and after resetting the dirty flag 107 corresponding to the page set 912 and the page set 915, the page set page 912 and the page set page. The data of page 105 corresponding to 915 is written to the secondary storage device 104.
 最後に、開始契機決定部114において、本処理開始時にCLOCKHAND116がポイントするページセット913と、直前のプレライト実処理の最後の処理対象であったページセット915と、CLOCKHAND移動情報119から、直後の開始位置決定部111を起動するまでの待機時間を決定し、その後、待機部115において待機処理を実行する。 Finally, in the start opportunity determination unit 114, the page set 913 to which the CLOCKHAND 116 points at the start of this process, the page set 915 that was the last processing target of the immediately preceding prewrite actual process, and the CLOCKHAND movement information 119 The standby time until the start position determination unit 111 is activated is determined, and then the standby unit 115 executes standby processing.
 以上説明したように、バッファ管理部110におけるページ105の置換処理の発生回数の増減に伴い、プレライト実処理の処理開始位置、処理対象数、及びプレライト処理間の待機時間を適切に決めることで、プレライト処理において、処理対象となるページセット109が常にCLOCKHAND位置情報116から見てCLOCKHANDの進行方向前方に位置する。 As described above, as the number of occurrences of replacement processing for page 105 in the buffer management unit 110 increases or decreases, the processing start position of the prewrite actual processing, the number of processing targets, and the waiting time between prewrite processing are appropriately determined. Thus, in the pre-write process, the page set 109 to be processed is always positioned in the forward direction of the CLOCKHAND when viewed from the CLOCKHAND position information 116.
 また、処理開始契機決定処理終了後、直前のプレライト実処理において書き出しの実行されたページ105のデータが、端末装置(ユーザ)126からの要求により更新され、バッファ管理において、ページ105の置換処理が実行されるときに、ページ105のデータの書出し処理が実行されるような事態が抑制される。
 これにより、バッファ管理の処理レスポンスを一定に保つことが可能となる。
In addition, after the process start timing determination process is completed, the data of the page 105 that has been written in the immediately preceding pre-write actual process is updated by a request from the terminal device (user) 126, and the replacement process of the page 105 is performed in the buffer management. Is executed, the situation where the data writing process of the page 105 is executed is suppressed.
This makes it possible to keep the buffer management processing response constant.
 また、プレライト処理が組み込まれるデータベース管理システム全体で発生する2次記憶装置104への書出し処理の実行回数を減少させることで、計算機システムのスループットを向上させることが可能となる。 In addition, it is possible to improve the throughput of the computer system by reducing the number of times of writing processing to the secondary storage device 104 that occurs in the entire database management system in which prewrite processing is incorporated.
[第二の実施形態]
 次に、本発明を適用した計算機システムの第二の実施形態について、図10を用いて説明する。以下、主に、第一の実施形態との相違点について説明し、第一の実施形態との共通点については、説明を省略或いは簡略する。
[Second Embodiment]
Next, a second embodiment of the computer system to which the present invention is applied will be described with reference to FIG. In the following, differences from the first embodiment will be mainly described, and description of common points with the first embodiment will be omitted or simplified.
 図10は、本発明の第二の実施形態に関わる全体構成図である。
 第二の実施形態で示すデータベース管理システム120は、基本的には第一の実施形態(図1)と同様の構成をとるが、データ処理部129内のバッファ管理部110aとプレライト部100aの構成が異なる。
 以下、第二の実施形態におけるデータベース管理システム120について説明する。
FIG. 10 is an overall configuration diagram related to the second embodiment of the present invention.
The database management system 120 shown in the second embodiment basically has the same configuration as that of the first embodiment (FIG. 1). However, the buffer management unit 110a and the prewrite unit 100a in the data processing unit 129 have the same configuration. The configuration is different.
Hereinafter, the database management system 120 in the second embodiment will be described.
 第二の実施形態では、バッファ管理部110aは、GCLOCKページ置換部122a、置換実行回数取得部124、プレライト起動部1000から構成される。 In the second embodiment, the buffer management unit 110a includes a GCLOCK page replacement unit 122a, a replacement execution number acquisition unit 124, and a prewrite activation unit 1000.
 バッファ管理部110aは、データベース演算部128から要求されたデータが、バッファプール106に読み込まれていなかった場合、GCLOCKページ置換部122aにおいて、ページ105の置換処理を実行し、このページ105の置換処理を実行する中で、プレライト起動部1000を介しプレライト部100aを起動する。 When the data requested from the database operation unit 128 has not been read into the buffer pool 106, the buffer management unit 110a executes the replacement process of the page 105 in the GCLOCK page replacement unit 122a, and the replacement process of the page 105 , The prelight unit 100a is activated via the prelight activation unit 1000.
 以下、第二の実施形態における、GCLOCKページ置換部122aの処理内容、並びにプレライト部113の起動条件について図12のフローチャートを用いて説明する。 Hereinafter, processing contents of the GCLOCK page replacement unit 122a and activation conditions of the prewrite unit 113 in the second embodiment will be described with reference to the flowchart of FIG.
 GCLOCKページ置換部122aは、バッファ管理部110aによって起動される。GCLOCKページ置換部122aは、まずステップ1200において、GCLOCKページ置換アルゴリズムに基づき、バッファプール106上に存在するページセット109の中から置換対象となるページセット109を選定する。 The GCLOCK page replacement unit 122a is activated by the buffer management unit 110a. First, in step 1200, the GCLOCK page replacement unit 122a selects a page set 109 to be replaced from the page sets 109 existing on the buffer pool 106 based on the GCLOCK page replacement algorithm.
 次に、ステップ1204において、前回プレライト部100aが起動されてから、GCLOCKページ置換部122aの起動回数を取得し、起動回数をインクリメントする。この起動回数は、バッファ管理部110aによって管理されるものであり、バッファ管理部110aの起動時に0で初期化されるものとする。 Next, in step 1204, the number of activations of the GCLOCK page replacement unit 122a is acquired after the previous prewrite unit 100a has been activated, and the number of activations is incremented. This activation count is managed by the buffer management unit 110a, and is initialized to 0 when the buffer management unit 110a is activated.
 次に、GCLOCKページ置換部122aは、ステップ1205で、プレライト部100aから前回のプレライト実処理の処理対象数を取得する。 Next, in step 1205, the GCLOCK page replacement unit 122a acquires the number of processing targets of the previous prewrite actual process from the prewrite unit 100a.
 次に、GCLOCKページ置換部122aは、ステップ1204で取得したGCLOCKページ置換部122aの起動回数と、ステップ1205で取得した処理対象数とを比較する。 Next, the GCLOCK page replacement unit 122a compares the number of activations of the GCLOCK page replacement unit 122a acquired in Step 1204 with the number of processing targets acquired in Step 1205.
 比較の結果、GCLOCKページ置換部122aの起動回数が、前回のプレライト実処理の処理対象数以上であった場合(ステップ1206:YES)、ステップ1207において、プレライト起動部1000を介してプレライト部100aを起動する。 As a result of the comparison, if the number of activations of the GCLOCK page replacement unit 122a is equal to or greater than the number of processing targets of the previous prewrite actual process (step 1206: YES), the prewrite is performed via the prewrite activation unit 1000 in step 1207. The unit 100a is activated.
 次に、GCLOCKページ置換部122aは、ステップ1201において、ステップ1200で選定したページセット109のダーティフラグ107がセットされているかどうかを判定する。 Next, in step 1201, the GCLOCK page replacement unit 122a determines whether the dirty flag 107 of the page set 109 selected in step 1200 is set.
 ステップ1201で、ダーティフラグ107がセットされていると判定した場合(ステップ1201:YES)、ステップ1203において、そのページセット109に対応するページ105のデータを2次記憶装置104に対して書き出し、本処理を終了する。 If it is determined in step 1201 that the dirty flag 107 is set (step 1201: YES), in step 1203, the data of the page 105 corresponding to the page set 109 is written to the secondary storage device 104, The process ends.
 以上が、GCLOCKページ置換部122aの処理内容並びにプレライト部113が起動される条件である。 The above are the processing contents of the GCLOCK page replacement unit 122a and the conditions under which the prewrite unit 113 is activated.
 プレライト起動部1000は、プレライト部100aを起動後、バッファ管理部110aが管理するGCLOCKページ置換部122aの起動回数を0で初期化する。 The prewrite activation unit 1000 initializes the number of activations of the GCLOCK page replacement unit 122a managed by the buffer management unit 110a with 0 after the prewrite unit 100a is activated.
 次に、プレライト部100aは、開始位置決定部111、対象数決定部112、プレライト実処理部113aから構成されており、バッファ管理部110aにおけるプレライト起動部1000からの起動要求によって起動される。 Next, the prewrite unit 100a includes a start position determination unit 111, a target number determination unit 112, and a prewrite actual processing unit 113a, and is activated by an activation request from the prewrite activation unit 1000 in the buffer management unit 110a. The
 プレライト部100aは、まず、開始位置決定部111においてプレライト実処理を開始するページセット109を決定し、次に、対象数決定部112において、プレライト実処理の処理対象となるページセット109の数を決定する。 In the prewrite unit 100a, first, the start position determination unit 111 determines the page set 109 for starting the prewrite actual process, and then the target number determination unit 112 determines the page set 109 to be processed by the prewrite actual process. Determine the number of.
 最後に、プレライト実処理部113aにおいて、プレライト実処理を実行し、プレライト処理を終了する。プレライト実処理部113aの詳細については後記する。 Finally, in the prewrite actual processing unit 113a, the prewrite actual processing is executed, and the prewrite processing is terminated. Details of the prewrite actual processing unit 113a will be described later.
 以下、第二の実施形態におけるプレライト実処理部113aの処理内容について図11のフローチャートを用いて説明する。
 図11に示す処理内容のうち、ステップ700、701、703、704、705及び707の処理内容については第一の実施形態と同様である。
Hereinafter, the processing content of the prewrite actual processing unit 113a in the second embodiment will be described with reference to the flowchart of FIG.
Among the processing contents shown in FIG. 11, the processing contents of steps 700, 701, 703, 704, 705 and 707 are the same as in the first embodiment.
 プレライト実処理部113aは、まずステップ700、701の処理を実行し、次に、ステップ1100において、ステップ703からステップ1101までの処理を、プレライト実処理部113aが管理する処理済ページカウンタのカウント値が、対象数決定部112で設定した処理対象数以上になるまで繰り返す。 The prewrite actual processing unit 113a first executes the processing of steps 700 and 701, and then in step 1100, the processing from step 703 to step 1101 is performed on the processed page counter managed by the prewrite actual processing unit 113a. The process is repeated until the count value is equal to or greater than the processing target number set by the target number determining unit 112.
 この繰り返し処理では、プレライト実処理部113aは、まずステップ703で、処理対象としてページセット109が、バッファ管理部110aにおいて置換対象となるか否かを判定し、置換対象となる場合は(ステップ703:YES)、ステップ704において、処理済ページカウンタのカウント値をカウントアップする。逆に、置換対象とならない場合(ステップ703:NO)、ステップ707の処理に進む。 In this iterative process, first in step 703, the prewrite actual processing unit 113a determines whether or not the page set 109 as a processing target is a replacement target in the buffer management unit 110a. 703: YES), in step 704, the count value of the processed page counter is counted up. On the other hand, if it is not a replacement target (step 703: NO), the process proceeds to step 707.
 次に、プレライト実処理部113aは、ステップ705で、ページセット109に対応するダーティフラグ107がセットされているかどうかを判定し、ダーティフラグ107がセットされていた場合(ステップ705:YES)、ステップ709aで、ページセット109に対応するページ105のデータを2次記憶装置104に対して書き出す。逆に、ダーティフラグがセットされていない場合(ステップ705:NO)、ステップ707の処理に進む。 Next, the prewrite actual processing unit 113a determines whether or not the dirty flag 107 corresponding to the page set 109 is set in step 705. If the dirty flag 107 is set (step 705: YES), In step 709a, the data of the page 105 corresponding to the page set 109 is written to the secondary storage device 104. Conversely, when the dirty flag is not set (step 705: NO), the process proceeds to step 707.
 次に、ステップ710aで、ページセット109に対応するダーティフラグ107をリセットし、最後に、ステップ706で、処理対象として設定されているページセット109から見て、CLOCKHANDの進行方向に対し一つ先に位置するページセット109を新たな処理対象として設定する。
 以上がプレライト実処理部113aの処理内容である。
Next, in step 710a, the dirty flag 107 corresponding to the page set 109 is reset, and finally, in step 706, when viewed from the page set 109 set as the processing target, one ahead of the CLOCKHAND progress direction. Is set as a new processing target.
The above is the processing content of the prewrite actual processing unit 113a.
 以上説明したように、第二の実施形態によれば、プレライト処理の起動をバッファ管理部110aが制御することができる。 As described above, according to the second embodiment, the buffer management unit 110a can control the activation of the prewrite process.
 具体的には、バッファ管理部110aにおけるページの置換処理において、直前のプレライト処理で処理されたページセット109の数と同数のページセット109が置換対象として選択されたときに、プレライト処理を起動する。 Specifically, in the page replacement process in the buffer management unit 110a, when the same number of page sets 109 as the number of page sets 109 processed in the immediately preceding prewrite process are selected as replacement targets, the prewrite process is performed. to start.
 これにより、バッファ管理部110において、短期に大量のページ105の置換処理が発生するなどし、CLOCKHANDが、直前のプレライト処理で最後に処理されたページセット109を通過し、バッファ管理においてページ105の書出し処理が発生した場合にも、直後プレライト処理を開始することによって、バッファ管理におけるページ書出し処理の発生を第一の実施形態以上に抑制することが可能となる。 As a result, in the buffer management unit 110, a replacement process for a large number of pages 105 occurs in a short period of time, and CLOCKHAND passes through the page set 109 last processed in the immediately preceding prewrite process. Even when the writing process is performed, the pre-writing process is started immediately thereafter, so that the generation of the page writing process in the buffer management can be suppressed more than in the first embodiment.
 第二の実施形態では、プレライト部100aの起動をバッファ管理部110aのみが制御しているが、第一の実施形態のように、基本的にプレライト部100が次のプレライト部100の起動を管理するようなプレライト処理において、CLOCKHANDが直前のプレライト処理で最後に処理されたページセット109を通過したときに限り、バッファ管理部110がプレライト部100を起動させても良い。
[第三の実施形態]
In the second embodiment, only the buffer management unit 110a controls the activation of the prewrite unit 100a. However, as in the first embodiment, the prewrite unit 100 basically has the next prewrite unit 100. In prewrite processing for managing activation, the buffer management unit 110 may activate the prewrite unit 100 only when CLOCKHAND passes through the page set 109 last processed in the immediately preceding prewrite processing.
[Third embodiment]
 第三の実施形態は、第一及び第二の実施形態のいずれにも組み合わせることができる。 The third embodiment can be combined with any of the first and second embodiments.
 第三の実施形態で示すデータベース管理システム120は、第一の実施形態(図1)もしくは第二の実施形態(図10)と同様の構成をとる。第一の実施形態及び第二の実施形態とはプレライト実処理部113b(図示せず)の処理が異なる。 The database management system 120 shown in the third embodiment has the same configuration as that of the first embodiment (FIG. 1) or the second embodiment (FIG. 10). The processing of the prelight actual processing unit 113b (not shown) is different from the first embodiment and the second embodiment.
 以下、主に、第一の実施形態及び第二の実施形態との相違点について説明し、第一の実施形態及び第二の実施形態との共通点については説明を省略或いは簡略する。 Hereinafter, differences from the first embodiment and the second embodiment will be mainly described, and descriptions of points common to the first embodiment and the second embodiment will be omitted or simplified.
 図13は、第三の実施形態におけるプレライト実処理部113bの処理内容を示した図であり、第二の実施形態におけるプレライト実処理部113aの処理の一部を変更した図である。特に、ステップ1300~1304の処理が、第二の実施形態と異なる。
 以下、本実施形態におけるプレライト実処理部113bの処理内容について図13のフローチャートを用いて説明する。
FIG. 13 is a diagram showing the processing content of the prewrite actual processing unit 113b in the third embodiment, and is a diagram in which a part of the processing of the prewrite actual processing unit 113a in the second embodiment is changed. In particular, the processes in steps 1300 to 1304 are different from those in the second embodiment.
Hereinafter, the processing content of the prewrite actual processing unit 113b in the present embodiment will be described with reference to the flowchart of FIG.
 プレライト実処理部113bは、ステップ1100以降の繰り返し処理において、まず、ステップ1300において、バッファ管理部110aからCLOCKHAND位置情報116を取得する。 In the repetitive processing after step 1100, the prewrite actual processing unit 113b first acquires the CLOCKHAND position information 116 from the buffer management unit 110a in step 1300.
 次に、プレライト実処理部113bは、ステップ1301において、本繰り返し処理において、正に処理対象としているページセット109と、CLOCKHAND位置情報116との差分を算出し、算出した差分が、規定値m未満であるか否かを判定する。即ち、処理対象としているページセット109が、CLOCKHANDに追い越されたか否かあるいは近々追い越される可能性があるか否かを判定する。 Next, in step 1301, the prewrite actual processing unit 113b calculates a difference between the page set 109 that is exactly the processing target and the CLOCKHAND position information 116 in the repetitive processing, and the calculated difference is the specified value m. It is judged whether it is less than. That is, it is determined whether or not the page set 109 to be processed has been overtaken by CLOCKHAND or is likely to be overtaken in the near future.
 算出した差分が、規定値m未満であった場合、処理対象としているページセット109が、CLOCKHANDに追い越された(あるいは近々追い越される可能性がある)として、プレライト実処理部113bは、ステップ1302において、開始位置決定部111を起動し、本プレライト実処理部113bにおける処理開始位置の再設定を実行する。 If the calculated difference is less than the specified value m, the prewrite actual processing unit 113b determines that the page set 109 to be processed has been overtaken by CLOCKHAND (or may be overtaken soon), and the prewrite actual processing unit 113b performs step 1302 Then, the start position determination unit 111 is activated to reset the process start position in the actual prewrite processing unit 113b.
 次に、ステップ1303において、対象数決定部112を起動し、本プレライト部における処理対象数の再設定を実行する。
 最後に、ステップ1304において、プレライト実処理部113bを起動し、本プレライト実処理部113bの処理を終了する。
Next, in step 1303, the target number determination unit 112 is activated to reset the processing target number in the present prewrite unit.
Finally, in step 1304, the prewrite actual processing unit 113b is activated, and the processing of the present prewrite actual processing unit 113b is terminated.
 一方、算出した差分が、規定値m以上で、処理対象としているページセット109が、CLOCKHANDに追い越されていない(あるいは近々追い越される可能性がない)場合、プレライト実処理部113bは、ステップ703に移行する。なお、ステップ1300、1301、1302、1303、1304以外の処理は、プレライト実処理部113aの処理と同様である。 On the other hand, when the calculated difference is equal to or greater than the specified value m and the page set 109 to be processed is not overtaken by CLOCKHAND (or is not likely to be overtaken in the near future), the prewrite actual processing unit 113b performs step 703. Migrate to The processes other than steps 1300, 1301, 1302, 1303, and 1304 are the same as the processes of the prewrite actual processing unit 113a.
 図14は、第一の実施形態におけるプレライト実処理部113の処理の一部を変更したプレライト実処理部113c(図示せず)の処理内容を示した図である。 FIG. 14 is a diagram showing the processing contents of a prewrite actual processing unit 113c (not shown) obtained by changing a part of the processing of the prewrite actual processing unit 113 in the first embodiment.
 以下、第三の実施形態におけるプレライト実処理部113cの処理内容について図14のフローチャートを用いて説明する。 Hereinafter, the processing content of the prewrite actual processing unit 113c in the third embodiment will be described with reference to the flowchart of FIG.
 プレライト実処理部113cは、ステップ709において、ステップ710からステップ713までの処理を、書出しリストに登録されているページセット109がなくなるまで繰り返す。 In step 709, the prewrite actual processing unit 113c repeats the processing from step 710 to step 713 until there is no page set 109 registered in the export list.
 プレライト実処理部113cは、繰り返し処理では、まずステップ710で前記書出しリストの先頭から、ページセット109を一つ取り出した後、ステップ1400において、バッファ管理部110からCLOCKHAND位置情報116を取得する。 In the repetitive process, the prewrite actual processing unit 113c first extracts one page set 109 from the top of the writing list in step 710, and then acquires the CLOCKHAND position information 116 from the buffer management unit 110 in step 1400.
 次に、プレライト実処理部113cは、ステップ1401において、取り出したページセット109と、CLOCKHAND位置情報116との差分を算出し、算出した差分が、規定値m未満であるか否かを判定する。即ち取り出したページセット109が、CLOCKHANDに追い越されたか否か(あるいは近々追い越される可能性があるか否か)を判定する。 Next, in step 1401, the prewrite actual processing unit 113c calculates a difference between the extracted page set 109 and the CLOCKHAND position information 116, and determines whether or not the calculated difference is less than a specified value m. . That is, it is determined whether the extracted page set 109 has been overtaken by CLOCKHAND (or whether there is a possibility of being overtaken soon).
 差分が、規定値m未満であった場合(ステップ1401:YES)、プレライト実処理部113cは、ステップ1402において、開始位置決定部111を起動し、プレライト実処理部113cにおける処理開始位置の再設定を実行する。 When the difference is less than the specified value m (step 1401: YES), the prewrite actual processing unit 113c activates the start position determination unit 111 in step 1402, and sets the processing start position in the prewrite actual processing unit 113c. Perform reconfiguration.
 次に、プレライト実処理部113cは、ステップ1403において、対象数決定部112を起動し、プレライト実処理部113cにおける処理対象数の再設定を実行する。
 最後に、ステップ1404において、プレライト実処理部113cを起動し、本プレライト実処理部113cの処理を終了する。
Next, in step 1403, the prewrite actual processing unit 113c activates the target number determination unit 112 and resets the number of processing targets in the prewrite actual processing unit 113c.
Finally, in step 1404, the prewrite actual processing unit 113c is activated, and the processing of the prewrite actual processing unit 113c is terminated.
 ステップ1400、1401、1402、1403、1404以外の処理は、プレライト実処理部113の処理と同様である。 Processes other than steps 1400, 1401, 1402, 1403, and 1404 are the same as those of the prewrite actual processing unit 113.
 以上説明したように、本実施形態によれば、プレライト実処理において書出し処理を実行する直前に、CLOCKHAND位置情報116を取得し、CLOCKHAND位置情報116と書出し処理を実行するページセット109の位置との差分を算出し、算出した差分が、規定値m未満であった(プレライト処理の処理対象としているページ105にページ置換処理の置換対象となるページ105が追いついた)場合、処理開始位置の決定処理、処理対象数の決定処理、プレライト実処理を再度実行することで、バッファ管理におけるページ書出し処理の発生を、第一の実施形態、もしくは第二の実施形態以上に抑制することが可能となる。 As described above, according to the present embodiment, the CLOCKHAND position information 116 is acquired immediately before executing the writing process in the pre-write actual process, and the position of the CLOCKHAND position information 116 and the position of the page set 109 that executes the writing process. When the calculated difference is less than the prescribed value m (the page 105 to be replaced by the page replacement process has caught up with the page 105 to be processed by the prewrite process), the processing start position By executing the determination process, the determination process target number determination process, and the prewrite actual process again, it is possible to suppress the occurrence of the page writing process in the buffer management more than the first embodiment or the second embodiment. It becomes.
 また、バッファ管理部110とプレライト部100において、書き出しの対象とするページセット109が競合することがなくなる。 Also, there is no conflict between the page set 109 to be written out in the buffer management unit 110 and the prewrite unit 100.
 以上、本発明の実施形態として、第1~第3実施形態を説明したが、これら実施形態は本発明の説明のための一例であり、本発明の範囲をこれらの実施形態にのみ限定する趣旨ではない。 The first to third embodiments have been described above as the embodiments of the present invention. However, these embodiments are examples for explaining the present invention, and the scope of the present invention is limited only to these embodiments. is not.
 例えば、前記実施形態では、データベース管理システム120を例としたが、バッファ管理を必要とするシステムであれば、本発明を適用可能である。 For example, in the above-described embodiment, the database management system 120 is taken as an example, but the present invention is applicable to any system that requires buffer management.
 また、例えば、前記実施形態では、データのリソース割り当てを決定するアルゴリズムにGCLOCKを適用した例を示したが、前記アルゴリズムは、GCLOCKをはじめ、ページセット109の循環リスト130を順に辿りながら置換対象となるページ105を探索するようなアルゴリズムでも良い。 Further, for example, in the above-described embodiment, an example in which GCLOCK is applied to an algorithm for determining data resource allocation has been described. However, the algorithm can be used as a replacement target while sequentially tracing the circular list 130 of the page set 109 including GCLOCK. An algorithm for searching the page 105 may be used.
 前記アルゴリズムを適用したバッファ管理が組み込まれたシステムにおいて、バッファ管理処理のレスポンスを一定に保つことが可能である。また、前記システムのスループットを向上させることが可能である。 In a system incorporating buffer management to which the above algorithm is applied, it is possible to keep the response of buffer management processing constant. It is also possible to improve the throughput of the system.
100、100a…プレライト部
101…データ管理サーバ
102…CPU
104…2次記憶装置
105、1501、1502、1503、1504…ページ
106…バッファプール
107…ダーティフラグ
108…バス
109、302、303、304、305、306、307、308、900、901、
902、903、904、905、904b、905b、906、907、908、90
9、909c、910、911、912、913、914、915…ページセット
110、110a…バッファ管理部
111…開始位置決定部
112…対象数決定部
113、113a、113b、113c…プレライト実処理部
114…開始契機決定部
115…待機部
116…CLOCKHAND位置情報
119…CLOCKHAND移動情報
120…データベース管理システム
121…リファレンスカウンタ
122、122a…GCLOCKページ置換部
123…ネットワークインタフェース
124…置換実行回数取得部
125…置換実行回数表
126…端末
127…SQL解析部
128…データベース演算部
129…データ処理部
130…ページセット循環リスト
500…ページ置換発生回数
501…ページ置換発生回数平均値
502…ページ置換発生回数対応項番
1000…プレライト起動部
1500…CLOCKHAND
 
100, 100a ... Prelight unit 101 ... Data management server 102 ... CPU
104 ... Secondary storage devices 105, 1501, 1502, 1503, 1504 ... Page 106 ... Buffer pool 107 ... Dirty flag 108 ... Buses 109, 302, 303, 304, 305, 306, 307, 308, 900, 901,
902, 903, 904, 905, 904b, 905b, 906, 907, 908, 90
9, 909c, 910, 911, 912, 913, 914, 915 ... page set 110, 110a ... buffer management unit 111 ... start position determination unit 112 ... target number determination unit 113, 113a, 113b, 113c ... prewrite actual processing unit 114 ... Start timing determination unit 115 ... Standing unit 116 ... CLOCKHAND position information 119 ... CLOCKHAND movement information 120 ... Database management system 121 ... Reference counter 122, 122a ... GCLOCK page replacement unit 123 ... Network interface 124 ... Replacement execution frequency acquisition unit 125 ... Replacement execution frequency table 126 ... terminal 127 ... SQL analysis unit 128 ... database operation unit 129 ... data processing unit 130 ... page set circulation list 500 ... page replacement occurrence frequency 501 ... page replacement occurrence frequency average value 502 ... page replacement occurrence frequency corresponding term Number 1000 ... Reraito starting unit 1500 ... CLOCKHAND

Claims (20)

  1.  データを一時的に格納する複数の入出力バッファを有する主記憶装置と、前記データを格納する2次記憶装置と、前記入出力バッファに一時的に格納するデータ及び前記2次記憶装置に格納するデータの置換処理を管理するバッファ管理部と、前記入出力バッファに格納されたデータがバッファ管理部において書き出される前に、事前書出しを行うプレライト処理を管理するプレライト管理部と、を有する計算機のデータ処理方法であって、
     前記バッファ管理部が、前記置換処理を実施する際に、前記入出力バッファを順番に参照しながら前記データの置換対象となる入出力バッファを選定するステップと、
     前記バッファ管理部が、所定時間あたりに前記入出力バッファに対してデータの置換を行った回数である置換実行回数を計測するステップと、
     前記バッファ管理部が、所定時間あたりに前記複数の入出力バッファに格納されたデータを順番に参照する参照速度を算出するステップと、
     前記プレライト管理部が、プレライト処理の実行契機を検出し、前回プレライト処理を行った入出力バッファの位置情報と、現在バッファ管理部で参照されている入出力バッファの位置情報と、前記置換実行回数とに基づいて、今回のプレライト処理を行う対象となる入出力バッファを選定するステップと、
     前記プレライト管理部が、前記プレライト処理を行う候補となる入出力バッファに、更新データがある場合に、当該入出力バッファに格納されたデータを書き出すステップと、
     前記プレライト管理部が、前記参照速度に基づいて、次回のプレライト処理の処理実行契機を決定するステップと、
    を含むことを特徴とするデータ処理方法。
    Main storage device having a plurality of input / output buffers for temporarily storing data, secondary storage device for storing the data, data to be temporarily stored in the input / output buffer, and storage in the secondary storage device A computer comprising: a buffer management unit that manages data replacement processing; and a prewrite management unit that manages prewrite processing for performing pre-writing before the data stored in the input / output buffer is written in the buffer management unit Data processing method,
    When the buffer management unit performs the replacement process, selecting an input / output buffer to be replaced with the data while sequentially referring to the input / output buffer;
    Measuring the number of executions of replacement, which is the number of times that the buffer management unit has performed replacement of data for the input / output buffer per predetermined time;
    The buffer management unit calculating a reference speed for sequentially referring to data stored in the plurality of input / output buffers per predetermined time; and
    The prewrite management unit detects the execution timing of the prewrite process, the position information of the input / output buffer that has performed the previous prewrite process, the position information of the input / output buffer that is currently referred to by the buffer management unit, and Selecting an input / output buffer to be subjected to the current prewrite process based on the number of replacement executions;
    When the prewrite management unit has update data in an input / output buffer that is a candidate for performing the prewrite process, writing the data stored in the input / output buffer;
    The prewrite management unit determining a processing execution opportunity of a next prewrite process based on the reference speed;
    A data processing method comprising:
  2.  請求項1に記載のデータ処理方法であって、
     前記プレライト管理部が今回のプレライト処理を行う対象となる入出力バッファを選定するステップは、
     前記プレライト管理部が、前記置換対象として選定された入出力バッファよりも参照順が先で、且つ当該入出力バッファと前記所定数の入出力バッファの差が一定以内となるように前記今回のプレライト処理を行う候補を選定することを特徴とするデータ処理方法。
    A data processing method according to claim 1, comprising:
    The step of selecting an input / output buffer to be subjected to the prewrite process by the prewrite management unit is as follows:
    The pre-write management unit has the reference order ahead of the input / output buffer selected as the replacement target, and the difference between the input / output buffer and the predetermined number of input / output buffers is within a certain range. A data processing method characterized by selecting a candidate for performing a prewrite process.
  3.  請求項1又は2に記載のデータ処理方法であって、
     前記バッファ管理部が、前記置換対象の入出力バッファを選定するステップにおいて、参照回数が一定値以下の入出力バッファを置換対象として選定するステップを更に含むことを特徴とするデータ処理方法。
    The data processing method according to claim 1 or 2,
    The data processing method according to claim 1, further comprising: selecting an input / output buffer having a reference count of a predetermined value or less as a replacement target in the step of selecting the replacement target input / output buffer by the buffer management unit.
  4.  請求項1~3のいずれか一項に記載のデータ処理方法であって、
     前記バッファ管理部が、前回プレライト処理を行った入出力バッファの位置情報と、現在バッファ管理部で参照されている入出力バッファの位置情報とを取得するステップを含み、
     前記プレライト管理部が今回のプレライト処理を行う候補となる入出力バッファを選定するステップは、
     前記前回プレライト処理を行った入出力バッファの位置情報と、前記現在バッファ管理部で参照されている入出力バッファの位置情報との差分を算出し、該差分に応じて、今回のプレライト処理の開始位置となる入出力バッファを設定するステップを含むことを特徴とするデータ処理方法。
    A data processing method according to any one of claims 1 to 3,
    The buffer management unit includes the step of acquiring the position information of the input / output buffer that has been pre-written last time and the position information of the input / output buffer that is currently referenced by the buffer management unit,
    The step of selecting an input / output buffer that is a candidate for the prewrite management unit to perform the prewrite process this time,
    The difference between the position information of the input / output buffer that has been subjected to the previous prewrite process and the position information of the input / output buffer that is currently referenced by the buffer management unit is calculated, and the current prewrite process is performed according to the difference. A data processing method comprising the step of setting an input / output buffer to be a starting position of
  5.  請求項1~4の何れか一項に記載のデータ処理方法であって、
     前記バッファ管理部が、前回のプレライト処理開始時点よりも過去から、今回のプレライト処理の開始位置決定処理終了時点までの間における前記置換実行回数を計数するとともに、前回のプレライト処理開始時点から今回のプレライト処理の開始位置決定処理終了時点までの間における前記置換実行回数を計数するステップを更に含み、
     前記プレライト管理部が今回のプレライト処理を行う候補となる入出力バッファを選定するステップは、
     前記プレライト管理部が、
     前記両計数値の差を基に今回のプレライト処理において処理の対象となる入出力バッファの処理数を設定するステップを含むことを特徴とするデータ処理方法。
    A data processing method according to any one of claims 1 to 4,
    The buffer management unit counts the number of replacement executions from the past from the previous prewrite process start time to the end time of the current prewrite process start position determination process, and the previous prewrite process start time And the step of counting the number of replacement executions from the start position determination process to the end of the current prewrite process,
    The step of selecting an input / output buffer that is a candidate for the prewrite management unit to perform the prewrite process this time,
    The prelight management unit
    A data processing method comprising a step of setting the number of input / output buffers to be processed in the current prewrite process based on the difference between the two count values.
  6.  請求項1~5の何れか一項に記載のデータ処理方法であって、
     前記プレライト管理部が、前記参照速度に基づいて、次回のプレライト処理の処理実行契機を決定するステップは、
     前記プレライト管理部が今回のプレライト処理を行う対象となる入出力バッファを選定するステップで選定された入出力バッファのうち最後にプレライト処理の対象とされた入出力バッファの位置から所定数分減じた位置にある入出力バッファに対し、前記バッファ管理部が参照するまでの時間を前記参照速度に基づいて算出し、該算出結果を前記次回のプレライト処理の実行契機とすることを特徴とするデータ処理方法。
    A data processing method according to any one of claims 1 to 5,
    The step of the prewrite management unit determining a process execution trigger for the next prewrite process based on the reference speed,
    A predetermined number from the position of the last input / output buffer to be prewritten among the input / output buffers selected in the step of selecting the input / output buffer to be subjected to the current prewrite process by the prewrite management unit. A time until the buffer management unit refers to the input / output buffer at the decremented position is calculated based on the reference speed, and the calculation result is used as an execution trigger for the next prewrite process. Data processing method.
  7.  データを一時的に格納する複数の入出力バッファを有する主記憶装置と、前記データをバックアップするために格納する2次記憶装置と、前記主記憶装置と前記2次記憶装置とを制御するコントローラと、を備えるデータ処理装置であって、
     前記コントローラは、
     前記入出力バッファ及び前記2次記憶装置間のデータの置換処理を管理するバッファ管理部と、
     前記入出力バッファに格納されたデータがバッファ管理部によって書き出される前に、事前書出しを行うプレライト処理を管理するプレライト管理部と、を有し、
     前記バッファ管理部は、
     前記置換処理を実施する際に、前記入出力バッファを順番に参照しながら前記データの置換対象となる入出力バッファを選定し、
     所定時間あたりに前記入出力バッファに対してデータの置換を行った回数である置換実行回数を計測し、
     所定時間あたりに前記複数の入出力バッファに格納されたデータを順番に参照する参照速度を算出し、
     前記プレライト管理部は、
     プレライト処理の実行契機を検出し、前回プレライト処理を行った入出力バッファの位置情報と、現在バッファ管理部で参照されている入出力バッファの位置情報と、前記置換実行回数とに基づいて、今回のプレライト処理を行う対象となる入出力バッファを選定し、
     前記プレライト処理を行う候補となる入出力バッファに、更新データがある場合に、当該入出力バッファに格納されたデータを書き出し、
     前記参照速度に基づいて、次回のプレライト処理の処理実行契機を決定することを特徴とするデータ処理装置。
    A main storage device having a plurality of input / output buffers for temporarily storing data; a secondary storage device for storing the data for backup; a controller for controlling the main storage device and the secondary storage device; A data processing device comprising:
    The controller is
    A buffer management unit for managing replacement processing of data between the input / output buffer and the secondary storage device;
    A prewrite management unit that manages a prewrite process for performing pre-writing before the data stored in the input / output buffer is written by the buffer management unit;
    The buffer management unit
    When performing the replacement process, select an input / output buffer to be replaced with the data while sequentially referring to the input / output buffer,
    Measure the number of replacement executions, which is the number of times data replacement has been performed on the I / O buffer per predetermined time,
    Calculating a reference speed for sequentially referring to data stored in the plurality of input / output buffers per predetermined time;
    The prelight management unit
    Detecting the execution timing of the prewrite process, based on the position information of the input / output buffer that performed the prewrite process last time, the position information of the input / output buffer that is currently referred to by the buffer management unit, and the number of executions of replacement Select the input / output buffer that is the target of this prewrite process,
    When there is update data in the input / output buffer that is a candidate for performing the prewrite process, the data stored in the input / output buffer is written out,
    A data processing apparatus that determines a process execution trigger of a next prewrite process based on the reference speed.
  8.  請求項7に記載のデータ処理装置であって、
     前記プレライト管理部が今回のプレライト処理を行う対象となる入出力バッファを選定する際、
     前記置換対象として選定された入出力バッファよりも参照順が先で、且つ当該入出力バッファと前記所定数の入出力バッファの差が一定以内となるように前記今回のプレライト処理を行う候補を選定することを特徴とするデータ処理装置。
    The data processing device according to claim 7,
    When selecting the input / output buffer to be subjected to the current prewrite process by the prewrite management unit,
    Candidates for performing the current prewrite process so that the reference order is ahead of the input / output buffer selected as the replacement target and the difference between the input / output buffer and the predetermined number of input / output buffers is within a certain range. A data processing apparatus characterized by being selected.
  9.  請求項7又は8に記載のデータ処理装置であって、
     前記バッファ管理部が、前記置換対象の入出力バッファを選定する際、
     参照回数が一定値以下の入出力バッファを置換対象として選定することを特徴とするデータ処理装置。
    The data processing device according to claim 7 or 8,
    When the buffer management unit selects the replacement input / output buffer,
    An input / output buffer having a reference count of a predetermined value or less is selected as a replacement target.
  10.  請求項7~9のいずれか一項に記載のデータ処理装置であって、
     前記バッファ管理部が、前回プレライト処理を行った入出力バッファの位置情報と、現在バッファ管理部で参照されている入出力バッファの位置情報とを更に取得し、
     前記プレライト管理部が、今回のプレライト処理を行う候補となる入出力バッファを選定する際
     前記前回プレライト処理を行った入出力バッファの位置情報と、前記現在バッファ管理部で参照されている入出力バッファの位置情報との差分を算出し、該差分に応じて、今回のプレライト処理の開始位置となる入出力バッファを設定することを特徴とするデータ処理装置。
    A data processing apparatus according to any one of claims 7 to 9,
    The buffer management unit further acquires the position information of the input / output buffer that has been pre-written last time, and the position information of the input / output buffer that is currently referenced by the buffer management unit,
    When the prewrite management unit selects an input / output buffer that is a candidate for the current prewrite process, the current buffer management unit refers to the positional information of the input / output buffer that has performed the previous prewrite process. A data processing apparatus that calculates a difference from position information of an input / output buffer, and sets an input / output buffer serving as a start position of the current prewrite process according to the difference.
  11.  請求項7~10の何れか一項に記載のデータ処理装置であって、
     前記バッファ管理部が、前回のプレライト処理開始時点よりも過去から、今回のプレライト処理の開始位置決定処理終了時点までの間における前記置換実行回数を計数するとともに、前回のプレライト処理開始時点から今回のプレライト処理の開始位置決定処理終了時点までの間における前記置換実行回数を更に計数し、
     前記プレライト管理部が、今回のプレライト処理を行う候補となる入出力バッファを選定する際、
     前記プレライト管理部が、
     前記両計数値の差を基に今回のプレライト処理において処理の対象となる入出力バッファの処理数を設定することを特徴とするデータ処理装置。
    A data processing device according to any one of claims 7 to 10,
    The buffer management unit counts the number of replacement executions from the past from the previous prewrite process start time to the end time of the current prewrite process start position determination process, and the previous prewrite process start time To further count the number of replacement executions between the start position determination process and the end point of the current prewrite process,
    When the prewrite management unit selects an input / output buffer that is a candidate for the current prewrite process,
    The prelight management unit
    A data processing apparatus, wherein the number of input / output buffers to be processed in the current prewrite processing is set based on the difference between the two count values.
  12.  請求項7~11の何れか一項に記載のデータ処理装置であって、
     前記プレライト管理部が、前記参照速度に基づいて、次回のプレライト処理の処理実行契機を決定する際、
     今回のプレライト処理を行う対象となる入出力バッファとして選定した入出力バッファのうち、最後にプレライト処理の対象とされた入出力バッファの位置から所定数分減じた位置にある入出力バッファに対し、前記バッファ管理部が参照するまでの時間を前記参照速度に基づいて算出し、該算出結果を前記次回のプレライト処理の実行契機とすることを特徴とするデータ処理装置。
    A data processing apparatus according to any one of claims 7 to 11,
    When the prewrite management unit determines a process execution trigger for the next prewrite process based on the reference speed,
    Among the input / output buffers selected as the target for the prewrite process this time, the I / O buffer at the position subtracted a predetermined number from the position of the last input / output buffer that was the target of the prewrite process On the other hand, a data processing apparatus characterized in that a time until the buffer management unit refers is calculated based on the reference speed, and the calculation result is used as an execution timing of the next prewrite process.
  13.  データを一時的に格納する複数の入出力バッファを有する主記憶装置と、前記データを格納する2次記憶装置と、前記入出力バッファに一時的に格納するデータ並びに前記2次記憶装置に格納するデータの置換処理の管理及び、前記入出力バッファに格納されたデータを、前記置換処理によって前記2次記憶装置に書き出す前に、事前書出しを行うプレライト処理の管理を行う制御部と、を有する計算機に、
     前記入出力バッファを固定の循環リストとして捉え、前記置換処理を実施する際に、前記入出力バッファを順番に参照しながら前記データの置換対象となる入出力バッファを選定する機能と、
     所定時間あたりに前記入出力バッファに対してデータの置換を行った回数である置換実行回数を計測する機能と、
     所定時間あたりに前記複数の入出力バッファに格納されたデータを順番に参照する参照速度を算出する機能と、
     プレライト処理の実行契機を検出し、前回プレライト処理を行った入出力バッファの位置情報と、現在バッファ管理部で参照されている入出力バッファの位置情報と、前記置換実行回数とに基づいて、今回のプレライト処理を行う対象となる入出力バッファを選定する機能と、
     前記プレライト処理を行う候補となる入出力バッファに、更新データがある場合に、当該入出力バッファに格納されたデータを書き出す機能と、
     前記参照速度に基づいて、次回のプレライト処理の処理実行契機を決定する機能と、
     を実現させることを特徴とするデータ処理プログラム。
    A main storage device having a plurality of input / output buffers for temporarily storing data, a secondary storage device for storing the data, data temporarily stored in the input / output buffer, and storage in the secondary storage device A control unit that manages data replacement processing and prewrite processing that performs pre-writing before the data stored in the input / output buffer is written to the secondary storage device by the replacement processing. In the calculator,
    A function of selecting the input / output buffer as a replacement target of the data while referring to the input / output buffer in order when the replacement process is performed by taking the input / output buffer as a fixed circular list;
    A function for measuring the number of executions of replacement, which is the number of times data replacement has been performed on the input / output buffer per predetermined time;
    A function of calculating a reference speed for sequentially referring to data stored in the plurality of input / output buffers per predetermined time;
    Detecting the execution timing of the prewrite process, based on the position information of the input / output buffer that performed the prewrite process last time, the position information of the input / output buffer that is currently referred to by the buffer management unit, and the number of executions of replacement , The function to select the target I / O buffer for this prewrite process,
    A function for writing the data stored in the input / output buffer when there is update data in the input / output buffer that is a candidate for the prewrite process;
    Based on the reference speed, a function for determining a process execution trigger for the next prewrite process,
    A data processing program characterized by realizing the above.
  14.  請求項13に記載のデータ処理プログラムであって、
     今回のプレライト処理を行う対象となる入出力バッファを選定する際、
     前記置換対象として選定された入出力バッファよりも参照順が先で、且つ当該入出力バッファと前記所定数の入出力バッファの差が一定以内となるように前記今回のプレライト処理を行う候補を選定する機能を実現させることを特徴とするデータ処理プログラム。
    A data processing program according to claim 13,
    When selecting the I / O buffer that is the target of this prewrite process,
    Candidates for performing the current prewrite process so that the reference order is ahead of the input / output buffer selected as the replacement target and the difference between the input / output buffer and the predetermined number of input / output buffers is within a certain range. A data processing program characterized by realizing a function to be selected.
  15.  請求項13又は14に記載のデータ処理プログラムであって、
     前記置換対象の入出力バッファを選定する際、
     参照回数が一定値以下の入出力バッファを置換対象として選定する機能を実現させることを特徴とするデータ処理プログラム。
    A data processing program according to claim 13 or 14,
    When selecting the I / O buffer to be replaced,
    A data processing program for realizing a function of selecting an input / output buffer whose reference count is a predetermined value or less as a replacement target.
  16.  請求項13~15のいずれか一項に記載のデータ処理プログラムであって、
     前回プレライト処理を行った入出力バッファの位置情報と、現在参照されている入出力バッファの位置情報とを更に取得する機能と、
     今回のプレライト処理を行う候補となる入出力バッファを選定する際
     前記前回プレライト処理を行った入出力バッファの位置情報と、前記現在参照されている入出力バッファの位置情報との差分を算出し、該差分に応じて、今回のプレライト処理の開始位置となる入出力バッファを設定する機能を更に実現することを特徴とするデータ処理プログラム。
    A data processing program according to any one of claims 13 to 15,
    A function for further acquiring the position information of the input / output buffer that was previously pre-written and the position information of the currently referenced input / output buffer;
    When selecting an input / output buffer that is a candidate for the current prewrite process, the difference between the position information of the input / output buffer that was previously prewritten and the position information of the currently referenced input / output buffer is calculated. A data processing program that further realizes a function of setting an input / output buffer serving as a start position of the current prewrite process according to the difference.
  17.  請求項13~16の何れか一項に記載のデータ処理プログラムであって、
     前回のプレライト処理開始時点よりも過去から、今回のプレライト処理の開始位置決定処理終了時点までの間における前記置換実行回数を計数するとともに、前回のプレライト処理開始時点から今回のプレライト処理の開始位置決定処理終了時点までの間における前記置換実行回数を更に計数する機能と、
     今回のプレライト処理を行う候補となる入出力バッファを選定する際、
     前記両計数値の差を基に今回のプレライト処理において処理の対象となる入出力バッファの処理数を設定する機能とを実現することを特徴とするデータ処理プログラム。
    A data processing program according to any one of claims 13 to 16, comprising:
    The number of replacement executions is counted from the past from the start time of the previous prewrite process to the end time of the start position determination process of the current prewrite process, and the current prewrite process from the start time of the previous prewrite process. A function of further counting the number of times of replacement execution until the end of the start position determination process;
    When selecting an input / output buffer that is a candidate for this prewrite process,
    A data processing program for realizing a function of setting the number of input / output buffers to be processed in the current prewrite processing based on the difference between the two count values.
  18.  請求項13~17の何れか一項に記載のデータ処理プログラムであって、
     前記参照速度に基づいて、次回のプレライト処理の処理実行契機を決定する際、
     今回のプレライト処理を行う対象となる入出力バッファとして選定した入出力バッファのうち、最後にプレライト処理の対象とされた入出力バッファの位置から所定数分減じた位置にある入出力バッファに対し、前記バッファ管理部が参照するまでの時間を前記参照速度に基づいて算出し、該算出結果を前記次回のプレライト処理の実行契機とする機能を実現することを特徴とするデータ処理プログラム。
    A data processing program according to any one of claims 13 to 17,
    Based on the reference speed, when determining the processing execution trigger of the next prewrite process,
    Among the input / output buffers selected as the target for the prewrite process this time, the I / O buffer at the position subtracted a predetermined number from the position of the last input / output buffer that was the target of the prewrite process On the other hand, a data processing program that calculates a time until the buffer management unit refers to based on the reference speed and realizes a function that uses the calculation result as an execution timing of the next prewrite process.
  19.  データを一時的に格納する複数の入出力バッファを有する主記憶装置と、前記データを格納する2次記憶装置と、前記入出力バッファに一時的に格納するデータ及び前記2次記憶装置に格納するデータの置換処理を管理するバッファ管理部と、前記入出力バッファに格納されたデータがバッファ管理部において書き出される前に、事前書出しを行うプレライト処理を管理するプレライト管理部と、を有する計算機のデータ処理方法であって、
     前記バッファ管理部が、前記置換処理を実施する際に、前記入出力バッファを順番に参照しながら前記データの置換対象となる入出力バッファを選定するステップと、
     前記バッファ管理部が、所定時間あたりに前記入出力バッファに対してデータの置換を行った回数である置換実行回数を計測するステップと、
     前記バッファ管理部が、前記置換実行回数が前回プレライト処理の対象となった入出力バッファ数以上である場合に、プレライト処理を起動するステップと、
     前記プレライト管理部が、前記バッファ管理部によるプレライト処理の起動を条件に、前回プレライト処理を行った入出力バッファの位置情報と、現在バッファ管理部で参照されている入出力バッファの位置情報と、前記置換実行回数とに基づいて、今回のプレライト処理を行う対象となる入出力バッファを選定するステップと、
     前記プレライト管理部が、前記プレライト処理を行う候補となる入出力バッファに、更新データがある場合に、当該入出力バッファに格納されたデータを書き出すステップと、
    を含むことを特徴とするデータ処理方法。
    Main storage device having a plurality of input / output buffers for temporarily storing data, secondary storage device for storing the data, data to be temporarily stored in the input / output buffer, and storage in the secondary storage device A computer comprising: a buffer management unit that manages data replacement processing; and a prewrite management unit that manages prewrite processing for performing pre-writing before the data stored in the input / output buffer is written in the buffer management unit Data processing method,
    When the buffer management unit performs the replacement process, selecting an input / output buffer to be replaced with the data while sequentially referring to the input / output buffer;
    Measuring the number of executions of replacement, which is the number of times that the buffer management unit has performed replacement of data for the input / output buffer per predetermined time;
    The buffer management unit, when the number of replacement execution times is equal to or more than the number of input / output buffers subjected to previous prewrite processing, starting prewrite processing;
    On the condition that the prewrite management unit starts the prewrite process by the buffer management unit, the position information of the input / output buffer that has performed the previous prewrite process and the position of the input / output buffer that is currently referenced by the buffer management unit Selecting an input / output buffer to be subjected to the current prewrite process based on the information and the number of times of replacement execution;
    When the prewrite management unit has update data in an input / output buffer that is a candidate for performing the prewrite process, writing the data stored in the input / output buffer;
    A data processing method comprising:
  20.  データを一時的に格納する複数の入出力バッファを有する主記憶装置と、前記データを格納する2次記憶装置と、前記入出力バッファに一時的に格納するデータ及び前記2次記憶装置に格納するデータの置換処理を管理するバッファ管理部と、前記入出力バッファに格納されたデータがバッファ管理部において書き出される前に、事前書出しを行うプレライト処理を管理するプレライト管理部と、を有する計算機のデータ処理方法であって、
     前記バッファ管理部が、前記置換処理を実施する際に、前記入出力バッファを順番に参照しながら前記データの置換対象となる入出力バッファを選定するステップと、
     前記バッファ管理部が、所定時間あたりに前記入出力バッファに対してデータの置換を行った回数である置換実行回数を計測するステップと、
     前記バッファ管理部が、所定時間あたりに前記複数の入出力バッファに格納されたデータを順番に参照する参照速度を算出するステップと、
     前記プレライト管理部が、プレライト処理の実行契機を検出し、前回プレライト処理を行った入出力バッファの位置情報と、現在バッファ管理部で参照されている入出力バッファの位置情報と、前記置換実行回数とに基づいて、今回のプレライト処理を行う対象となる入出力バッファを選定するステップと、
     前記プレライト管理部が、現在バッファ管理部で参照されている入出力バッファの位置情報と前記プレライト処理を行う候補となる入出力バッファの位置情報との差分が規定値未満である場合、前回プレライト処理を行った入出力バッファの位置情報と、現在バッファ管理部で参照されている入出力バッファの位置情報と、前記置換実行回数とに基づいて、今回のプレライト処理を行う対象となる入出力バッファを再度選定するステップと、
     前記プレライト管理部が、現在バッファ管理部で参照されている入出力バッファの位置情報と前記プレライト処理を行う候補となる入出力バッファの位置情報との差分が規定値以上である場合であって、前記プレライト処理を行う候補となる入出力バッファに、更新データがある場合に、当該入出力バッファに格納されたデータを書き出すステップと、
     前記プレライト管理部が、前記参照速度に基づいて、次回のプレライト処理の処理実行契機を決定するステップと、
    を含むことを特徴とするデータ処理方法。
     
     
    Main storage device having a plurality of input / output buffers for temporarily storing data, secondary storage device for storing the data, data to be temporarily stored in the input / output buffer, and storage in the secondary storage device A computer comprising: a buffer management unit that manages data replacement processing; and a prewrite management unit that manages prewrite processing for performing pre-writing before the data stored in the input / output buffer is written in the buffer management unit Data processing method,
    When the buffer management unit performs the replacement process, selecting an input / output buffer to be replaced with the data while sequentially referring to the input / output buffer;
    Measuring the number of executions of replacement, which is the number of times that the buffer management unit has performed replacement of data for the input / output buffer per predetermined time;
    The buffer management unit calculating a reference speed for sequentially referring to data stored in the plurality of input / output buffers per predetermined time; and
    The prewrite management unit detects the execution timing of the prewrite process, the position information of the input / output buffer that has performed the previous prewrite process, the position information of the input / output buffer that is currently referred to by the buffer management unit, and Selecting an input / output buffer to be subjected to the current prewrite process based on the number of replacement executions;
    When the difference between the position information of the input / output buffer currently referenced by the buffer management section and the position information of the input / output buffer that is a candidate for performing the prewrite processing is less than a predetermined value, the prewrite management section Based on the position information of the input / output buffer that has been subjected to the prewrite process, the position information of the input / output buffer that is currently referred to by the buffer management unit, and the number of executions of the replacement, the current prewrite process is to be performed. Reselecting the I / O buffer;
    This is a case where the difference between the position information of the input / output buffer currently referred to by the buffer management section and the position information of the input / output buffer that is a candidate for the prewrite processing is greater than or equal to a predetermined value. And writing the data stored in the input / output buffer when there is update data in the input / output buffer that is a candidate for performing the prewrite process,
    The prewrite management unit determining a processing execution opportunity of a next prewrite process based on the reference speed;
    A data processing method comprising:

PCT/JP2011/001143 2010-04-22 2011-02-28 Data processing method, data processing device, and data processing program WO2011132357A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US13/642,433 US20130212343A1 (en) 2010-04-22 2011-02-28 Data processing method, data processing apparatus, and data processing program
JP2012511518A JP5450803B2 (en) 2010-04-22 2011-02-28 Data processing method, data processing apparatus, and data processing program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010098652 2010-04-22
JP2010-098652 2010-04-22

Publications (1)

Publication Number Publication Date
WO2011132357A1 true WO2011132357A1 (en) 2011-10-27

Family

ID=44833902

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/001143 WO2011132357A1 (en) 2010-04-22 2011-02-28 Data processing method, data processing device, and data processing program

Country Status (2)

Country Link
JP (1) JP5450803B2 (en)
WO (1) WO2011132357A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6466756A (en) * 1987-09-07 1989-03-13 Nec Corp Roll-back buffer control system
JPH08328899A (en) * 1995-06-05 1996-12-13 Hitachi Ltd Microcomputer and emulator
JPH09305449A (en) * 1996-05-16 1997-11-28 Hitachi Ltd Data base managing system
JP2003223350A (en) * 2002-01-29 2003-08-08 Ricoh Co Ltd Data base system

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4313068B2 (en) * 2003-03-28 2009-08-12 株式会社日立製作所 Cache management method for storage device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6466756A (en) * 1987-09-07 1989-03-13 Nec Corp Roll-back buffer control system
JPH08328899A (en) * 1995-06-05 1996-12-13 Hitachi Ltd Microcomputer and emulator
JPH09305449A (en) * 1996-05-16 1997-11-28 Hitachi Ltd Data base managing system
JP2003223350A (en) * 2002-01-29 2003-08-08 Ricoh Co Ltd Data base system

Also Published As

Publication number Publication date
JP5450803B2 (en) 2014-03-26
JPWO2011132357A1 (en) 2013-07-18

Similar Documents

Publication Publication Date Title
US11379272B2 (en) Autoscaling using file access or cache usage for cluster machines
US10706009B2 (en) Techniques to parallelize CPU and IO work of log writes
Yan et al. Tr-spark: Transient computing for big data analytics
US8689221B2 (en) Speculative thread execution and asynchronous conflict events
US20210026707A1 (en) Predictive analysis for migration schedulers
US11537446B2 (en) Orchestration and scheduling of services
US20200310869A1 (en) Information processing apparatus and storage medium storing execution control program
US20130151784A1 (en) Dynamic prioritization of cache access
US8458710B2 (en) Scheduling jobs for execution on a computer system
CN110609807B (en) Method, apparatus and computer readable storage medium for deleting snapshot data
US20170262310A1 (en) Method for executing and managing distributed processing, and control apparatus
US10599472B2 (en) Information processing apparatus, stage-out processing method and recording medium recording job management program
CN102855299A (en) Method for realizing iterative migration of distributed database without interrupting service
US7908268B2 (en) Predictive database pool preparation
EP2840513B1 (en) Dynamic task prioritization for in-memory databases
JP5450803B2 (en) Data processing method, data processing apparatus, and data processing program
CN109240941B (en) Garbage recovery method of storage system and related device
US10372578B2 (en) Dynamically adjusting statistics collection time in a database management system
US10871945B2 (en) Resumable merge sort
Zhang et al. PAME: precision-aware multi-exit DNN serving for reducing latencies of batched inferences
JP5147296B2 (en) Computer system, database management method and program
JP6764175B2 (en) Database management system and database management method
CN107577517B (en) NUMA memory architecture-oriented fine-grained vCPU scheduling method and system
US20130212343A1 (en) Data processing method, data processing apparatus, and data processing program
CN111352860B (en) Garbage recycling method and system in Linux Bcache

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2012511518

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 13642433

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 11771701

Country of ref document: EP

Kind code of ref document: A1