WO2013175625A1 - データベースの管理方法、データベース管理装置及び記憶媒体 - Google Patents

データベースの管理方法、データベース管理装置及び記憶媒体 Download PDF

Info

Publication number
WO2013175625A1
WO2013175625A1 PCT/JP2012/063479 JP2012063479W WO2013175625A1 WO 2013175625 A1 WO2013175625 A1 WO 2013175625A1 JP 2012063479 W JP2012063479 W JP 2012063479W WO 2013175625 A1 WO2013175625 A1 WO 2013175625A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
prefetch
target data
database management
replacement target
Prior art date
Application number
PCT/JP2012/063479
Other languages
English (en)
French (fr)
Inventor
ヴァンザン ドー
功一 大坪
憲治 串
彰人 脇坂
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2012/063479 priority Critical patent/WO2013175625A1/ja
Publication of WO2013175625A1 publication Critical patent/WO2013175625A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • G06F16/24557Efficient disk access during query execution

Definitions

  • the present invention relates to an improvement of a database management system that provides a database with a database buffer (or DB cache) on a main memory.
  • the database In a database management system that processes a large amount of data, the database is stored in the storage device, a database buffer that stores a part of the database is set on the main memory, and the data requested for data access is stored on the main memory. It is known to perform processing after reading the database buffer. In the database management system, the performance can be improved by shortening the time (response time) from receiving the data access request to acquiring the target data and responding. The response time of data stored in the database buffer is shorter than that of data stored in the storage device. For this reason, for data that is expected to be accessed repeatedly, there is known a prefetch technique in which the database management system reads data to be accessed into a database buffer in advance before receiving a data access request. Yes. (For example, Patent Documents 1, 2, and 3).
  • the database management system In the prefetching process, if there is a free area in the database buffer, the database management system stores the prefetched data in the free area. On the other hand, if there is no free space in the database buffer, the database management system selects data to be written back from the database buffer to the storage device using a well-known algorithm such as LRU (Least RecentlydUsed), and the data is stored in the storage device. Write back.
  • LRU Least RecentlydUsed
  • the database management system reads in advance data for which an access request is predicted in the database buffer area written back to the storage device. Note that, as data to be evicted from the database buffer to the storage device, data that has been used for the longest time since access or data that is least frequently referenced is selected.
  • the selection criteria for the data to be replaced includes “data with the lowest frequency of reference”
  • the data that has not been read once since it was read into the database buffer by the prefetching process is “the data with the lowest frequency of reference”. May be evicted from the database buffer.
  • the database management system receives an access request for data that is actually prefetched, the data that has been read in the prefetch processing does not exist in the database buffer, so the database management system obtains the data again from the storage device. Will do.
  • the database management system has a problem in that an I / O time for reading the same data from the storage device again occurs, the response time of the database processing increases, and the processing capacity decreases.
  • the present invention has been made in view of the above problems, and it is an object of the present invention to prevent the data read in the prefetch process from being evicted from the database buffer before being accessed, and to improve the performance of the database management system.
  • the present invention is a database management method for controlling a database that stores a part of data stored in a storage device in a buffer provided on the memory by a computer including a processor, a memory, and a storage device.
  • a first step in which the computer accepts a data access request; and the computer analyzes a data access request to extract a prefetch process, and specifies a position of prefetch target data in the database as a target of the prefetch process.
  • a second step a third step in which the computer sets replacement target data for storing the prefetch target data in the buffer, and whether or not the replacement target data is accessed by the computer.
  • the present invention it is possible to prevent data read into a buffer (database buffer) by prefetch processing from being evicted from the database buffer before being accessed. It is possible to improve the performance of the database management system that obtains.
  • FIG. 4 is a formula showing a buffer hit rate according to the first embodiment of this invention.
  • FIG. 5 is a mathematical formula showing a first example of the present invention and a prefetch time at which the buffer hit rate becomes maximum.
  • FIG. 1 shows a first embodiment of the present invention and is a block diagram showing an example of a database management system.
  • the client device 7 and the database management device 1 are connected via a network 8.
  • the database management device 1 Upon receiving the query (data access request) issued by the client device 7, the database management device 1 accesses the database stored in the database storage area, and responds to the client device 7 with the requested data.
  • the database management device 1 includes a CPU 2 that performs arithmetic processing, a main memory 3 that stores data and programs, a network interface (hereinafter referred to as I / F) 4 connected to a network 8, and an external storage device (storage device) 6 And an external storage device I / F 5 connected to the computer.
  • a CPU 2 that performs arithmetic processing
  • main memory 3 that stores data and programs
  • I / F network interface
  • I / F network interface
  • storage device storage device
  • the external storage device 6 has a database storage area 60 for storing a database.
  • the external storage device 6 also functions as a storage medium for programs executed by the database management device 1.
  • the main memory 3 stores a database management unit 10 that accesses the database in the database storage area 60 and is executed by the CPU 2.
  • the database management unit 10 analyzes a data access request received from the client device 7, and executes an execution management unit 11 that accesses the database storage area 60, and a database buffer 12 that stores a part of the database stored in the database storage area 60.
  • a prefetch processing unit 20 that transfers data from the database storage area 60 to the database buffer 12 when the data access request includes a prefetch request, and prefetch statistical information 50 that holds data used in the prefetch process. Is done. Details of each part will be described later.
  • the prefetch processing unit 20 includes a prefetch execution control unit 30 that sets prefetch target data and timing, and a prefetch execution unit 40 that reads prefetch target data from the database storage area 60 and stores it in the database buffer 12.
  • the prefetch processing unit 20 shows an example of reading / writing prefetched data in units of pages.
  • the unit of data is not limited to pages, and in units such as blocks and records. I just need it.
  • the prefetch execution control unit 30 includes a prefetch wait time determination unit 310 that determines prefetch timing determination, a prefetch statistical information update unit 330 that updates the prefetch statistical information 50, and a buffer that releases pages that are no longer needed in the database buffer 12.
  • An early release portion 340 is included in The prefetch execution control unit 30.
  • the CPU 2 of the database management device 1 operates as a functional unit that realizes a predetermined function by operating according to a program of each functional unit.
  • the CPU 2 functions as the database management unit 10 by operating according to the database management program. The same applies to other programs.
  • the CPU 2 also operates as a functional unit that realizes each of a plurality of processes executed by each program.
  • a computer and a computer system are an apparatus and a system including these functional units.
  • Information such as programs and tables for realizing the above functional units of the database management unit 10 is stored in an external storage device 6, a nonvolatile semiconductor memory, a hard disk drive, a storage device such as an SSD (Solid State Drive), an IC card, an SD It can be stored in a computer-readable non-transitory data storage medium such as a card or DVD.
  • an external storage device 6 a nonvolatile semiconductor memory, a hard disk drive, a storage device such as an SSD (Solid State Drive), an IC card, an SD It can be stored in a computer-readable non-transitory data storage medium such as a card or DVD.
  • the client device 7 is a computer connected to the network 8 via the network I / F 73.
  • the client device 7 includes a CPU, a memory, and an external storage device (not shown), and executes a query issuing unit 71 and a data acquiring unit 72.
  • the inquiry issuing unit 71 issues a data access request to the database management apparatus 1 via the network 8.
  • the data access request is, for example, a query described in SQL, and is input from an application (not shown) or an input device (not shown).
  • the data acquisition unit 72 acquires data from the response from the database management device 1 and outputs it to an output device (not shown).
  • a plurality of client devices 7 are connected to the network 8, and the database management device 1 receives a plurality of data access requests from the plurality of client devices 7.
  • the prefetch statistical information 50 includes a query information table 510 that manages the access frequency and the like for each type of data access request received from the client device 7, a database page that is prefetched to the database buffer 12, and a prefetch page that manages the page to be replaced. Information table 520.
  • FIG. 8 is a diagram illustrating an example of the inquiry information table 510.
  • the query information table 510 is obtained from a query 511 that stores the contents of the data access request, an average value 512 of data acquisition intervals that stores an average value of time intervals for acquiring database information by the query, and a normal distribution described later.
  • One entry consists of 513 for storing the distribution of data acquisition intervals (standard deviation ⁇ 2 ), the number of acquisitions 514 for storing the number of data acquisitions by the query, and the last access time 515 for storing the previous access time. Composed.
  • the inquiry information table 510 is managed by the prefetch processing unit 20 as described later.
  • the query 511 stores a command string (or command) included in the data access request, and one entry is configured for each type of command string.
  • FIG. 9 is a diagram illustrating an example of the prefetch page information table 520.
  • the prefetch page information table 520 acquires the page 521 in the buffer for storing the identifier of the page stored in the database buffer 12, the acquisition planned query presence / absence 522 for storing the presence / absence of a query scheduled to acquire data, and the data.
  • One entry is composed of the number of scheduled acquisition queries 523 that stores the number of scheduled queries and the scheduled acquisition query list 524 that stores the data acquisition schedule.
  • the acquisition schedule inquiry list 524 queries that are scheduled to acquire data from the page are stored in a chain in the order of scheduled acquisition times.
  • the acquisition schedule inquiry list 524 stores addresses on the main memory. This address indicates the top data of a series of queries.
  • the acquisition schedule inquiry list 524 includes an inquiry identifier 5241, an acquisition acquisition time 5242 for storing a time at which data of the page is acquired by the inquiry, and a pointer 5243 to the next acquisition inquiry.
  • the pointer 5243 stores a plurality of queries for reading the page in order of time.
  • FIG. 2 is a flowchart showing an example of processing performed by the execution management unit 11 of the database management unit 10 executed by the database management device 1. This process is executed when the database management unit 10 of the database management apparatus 1 receives a data access request (referred to as a request in the figure) from the client apparatus 7.
  • a data access request (referred to as a request in the figure) from the client apparatus 7.
  • step S1 the execution management unit 11 determines whether the received data access request is a query preprocessing request.
  • the query preprocessing request is a prefetch request or prefetch request for data (page) in the database.
  • the execution management unit 11 proceeds to step S2 if the received data access request is a query pre-processing request, and proceeds to step S4 if it is not a query pre-processing request.
  • step S2 the execution management unit 11 executes a query pre-processing request, and acquires the position (page) of the data scheduled to be acquired and a prefetch request.
  • step S ⁇ b> 3 the execution management unit 11 requests the prefetch processing unit 20 to perform prefetching on a page to be acquired. The processing performed in the prefetch processing unit 20 will be described later with reference to FIG.
  • the execution management unit 11 can determine the data access order by analyzing the data access request, and can determine the page to be prefetched from this access order.
  • step S4 in the case where it is not a query preprocessing request in the determination in step S1, the execution management unit 11 determines whether or not the data access request is a data acquisition request. If the data access request is a data acquisition request, the process proceeds to step S5, and if not, the process proceeds to step S7.
  • step S5 the execution management unit 11 reads the page specified by the data acquisition request from the database buffer 12 or the database storage area 60, and responds to the client device 7.
  • step S6 the execution management unit 11 requests the prefetch processing unit 20 to update the prefetch statistical information 50 in order to record the contents of the data acquisition request and the access time in the prefetch statistical information 50.
  • step S7 when the data access request is not a data acquisition request, other processes such as a write request and an update request are performed.
  • the execution management unit 11 executes the data access request and ends the process. Since the contents of the processing are known or well-known processing for the database, description thereof will be omitted.
  • the execution management unit 11 of the database management unit 10 requests the prefetch processing unit 20 to perform prefetching when the received data access request is a preprocessing request for an inquiry.
  • the execution management unit 11 reads a page corresponding to the data acquisition request and responds to the client device 7, and the contents of the data acquisition request (query), The accessed time is recorded in the prefetch statistical information 50.
  • FIG. 3 is a flowchart showing an example of processing of the prefetch processing unit 20 performed in step S3 of FIG.
  • the prefetch processing unit 20 determines whether or not the execution request received from the execution management unit 11 is execution of prefetching. If the prefetching is executed, the process proceeds to step S12. If not, the process proceeds to step S14. .
  • the prefetch processing unit 20 refers to the prefetch statistical information 50, and determines the timing for executing the prefetch, as shown in FIG. This timing is the time when the prefetching is performed or the time from the present time. Then, the prefetch processing unit 20 performs prefetching at the determined timing, reads a page corresponding to the data access request from the external storage device 6, and stores it in the database buffer 12.
  • step S13 the prefetch processing unit 20 updates or registers the data of the prefetch statistical information 50 for the query that has been prefetched, and ends the process.
  • step S14 in which the execution request is not prefetched in the determination in step S11, it is a case where it is called by the update after data acquisition in step S8 of FIG.
  • the prefetch processing unit 20 updates or registers the contents of the query that acquired the data and the data of the prefetch statistical information 50 such as the number of times of data acquisition and the time, and ends the processing.
  • the prefetching timing is calculated from the prefetch statistical information 50, and the prefetching processing unit 20 executes the prefetching processing at this timing.
  • the prefetching processing unit 20 updates the prefetching statistical information 50 with the contents of prefetching or inquiry.
  • FIG. 4 is a flowchart showing an example of processing of the prefetch execution control unit 30 performed in step S12 of FIG.
  • the prefetch execution control unit 30 acquires information about prefetching such as a page (hereinafter referred to as prefetching target page) to be prefetched and a replacement target page from the execution management unit 11 in step S21.
  • information on prefetching information on the prefetching page information table 520, such as an acquisition plan query for reading the prefetching target page and the order of the prefetching, and the database buffer 12 to be driven out to store the prefetching target page.
  • Information on the replacement target data including the replacement target page (or the position of the replacement target data).
  • the execution management unit 11 determines the replacement target page by a known method such as LRU shown in the conventional example. Further, the order of acquisition schedule indicates the number of acquisition processing to be accessed during a plurality of data acquisition processing of the inquiry.
  • step S22 the prefetch execution control unit 30 determines whether or not a prefetch target page exists in the database buffer 12. If there is a prefetch target page in the database buffer 12, it is not necessary to perform prefetching, so the processing is terminated as it is. On the other hand, if the prefetch target page does not exist in the database buffer 12, the process proceeds to step S23.
  • step S23 the prefetch execution control unit 30 refers to the prefetch page information table 520, and determines whether or not the replacement target page has been registered and a data acquisition query has been registered. If the page to be replaced has been registered in the prefetch page information table 520 and the query for acquiring data has been registered in the prefetch page information table 520, the process proceeds to step S24. On the other hand, if the page to be replaced or the query to be acquired is not registered in the prefetch page information table 520, the process proceeds to step S28 and prefetching is executed.
  • the prefetch execution control unit 30 instructs the prefetch execution unit 40 in step S28 to read the prefetch page from the database storage area 60 of the external storage device 6 into the database buffer 12.
  • the prefetch execution control unit 30 calculates a scheduled time (scheduled acquisition time of the replacement page) at which data is acquired from the prefetch target page by a data access request.
  • the replacement page acquisition scheduled time has the maximum hit rate (buffer hit rate) of the database buffer 12 based on the acquisition schedule order of the prefetch page and the data acquisition interval of the acquisition scheduled query. Calculate timing. Details will be described later.
  • the buffer hit rate is a ratio in which the number of accesses is the denominator and the number of hits is the numerator, and is managed by the database management unit 10.
  • step S25 the prefetch execution control unit 30 calculates a waiting time (delay time) until the prefetch page is actually read into the database buffer 12, as shown in FIG.
  • step S26 the prefetch execution control unit 30 determines whether or not the waiting time has elapsed because the waiting time becomes 0 or a negative value. If the waiting time has elapsed and the estimated replacement page acquisition time has elapsed, the process proceeds to step S28 to perform prefetching. At this time, the prefetch execution control unit 30 instructs the prefetch execution unit 40 to store the replacement target page in the database storage area 60 and then writes the prefetch target page. The prefetch execution control unit 30 may instruct the prefetch execution unit 40 to overwrite the replacement target page with the prefetch target page when there is no data acquisition plan in the replacement target page.
  • step S27 a waiting state setting process such as subtraction of the waiting time is performed in step S27. Note that the subtraction of the waiting time subtracts a preset value from the waiting time.
  • the waiting time of the prefetch page is calculated and read execution is delayed to read the database buffer 12.
  • the replaced page to be replaced is read by the data acquisition request, it is prevented from being evicted from the database buffer 12 by the prefetching.
  • FIG. 5 is a flowchart illustrating an example of processing performed by the prefetch wait time determination unit 310 performed in step S25 of FIG.
  • the prefetch wait time determination unit 310 acquires prefetch page and replacement target page information from the prefetch page information table 520 and the inquiry information table 510 of the prefetch statistical information 50.
  • the prefetch page information an average value 512 of data acquisition intervals and a variance 513 of data acquisition intervals are acquired for each page.
  • the replacement target page information the final scheduled acquisition time 5242, the average value of data acquisition intervals 512, and the distribution 513 of data acquisition intervals are acquired for each page. That is, the prefetch wait time determination unit 310 refers to the acquisition schedule inquiry list 524 for each page, and acquires an inquiry 5241 for acquiring the page. Then, an average value 512 of data acquisition intervals, a variance 513, and the like of the inquiry information table 510 corresponding to the inquiry 5241 are acquired.
  • step S32 the prefetch wait time determination unit 310 determines whether there is a replacement target page for which the upper device replacement target page has passed the final scheduled acquisition time 5242. If the replacement target page has passed the final scheduled acquisition time 5242, the process proceeds to step S33, and if not, the process proceeds to step 35.
  • step 33 the prefetch wait time determination unit 310 calculates a prefetch time tread0 that maximizes the sum of the buffer hit rates of the replacement target page for which the scheduled acquisition time 5242 has passed and the prefetch target page to be prefetched this time.
  • the calculation of the prefetch time t read0 will be described later.
  • step S35 when there is no replacement target page that has passed the final scheduled acquisition time 5242 in the determination in step S32, the prefetch waiting time determination unit 310 calculates the replacement page acquisition scheduled time and the current time calculated in step S24.
  • the calculation of the prefetch time t read0 will be described below.
  • the data acquisition interval by the data access request from the client device 7 Since the data acquisition interval by the data access request from the client device 7 repeatedly executes the same process, the data acquisition has a periodicity. And the data acquisition interval by the data access request from the client device 7 tends to be accumulated in the vicinity of the average value, and therefore, it is considered to follow a normal distribution as shown in FIG.
  • FIG. 11 is a graph showing the relationship between data acquisition time and data acquisition probability density.
  • FIG. 12 shows an example in which the replacement target page B that has passed the final scheduled acquisition time 5242 is replaced with the newly received prefetch target page A.
  • FIG. 12 is a graph showing the relationship between the data acquisition time of the prefetch target page A and the replacement target page B and the data acquisition probability density.
  • P A of the hatched portion in the figure indicates the probability of prefetching target page A is accessed
  • P B of the hatched portion in the figure shows the probability that a replacement page B is accessed.
  • f B (t) represents a probability distribution function for data acquisition of the replacement target page B, and is the same as the above equation (3)
  • f A (t) represents a probability distribution function of data acquisition of the prefetch target page A, and is the same as the above equation (3).
  • T 0 indicates an I / O time for reading data from the external storage device 6 to the database buffer 12, and a value set in advance according to the hardware of the database management device 1 can be used.
  • the prefetch execution control unit 30 shows the prefetch time t read0 at which the buffer hit rate P (t read ) becomes the maximum (6). Operate with an expression.
  • ⁇ 1 is a standard deviation regarding the average value E 1 of the data acquisition intervals of the prefetch target page A
  • ⁇ 2 is a standard deviation regarding the average value E 2 of the data acquisition intervals of the replacement target page B, t 0. Is the I / O time shown in FIG.
  • t wait indicates the waiting time until the prefetching is executed, and is the waiting time calculated in steps S34 and S35.
  • the scheduled prefetch time calculated in step S24 in FIG. 4 is the time obtained by subtracting the I / O time t 0 shown in FIG. 12 from the next scheduled data acquisition time t E in the above equation (4). That's fine.
  • a page for which data acquisition has not been performed even after the scheduled acquisition time 5252 has elapsed is set as a replacement target page, and both the prefetch target page and the replacement target page are accessed, and the buffer hit rate P (t read ) is By calculating the maximum prefetch time tread0 and delaying the time when the prefetch target page A is actually read into the database buffer 12, the probability that the replacement target page B is read can be increased. As a result, before the page held in the database buffer 12 by prefetching is accessed, it is possible to prevent the page from being pushed out of the database buffer 12 by other prefetching.
  • FIG. 6 is a flowchart showing an example of processing performed in the prefetch statistical information update unit 330 when prefetching is executed. This process is a process performed in step S13 of FIG.
  • step S41 the prefetch statistical information updating unit 330 determines whether or not a prefetch target page to be prefetched is registered in the prefetch page information table 520. If the prefetch target page has been registered, the process proceeds to step S43, and if not registered, the process proceeds to step S42.
  • step S42 the prefetch statistical information updating unit 330 adds an entry of the prefetch target page to the prefetch page information table 520.
  • step S43 the pre-read statistics updating unit 330, the prefetch target page described above added, the queries be acquired data, and acquiring scheduled time t E data acquisition schedule inquiry list of prefetch page information table 520 Set to 524. If an entry for the prefetch target page already exists, a new query is added to the acquisition schedule query list 524. That is, as shown in FIG. 9, the address of the new query 5241 is stored in the pointer 5243 of the previous query list.
  • a new prefetch target page is added to the prefetch page information table 520, and a query list 524 is added to the existing prefetch target page.
  • FIG. 7 is a flowchart showing an example of processing performed by the prefetch statistical information update unit 330 when data is acquired. This process is a process performed in step S14 of FIG.
  • step S51 the prefetch statistical information update unit 330 refers to the query information table 510 to determine whether or not the query that has acquired the current data is the first data acquisition.
  • the prefetch statistical information updating unit 330 determines that it is the first data acquisition and proceeds to step S52. On the other hand, if it is the second and subsequent data acquisition, the process proceeds to step S53.
  • step S52 the prefetch statistical information updating unit 330 initializes the entry of the inquiry in the inquiry information table 510. As for the contents of initialization, the prefetch statistical information updating unit 330 sets the number of acquisitions 514 to 1, and resets the average value 512 of data acquisition intervals and the variance 513 of data acquisition intervals to 0. Then, the current time is set as the last access time 515.
  • step S53 which is the second and subsequent data acquisition
  • the prefetch statistical information updating unit 330 adds 1 to the number of acquisitions 514, and sets the average value 512 of the data acquisition intervals and the variance 513 of the data acquisition intervals to the current values. Update. Then, the current time is set as the last access time 515.
  • step S54 the prefetch statistical information updating unit 330 celebrates the acquisition scheduled inquiry list 524 with the entry of the page from which the current data is obtained from the prefetch page information table 520. Then, the prefetch statistical information updating unit 330 deletes a list in which the query 5241 of the acquisition scheduled query list 524 matches the query. At this time, when the address of the next query list is set in the pointer 5243 of the query list to be deleted, the prefetch statistical information update unit 330 sets the next query list pointer 524 to be acquired or the pointer 5243 of the previous query list as the next query list. Update with the address of the query list. Further, the prefetch statistical information update unit 330 subtracts 1 from the number of planned acquisition queries 523 in the query information table 510, and sets the acquisition planned query presence / absence 522 to “none” when the number of planned acquisition queries 523 becomes zero. Update.
  • the prefetch statistical information update unit 330 updates the inquiry information table 510 and the prefetch page information table 520 when acquiring data.
  • FIG. 10 is a flowchart showing an example of processing performed in the buffer early release unit 340. This process can be executed when the prefetch execution control unit 30 receives a new prefetch target page. Preferably, the processing of FIG. 10 is executed after the processing of FIG.
  • the buffer early release unit 340 refers to the prefetch page information table 520 to determine whether there is a page for which no data acquisition is scheduled.
  • the buffer early release unit 340 determines that there is a page for which no data is scheduled to be acquired if there is an entry in which the presence / absence of query 522 for data acquisition in the prefetch page information table 520 is “none”, and proceeds to step S62. move on.
  • the buffer early release unit 340 deletes a page from which no data is scheduled to be acquired from the database buffer 12 and releases the storage area. Then, the buffer early release unit 340 deletes the entry of the page for which no data is scheduled to be acquired from the prefetch page information table 520 and ends the process.
  • step S61 if it is determined in step S61 that the buffer early release unit 340 has no entry indicating whether there is a query for acquiring data 522 in the prefetch page information table 520, there is no page for which no data is scheduled to be acquired. It determines with not existing and progresses to step S63.
  • the buffer early release unit 340 refers to the prefetch page information table 520 and extracts a query list in which the acquisition scheduled time 5242 of the acquisition scheduled query list 524 satisfies a predetermined condition.
  • a predetermined condition a 3-sigma method can be used, and the elapsed time dT from the scheduled acquisition time t E to the current time is set to be three times the standard deviation ⁇ of the data acquisition interval from the average value E of the data acquisition interval. It is determined whether or not there are more pages. If there is a page whose time dT exceeds three times the standard deviation ⁇ of the data acquisition interval from the average value E of the acquisition interval, the buffer early release unit 340 extracts the page. In step S34, the extracted page is deleted from the database buffer 12 to release the storage area. Then, the buffer early release unit 340 deletes the entry of the deleted page from the prefetch page information table 520 and ends the process.
  • FIG. 13 is a graph showing the 3-sigma method and showing the relationship between the data acquisition probability and time.
  • the distribution function f (t) of the data acquisition probability is the same as that in FIG. 11, E is the average value of the data acquisition intervals, and ⁇ is the standard deviation of the data acquisition intervals. In the 3 sigma method, it can be estimated that the data of the page is not acquired when the time exceeding 3 ⁇ from the average value E elapses.
  • the buffer early release unit 340 releases a page from which data is not scheduled to be acquired from the database buffer 12 or acquires a page that has passed a time exceeding 3 ⁇ from the average value E of the data acquisition intervals.
  • the page can be released from the database buffer 12 assuming that the page is not scheduled.
  • processing of the buffer early release unit 340 shown in FIG. 10 may be executed at a predetermined cycle.
  • the prefetch processing unit 20 predicts future access to the replacement target page selected on the database buffer 12 and predicts that it will be accessed in the future. Delays the prefetch of the prefetch target page. As a result, the probability that the replacement target page is accessed before being deleted from the database buffer 12 can be improved. After the page to be replaced is deleted from the database buffer 12 without being accessed, the page is again transferred from the external storage device 6 to the database buffer 12. It can be suppressed from being read.
  • the prefetch processing unit 20 can secure an area for reading a prefetch target page by releasing from the database buffer 12 a page that is predicted not to be accessed by the 3-sigma method.
  • FIG. 14 and 15 show a second embodiment.
  • selection of a replacement target page as a storage area for storing a prefetch target page is determined by a higher function.
  • the second embodiment when there is no free space in the database buffer 12, an example is shown in which a replacement target page is selected based on whether or not data is scheduled to be acquired and the above three-sigma method.
  • the configuration of the database management system is the same as that of the first embodiment, and the same components are denoted by the same reference numerals and redundant description is omitted.
  • FIG. 14 is a flowchart illustrating an example of processing performed by the prefetch execution control unit 30.
  • Steps S21 to S26 are the same processes as steps S21 to S26 of FIG. 4 of the first embodiment, and when the replacement target page is registered in the prefetch page information table 520 and the data acquisition is scheduled. Calculates the scheduled time t E for acquiring the data of the prefetch page, calculates the prefetch wait time, and the prefetch execution control unit 30 determines whether or not the wait time has passed (S21 to S26).
  • step S71 the prefetch execution control unit 30 executes a process of selecting another replacement target page.
  • step S ⁇ b> 72 the prefetch execution control unit 30 determines whether there is a replacement target page that is different from the replacement target page already registered in the prefetch page information table 520.
  • step S73 the prefetch execution control unit 30 sets another replacement target page as a replacement target page scheduled to read the current prefetch target page. Then, in step S75, the prefetch execution control unit 30 writes the prefetch target page in the new replacement target page and executes prefetch.
  • step S74 the waiting time subtraction process is performed, and then the process returns to step S26.
  • the waiting time has elapsed, the current page to be replaced is prefetched. Write a page and perform prefetching.
  • FIG. 15 is a flowchart illustrating an example of replacement target selection processing performed by the prefetch execution control unit 30.
  • the prefetch execution control unit 30 determines whether or not there is a free area in the database buffer 12. If there is a free area, the process proceeds to step S82, and if there is no free area, the process proceeds to step S83.
  • step S82 the prefetch execution control unit 30 selects a free area as a page to be replaced, and the process returns to the process of FIG.
  • step S83 the prefetch execution control unit 30 determines whether there is a page in the prefetch page information table 520 for which no data acquisition plan exists.
  • the prefetch execution control unit 30 determines that the page for which the acquisition plan query presence / absence 522 is “None” in the prefetch page information table 520 of FIG. In step S84, a page for which data acquisition is no longer planned is selected as a new replacement target page, added to the prefetch page information table 520, and the process returns to the process in FIG.
  • step S85 the prefetch execution control unit 30 selects a replacement target page by the 3-sigma method.
  • step S85 using the 3-sigma method shown in FIG. 13 of the first embodiment, the elapsed time dT from the data acquisition scheduled time t E to the current time is calculated from the average value E of the data acquisition intervals to the data. It is determined whether or not there is a page that exceeds three times the standard deviation ⁇ of the acquisition interval.
  • the prefetch execution control unit 30 When there is a page in which the elapsed time dT from the scheduled data acquisition time t E exceeds three times the standard deviation ⁇ of the data acquisition interval from the average value E of the data acquisition interval, the prefetch execution control unit 30 The page is selected as a new replacement target page and added to the prefetch page information table 520. Thereafter, the prefetch execution control unit 30 returns to the process of FIG.
  • step S87 the prefetch execution control unit 30 determines that another page to be replaced does not exist, and returns to the process of FIG.
  • the prefetch execution control unit 30 first selects, from the pages of the prefetch page information table 520, a page for which no data acquisition is planned as a replacement target page. Next, the prefetch execution control unit 30 replaces a page whose elapsed time dT from the data acquisition scheduled time t E exceeds three times the standard deviation ⁇ of the data acquisition interval from the average value E of the data acquisition interval. Select as a page. When a new replacement target page exists, the prefetch execution control unit 30 executes prefetching without waiting for the waiting time to elapse, and writes the prefetch target page to the replacement target page.
  • the page for which the query 511 having the oldest last access time 515 is the data acquisition target among the prefetched pages may be the replacement target page.
  • a page whose data is not scheduled to be acquired can be used as a page to be replaced, and a page predicted not to be accessed by the 3-sigma method can be used as a page to be replaced.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

 プロセッサとメモリとストレージ装置を備えた計算機が、前記メモリ上に設けたバッファへストレージ装置に格納されたデータの一部を格納するデータベースを制御するデータベースの管理方法であって、前記計算機がデータアクセス要求を受け付け、前記データアクセス要求を解析して先読み処理を抽出し、前記先読み処理の対象として前記データベースにおける先読み対象のデータの位置を特定し、前記バッファに前記先読み対象のデータを格納するための置換対象データを設定し、前記置換対象データがアクセスされるか否かを推定し、前記置換対象データがアクセスされると推定した場合には、前記先読み処理の実行を遅延させる。

Description

データベースの管理方法、データベース管理装置及び記憶媒体
 本発明は、主記憶上にデータベースバッファ(またはDBキャッシュ)を備えてデータベースを提供するデータベース管理システムの改良に関する。
 大量のデータを処理するデータベース管理システムでは、ストレージ装置にデータベースを格納し、主記憶上にはデータベースの一部を格納するデータベースバッファを設定しておき、データアクセス要求のあったデータを主記憶上のデータベースバッファに読み込んでから処理を行うものが知られている。データベース管理システムでは、データアクセス要求を受け付けてから、対象のデータを取得して応答するまでの時間(レスポンスタイム)を短縮することで性能を向上させることができる。データベースバッファに格納されたデータのレスポンスタイムは、ストレージ装置に格納されたデータに比して短時間である。このため、繰り返してアクセスされることが予想されるデータでは、データアクセス要求を受信する以前にデータベース管理システムが、アクセス対象のデータを予めデータベースバッファに読み込んでおく先読み(プリフェッチ)技術が知られている。(例えば、特許文献1、2、3)。
 上記先読み処理では、データベースバッファに空き領域が存在する場合には、データベース管理システムが、先読みするデータを空き領域に格納しておく。一方、データベースバッファに空き領域が存在しない場合では、データベース管理システムがLRU(Least Recently Used)等の周知のアルゴリズムで、データベースバッファからストレージ装置に書き戻すデータを選択して、当該データをストレージ装置に書き戻す。
 そして、データベース管理システムは、ストレージ装置へ書き戻したデータベースバッファの領域に、アクセス要求が予測されるデータを予め読み込んでおく。なお、データベースバッファからストレージ装置に追い出されるデータは、アクセスされてから最も長い時間が経過したデータや、参照される頻度が最も低いデータが選択される。
特開2005-258735号公報 特開2003-150419号公報 特開2004-295458号公報
 上記従来例を複数の業務または複数のユーザからのデータアクセス要求を受け付けるデータベース管理システムに適用した場合、複数の先読み処理が発生して、先読みを実行する際に先読みしておいたデータがデータベースバッファから追い出されてしまう場合があった。すなわち、先読み処理を行う際に、データベースバッファに空き領域が存在しない場合には、先読みするデータに置き換えるデータベースバッファ上の置換対象データを上記LRUなどを用いてデータベース管理システムが決定する。
 置換対象データの選択基準が「参照される頻度が最も低いデータ」を含む場合、先読み処理でデータベースバッファに読み込まれてから一度も読み込まれていないデータは、「参照される頻度が最も低いデータ」と判定されてデータベースバッファから追い出される場合がある。この場合、データベース管理システムが実際に先読みしたデータに対するアクセス要求を受信したときには、先読み処理で読み込んでおいたデータはデータベースバッファ上に存在しないため、データベース管理システムは、ストレージ装置から当該データを再度取得することになる。
 このため、データベース管理システムでは、ストレージ装置から再び同じデータを読み込むためのI/O時間が発生し、データベース処理のレスポンスタイムが増大して、処理能力が低下するという問題があった。
 そこで本発明は、上記問題点に鑑みてなされたもので、先読み処理で読み込まれたデータがアクセスされる以前にデータベースバッファから追い出されるのを防いで、データベース管理システムの性能を向上させることを目的とする。
 本発明は、プロセッサとメモリとストレージ装置とを備えた計算機で、前記メモリ上に設けたバッファへストレージ装置に格納されたデータの一部を格納するデータベースを制御するデータベースの管理方法であって、前記計算機が、データアクセス要求を受け付ける第1のステップと、前記計算機が、データアクセス要求を解析して先読み処理を抽出し、前記先読み処理の対象として前記データベースにおける先読み対象のデータの位置を特定する第2のステップと、前記計算機が、前記バッファに前記先読み対象のデータを格納するための置換対象データを設定する第3のステップと、前記計算機が、前記置換対象データがアクセスされるか否かを推定する第4のステップと、前記計算機が、前記置換対象データがアクセスされると推定した場合には、前記先読み処理の実行を遅延させる第5のステップと、を含む。
 本発明によれば、先読み処理でバッファ(データベースバッファ)に読み込まれたデータが、アクセスされる以前にデータベースバッファから追い出されるのを防ぐことが可能となって、複数のデータアクセス要求を受け付けてデータを取得するデータベース管理システムの性能を向上させることができる。
本発明の第1の実施例を示し、データベース管理システムの一例を示すブロック図である。 本発明の第1の実施例を示し、データベース管理部の実行管理部で行われる処理の一例を示すフローチャートである。 本発明の第1の実施例を示し、データベース管理部の先読み処理部で行われる全体的な処理の一例を示すフローチャートである。 本発明の第1の実施例を示し、先読み処理部の先読み実行制御部で行われる処理の一例を示すフローチャートである。 本発明の第1の実施例を示し、先読み処理部の先読み時間決定部で行われる処理の一例を示すフローチャートである。 本発明の第1の実施例を示し、先読み実行時に先読み統計情報更新部で行われる処理の一例を示すフローチャートである。 本発明の第1の実施例を示し、データ取得処理の際に先読み統計情報更新部で行われる処理の一例を示すフローチャートである。 本発明の第1の実施例を示し、問合せ情報テーブルの一例を示す図である。 本発明の第1の実施例を示し、先読みページ情報テーブルの一例を示す図である。 本発明の第1の実施例を示し、バッファ早期解放部で行われる処理の一例を示すフローチャートである。 本発明の第1の実施例を示し、データ取得時間とデータ取得確率密度の関係を示すグラフである。 本発明の第1の実施例を示し、ページA、Bのデータ取得時間とデータ取得確率密度の関係を示すグラフである。 3シグマ法を示し、データの取得確率と時刻の関係を示すグラフである。 本発明の第2の実施例を示し、先読み実行制御部で行われる処理の一例を示すフローチャートである。 本発明の第2の実施例を示し、先読み実行制御部で行われる置換対象の選択処理の一例を示すフローチャートである。 本発明の第1の実施例を示し、データ取得の確率分布関数を示す数式である。 本発明の第1の実施例を示し、バッファヒット率を示す数式である。 本発明の第1の実施例を示し、バッファヒット率が最大になる先読み時刻を示す数式である。
 以下、本発明の一実施形態について添付図面を用いて説明する。
 図1は、本発明の第1の実施例を示し、データベース管理システムの一例を示すブロック図である。クライアント装置7とデータベース管理装置1は、ネットワーク8を介して接続される。クライアント装置7が発行した問合せ(データアクセス要求)を受信したデータベース管理装置1は、データベース格納領域に格納されたデータベースにアクセスし、要求されたデータをクライアント装置7に応答する。
 データベース管理装置1は、演算処理を行うCPU2と、データやプログラムを格納する主記憶3と、ネットワーク8に接続されるネットワークインターフェース(以下、I/F)4と、外部記憶装置(ストレージ装置)6に接続される外部記憶装置I/F5とを備えた計算機で構成される。
 外部記憶装置6は、データベースを格納するデータベース格納領域60を有する。また、外部記憶装置6はデータベース管理装置1で実行するプログラムの記憶媒体としても機能する。
 主記憶3には、データベース格納領域60のデータベースにアクセするデータベース管理部10が格納され、CPU2によって実行される。データベース管理部10は、クライアント装置7から受け付けたデータアクセス要求を解析し、データベース格納領域60にアクセスする実行管理部11と、データベース格納領域60に格納されたデータベースの一部を格納するデータベースバッファ12と、データアクセス要求に先読み要求が含まれるときに、データベース格納領域60からデータベースバッファ12へデータを転送する先読み処理部20と、先読み処理で使用するデータを保持する先読み統計情報50と、から構成される。なお、各部の詳細については後述する。
 先読み処理部20は、先読みの対象となるデータとタイミングを設定する先読み実行制御部30と、データベース格納領域60から先読み対象のデータを読み込んでデータベースバッファ12へ格納する先読み実行部40とを含む。なお、以下の説明では、先読み処理部20は、先読み対象のデータをページ単位で読み書きする例を示すが、データの単位がページに限定されるものではなく、ブロックやレコードなど予め設定した単位であればよい。
 先読み実行制御部30は、先読みのタイミング決定を決定する先読み待ち時間決定部310と、先読み統計情報50を更新する先読み統計情報更新部330と、データベースバッファ12で不要となったページを解放するバッファ早期解放部340と、を備える。
 データベース管理装置1のCPU2は、各機能部のプログラムに従って動作することによって、所定の機能を実現する機能部として動作する。例えば、CPU2は、データベース管理プログラムに従って動作することでデータベース管理部10として機能する。他のプログラムについても同様である。さらに、CPU2は、各プログラムが実行する複数の処理のそれぞれを実現する機能部としても動作する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
 データベース管理部10の上記各機能部を実現するプログラム、テーブル等の情報は、外部記憶装置6や不揮発性半導体メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
 クライアント装置7は、ネットワークI/F73を介してネットワーク8に接続される計算機である。クライアント装置7は、図示しないCPUとメモリと外部記憶装置を備えて、問合せ発行部71とデータ取得部72を実行する。
 問合せ発行部71は、ネットワーク8を介してデータベース管理装置1にデータアクセス要求を発行する。データアクセス要求は、例えば、SQLで記述されたクエリであり、図示しないアプリケーションや図示しない入力装置から入力される。データ取得部72は、データベース管理装置1からの応答からデータを取得し、図示しない出力装置に出力する。なお、ネットワーク8には、複数のクライアント装置7が接続され、データベース管理装置1は複数のクライアント装置7から複数のデータアクセス要求を受け付ける。
 先読み統計情報50は、クライアント装置7から受け付けたデータアクセス要求の種類毎にアクセス頻度等を管理する問合せ情報テーブル510と、データベースバッファ12に先読み行うデータベースのページと、置換対象ページを管理する先読みページ情報テーブル520と、を含む。
 図8は、問合せ情報テーブル510の一例を示す図である。問合せ情報テーブル510は、データアクセス要求の内容を格納する問合せ511と、当該問合せでデータベースの情報を取得する時間間隔の平均値を格納するデータ取得間隔の平均値512と、後述する正規分布から求めたデータ取得間隔の分散(標準偏差σ2)を格納する513と、当該問合せによるデータの取得回数を格納する取得回数514と、前回のアクセス時刻を格納する最終アクセス時刻515とからひとつのエントリが構成される。この問合せ情報テーブル510は、後述するように、先読み処理部20によって管理される。
 また、問合せ511には、データアクセス要求に含まれるコマンド列(またはコマンド)が格納され、コマンド列の種類毎にひとつのエントリが構成される。
 図9は、先読みページ情報テーブル520の一例を示す図である。先読みページ情報テーブル520は、データベースバッファ12に格納されたページの識別子を格納するバッファ中のページ521と、データを取得する予定の問合せの有無を格納する取得予定問合せ有無522と、データを取得する予定の問合せの数を格納する取得予定問合せ数523と、データの取得予定を格納する取得予定問合せリスト524とからひとつのエントリが構成される。ここで、取得予定問合せリスト524は、当該ページからデータを取得する予定の問合せが、取得予定時刻の順序で連鎖的に格納される。具体的には、取得予定問合せリスト524には、主記憶上のアドレスが格納される。このアドレスは、一連の問合せの先頭のデータを示す。取得予定問合せリスト524は、問合せの識別子5241と、当該問合せで当該ページのデータを取得する予定の時刻を格納する取得予定時刻5242と、次の取得予定問合せへのポインタ5243とを含む。ポインタ5243によって、当該ページを読み込む複数の問合せが時刻の順序で格納される。
 図2は、データベース管理装置1で実行されるデータベース管理部10の実行管理部11で行われる処理の一例を示すフローチャートである。この処理は、データベース管理装置1のデータベース管理部10が、クライアント装置7からデータアクセス要求(図中、要求とする)を受け付けたときに実行される。
 実行管理部11は、ステップS1で、受け付けたデータアクセス要求が問合せの前処理要求であるか否かを判定する。ここで、問合せの前処理要求は、データベースのデータ(ページ)に対する先読み要求またはプリフェッチ要求である。実行管理部11は、受け付けたデータアクセス要求が問合せの前処理要求であればステップS2へ進み、問合せの前処理要求でない場合にはステップS4へ進む。
 ステップS2では、実行管理部11が問合せの前処理要求を実行し、データの取得予定のデータの位置(ページ)と先読み要求を取得する。ステップS3では、実行管理部11が、取得予定のページに対する先読みの実行を先読み処理部20に要求する。先読み処理部20で行われる処理については、図3で後述する。データを取得する予定のページは、実行管理部11が、データアクセス要求を解析することでデータのアクセス順序を決定し、このアクセス順序から先読みを行うページを決定することができる。
 一方、ステップS1の判定で、問合せの前処理要求でなかった場合のステップS4では、実行管理部11はデータアクセス要求がデータ取得要求であるか否かを判定する。データアクセス要求がデータ取得要求であればステップS5へ進み、データ取得要求でない場合にはステップS7へ進む。
 ステップS5では、実行管理部11がデータ取得要求で指定されたページをデータベースバッファ12またはデータベース格納領域60から読み込んで、クライアント装置7へ応答する。
 ステップS6では、実行管理部11は、データ取得要求の内容と、アクセスした時刻を先読み統計情報50へ記録するため、先読み処理部20に先読み統計情報50の更新を要求する。
 一方、ステップS7では、データアクセス要求がデータ取得要求でない場合で、書き込み要求や更新要求などのその他の処理である。実行管理部11はデータアクセス要求を実行して処理を終了する。処理の内容はデータベースに対する公知または周知の処理であるので説明は省略する。
 以上の処理によって、データベース管理部10の実行管理部11は、受信したデータアクセス要求が問合せの前処理要求である場合には、先読み処理部20に先読みの実行を要求する。一方、受信したデータアクセス要求がデータ取得要求である場合には、実行管理部11は、データ取得要求に対応するページを読み込んでクライアント装置7へ応答し、データ取得要求(問合せ)の内容と、アクセスした時刻を先読み統計情報50に記録する。
 図3は、図2のステップS3で行われる先読み処理部20の処理の一例を示すフローチャートである。
 先読み処理部20は、実行管理部11から受け付けた実行要求が、先読みの実行であるか否かを判定し、先読みの実行であればステップS12へ進み、先読みの実行でなければステップS14に進む。
 ステップS12では、先読み処理部20が先読み統計情報50を参照して、問合せの内容ごとに記録した統計情報から、後述の図4で示すように、先読みを実行するタイミングを決定する。このタイミングは、先読みを実施する時刻または現時点からの時間である。そして、先読み処理部20は、上記決定したタイミングで先読みを実行し、データアクセス要求に対応するページを外部記憶装置6から読み込んでデータベースバッファ12へ格納する。
 次に、ステップS13で、先読み処理部20は、先読みを実施した問合せについて、先読み統計情報50のデータを更新または登録して処理を終了する。
 一方、ステップS11の判定で実行要求が先読みではないステップS14では、図2のステップS8のデータ取得後の更新で呼び出された場合である。この場合、先読み処理部20は、データを取得した問合せの内容と、データの取得回数や時刻等の先読み統計情報50のデータを更新または登録して処理を終了する。
 以上の処理により、各先読みの実行要求では、先読みを実施するタイミングが先読み統計情報50から算出されて、当該タイミングになると先読み処理部20で先読み処理が実行される。そして、先読み処理またはデータ取得が完了すると、先読み処理部20は先読みや問合せの内容で先読み統計情報50を更新する。
 図4は、図3のステップS12で行われる先読み実行制御部30の処理の一例を示すフローチャートである。
 先読み実行制御部30は、ステップS21で実行管理部11から先読みを実行するページ(以下、先読み対象ページ)や置換対象ページ等の先読みに関する情報を取得する。ここで、先読みに関する情報としては、先読み対象ページを読み込む取得予定の問合せと、取得予定の順序など、先読みページ情報テーブル520の情報と、先読み対象ページを格納するためにデータベースバッファ12から追い出す予定の置換対象ページ(または置換対象データの位置)を含む置換対象データの情報と、を含む。なお、置換対象の情報は、データベースバッファ12に空き領域がない場合には、前記従来例に示したLRU等の周知の手法によって実行管理部11が置換対象ページを決定する。また、取得予定の順序は、当該問合せの複数回のデータ取得処理中に、何番目の取得処理でアクセスするかを示す。
 ステップS22では、先読み実行制御部30がデータベースバッファ12に先読み対象ページが存在するか否かを判定する。データベースバッファ12に先読み対象ページが存在する場合には、先読みを行う必要が無いので、そのまま処理を終了する。一方、データベースバッファ12に先読み対象ページが存在しない場合には、ステップS23へ進む。
 ステップS23では、先読み実行制御部30が先読みページ情報テーブル520を参照して、置換対象ページが登録済み、かつデータの取得予定の問合せが登録済みであるか否かを判定する。置換対象ページが先読みページ情報テーブル520に登録済み、かつデータの取得予定の問合せが先読みページ情報テーブル520に登録済みの場合にはステップS24へ進む。一方、先読みページ情報テーブル520に置換対象ページまたは取得予定の問合せが登録されていない場合にはステップS28へ進んで先読みを実行する。
 置換対象ページが先読みページ情報テーブル520に未登録の場合は、取得予定の問合せが未登録であることと同様であり、データの取得予定がないことを示す。また、置換対象ページが存在しないことは、データベースバッファ12に空き領域が存在することを示している。これらの場合は、ステップS28で先読み実行制御部30が先読み実行部40に指令して、先読みページを外部記憶装置6のデータベース格納領域60からデータベースバッファ12に読み込んでおく。
 一方、置換対象ページが登録済みで、当該置換対象ページからデータを取得する問合せが登録されている場合には、データベースバッファ12に空き領域がなく、即座に先読みを実行すると既にデータベースバッファ12に読み込んでおいたページを追い出すことになるため、先読みの実行タイミングを調整する必要がある。
 ステップS24では、先読み実行制御部30が先読み対象ページからデータアクセス要求によってデータを取得する予定時刻(置換ページの取得予定時刻)を算出する。ここで、置換ページの取得予定時刻は、後述するように、当該先読みページの取得予定の順番と、取得予定問合せのデータ取得間隔から、データベースバッファ12のヒット率(バッファヒット率)が最大となるタイミングを算出する。詳細については後述する。なお、バッファヒット率は、アクセス回数を分母とし、ヒット回数を分子とする比率であり、データベース管理部10が管理する。
 ステップS25では、先読み実行制御部30が、先読みページを実際にデータベースバッファ12に読み込むまでの待ち時間(遅延時間)を、後述する図5のように算出する。次に、ステップS26では、待ち時間が0または負の値になって待ち時間を経過したか否かを先読み実行制御部30が判定する。待ち時間を経過し、かつ置換ページの取得予定時間を経過した場合にはステップS28へ進んで、先読みを実行する。このとき、先読み実行制御部30は、先読み実行部40に指令して、置換対象ページをデータベース格納領域60に格納した後、先読み対象ページを書き込む。なお、先読み実行制御部30は、置換対象ページにデータの取得予定がない場合には、先読み実行部40に指令して、置換対象ページを先読み対象ページで上書きしてもよい。
 一方、待ち時間を経過していない場合には、ステップS27で待ち時間の減算などの待ち状態設定処理を実施する。なお、待ち時間の減算は、予め設定した値を待ち時間から減算する。
 以上の処理により、置換対象ページが存在し、かつ、当該ページに対するデータ取得予定が存在する場合には、先読みページの待ち時間を算出して先読みの実施を遅延させることで、データベースバッファ12に読み込まれた置換対象ページがデータ取得要求で読み込まれる以前に、先読みの実行によってデータベースバッファ12から追い出されるのを防ぐ。
 図5は、図4のステップS25で行われる先読み待ち時間決定部310で行われる処理の一例を示すフローチャートである。
 先読み待ち時間決定部310は、ステップS31で、先読み統計情報50の先読みページ情報テーブル520と問合せ情報テーブル510から先読みページと置換対象ページの情報を取得する。ここで、先読みページの情報としては、ページ毎にデータ取得間隔の平均値512と、データ取得間隔の分散513と、を取得する。そして、置換対象ページの情報としては、ページ毎に最終の取得予定時刻5242と、データ取得間隔の平均値512と、データ取得間隔の分散513と、を取得する。つまり、先読み待ち時間決定部310は、ページ毎に取得予定問合せリスト524を参照して、当該ページを取得する問合せ5241を取得する。そして、この問合せ5241に対応する問合せ情報テーブル510のデータ取得間隔の平均値512、分散513などを取得する。
 次に、先読み待ち時間決定部310は、ステップS32で、上位機置換対象ページは最終の取得予定時刻5242を経過した置換対象ページがあるか否かを判定する。最終の取得予定時刻5242を経過した置換対象ページであればステップS33へ進み、そうでない場合にはステップ35へ進む。
 ステップ33では、先読み待ち時間決定部310が、取得予定時刻5242を経過した置換対象ページと、今回先読みを行う先読み対象ページのバッファヒット率の合計が最大となる先読み時刻tread0を算出する。先読み時刻tread0の算出については後述する。
 そして、ステップ34では、先読み待ち時間決定部310が、現在時刻と先読み時刻tread0から、待ち時間を次式で演算する。
待ち時間 = 先読み時刻tread0 - 現在時刻  ………(1)
 一方、ステップS32の判定で、最終の取得予定時刻5242を経過した置換対象ページがない場合のステップS35では、先読み待ち時間決定部310が、ステップS24で算出した置換ページの取得予定時刻と現在時刻から待ち時間を次式で演算する。
待ち時間 = 置換ページの取得予定時刻 - 現在時刻  ………(2)
 先読み時刻tread0の算出について、以下に説明する。
 クライアント装置7からのデータアクセス要求によるデータの取得間隔は、同じ処理を繰り返して実行するため、データの取得には周期性がある。そして、クライアント装置7からのデータアクセス要求によるデータの取得間隔は、平均値の近傍に集積される傾向があり、このため図11に示すような正規分布に従うと考えられる。
 図11は、データ取得時間とデータ取得確率密度の関係を示すグラフである。
 クライアント装置7からのデータアクセス要求によるデータの取得間隔の平均値をEとし、次回のデータ取得予定時刻をtEとし、データ取得間隔の標準偏差をσとするとき、データ取得の確率分布関数をf(t)とすると、図16に示す(3)式で表される。
 図11において、現在時刻をtnowとし、前回のデータ取得時刻(=最終アクセス時刻515)をtlastとすると、データ取得間隔の平均値Eによる次回のデータ取得予定時刻tEは、
E = tlast + E  ………(4)
で表される。
 次に、最終の取得予定時刻5242を経過した置換対象ページBを、新たに受け付けた先読み対象ページAに置き換える例を図12に示す。図12は、先読み対象ページA、置換対象ページBのデータ取得時刻とデータ取得確率密度の関係を示すグラフである。
 図12において、時刻treadでページAの先読みを実行して、置換対象ページBをデータベースバッファ12から追い出す場合に、先読み対象ページAと置換対象ページBが共にアクセスされる際のバッファヒット率P(tread)は、図17に示す(5)式で表される。
 ここで、図中斜線部分のPAは先読み対象ページAがアクセスされる確率を示し、図中斜線部分のPBは置換対象ページBがアクセスされる確率を示す。また、fB(t)は、置換対象ページBのデータ取得の確率分布関数を示し、上記(3)式と同様である。fA(t)は、先読み対象ページAのデータ取得の確率分布関数を示し、上記(3)式と同様である。また、t0は、外部記憶装置6からデータベースバッファ12へデータを読み込むI/O時間を示し、データベース管理装置1のハードウェアに応じて予め設定された値を用いることができる。
 そして、先読み対象ページAと置換対象ページBが共にアクセスされる際に、バッファヒット率P(tread)が最大になる先読み時刻tread0を、先読み実行制御部30が図18に示す(6)式により演算する。
 なお、上記σ1は先読み対象ページAのデータ取得間隔の平均値E1に関する標準偏差であり、上記σ2は置換対象ページBのデータ取得間隔の平均値E2に関する標準偏差であり、t0は図12に示したI/O時間である。
 また、図12において、twaitは先読み実行までの待ち時間を示し、上記ステップS34、S35で演算された待ち時間である。
 また、上記図4のステップS24で算出される先読み予定時刻は、上記(4)式の次回のデータ取得予定時刻tEから、図12に示したI/O時間t0を差し引いた時刻とすればよい。
 以上のように、取得予定時刻5252を経過してもデータ取得が行われていないページを置換対象ページとし、先読み対象ページと置換対象ページが共にアクセスされて、バッファヒット率P(tread)が最大になる先読み時刻tread0を演算し、先読み対象ページAを実際にデータベースバッファ12に読み込む時期を遅延させることで、置換対象ページBが読み込まれる確率を増大させることができる。これにより、先読みによりデータベースバッファ12に保持されたページがアクセスされる以前に、他の先読みによってデータベースバッファ12から追い出されるのを抑制できるのである。
 次に、図6は、先読み実行時に先読み統計情報更新部330で行われる処理の一例を示すフローチャートである。この処理は、図3のステップS13で行われる処理である。
 ステップS41では、先読み統計情報更新部330が、先読みページ情報テーブル520に、現在先読みを実行する先読み対象ページが登録済みであるか否かを判定する。先読み対象ページが登録済みであればステップS43へ進み、未登録であればステップS42へ進む。
 ステップS42では、先読み統計情報更新部330が、先読み対象ページのエントリを先読みページ情報テーブル520に追加する。
 そして、ステップS43では、先読み統計情報更新部330が、上記追加した先読み対象ページについて、データを取得予定の問合せと、データの取得予定時刻tEとを、先読みページ情報テーブル520の取得予定問合せリスト524に設定する。なお、既に先読み対象ページのエントリが存在する場合は、取得予定問合せリスト524に新たな問合せが付加される。すなわち、図9で示したように、直前の問合せリストのポインタ5243に新たな問合せ5241のアドレスが格納される。
 以上の処理により、先読みを実行する際には、新たな先読み対象ページが先読みページ情報テーブル520に加えられ、既存の先読み対象ページには問合せリスト524が加えられる。
 次に、図7は、データの取得時に先読み統計情報更新部330で行われる処理の一例を示すフローチャートである。この処理は、図3のステップS14で行われる処理である。
 ステップS51では、先読み統計情報更新部330が、問合せ情報テーブル510を参照して、現在データの取得を行った問合せが、第1回目のデータ取得であるか否かを判定する。問合せ情報テーブル510において、当該問合せの最終アクセス時刻がブランクまたはNULLであれば、先読み統計情報更新部330は初回のデータ取得である、と判定してステップS52へ進む。一方、2回目以降のデータ取得であればステップS53へ進む。
 ステップS52では、先読み統計情報更新部330が、問合せ情報テーブル510の当該問合せのエントリについて初期化を行う。初期化の内容は、先読み統計情報更新部330が、取得回数514を1にセットし、データ取得間隔の平均値512とデータ取得間隔の分散513を0にリセットする。そして、最終アクセス時刻515に現在の時刻を設定する。
 一方、2回目以降のデータ取得となるステップS53では、先読み統計情報更新部330が、取得回数514に1を加算し、データ取得間隔の平均値512とデータ取得間隔の分散513を現在の値に更新する。そして、最終アクセス時刻515に現在の時刻を設定する。
 次に、ステップS54では、先読み統計情報更新部330が、先読みページ情報テーブル520から現在データを取得したページのエントリで、取得予定問合せリスト524を祝する。そして、先読み統計情報更新部330は、取得予定問合せリスト524の問合せ5241が当該問合せと一致するリストを削除する。このとき、削除する問合せリストのポインタ5243に次の問合せリストのアドレスが設定されている場合、先読み統計情報更新部330は、取得予定問合せリスト524または直前の問合せリストのポインタ5243を、上記次の問合せリストのアドレスで更新する。また、先読み統計情報更新部330は、問合せ情報テーブル510の取得予定問合せ数523から1を減じて、取得予定問合せ数523が0になった場合には、取得予定問合せ有無522を「無し」に更新する。
 以上の処理により、データの取得時では先読み統計情報更新部330が、問合せ情報テーブル510と先読みページ情報テーブル520を更新する。
 次に、図10は、バッファ早期解放部340で行われる処理の一例を示すフローチャートである。この処理は、先読み実行制御部30が、新たな先読み対象ページを受け付けたときに実行することができる。好ましくは、図4の処理が終了した後に図10の処理を実行する。
 ステップS61で、バッファ早期解放部340は、先読みページ情報テーブル520を参照して、データの取得予定がないページが存在するか否かを判定する。バッファ早期解放部340は、先読みページ情報テーブル520のデータの取得予定の問合せの有無522が「無し」のエントリがあれば、データの取得予定がないページが存在する、と判定してステップS62へ進む。ステップS62では、バッファ早期解放部340が、データの取得予定がないページをデータベースバッファ12から削除して記憶領域を解放する。そして、バッファ早期解放部340は、データの取得予定がないページのエントリを先読みページ情報テーブル520から削除して処理を終了する。
 一方、ステップS61の判定で、バッファ早期解放部340が、先読みページ情報テーブル520のデータの取得予定の問合せの有無522が「無し」のエントリがない場合には、データの取得予定がないページは存在しないと判定してステップS63へ進む。
 ステップS63では、バッファ早期解放部340が、先読みページ情報テーブル520を参照して、取得予定問合せリスト524の取得予定時刻5242が所定の条件を満たす問合せリストを抽出する。所定の条件としては、3シグマ法を用いることができ、取得予定時刻tEから現在時刻までの経過時間dTが、データの取得間隔の平均値Eからデータ取得間隔の標準偏差σの3倍を超えたページが存在するか否かを判定する。バッファ早期解放部340は、時間dTが取得間隔の平均値Eからデータ取得間隔の標準偏差σの3倍を超えたページが存在すれば、当該ページを抽出する。そして、ステップS34で、抽出したページをデータベースバッファ12から削除して記憶領域を解放する。そして、バッファ早期解放部340は、削除したページのエントリを先読みページ情報テーブル520から削除して処理を終了する。
 ここで、正規分布によるデータの取得確率と3シグマ法は、図13で示すようになる。図13は、3シグマ法を示し、データの取得確率と時刻の関係を示すグラフである。
 図13において、データ取得確率の分布関数f(t)は図11と同様であり、Eはデータの取得間隔の平均値、σはデータの取得間隔の標準偏差を示す。3シグマ法では、平均値Eから3σを超えた時刻を経過すると、当該ページのデータを取得することはないと推定することができる。
 以上のように、バッファ早期解放部340は、データの取得予定のないページをデータベースバッファ12から解放し、または、データの取得間隔の平均値Eから3σを超える時刻を経過したページを、データ取得予定がないページと推定してデータベースバッファ12から解放することができる。
 なお、上記図10に示したバッファ早期解放部340の処理は、所定の周期で実行するようにしてもよい。
 以上のように、本発明では、先読み処理部20は、先読みが要求されると、データベースバッファ12上で選択した置換対象ページに対する今後のアクセスを予測して、今後アクセスされると予測した場合には、先読み対象ページの先読みを遅延させる。これにより、置換対象ページがデータベースバッファ12から削除される前にアクセスされる確率を向上させることができ、アクセスされずにデータベースバッファ12から削除された後に、再度外部記憶装置6からデータベースバッファ12に読み込まれることを抑制できる。
 一方、先読み処理部20は、3シグマ法によって、アクセスされないと予測されるページをデータベースバッファ12から解放することで、先読み対象ページを読み込む領域を確保することができる。
 以上により、先読み処理で読み込まれたページがアクセスされる以前にデータベースバッファ12から追い出されるのを防いで、複数のデータアクセス要求を受け付けてデータを取得するデータベース管理部10の性能を向上させることができる。
 図14、図15は第2の実施例を示す。前記第1の実施例では、先読み対象ページを格納する記憶領域として置換対象ページの選択は上位機能で決まる。本第2の実施例では、データベースバッファ12に空き領域がない場合、データの取得予定の有無と上記3シグマ法によって置換対象ページを選択する例を示す。なお、データベース管理システムの構成は前記第1の実施例と同様であり、同一のものに同一の符号を付して重複する説明を省略する。
 図14は、先読み実行制御部30で行われる処理の一例を示すフローチャートである。ステップS21~S26は、前記実施例1の図4のステップS21~S26と同様の処理であり、先読みページ情報テーブル520に置換対象ページが登録されており、かつ、データの取得予定がある場合には、先読みページのデータを取得する予定時刻tEを算出し、先読みの待ち時間を算出して、先読み実行制御部30は待ち時間が経過したか否かを判定する(S21~S26)。
 待ち時間が経過していない場合には、ステップS71へ進んで、図15に示すように、先読み実行制御部30は、別の置換対象ページを選定する処理を実行する。ステップS72では、先読み実行制御部30が、既に先読みページ情報テーブル520に登録された置換対象ページとは別の置換対象ページが存在するか否かを判定する。
 別の置換対象ページが存在する場合は、ステップS73へ進んで、先読み実行制御部30は、別の置換対象ページを現在先読み対象ページを読み込む予定の置換対象ページとして設定する。そして、先読み実行制御部30は、ステップS75で新たな置換対象ページに先読み対象ページを書き込んで、先読みを実行する。
 一方、別の置換対象ページが存在しない場合は、ステップS74へ進んで、待ち時間の減算処理を行ってからステップS26の処理へ戻り、待ち時間が経過した時点で現在の置換対象ページに先読み対象ページを書き込んで先読みを実行する。
 図15は、先読み実行制御部30で行われる置換対象の選択処理の一例を示すフローチャートである。ステップS81では、先読み実行制御部30が、データベースバッファ12に空き領域があるか否かを判定し、空き領域があればステップS82へ進み、空き領域がなければステップS83へ進む。
 ステップS82では先読み実行制御部30が空き領域を置換対象ページとおして選定し、図14の処理へ戻る。
 ステップS83では、先読み実行制御部30が、先読みページ情報テーブル520にデータの取得予定が存在しないページがあるか否かを判定する。
 先読み実行制御部30は、図9の先読みページ情報テーブル520で、取得予定問合せ有無522が「無し」となったページをデータの取得予定がなくなったページと判定し、ステップS84へ進む。ステップS84では、データの取得予定がなくなったページを新たな置換対象ページとして選定し、先読みページ情報テーブル520に追加してから、図14の処理へ戻る。
 先読みページ情報テーブル520にデータの取得予定が存在しないページがない場合には、ステップS85へ進み、先読み実行制御部30は3シグマ法により置換対象ページを選択する。
 ステップS85では、前記第1の実施例の図13で示した3シグマ法を用いて、データの取得予定時刻tEから現在時刻までの経過時間dTが、データの取得間隔の平均値Eからデータ取得間隔の標準偏差σの3倍を超えたページが存在するか否かを判定する。
 データの取得予定時刻tEからの経過時間dTが、データの取得間隔の平均値Eからデータ取得間隔の標準偏差σの3倍を超えたページが存在する場合、先読み実行制御部30は、当該ページを新たな置換対象ページとして選定し、先読みページ情報テーブル520に追加する。その後、先読み実行制御部30は、図14の処理へ戻る。
 一方、経過時間dTが取得間隔の平均値Eからデータ取得間隔の標準偏差σの3倍を超えたページが存在しない場合には、ステップS87へ進む。ステップS87では、先読み実行制御部30が別の置換対象ページが存在しないと判定して図14の処理へ戻る。
 上記処理により、先読み実行制御部30は、先読みページ情報テーブル520のページのうち、まず、データの取得予定がなくなったページを置換対象ページとして選定する。次に、先読み実行制御部30は、データの取得予定時刻tEからの経過時間dTが、データの取得間隔の平均値Eからデータ取得間隔の標準偏差σの3倍を超えたページを置換対象ページとして選定する。先読み実行制御部30は、新たな置換対象ページが存在する場合は、待ち時間が経過するのを待たずに先読みを実行して、置換対象ページに先読み対象ページを書き込む。
 以上のように、前記第1の実施例に示したように、先読みページのうち、最終アクセス時刻515が最も古い問合せ511がデータの取得対象とするページを、置換対象ページとしてもよいし、本第2の実施例に示したように、データの取得予定がなくなったページを置換対象ページとしたり、3シグマ法によってアクセスされないと予測されるページを置換対象ページとすることができる。

Claims (15)

  1.  プロセッサとメモリとストレージ装置とを備えた計算機で、前記メモリ上に設けたバッファへストレージ装置に格納されたデータの一部を格納するデータベースを制御するデータベースの管理方法であって、
     前記計算機が、データアクセス要求を受け付ける第1のステップと、
     前記計算機が、データアクセス要求を解析して先読み処理を抽出し、前記先読み処理の対象として前記データベースにおける先読み対象のデータの位置を特定する第2のステップと、
     前記計算機が、前記バッファに前記先読み対象のデータを格納するための置換対象データを設定する第3のステップと、
     前記計算機が、前記置換対象データがアクセスされるか否かを推定する第4のステップと、
     前記計算機が、前記置換対象データがアクセスされると推定した場合には、前記先読み処理の実行を遅延させる第5のステップと、
    を含むことを特徴とするデータベースの管理方法。
  2.  請求項1に記載のデータベースの管理方法であって、
     前記計算機が、前記ストレージ装置から先読み対象のデータを取得して、前記置換対象データに前記先読み対象のデータを書き込む第6のステップをさらに含み、
     前記第5のステップは、
     前記置換対象データがアクセスされると推定した場合には、前記先読み処理の実行を遅延させる待機時間を算出し、
     前記第6のステップは、
     前記待ち時間を経過したときに、前記置換対象データに前記先読み対象のデータを書き込むことを特徴とするデータベースの管理方法。
  3.  請求項2に記載のデータベースの管理方法であって、
     前記第6のステップは、
     前記待ち時間を経過したときに、前記置換対象データを前記ストレージ装置に格納した後に前記先読み対象のデータを書き込むことを特徴とするデータベースの管理方法。
  4.  請求項1に記載のデータベースの管理方法であって、
     前記第3のステップは、
     前記バッファのデータのうちデータの取得予定がないデータを前記置換対象データとして選択することを特徴とするデータベースの管理方法。
  5.  請求項2に記載のデータベースの管理方法であって、
     前記第5のステップは、
     前記先読み処理の実行を遅延させる待機時間は、前記置換対象データを読み込むデータの取得要求のデータ取得間隔の正規分布から演算することを特徴とするデータベースの管理方法。
  6.  請求項5に記載のデータベースの管理方法であって、
     前記第5のステップは、
     前記置換対象データを読み込むデータの取得要求のデータ取得間隔の正規分布から、前記置換対象データのデータが読み込まれる取得予定時刻を算出し、前記取得予定時刻から所定時間を経過したときに前記置換対象データを前記バッファから解放することを特徴とするデータベースの管理方法。
  7.  プロセッサとメモリとストレージ装置とを備えたデータベース管理装置であって、
     前記ストレージ装置に格納されるデータベースと、
     前記メモリに設定されて前記データベースの一部を格納するバッファと、
     前記データベースと前記バッファを制御するデータベース管理部と、を備え、
     前記データベース管理部は、
     データアクセス要求を受け付けて、当該データアクセス要求を解析して先読み処理を抽出する実行管理部と、
     前記先読み処理の対象として前記データベースにおける先読み対象のデータの位置を特定し、前記バッファに空き領域が無いときには、前記先読み対象のデータを書き込む置換対象データを選択する先読み処理部と、を有し、
     前記先読み処理部は、
     前記置換対象データがアクセスされるか否かを推定して、前記置換対象データがアクセスされると推定した場合には、前記先読み処理の実行を遅延させることを特徴とするデータベース管理装置。
  8.  請求項7に記載のデータベース管理装置であって、
     前記先読み処理部は、
     前記置換対象データがアクセスされると推定した場合には、前記先読み処理の実行を遅延させる待機時間を算出し、前記待ち時間を経過したときに、前記置換対象データに前記先読み対象のデータを書き込むことを特徴とするデータベース管理装置。
  9.  請求項8に記載のデータベース管理装置であって、
     前記先読み処理部は、
     前記待ち時間を経過したときに、前記置換対象データを前記ストレージ装置に格納した後に前記先読み対象のデータを書き込むことを特徴とするデータベース管理装置。
  10.  請求項7に記載のデータベース管理装置であって、
     前記先読み処理部は、
     前記バッファのデータのうちデータの取得予定がないデータを前記置換対象データとして選択することを特徴とするデータベース管理装置。
  11.  請求項8に記載のデータベース管理装置であって、
     前記先読み処理部は、
     前記先読み処理の実行を遅延させる待機時間は、前記置換対象データを読み込むデータの取得要求のデータ取得間隔の正規分布から演算することを特徴とするデータベース管理装置。
  12.  請求項11に記載のデータベース管理装置であって、
     前記先読み処理部は、
     前記置換対象データを読み込むデータの取得要求のデータ取得間隔の正規分布から、前記置換対象データのデータが読み込まれる取得予定時刻を算出し、前記取得予定時刻から所定時間を経過したときに前記置換対象データを前記バッファから解放することを特徴とするデータベース管理装置。
  13.  プロセッサとメモリとストレージ装置とを備えた計算機で、前記メモリ上に設けたバッファへストレージ装置に格納されたデータの一部を格納するデータベースを制御するプログラムであって、
     データアクセス要求を受け付ける第1の手順と、
     前記データアクセス要求を解析して先読み処理を抽出し、前記先読み処理の対象として前記データベースにおける先読み対象のデータの位置を特定する第2の手順と、
     前記バッファに前記先読み対象のデータを格納するための置換対象データを設定する第3の手順と、
     前記置換対象データがアクセスされるか否かを推定する第4の手順と、
     前記置換対象データがアクセスされると推定した場合には、前記先読み処理の実行を遅延させる第5の手順と、
    を前記計算機に実行させることを特徴とするプログラム。
  14.  請求項13に記載のプログラムであって、
     前記ストレージ装置から先読み対象のデータを取得して、前記置換対象データに前記先読み対象のデータを書き込む第6の手順をさらに含み、
     前記第5の手順は、
     前記置換対象データがアクセスされると推定した場合には、前記先読み処理の実行を遅延させる待機時間を算出し、
     前記第6の手順は、
     前記待ち時間を経過したときに、前記置換対象データに前記先読み対象のデータを書き込むことを特徴とするプログラム。
  15.  請求項14に記載のプログラムであって、
     前記第6の手順は、
     前記待ち時間を経過したときに、前記置換対象データを前記ストレージ装置に格納した後に前記先読み対象のデータを書き込むことを特徴とするプログラム。
PCT/JP2012/063479 2012-05-25 2012-05-25 データベースの管理方法、データベース管理装置及び記憶媒体 WO2013175625A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/063479 WO2013175625A1 (ja) 2012-05-25 2012-05-25 データベースの管理方法、データベース管理装置及び記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/063479 WO2013175625A1 (ja) 2012-05-25 2012-05-25 データベースの管理方法、データベース管理装置及び記憶媒体

Publications (1)

Publication Number Publication Date
WO2013175625A1 true WO2013175625A1 (ja) 2013-11-28

Family

ID=49623354

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/063479 WO2013175625A1 (ja) 2012-05-25 2012-05-25 データベースの管理方法、データベース管理装置及び記憶媒体

Country Status (1)

Country Link
WO (1) WO2013175625A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018150539A1 (ja) * 2017-02-17 2018-08-23 株式会社日立製作所 データ取得装置、データ取得方法、およびデータ取得プログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004192292A (ja) * 2002-12-11 2004-07-08 Hitachi Ltd プリフェッチアプライアンスサーバ
JP2004295458A (ja) * 2003-03-27 2004-10-21 Hitachi Ltd データ先読み方法
JP2010217992A (ja) * 2009-03-13 2010-09-30 Mitsubishi Electric Corp キャッシュ制御装置及びキャッシュ制御方法及びキャッシュ制御プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004192292A (ja) * 2002-12-11 2004-07-08 Hitachi Ltd プリフェッチアプライアンスサーバ
JP2004295458A (ja) * 2003-03-27 2004-10-21 Hitachi Ltd データ先読み方法
JP2010217992A (ja) * 2009-03-13 2010-09-30 Mitsubishi Electric Corp キャッシュ制御装置及びキャッシュ制御方法及びキャッシュ制御プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018150539A1 (ja) * 2017-02-17 2018-08-23 株式会社日立製作所 データ取得装置、データ取得方法、およびデータ取得プログラム
WO2018150639A1 (ja) * 2017-02-17 2018-08-23 株式会社日立製作所 データ取得装置、データ取得方法、およびデータ取得プログラム
JPWO2018150639A1 (ja) * 2017-02-17 2019-02-21 株式会社日立製作所 データ取得装置、データ取得方法、およびデータ取得プログラム

Similar Documents

Publication Publication Date Title
EP3229142B1 (en) Read cache management method and device based on solid state drive
US9256533B2 (en) Adjustment of destage rate based on read and write response time requirements
US7383392B2 (en) Performing read-ahead operation for a direct input/output request
US9477607B2 (en) Adaptive record caching for solid state disks
US9591096B2 (en) Computer system, cache control method, and server
US20170070574A1 (en) Storage server and storage system
US9424196B2 (en) Adjustment of the number of task control blocks allocated for discard scans
US9152599B2 (en) Managing cache memories
JP6199782B2 (ja) 計算機システム
US7908268B2 (en) Predictive database pool preparation
WO2013175625A1 (ja) データベースの管理方法、データベース管理装置及び記憶媒体
US8914336B2 (en) Storage device and data storage control method
JP2014139763A (ja) 情報処理装置、情報処理方法、プログラム
JP4768054B2 (ja) キャッシュ制御方法
JP2008299672A (ja) 計算機システム及びこれを用いたデータベース管理方法
US9817599B2 (en) Storing indicators of unreferenced memory addresses in volatile memory
US9946656B2 (en) Completion packet return based on eviction or flush
JP6200100B2 (ja) 計算機システム
US9846654B2 (en) Storage apparatus, cache control method, and computer-readable recording medium having cache control program recorded thereon
US20160011989A1 (en) Access control apparatus and access control method
JP2009205480A (ja) ファイル管理システム、ファイルサーバ、クライアント、ファイル管理方法、及びプログラム

Legal Events

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

Ref document number: 12877406

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12877406

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP