WO2013175609A1 - データベース管理システム、計算機、データベース管理方法 - Google Patents
データベース管理システム、計算機、データベース管理方法 Download PDFInfo
- Publication number
- WO2013175609A1 WO2013175609A1 PCT/JP2012/063332 JP2012063332W WO2013175609A1 WO 2013175609 A1 WO2013175609 A1 WO 2013175609A1 JP 2012063332 W JP2012063332 W JP 2012063332W WO 2013175609 A1 WO2013175609 A1 WO 2013175609A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- task
- storage device
- page
- data
- start information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/24569—Query processing with adaptation to specific hardware, e.g. adapted for using GPUs or SSDs
Definitions
- the present invention relates to database management technology.
- DB database
- DBMS database management system
- Patent Document 1 A technique disclosed in Patent Document 1 is known as a technique for shortening a data read waiting time in execution of one query.
- the DBMS generates a plan (hereinafter referred to as “query execution plan”) that combines a plurality of database operations (hereinafter referred to as “DB operations”) necessary for executing a query, and executes the query.
- a task for executing the DB operation is dynamically generated every time data reading is required, and data read requests are multiplexed by executing the tasks in parallel.
- task start information which is information indicating the contents to be executed in the task is generated and can be generated at that time.
- a method of generating a number of tasks and executing the generated task based on the generated task start information is considered.
- the task start information is information in which a context and a data address set are associated, for example.
- the context indicates, for example, first information regarding which DB operation that starts execution in a newly generated task is one or more DB operations represented by the query execution plan, and the first information indicates This is information including second information related to an access destination of data required for the DB operation and third information related to acquired data necessary for generating a result.
- the query execution plan is information including information representing one or more DB operations necessary for executing a query.
- the data address set is information for specifying a page to be accessed when the DBMS executes the generated task based on the second information regarding the access destination of the data.
- a data address set is data stored in a DB page, and is a set of one or more entries that specify an index page corresponding to a key, or a page in which a table record corresponding to a key is stored. A set of one or more entries to be identified.
- the DBMS specifies a page to be read with reference to task start information at the start of task execution, reads the page, and executes a DB operation using data stored in the read page.
- the DBMS refers to the data address set of the task start information.
- the DBMS reads the page into the memory of the computer on which the DBMS operates.
- the storage capacity of the memory on the computer on which the DBMS operates stores the DB. It is smaller than the storage capacity of the storage device. Therefore, the pages that can be simultaneously stored in the memory are limited to a part of the pages stored in the storage device. Therefore, when the DBMS executes a query, a lot of task start information is generated, but it is difficult to store a page storing all the data address sets in the memory.
- an object of the present invention is to efficiently execute a task and shorten a query execution time by reducing the number of times a page stored in a disk is referred to when the DBMS refers to task start information. That is.
- the DBMS manages a database that exists in the second storage device that has a slower access speed than the first storage device.
- the DBMS includes a query reception unit, a query execution plan generation unit, a query execution unit, an execution task management unit, and a DB buffer management unit.
- the DBMS is a computer program, and is executed by a computer, so that a query reception unit, a query execution plan generation unit, a query execution unit, an execution task management unit, and a DB buffer management unit can be used as a computer.
- a query reception unit, a query execution plan generation unit, a query execution unit, an execution task management unit, and a DB buffer management unit can be used as a computer.
- the query acceptance unit accepts queries.
- the query execution plan generation unit generates a query execution plan including information representing one or more DB operations necessary for executing the query.
- the execution task management unit manages a task for executing a query.
- the query execution unit dynamically generates a task for executing the DB operation in executing the query, and executes the dynamically generated task. Specifically, for example, in the execution of a query, the query execution unit (a) generates a task for executing a DB operation, and (b) executes the generated task to cope with the task.
- the query execution unit generates task start information which is information indicating the content to be executed in the task when a new task is generated in the execution of the query (for example, in the case of (a) or (c) above). ,to manage.
- task start information is information indicating the content to be executed in the task when a new task is generated in the execution of the query (for example, in the case of (a) or (c) above).
- the query execution unit stores task start information in which a page storing a data address set is read into the first storage device, and a page storing a data address set in the second storage.
- the task is selected with priority over the task start information stored only in the device, and execution of the content indicated by the task start information is started in the task.
- the DB buffer management unit controls the movement of the page between the first storage device and the second storage device according to the execution state of the task start information managed by the query execution unit in executing the query.
- the DBMS refers to the task start information
- FIG. 1 shows Table A according to Example 1.
- FIG. 2 shows Table B according to Example 1.
- FIG. 3 shows Table C according to Example 1.
- FIG. 4 shows a query according to the first embodiment.
- FIG. 5 shows a query execution plan according to the first embodiment.
- FIG. 6 illustrates an example of access to a page when executing a query according to the first embodiment.
- FIG. 7 is a diagram for explaining task start information according to the first embodiment.
- FIG. 8 is an example of a schematic diagram for explaining task execution and task start information management during query execution.
- FIG. 9 is an example of a schematic diagram for explaining task execution and task start information management during query execution according to the first embodiment.
- FIG. 10 illustrates a configuration of a computer system according to the first embodiment.
- FIG. 10 illustrates a configuration of a computer system according to the first embodiment.
- FIG. 11 is a detailed configuration diagram of a part of the computer system according to the first embodiment.
- FIG. 12 shows a configuration of a DB buffer management table according to the first embodiment.
- FIG. 13 illustrates a flow of query processing according to the first embodiment.
- FIG. 14 shows a flow of task execution processing according to the first embodiment.
- FIG. 15 illustrates a flow of task execution content acquisition processing according to the first embodiment.
- FIG. 16 shows a flow of task start information selection processing according to the first embodiment.
- FIG. 17 shows a flow of page reading context selection processing according to the first embodiment.
- FIG. 18 illustrates a flow of DB buffer read determination processing according to the first embodiment.
- FIG. 19 illustrates a flow of page reading processing according to the first embodiment.
- FIG. 12 shows a configuration of a DB buffer management table according to the first embodiment.
- FIG. 13 illustrates a flow of query processing according to the first embodiment.
- FIG. 14 shows a flow of task execution processing according to the first embodiment.
- FIG. 20 shows the flow of the DB buffer eviction process according to the first embodiment.
- FIG. 21 shows the flow of the eviction target DB buffer surface selection process according to the first embodiment.
- FIG. 22 illustrates a flow of DB buffer surface release determination processing according to the first embodiment.
- FIG. 23 is a detailed configuration diagram of a part of the computer system according to the second embodiment.
- FIG. 24 shows the configuration of a task start information storage location management table related to Example 2.
- FIG. 25 illustrates a configuration of a computer system according to the third embodiment.
- the database is referred to as “DB”
- the database management system is referred to as “DBMS”
- the server that executes the DBMS is referred to as “DB server”.
- the issuer of the query for the DBMS may be a computer program (for example, an application program) outside the DBMS.
- the external computer program may be a program executed in the DB server or a program executed by a device (for example, a client computer) connected to the DB server.
- the DB server executes the DBMS.
- the DBMS accepts the query, executes the accepted query, and returns the result generated by the execution to the query issuer. Until the query result is generated, the DBMS performs one or more DB operations.
- the DBMS may need to issue a read request to the storage device in which the DB is stored in executing at least one of the DB operations.
- the DBMS is a DB including the tables A, B, and C shown in FIGS. 1 to 3 and the index A for the table A, the index B for the table B, and the index C for the table C.
- a table is a set of one or more records, and a record is composed of one or more columns.
- An index is a data structure created for one or more columns in a table, and speeds up access to the table by a selection condition that includes the columns targeted by the index.
- the index is a data structure that holds information (record ID) for specifying a record of a table including a value for each value of a target column, and a B-tree structure or the like is used.
- the query accepted by the DBMS is the query shown in FIG.
- the query includes a record in table A in which the value of column A_country is “country5” and the value of column A_factory_size is greater than 50, and the value of column B_factory_id matches the value of column A_factory_id in the record of Table A and column B_product_price_p
- a record in Table B having a value greater than 500 is associated with a record in Table C in which the value of column C_product_id matches the value of column B_product_id in the record of Table B.
- the DBMS generates a query execution plan as shown in FIG. 5 in order to execute such a query.
- the query execution plan is composed of, for example, one or more DB operations accompanied with data reading, and the DB operation execution order has a tree-structured order relationship.
- the DBMS reads a record in which the value of the column A_country is a specified value of the query (country5 in the query of FIG. 4) from the table A using the index A, and the column A_factory_size is included in the record.
- the value of the column A_factory_name and the value of the column A_factory_id in the record whose value is greater than the query specified value (50 in the query of FIG. 4) are extracted.
- the index B is used to read a record in which the value of the column B_factory_id matches the extracted value of the A_factory_id from the table B, and the value of the column B_product_price among the records is the specified value of the query (in the query of FIG. 500) Extract the value of column B_product_name and the value of column B_product_id in the record larger than 500).
- the DBMS generates, as a query execution result, a value of column A_factory_name, a value of column B_product_name, and a calculated total value of column C_count for each group.
- the DBMS performs the following processing: (S1) Using the index A, search for a set of record IDs corresponding to the records in Table A in which the value of the column A_country is a specified value of the query. (S2) The data including the corresponding record in Table A is fetched using the record ID set found in S1, and the value of the column A_factory_name and the column of the record in which the value of the column A_factory_size is greater than 50 that is the query specified value Extract the value of A_factory_id, (S3) Using the index B, search the record ID set of the record in Table B where the value of the column B_factory_id matches the value of the column A_factory_id extracted in S2.
- FIG. 6 shows an example of access to a page when executing a query according to the first embodiment.
- FIG. 6 shows an example of access to the DB index and table page when the DBMS executes a query according to the query execution plan shown in FIG.
- the page is a unit of data management in the DBMS, and data reading from the DB and data writing to the DB by the DBMS are performed in page units.
- the page stores, for example, one or more entries including information (page ID) specifying a lower page in the index, or one or more entries including information (record ID) specifying a corresponding table record.
- the information for specifying a record includes information for specifying a page in which the record is stored.
- the DBMS When executing a query according to the query execution plan shown in FIG. 5, the DBMS first accesses the page a11. The DBMS accesses the lower pages a21 to a25 based on the entry of the page a11.
- the DBMS accesses page A1 of table A based on the entry of page a21, accesses page A2 and page A3 of table A based on the entry of page a22, and table A based on the entry of page a23.
- the page A4 and the page A5 are accessed, the page A6 of the table A is accessed based on the entry of the page a24, and the page A7 of the table A is accessed based on the entry of the page a25.
- the DBMS accesses the page b11 of the index B based on the record stored in the page A1, accesses the page b11 of the index B based on the record stored in the page A3, and is stored in the page A4.
- the page b11 of the index B is accessed based on the recorded record, and the page b11 of the index B is accessed based on the record stored in the page A5.
- a page that is not used to access the page of index B, such as page A2 indicates that a record that matches the condition specified by the query is not stored.
- the DBMS accesses the page b21 based on the record stored in the page A1 and the entry of the page b11 of the index B, and accesses the page b22 based on the record stored in the page A3 and the entry of the page b11.
- the page b23 is accessed based on the record stored in the page A4 and the entry of the page b11
- the page b24 is accessed based on the record stored in the page A5 and the entry of the page b11.
- the DBMS accesses pages B1 to B3 of Table B based on the record stored in page A4 and the entry of page b23 of index B.
- the DBMS accesses the page c11 of the index C based on the record stored in the page B1 of the table B.
- the DBMS accesses the page c21 based on the record stored in the page B1 and the entry of the page c11 of the index C, and accesses the page c31 based on the record stored in the page B1 and the entry of the page c21.
- the DBMS accesses page C1 of table C based on the record stored in page B1 and the entry of page c31 of index C.
- FIG. 7 is a diagram for explaining task start information according to the first embodiment.
- the DBMS When the DBMS starts executing a task, the DBMS refers to the task start information TS and specifies a page to be accessed by the DB operation to be executed.
- Task start information TS is information indicating the contents to be executed in the task.
- the task start information is obtained by associating the context CTX with the data address set AG.
- the context CTX includes, for example, first information related to which one of one or more DB operations represented by a query execution plan is a DB operation that starts execution in a newly generated task, and the first information includes This is information including second information relating to an access destination of data required for the DB operation to be shown and third information relating to already acquired data necessary for generating a result.
- the data address set AG is information for specifying a page to be accessed when the DBMS executes the generated task based on the second information regarding the access destination of the data.
- the data address set AG is data stored in a page of the DB 451, and is a set of one or more entries that specify an index page corresponding to the key, or a page in which a table record corresponding to the key is stored. Is a set of one or more entries that identify.
- the page of the storage device group 443 of the external storage apparatus 402 is read from the storage device group 443 to the DB buffer 436 by the DBMS 412 every time it is accessed.
- the storage capacity of the DB buffer 436 is smaller than the storage capacity of the memory 416.
- the storage capacity of the memory 416 is smaller than the storage capacity of the storage device group 443. Therefore, the pages that can be simultaneously stored in the DB buffer 436 are part of the pages that can be stored in the storage device group 443.
- the page storing the data address set AG of the task start information 1 and the page storing the data address set AG of the task start information 3 are transferred from the storage device group 443 to the DB buffer 436.
- the page in which the data address set AG of the task start information 2 is stored is not stored in the DB buffer 436, but is stored only in the storage device group 443.
- the context CTX includes information (for example, page ID) for specifying a page in which the data address set AG is stored, information indicating an entry to be accessed by a task to be executed next among the entries of the data address set AG, and Stores the remaining number of entries to be accessed by task execution (number of tasks that can be generated).
- the context CTX is managed by the context management unit 432 of the query execution unit 423.
- FIG. 8 is an example of a schematic diagram for explaining task execution and task start information management during query execution by the DBMS.
- FIG. 8 shows task execution and task start information management in the access example shown in FIG. Note that the notation in FIG. 8 follows the following rules.
- the horizontal axis represents time.
- a long pentagon at the top of the figure means a series of DB operations by one task. The left end of the pentagon represents the time when the DB operation is started by the task, and the right end of the pentagon represents the time when the DB operation by the task is finished.
- the value inside the pentagon at the top of the figure is information (for example, page ID) indicating the index page accessed by the task when the DB operation is executed, or information (for example, record ID) indicating the table record. Represents.
- the number of tasks that can be executed simultaneously is “3”.
- a diamond in the figure represents a data address set AG of the task start information TS. The number in the diamond represents the number of tasks that can be generated included in the context CTX of the task start information TS. Note that the position of the rhombus in the pentagon at the top of the figure indicates when the task start information TS including the data address set AG is generated.
- a thick solid line following the diamond in the DB buffer 436 in the middle of the figure indicates that a page storing the data address set AG is stored in the DB buffer 436, and a thick broken line stores the data address set AG. Indicates that the page is not stored in the DB buffer 436.
- the upper limit number of pages that can be simultaneously stored in the DB buffer 436 is “2”.
- a broken line arrow from the DB buffer 436 to the storage device group 443 indicates eviction of a page from the DB buffer 436 to the storage device group 443, and a broken line arrow from the storage device group 443 to the DB buffer 436 indicates a storage device group. The page reading from the database 443 to the DB buffer 436 is shown.
- the DBMS stores the page in the storage device group 443. It may be deleted from the DB buffer without moving it.
- the access speed of the storage device group 443 is slower than the access speed of the memory 416 holding the DB buffer 436.
- the high / low access speed means that the amount of data input / output per unit time may be large / small, or the access request after the access request is issued from the access source (DBMS).
- the response time until the response to returns to the access source (DBMS) may be short / slow.
- the storage device group 443 is not If it exists in the storage device, the network transfer speed affects it, so the access speed of the storage device group 443 is slower than the access speed of the memory 416.
- the DBMS creates a task 10A, and accesses the page a11 of the index A on the storage device group 443 by executing the task 10A.
- the page stored in the DB buffer 436 is referred to, and the access target page is not stored in the DB buffer 436.
- the page is read from the storage device group 443 to the DB buffer 436 and the page stored in the DB buffer 436 is referred to.
- the DBMS specifies that the lower pages to be accessed are a21 to a25 based on the specified value of the query and the entry of the page a11, and generates task start information. That is, a context is generated, and the page a11 storing the addresses of the pages a21 to a25 specified to be accessed is associated with the generated context as the data address set 11A. Since the upper limit of the number of pages that can be simultaneously stored in the DB buffer is 2, and the number of pages accessed at this time is 1, the data address set 11A is on the DB buffer. For the context, the entry to be accessed next is set to a22, and the number of tasks that can be generated is set to 4.
- task start information as a set of the data address set 11A and the context associated with the data address set 11A is completed.
- the DBMS accesses the page a21 by executing the task 10A.
- the number of concurrent tasks that can be executed is “3” and the number of running tasks is “1” (only the task 10A is being executed)
- the number of tasks that can be generated is from “3”. Since it is “2” obtained by subtracting “1”, the DBMS generates two tasks 10B and 10C. Further, the DBMS starts execution of one task with reference to the task start information by executing the task 10B.
- the next entry to be accessed is a22, and the next entry to be accessed is changed to a23 which is the next page.
- the number of tasks that can be generated is decremented by 1 and changed to 3
- the address of the page a22 is acquired with reference to the data address set 11A, and the page a22 is accessed based on the acquired address.
- the DBMS starts execution of one task with reference to the task start information by executing the task 10C. That is, referring to the context associated with the data address set 11A, it is specified that the entry to be accessed next is a23, and the entry to be accessed next is changed to a24 which is the next page. Then, the number of tasks that can be generated is decremented by 1 and changed to 2, the address of the page a23 is acquired with reference to the data address set 11A, and the page a23 is accessed based on the acquired address.
- the DBMS By executing the task 10A, the DBMS specifies that the record to be accessed is A1 based on the specified value of the query and the entry of the page a21, acquires the address of the record A1 with reference to the page a21, The page A1 is accessed based on the acquired address. Also, the DBMS specifies the records A2 and A3 to be accessed based on the query specified value and the entry of the page a22, and generates task start information by executing the task 10B.
- the page a22 storing the addresses of the pages A2 and A3 specified to be accessed is associated with the generated context as the data address set 11B, and the next entry to be accessed for the context Is set to A3, and the number of tasks that can be generated is set to 1.
- the task start information as a set of the data address set 11B and the context associated with the data address set 11B is completed.
- the DBMS accesses the page A2 by executing the task 10B.
- the DBMS specifies the records A4 and A5 to be accessed based on the query specified value and the entry of the page a23, and generates task start information by executing the task 10C.
- a context is generated, the page a23 storing the addresses of the pages A4 and A5 specified to be accessed is associated with the generated context as the data address set 11C, and the next entry to be accessed for the context Is set to A5, and the number of tasks that can be generated is set to 1.
- task start information as a set of the data address set 11C and the context associated with the data address set 11C is completed.
- the DBMS accesses the page A4 by executing the task 10C.
- the DBMS stores the page storing the data address set 11B and the page storing the data address set 11C in the DB buffer 436.
- the number of pages that can be stored simultaneously in the DB buffer 436 is “2”. It is.
- the DBMS stores the oldest data address set on the DB buffer 436 (stored in the DB buffer 436 before storing at least one of the pages storing the data address sets 11B and 11C in the DB buffer 436.
- the page storing the data address set 11A stored in the DB buffer 436 for the first time is pushed out to the storage device group 443. Since the page a21 accessed at t1 is also stored in the buffer, the above behavior can be affected.
- FIG. 8 in order to briefly explain the main points of the present invention, it is assumed that the page a21 is temporarily stored in the DB buffer and is immediately ejected to the storage device group 443 after specifying A1. As will be described later, the present invention is not limited to this assumption.
- the DBMS determines that the record A1 satisfies the condition specified by the query, specifies the search condition for the index B based on the record, and accesses the page b11 of the index B. Further, the DBMS determines that the record A2 does not satisfy the condition specified by the query by executing the task 10B. Subsequently, in order to execute the task, the task start information generated first (task start information including the data address set 11A and the context associated therewith) is referred to. That is, referring to the context associated with the data address set 11A, the next entry to be accessed is specified as a24, the next entry to be accessed is changed to a25 which is the next page, and task generation is performed.
- the possible number is subtracted by 1 and changed to 1, and an attempt is made to acquire the address of the page a24 by referring to the data address set 11A.
- the data address set 11A is evicted to the storage device group 443 and does not exist on the DB buffer 436 at t2
- the DBMS reads the page storing the data address set 11 ⁇ / b> A into the DB buffer 436, the number of pages stored in the DB buffer 436 exceeds the storable number “3”.
- the page that stores the oldest data address set 11B is driven out to the storage device group 443. Also, the DBMS determines that the record A4 satisfies the condition specified by the query by executing the task 10C, specifies the search condition for the index B based on the record, and accesses the page b11 of the index B.
- the DBMS By executing task 10A, the DBMS specifies that the lower page to be accessed is b21 on the basis of the search condition of index B specified at t3 and the entry of page b11, and refers to page b11 for page b21. An address is acquired, and page b21 is accessed based on the acquired address. Further, the DBMS acquires the address of the page a24 by referring to the data address set 11A that has been read from the storage device group 443 to the DB buffer 436 at t3 by executing the task 10B, and based on the acquired address To access page a24.
- the DBMS specifies that the lower page to be accessed is b23 based on the search condition of the index B specified at t3 and the entry of the page b11 by executing the task 10C, and refers to the page b11.
- the address of b23 is acquired, and the page b23 is accessed based on the acquired address.
- the DBMS determines that there is no lower page to be accessed based on the search condition of the index B specified at t3 and the entry of the page b21. Subsequently, in order to execute the task, the task start information generated first (task start information including the data address set 11A and the context associated therewith) is referred to. That is, referring to the context associated with the data address set 11A, it is specified that the entry to be accessed next is a25, the task-generable number is decremented by 1 and confirmed to be 0, and the data address set The address of the page a25 is acquired with reference to 11A, the task start information is erased, and the page a25 is accessed based on the acquired address.
- the DBMS specifies that the record to be accessed is A6 based on the specified value of the query and the entry of the page a24 by executing the task 10B, and acquires the address of the record A6 by referring to the page a24 Then, the page A6 is accessed based on the acquired address. Further, by executing the task 10C, the DBMS specifies that the records to be accessed are B1 to B3 based on the search condition of the index B specified at t3 and the entry of the page b23, and generates task start information. .
- the page b23 storing the addresses of the pages B1 to B3 specified to be accessed is associated with the generated context as the data address set 11D, and the next entry to be accessed for the context Is set to B2, and the number of tasks that can be generated is set to 2.
- the task start information as a set of the data address set 11D and the context associated with the data address set 11D is completed.
- the DBMS accesses the page B1 by executing the task 10C.
- the DBMS stores the page for storing the data address set 11D in the DB buffer 436.
- the page for storing the data address sets 11A and 11C is stored in the DB buffer 436.
- the number of pages that can be stored in the DB buffer 436 is “2”. For this reason, before storing the page for storing the data address set 11D in the DB buffer 436, the DBMS stores, in the storage device group 443, the page for storing the oldest data address set 11C that is not referenced on the DB buffer 436. Kick out.
- the DBMS By executing the task 10A, the DBMS specifies that the record to be accessed is A7 based on the specified value of the query and the entry of the page a25, acquires the address of the record A7 with reference to the page a25, The page A7 is accessed based on the acquired address. Further, the DBMS determines that the record A6 does not satisfy the condition specified by the query by executing the task 10B. Subsequently, in order to execute the task, refer to the task start information generated first among the task start information having a task generation number of 1 or more (task start information including the data address set 11B and the context associated therewith). To do.
- the task 10B waits for the page storing the data address set 11B to be read into the DB buffer 436. Further, the DBMS determines that the record B1 satisfies the condition specified by the query by executing the task 10C, specifies the search condition of the index C based on the record, and accesses the page c11 of the index C.
- T7 The DBMS determines that the record A7 does not satisfy the condition specified by the query by executing the task 10A. Subsequently, in order to execute the task, refer to the task start information generated first among the task start information having a task generation number of 1 or more (task start information including the data address set 11C and the context associated therewith). To do. That is, referring to the context associated with the data address set 11C, it is determined that the next entry to be accessed is A5, and the task-generable number is decremented by 1 to confirm that it becomes 0. 11C is tried to acquire the address of the page A5.
- the page storing the data address set 11C at t5 is evicted to the storage device group 443 and does not exist on the DB buffer 436, the page storing the data address set 11C is transferred from the storage device group 443 to the DB buffer 436. Process to read into. Therefore, the task 10A waits for the page storing the data address set 11C to be read into the DB buffer 436.
- the DBMS reads the page storing the data address set 11C into the DB buffer 436, but the DB buffer 436 stores the page storing the data address sets 11B and 11D at that time.
- the number of pages that can be stored in the DB buffer 436 is “2”.
- the DBMS drives out to the storage device group 443 a page storing the oldest data address set 11D that is not referenced on the DB buffer 436. Further, the DBMS acquires the address of the page A3 by referring to the data address set 11B that has been read from the storage device group 443 to the DB buffer 436 at t6 by executing the task 10B, and the number of tasks that can be generated is 0. The task start information that has become is deleted, and the page A3 is accessed based on the acquired address.
- the DBMS specifies that the lower page to be accessed is c21 based on the search condition of the index C specified at t6 and the entry of the page c11 by executing the task 10C, and refers to the page c11.
- the address of c21 is acquired, and the page c21 is accessed based on the acquired address.
- the DBMS acquires the address of the page A5 by referring to the data address set 11C that has been read from the storage device group 443 to the DB buffer 436 at t7 by executing the task 10A, and the number of tasks that can be generated becomes zero.
- the task start information is deleted, and page A5 is accessed based on the acquired address.
- the DBMS determines that the record A3 satisfies the condition specified by the query by executing the task 10B, specifies the search condition for the index B based on the record, and accesses the page b11 of the index B.
- the DBMS executes the task 10C, specifies that the lower page to be accessed is c31, based on the search condition of the index C specified at t6 and the entry of the page c21, and refers to the page c21.
- the address of c31 is acquired, and the page c31 is accessed based on the acquired address.
- the DBMS determines that the record A5 satisfies the condition specified by the query, specifies the search condition for the index B based on the record, and accesses the page b11 of the index B. Further, the DBMS specifies that the lower page to be accessed is b22 based on the search condition of the index B specified at t8 and the entry of page b11 by executing task 10B, and refers to page b11. The address of b22 is acquired, and the page b22 is accessed based on the acquired address.
- the DBMS specifies that the record to be accessed is C1 based on the search condition of the index C specified at t6 and the entry of the page c31 by executing the task 10C, and refers to the record by referring to the page c31.
- the address of C1 is acquired, and the page C1 is accessed based on the acquired address.
- the DBMS specifies that the lower page to be accessed is b24 based on the search condition of the index B specified at t9 and the entry of the page b11, and refers to the page b11 to determine the page b24. An address is acquired, and the page b24 is accessed based on the acquired address. Further, the DBMS determines that there is no lower page to be accessed based on the search condition of the index B specified at t8 and the entry of the page b22 by executing the task 10B.
- the task start information generated first among the task start information having a task generation number of 1 or more (task start information including the data address set 11D and the context associated therewith).
- task start information including the data address set 11D and the context associated therewith.
- the context associated with the data address set 11D it is specified that the next entry to be accessed is B2, and the next entry to be accessed is changed to B3 which is the next page, and task generation is performed.
- the possible number is subtracted by 1 and changed to 1, and an attempt is made to acquire the address of the page B2 with reference to the data address set 11D.
- the page storing the data address set 11D at t7 is evicted to the storage device group 443 and does not exist on the DB buffer 436, the page storing the data address set 11D is transferred from the storage device group 443 to the DB buffer 436.
- the task 10B waits for the page storing the data address set 11D to be read into the DB buffer 436.
- the DBMS determines that the record C1 satisfies the condition specified by the query by executing the task 10C. Subsequently, in order to execute the task, refer to the task start information generated first among the task start information having a task generation number of 1 or more (task start information including the data address set 11D and the context associated therewith). To do.
- the next entry to be accessed is B3, and 1 is subtracted from the number of tasks that can be generated to confirm that it becomes 0. Attempt to acquire the address of the page B3 with reference to 11D.
- the page storing the data address set 11D at t7 is evicted to the storage device group 443 and does not exist on the DB buffer 436, the page storing the data address set 11D is transferred from the storage device group 443 to the DB buffer 436. Process to read into. Therefore, the task 10C waits for the page storing the data address set 11D to be read into the DB buffer 436.
- the DBMS determines that there is no lower page to be accessed based on the search condition of the index B specified at t9 and the entry of the page b24. Subsequently, in order to execute the task, the task start information having a task generation number of 1 or more is searched, but at this point in time, there is no task start information having a task generation number of 1 or more, so the task 10A is terminated. Further, the DBMS acquires the address of the page B2 by referring to the data address set 11D that has been read from the storage device group 443 to the DB buffer 436 at t10 by executing the task 10B, and based on the acquired address To access page B2.
- the DBMS acquires the address of the page B3 by referring to the data address set 11D that has been read from the storage device group 443 to the DB buffer 436 at t10 by executing the task 10C, and the number of tasks that can be generated is 0.
- the task start information that has become is deleted, and the page B3 is accessed based on the acquired address.
- the DBMS determines that the record B2 does not satisfy the condition specified by the query by executing the task 10B. Subsequently, in order to execute the task, the task start information having a task generation number of 1 or more is searched. However, at this point in time, there is no task start information having a task generation number of 1 or more, so the task 10B is terminated. Further, the DBMS determines that the record B3 does not satisfy the condition specified by the query by executing the task 10C. Subsequently, in order to execute the task, the task start information having a task generation number of 1 or more is searched. However, at this time, there is no task start information having the task generation number of 1 or more, and the task 10C is terminated.
- the following task execution and task start information management is performed so that the query process can be executed more quickly than the query process shown in FIG.
- FIG. 9 is an example of a schematic diagram for explaining task execution and task start information management during query execution according to the first embodiment.
- the notation rules are the same as in FIG.
- the DBMS drives out the page storing the data address set from the DB buffer 436 to the storage device group 443. If there are a plurality of pages storing the data address set in the DB buffer 436, the DBMS Does not simply target the page that stores the oldest data address set (the data address set stored in the DB buffer 436 first among the data address sets stored in the DB buffer 436) as a task to be evicted.
- the DBMS determines a page for storing a set of data addresses to be evicted based on a comparison result between the task start information generation speed and the task start information consumption speed.
- the generation speed and consumption speed compared with each other may be the generation speed and consumption speed in the same time zone.
- the DBMS stores a set of data addresses associated with a context whose number of tasks that can be generated is equal to or greater than a predetermined threshold when the generation speed of task start information is greater than the consumption speed of task start information.
- a page that stores a data address set associated with a context in which the number of tasks that can be generated is less than a predetermined threshold is not targeted for eviction.
- the threshold value may be a specified fixed value or a variable value dynamically updated by the DBMS. As the variable value, for example, an average value of the number of tasks that can be generated in all contexts may be calculated, and the DBMS may update the calculated value at an arbitrary timing.
- the DBMS gives priority to a page storing a data address set associated with a context having a large number of task generations, and the DB buffer 436. To the storage device group 443. Thereby, it can be expected that the task start information is efficiently consumed.
- the DBMS drives out a page that stores a set of data addresses associated with a context having a task generation number equal to or greater than a predetermined threshold.
- a page that stores a set of data addresses associated with a context whose number of tasks that can be generated is less than a predetermined threshold is not targeted.
- the DBMS gives priority to a page that stores a data address set associated with a context having a small number of tasks that can be generated.
- a page for storing a set of data addresses associated with a context having a large number of tasks that can be generated is preferentially left in the DB buffer 436. As a result, it can be expected that many tasks can be executed efficiently.
- the DBMS determines that the record A1 satisfies the condition specified by the query, specifies the search condition for the index B based on the record, and accesses the page b11 of the index B. Further, the DBMS determines that the record A2 does not satisfy the condition specified by the query by executing the task 12B. Subsequently, the task start information is referred to execute the task.
- the DBMS preferentially refers to the task start information in which the page storing the data address set exists in the DB buffer 436.
- the DBMS may preferentially refer to the task start information with a small number of tasks that can be generated held in the context of the task start information. good.
- the DBMS refers to the context associated with the data address set 13B existing in the DB buffer 436, specifies that the next entry to be accessed is A3, and subtracts 1 from the number of tasks that can be generated. Then, the address of the page A3 is acquired with reference to the data address set 13B, the task start information for which the number of tasks that can be generated is 0 is deleted, and based on the acquired address To access page A3. Further, the DBMS determines that the record A4 satisfies the condition specified by the query by executing the task 12C, specifies the search condition for the index B based on the record, and accesses the page b11 of the index B.
- the DBMS By executing the task 12A, the DBMS specifies that the lower page to be accessed is b21 based on the search condition of the index B specified at t3 and the entry of the page b11, and refers to the page b11 to determine the page b21. An address is acquired, and page b21 is accessed based on the acquired address. Further, the DBMS determines that the record A3 satisfies the condition specified by the query by executing the task 12B, specifies the search condition for the index B based on the record, and accesses the page b11 of the index B.
- the DBMS specifies that the lower page to be accessed is b23 on the basis of the search condition of the index B specified at t3 and the entry of the page b11, and refers to the page b11.
- the address of b23 is acquired, and the page b23 is accessed based on the acquired address.
- the DBMS determines that there is no lower page to be accessed based on the search condition of the index B specified at t3 and the entry of the page b21. Subsequently, in order to execute the task, the context associated with the data address set 13C existing in the DB buffer 436 is referred to specify that the next entry to be accessed is A5, and the number of tasks that can be generated is 1 After confirming that the value is 0, the address of the page A5 is acquired by referring to the data address set 13C, the task start information in which the number of tasks that can be generated is 0 is deleted, and the acquired address is set. Based on this, page A5 is accessed.
- the DBMS specifies that the lower page to be accessed is b22 on the basis of the search condition of the index B specified at t4 and the entry of the page b11, and refers to the page b11.
- the address of b22 is acquired, and the page b22 is accessed based on the acquired address.
- the DBMS specifies that the records to be accessed are B1 to B3 based on the search condition of the index B specified at t3 and the entry of the page b23, and generates task start information. .
- the page b23 storing the addresses of the pages B1 to B3 specified to be accessed is associated with the generated context as the data address set 13D, and the next entry to be accessed for the context Is set to B2, and the number of tasks that can be generated is set to 2.
- the task start information as a set of the data address set 13D and the context associated with the data address set 13D is completed.
- the DBMS accesses the page B1 by executing the task 12C.
- the DBMS determines that the record A5 satisfies the condition specified by the query, specifies the search condition for the index B based on the record, and accesses the page b11 of the index B. Also, the DBMS determines that there is no lower page to be accessed based on the search condition of the index B specified at t4 and the entry of the page b22 by executing the task 12B.
- the context associated with the data address set 13D existing in the DB buffer 436 is referred to specify that the next entry to be accessed is B2, and the next access should be made Change the entry to B3 which is the next page, subtract 1 from the number of tasks that can be generated and change it to 1, acquire the address of the page B2 with reference to the data address set 13D, and based on the acquired address Access page B2.
- the DBMS determines that the record B1 satisfies the condition specified by the query by executing the task 12C, specifies the search condition for the index C based on the record, and accesses the page c11 of the index C.
- the DBMS specifies that the lower page to be accessed is b24 based on the search condition of the index B specified at t6 and the entry of the page b11, and refers to the page b11 to determine the page b24. An address is acquired, and the page b24 is accessed based on the acquired address. The DBMS determines that the record B2 does not satisfy the condition specified by the query by executing the task 12B.
- the context associated with the data address set 13D existing in the DB buffer 436 is referred to specify that the next entry to be accessed is B3, and the number of tasks that can be generated is 1 Confirm that 0 is obtained by subtraction, obtain the address of the page B3 by referring to the data address set 13D, delete the task start information for which the number of tasks that can be generated is 0, and set the obtained address to Based on this, page B3 is accessed.
- the DBMS specifies that the lower page to be accessed is c21 based on the search condition of the index C specified at t6 and the entry of the page c11. The address of c21 is acquired, and the page c21 is accessed based on the acquired address.
- the DMBS transfers the page for storing the data address set 13A from the storage device group 443 to the DB buffer.
- a process of reading in 436 is performed.
- the DBMS compares the data address sets to be read with, for example, the comparison result between the task start information generation speed and the task start information consumption speed. , And the number of tasks that can be generated held in the context of task start information.
- the DBMS stores a set of data addresses associated with a context whose number of tasks that can be generated is a predetermined threshold or more.
- the page to be read is set as the reading target, and the page storing the data address set associated with the context having the task generation possible number less than the predetermined threshold is not set as the reading target.
- the threshold value may be a specified fixed value or a variable value dynamically updated by the DBMS.
- the variable value for example, an average value of the number of tasks that can be generated in all contexts may be calculated, and the DBMS may update the calculated value at an arbitrary timing.
- the DBMS preferentially reads a page that stores a data address set associated with a context having a large number of task generations. As a result, it can be expected that many tasks can be executed efficiently.
- the DBMS reads a page storing a set of data addresses associated with a context having a task generation number equal to or greater than a predetermined threshold.
- a page that stores a set of data addresses associated with a context whose number of tasks that can be generated is less than a predetermined threshold is not read.
- the DBMS preferentially reads a page that stores a data address set associated with a context with a small number of tasks that can be generated. Thereby, it can be expected that the task start information is efficiently consumed.
- the DBMS reads the page storing the data address set 13A into the DB buffer 436.
- the DBMS determines that there is no lower page to be accessed based on the search condition of the index B specified at t6 and the entry of the page b24. Subsequently, in order to execute the task, the context associated with the data address set 13A existing in the DB buffer 436 is referred to specify that the entry to be accessed next is a24, and the next access should be performed The entry is changed to a25 which is the next page, the number of tasks that can be generated is decremented by 1 and changed to 1, the address of the page a24 is obtained by referring to the data address set 13A, and based on the obtained address Access page a24.
- the DBMS determines that the record B3 does not satisfy the condition specified by the query by executing the task 12B. Subsequently, in order to execute the task, the context associated with the data address set 13A existing in the DB buffer 436 is referred to specify that the entry to be accessed next is a25, and the number of tasks that can be generated is 1 The subtraction is confirmed to be 0, the address of the page a25 is acquired with reference to the data address set 13A, the task start information is erased, and the page a25 is accessed based on the acquired address.
- the DBMS specifies that the lower page to be accessed is c31 based on the search condition of the index C specified at t6 and the entry of page c21 by executing task 12C, and refers to page c21.
- the address of c31 is acquired, and the page c31 is accessed based on the acquired address.
- the DBMS specifies that the record to be accessed is A6 based on the specified value of the query and the entry of the page a24, acquires the address of the record A6 by referring to the page a24, The page A6 is accessed based on the acquired address. Further, by executing the task 12B, the DBMS specifies that the record to be accessed is A7 based on the specified value of the query and the entry of the page a25, and acquires the address of the record A7 by referring to the page a25. Then, the page A7 is accessed based on the acquired address.
- the DBMS specifies that the record to be accessed is C1 based on the search condition of the index C specified at t6 and the entry of the page c31 by executing the task 12C, and refers to the record by referring to the page c31.
- the address of C1 is acquired, and the page C1 is accessed based on the acquired address.
- the DBMS determines that the record A6 does not satisfy the condition specified by the query by executing the task 12A. Subsequently, in order to execute the task, the task start information having a task creation capability number of 1 or more is searched. However, since there is no task start information having a task creation capability count of 1 or more, the task 12A is terminated. In addition, the DBMS determines that the record A7 does not satisfy the condition specified by the query by executing the task 12B. Subsequently, in order to execute the task, the task start information having a task creation number of 1 or more is searched. However, since there is no task start information having a task creation number of 1 or more, the task 12B is terminated.
- the DBMS determines that the record C1 satisfies the condition specified by the query by executing the task 12C. Subsequently, in order to execute the task, the task start information having a task generation number of 1 or more is searched. However, since there is no task start information having a task generation number of 1 or more at this time, the task 12C is terminated.
- the query processing according to the first embodiment can reduce the number of accesses to the storage device group 443 and can execute the query processing in a short time compared to the query processing shown in FIG. 8. it can.
- FIG. 10 shows a configuration of a computer system according to the first embodiment.
- the DB server 401 is connected to the external storage apparatus 402 via the communication network 403.
- a protocol for communication via the communication network 403 for example, FC (Fibre Channel), SCSI (Small Computer System Interface), or TCP / IP (Transmission Control Protocol / Internet Protocol) may be employed.
- the DB server 401 is a computer, for example, a personal computer, a workstation or a main frame, or a virtual computer (virtual machine) configured by any one of these.
- the DB server 401 includes a network adapter 413, a memory 416, a local storage device 415, and a processor (typically a microprocessor) 414 connected thereto.
- the processor 414 executes a computer program such as an OS (Operating System) 417, a DBMS 412, and an AP (Application Program) 411 that issues a query to the DBMS 412.
- the memory 416 is an example of a main storage device (first storage device), and temporarily stores a program executed by the processor 414 and data used by the program.
- the local storage device 415 stores a program and data used by the program.
- the network adapter 413 connects the communication network 403 and the DB server 401.
- the AP 411 may operate with another computer (not shown) connected to the communication network 403 instead of the DB server 401.
- the processor 414 may be an element included in a control device connected to the network adapter 413, the memory 416, and the like.
- the control device may include dedicated hardware circuitry (eg, circuitry that encrypts and / or decrypts data).
- the DB server 401 may include a plurality of at least one element of the processor 414, the memory 416, the local storage device 415, and the network adapter 413 from the viewpoint of performance and redundancy. Further, the DB server 401 may include an input device (for example, a keyboard and a pointing device) and a display device (for example, a liquid crystal display) which are not illustrated. The input device and the display device may be integrated.
- an input device for example, a keyboard and a pointing device
- a display device for example, a liquid crystal display
- the DBMS 412 executes the query issued from the AP 411, and issues an I / O request to the DB 451 stored in the external storage apparatus 402 to the OS 417 as the query is executed.
- the OS 417 transmits the I / O request issued from the DBMS 412 to the external storage apparatus 402.
- the external storage device 402 is a device having a storage device group 443 including a plurality of storage devices, such as a disk array device, but may instead be a single storage device.
- the external storage device 402 stores data and programs used by the DB server 401.
- the external storage device 402 is an example of a secondary storage device (second storage device) for the DB server 401.
- the external storage device 402 receives an I / O request from the DB server 401, executes processing corresponding to the I / O request, and transmits a processing result to the DB server 401.
- the external storage apparatus 402 includes a network adapter 441, a storage device group 443, and a controller 442 connected to them.
- the network adapter 441 connects the external storage device 402 to the communication network 403.
- the storage device group 443 includes one or more storage devices.
- the storage device is a non-volatile storage medium, for example, a magnetic disk, a flash memory, or other semiconductor memory.
- the storage device group 443 may be a group that stores data at a predetermined RAID level according to RAID (Redundant ARRAY of Independent Disks).
- a logical storage device (logical volume) based on the storage space of the storage device group 443 may be provided to the DB server 401.
- the storage device group 443 stores the DB 451.
- the controller 442 includes, for example, a memory and a processor, and inputs / outputs data to / from the storage device group 443 storing the DB 451 in accordance with an I / O request from the DB server 401.
- the controller 442 stores data to be written in accordance with a write request from the DB server 401 in the storage device group 443, reads data to be read in accordance with a read request from the DB server 401 from the storage device group 443, and the data Is transmitted to the DB server 401.
- the external storage apparatus 402 may include a plurality of elements such as the controller 442 from the viewpoint of ensuring performance and ensuring redundancy.
- the DBMS 412 manages the DB 451 including business data.
- the DB 451 includes one or more tables 462 and an index 461.
- a table is a set of one or more records, and a record is composed of one or more columns.
- An index is a data structure created for one or more columns in a table, and speeds up access to the table by a selection condition that includes the columns targeted by the index.
- the index is a data structure that holds information (record ID) for specifying a record of a table including a value for each value of a target column, and a B-tree structure or the like is used.
- An example of the structure of the DB table and an example of the relationship between the tables are as shown in FIGS. 1 to 3 and FIG.
- the DBMS 412 includes a query reception unit 421, a query execution plan generation unit 422, a query execution unit 423, an execution task management unit 426, and a DB buffer management unit 427.
- the query reception unit 421 receives a query issued by the AP 411.
- the query is described in, for example, SQL (Structured Query Language).
- the query execution plan generation unit 422 generates a query execution plan having one or more DB operations necessary for executing the query for the query received by the query reception unit 421.
- the query execution plan is, for example, information that defines the execution order of DB operations to be performed when executing a query in a tree structure, and is stored in the memory 416.
- An example of the query execution plan is as shown in FIG.
- the query execution unit 423 dynamically generates and executes a task for executing a DB operation, which is information included in the query execution plan, according to the query execution plan generated by the query execution plan generation unit 422. Then, the execution result is returned to the query issuer. For example, the query execution unit 423 (a) requests and generates a task for executing a DB operation from the execution task management unit 426, and (b) responds to the task by executing the generated task.
- Reading out data necessary for the DB operation performed issuing a read request to the external storage apparatus 402 having the DB 451 via the OS 417), (c) the Nth DB operation corresponding to the task executed in (b) above
- N + 1) th DB operation is executed based on the execution result of
- a task based on the execution result is requested to the execution task management unit 426 and newly generated (N is an integer of 1 or more)
- D Performing (b) and (c) above for the newly generated task.
- the query execution unit 423 executes at least two of the two or more tasks in parallel.
- the query execution unit 423 includes a task assignment management unit 431 and a context management unit 432.
- the task assignment management unit 431 manages the start of task execution.
- the context management unit 432 manages the context CTX of the task start information TS that is information indicating the contents to be executed in the task.
- An example of task start information is as shown in FIG. Details of the query execution unit 423, the task assignment management unit 431, and the context management unit 432 will be described later.
- the execution task management unit 426 manages a task for executing a query. For example, the execution task management unit 426 manages memory resources for generating a task, and in accordance with a task generation request from the query execution unit 423, secures memory resources required for the task itself and generates a task. Further, in accordance with a task termination request from the query execution unit 423, the memory resources required for the task itself are released and the task is terminated.
- any module can be adopted as the task.
- the task may be a process or thread managed by the OS 417 or a pseudo process or pseudo thread implemented by the DBMS 412.
- the DB buffer management unit 427 manages one or more storage areas (DB buffer surfaces) 437 for temporarily storing pages in the DB 451.
- the DB buffer surface 437 is constructed on the memory 416. Details of the DB buffer management unit 427 will be described later.
- FIG. 11 is a detailed configuration diagram of a part of the computer system according to the first embodiment.
- the query execution unit 423 includes a task assignment management unit 431 and a context management unit 432.
- the query execution unit 423 dynamically generates task start information TS, which is information indicating the contents to be executed in the task, according to the query execution plan generated by the query execution plan generation unit 422, and based on the generated task start information
- the DB operation in the query execution plan is executed by executing the task.
- the context management unit 432 manages the context CTX of one or more task start information TS.
- the context CTX is information that specifies a page (for example, page ID) in the storage device group 443 of the external storage apparatus 402 in which the data address set AG is stored, and starts executing next among the entries stored in the data address set AG.
- the task allocation management unit 431 determines the task start information TS to be referred to when the query execution unit 423 starts executing the task, acquires the context CTX of the task start information from the context management unit, and associates it with the context
- the page to be accessed is specified with reference to the data address set AG.
- the query execution unit 423 starts executing the task and accesses the specified page.
- the task assignment management unit 431 deletes the task start information TS in which the number of tasks that can be generated in the context CTX has become zero.
- the DB buffer management unit 427 manages the DB buffer 436 including one or more storage areas (DB buffer surfaces) 437 for temporarily storing pages in the DB 451. Note that the number of DB buffer surfaces 437 in the DB buffer 436 is limited to a predetermined number.
- the DB buffer management unit 427 stores a DB buffer management table 435 for managing pages stored in the DB buffer surface 437.
- the DB buffer management unit 427 reads the contents of the page of the DB 451 into the DB buffer surface 437 and drives out the page stored in the DB buffer surface 437 from the DB buffer surface 437.
- expelling data from the DB buffer surface 437 is referred to as releasing the DB buffer surface 437.
- the DB buffer management unit 427 When the DB buffer management unit 427 releases the DB buffer surface 437, if the corresponding data is dirty data, that is, data not reflected in the DB 451, the DB buffer management unit 427 moves the page to the DB 451 and stores it. On the other hand, if the data is not dirty data, the data may be simply deleted from the DB buffer surface 437.
- the above-described query reception unit 421, query execution plan generation unit 422, query execution unit 423, execution task management unit 426, and DB buffer management unit 427 are realized by the DBMS 412 being executed by the processor 414. At least a part of the processing performed by at least one processing unit may be performed by hardware. In the description of the present embodiment, when a processing unit is the subject, processing is actually performed by the processor 414 that executes the processing unit, but at least a part of the processing unit is realized by hardware. In that case, the hardware may be the subject instead of or in addition to the processor 414.
- a computer program such as the DBMS 412 may be installed in the DB server 401 from a program source. The program source may be a storage medium that can be read by the DB server 401, for example.
- the configuration of the DBMS 412 shown in FIGS. 10 and 11 is an example.
- a certain processing unit may be divided into a plurality of processing units, or a single processing unit that integrates the processing of a plurality of processing units may be constructed.
- FIG. 12 shows the configuration of the DB buffer management table 435 according to the first embodiment.
- the DB buffer management table 435 includes a buffer ID 435a and a page ID 435b as information for each DB buffer surface 437.
- Various information is as follows.
- the buffer ID 435a indicates an ID for identifying the DB buffer surface 437.
- the page ID 435b is information (here, a page ID) that can specify the storage position of the page stored in the corresponding DB buffer surface 437 in the external storage device 402. When no page is stored in the corresponding DB buffer surface 437, information indicating empty is set as the page ID 435b.
- FIG. 13 shows an overall flow of query processing for generating and executing a task in executing a query accepted by the DBMS 412.
- FIG. 13 shows the flow of one query execution.
- the DBMS 412 may perform the processing shown in FIG. 13 for the two or more queries in parallel.
- the query receiving unit 421 receives a query issued by the AP 411 and stores it in the memory 416, for example.
- the query is described in, for example, SQL (Structured Query Language).
- the query execution plan generation unit 422 receives a query (for example, a query stored in the memory 416) received by the query reception unit 421 based on the statistical information of the data in the DB 451 (hereinafter, “DB statistical information”). Generate query execution plan for. At this time, the cost may be calculated for each of one or more query execution plan candidates, and one of the query execution plan candidates may be selected as the query execution plan.
- the DB statistical information may include, for example, statistical information such as information indicating the number of records, a maximum value and a minimum value of data for each column, or a histogram indicating a distribution status of data for each column for each table 462.
- the DB statistical information is stored in the local storage device 415 or the memory 416.
- the DB statistical information may be generated by the DBMS 412 checking the DB 451 or may be input from the outside of the DBMS 412. Further, the query execution plan may be generated based on not only the DB statistical information but also the query description.
- the query execution unit 423 generates a context
- the context management unit 432 manages the generated context.
- the context is a context indicating the contents for executing the first DB operation of the query execution plan generated in S1002.
- the query execution unit 423 generates one or more tasks.
- the query execution unit 423 executes the task generated in S1004.
- FIG. 14 shows a flow of task execution processing by the DBMS according to the first embodiment.
- the task assignment management unit 431 acquires the execution content of the task. Details of the task execution content acquisition processing are as shown in FIG.
- the query execution unit 423 executes the DB operation by executing the task based on the task execution content acquired in S1101.
- the query execution unit 423 determines whether to generate a context based on the result of the DB operation executed by the task in S1102. If the result of this determination is affirmative, S1104 is performed. If the result of this determination is negative, the process is terminated.
- the query execution unit 423 generates a context CTX, and the context management unit 432 manages the generated context.
- the context CTX includes information for specifying a page in the storage device group 443 of the external storage apparatus 402 in which the data address set AG is stored (for example, a page ID), and the next entry among the entries stored in the data address set AG.
- Information indicating an entry accessed by a task to be started, and the remaining number of entries accessed by task execution (number of tasks that can be generated) are included.
- the execution task management unit 426 generates a task in accordance with a task generation request from the query execution unit 423.
- the query execution unit 423 executes the task generated in S1104.
- FIG. 15 shows a flow of task execution content acquisition processing (S1101 in FIG. 14) according to the first embodiment.
- the task assignment management unit 431 performs a task start information selection process.
- the task start information TS is a set of a context CTX and a data address set AG associated therewith.
- the details of the task start information selection process are as shown in FIG.
- the task assignment management unit 431 acquires task execution contents from the task start information TS selected in S1201.
- the task execution content includes the address of the access target page acquired from the context CTX of the task start information TS and the data address set AG.
- the task allocation management unit 431 updates the entry accessed by the task to be executed next, which is held in the context CTX of the task start information TS selected in S1201, to the next entry, and the context CTX Subtract 1 from the number of tasks that can be generated.
- the task allocation management unit 431 determines whether the number of tasks that can be generated in the context CTX of the task start information TS selected in S1201 is zero. If the result of this determination is affirmative, S1205 is performed. If the result of this determination is negative, the process is terminated.
- the task assignment management unit 431 deletes the task start information TS selected in S1201, and the context management unit 432 deletes the context CTX of the task start information TS from the management target.
- FIG. 16 shows the flow of task start information selection processing (S1201 in FIG. 15).
- the task allocation management unit 431 selects one from the contexts managed by the context management unit 432, and stores a data address set associated with the context (here, in the description of this process). Obtains the page ID of this page (referred to as page B).
- the task assignment management unit 431 determines whether or not the acquired page B is on the DB buffer 436. Specifically, the task allocation management unit 431 sends an inquiry request including a page ID to the DB buffer management unit 427 to inquire whether the page with the corresponding page ID is stored in the DB buffer 436. Based on the inquiry result, it is determined whether or not the acquired page B is on the DB buffer 436.
- the DB buffer management unit 427 receives the inquiry, refers to the DB buffer management table 435, determines whether there is a page with the corresponding page ID, and notifies the task allocation management unit 431 of the result.
- step S1303 If it is determined in step S1303 that page B is in the DB buffer 436 as a result of the determination in step S1302 (S1303: Y), the task assignment management unit 431 performs step S1307, and if page B is not in the DB buffer 436 (S1303). : N), Step S1304 is performed.
- the task allocation management unit 431 determines that there is no page in the DB buffer 436 that stores a set of data addresses associated with the context in all contexts of the context management unit 432 (S1304: N). In step S1301, the next context is selected and the subsequent processing is performed. On the other hand, when it is determined that there is no page in the DB buffer 436 that stores the data address set associated with the context in all contexts of the context management unit 432 (S1304: Y), the task assignment management unit 431 Processing for selecting a reading context is performed (S1305).
- step S1305 the task assignment management unit 431 executes page read context selection processing for selecting a context for reading a page storing the associated data address set from the external storage apparatus 402 to the DB buffer 436. Details of the page reading context selection processing are as shown in FIG. According to FIG. 17, a context for reading a page from the external storage apparatus 402 to the DB buffer 436 is selected by the page reading context selection process.
- the selected page is referred to as page C
- the selected context is referred to as context C.
- the task allocation management unit 431 transmits a page read request for reading the page C into the DB buffer 436 to the DB buffer management unit 427.
- the DB buffer management unit 427 reads page C from the external storage device 402 into the DB buffer 436 and notifies the task assignment management unit 431 that the page read processing has been completed. Details of the page reading process are as shown in FIG. According to FIG. 19, the page C is read into the DB buffer 436 by the page reading process.
- step S1307 the task assignment management unit 431 selects task start information including the selected context, and ends the process.
- FIG. 17 shows the flow of the page reading context selection process (S1305 in FIG. 16).
- the task assignment management unit 431 selects one context to be processed from the contexts managed by the context management unit 432.
- the task assignment management unit 431 executes DB buffer read determination processing for determining whether or not the page storing the data address set associated with the selected context can be read into the DB buffer 436. To do. Details of the DB buffer read determination processing are as shown in FIG. According to FIG. 18, the determination result as to whether or not the page associated with the selected context can be read into the DB buffer 436 is obtained by the DB buffer read determination process.
- the task allocation management unit 431 determines whether or not the page associated with the selected context can be read into the DB buffer 436, and when the page cannot be read into the DB buffer 436 (S1403: N). Performs S1401, selects the next context, and performs the subsequent processing. On the other hand, if the page can be read into the DB buffer 436 (S1403: Y), the processing ends.
- FIG. 18 shows the flow of the DB buffer read determination process (S1402 in FIG. 17).
- the task allocation management unit 431 determines whether the number of task start information generations per unit time is smaller than the number of task start information consumptions per unit time, and the number of task start information generations per unit time is When the number of task start information consumptions per unit time is smaller, that is, when the total number of task start information tends to decrease (S1501: Y), it is associated with a context having a large number of task creations. If the number of task start information generations per unit time is not smaller than the number of task start information consumptions per unit time, the process proceeds to S1502 in order to preferentially read the page storing the set of data addresses into the DB buffer 436. That is, when the total number of task start information tends to increase (S1501: N), the process proceeds to S1503.
- step S1502 the task allocation management unit 431 determines whether the number of tasks that can be generated in the context selected in step S1401 is equal to or greater than a predetermined threshold, and as a result, if the number of tasks that can be generated is equal to or greater than the threshold (S1502). : Y), the process proceeds to S1504. On the other hand, if the number of tasks that can be generated is not greater than or equal to the threshold (S1502: N), the process proceeds to S1505.
- step S1503 the task assignment management unit 431 determines whether the number of tasks that can be generated in the context selected in step S1401 is equal to or greater than a predetermined threshold, and as a result, if the number of tasks that can be generated is equal to or greater than the threshold (S1503). : Y), the process proceeds to S1505. On the other hand, if the number of tasks that can be generated is not equal to or greater than the threshold (S1503: N), the process proceeds to S1504.
- step S1504 the task assignment management unit 431 determines that the page associated with the selected context can be read, and ends the DB buffer read determination process.
- step S1505 the task assignment management unit 431 determines that the page associated with the selected context cannot be read, and ends the DB buffer read determination process.
- this DB buffer read determination process when the total number of task start information tends to decrease, a page associated with a context having a large number of tasks that can be generated is preferentially read into the DB buffer 436. In this way, when many tasks can be executed efficiently and the total number of task start information tends to increase, pages associated with contexts with a low number of tasks that can be generated are read preferentially to the DB buffer. In this way, task start information can be consumed efficiently.
- FIG. 19 shows the flow of the page reading process (S1306 in FIG. 16).
- the DB buffer management unit 427 determines whether or not there is a free DB buffer surface. If there is no free DB buffer surface (S1601: Y), the process proceeds to S1602, while the free DB buffer surface is free. If there is any (S1601: N), the process proceeds to S1603.
- step S1602 the DB buffer management unit 427 executes DB buffer eviction processing for displacing data from the DB buffer 436. Details of the DB buffer eviction process are as shown in FIG. According to FIG. 20, an empty DB buffer surface can be generated by the DB buffer eviction process. After completion of the DB buffer eviction process, the DB buffer management unit 427 performs S1601.
- step S1603 the DB buffer management unit 427 secures an empty DB buffer surface for storing page data, and reads the page data into the DB buffer surface.
- FIG. 20 shows the flow of the DB buffer eviction process (S1602 in FIG. 19).
- step S1701 the DB buffer management unit 427 executes a eviction target DB buffer surface selection process that selects a DB buffer surface that is a target of data eviction. Details of the eviction target DB buffer surface selection processing are as shown in FIG. According to FIG. 21, it is possible to select a DB buffer surface that is a target of data eviction by the eviction target DB buffer surface selection process.
- the DB buffer management unit 427 determines whether the data of the selected DB buffer surface is dirty data. If the data of the selected DB buffer surface is dirty data (S1702: Y), The process proceeds to S1703, and if the selected data on the DB buffer surface is not dirty data (S1702: N), the process proceeds to S1704.
- the DB buffer management unit 427 writes the contents of the selected DB buffer surface to the storage device group 443 of the external storage apparatus 402.
- step S1704 the DB buffer management unit 427 releases the selected DB buffer surface. Thereby, this DB buffer surface can be used.
- this DB buffer eviction process may be executed when, for example, the number of empty DB buffer planes in the DB buffer 436 becomes a predetermined number or less.
- FIG. 21 shows a flow of the eviction target DB buffer surface selection process (S1701 in FIG. 20).
- step S1801 the DB buffer management unit 427 selects one DB buffer surface as a eviction candidate.
- the DB buffer management unit 427 determines whether the page stored in the selected DB buffer surface is a page associated with the context, and the page associated with the context. If this is the case (S1802: Y), the process proceeds to S1803. If the page is not a page associated with the context (S1802: N), the process ends.
- the determination whether or not the page stored in the selected DB buffer surface is a page associated with the context is specifically performed by the DB buffer management unit 427 using the inquiry request including the page ID. Is transmitted to the context management unit 432 to inquire whether the context associated with the page with the corresponding page ID is managed by the context management unit 432 and to determine based on the inquiry result. Upon receiving the inquiry, the context management unit 432 determines whether there is a context associated with the corresponding page ID in the managed context, and notifies the DB buffer management unit 427 of the result. .
- the DB buffer management unit 427 uses the task allocation management unit 431 to execute DB buffer surface release determination processing for determining whether or not the selected DB buffer surface can be released. Details of the DB buffer surface release determination processing are as shown in FIG. According to FIG. 22, the determination result of whether or not the selected DB buffer can be released is obtained by the DB buffer surface release determination process.
- the DB buffer management unit 427 determines whether or not the selected DB buffer surface can be released. If it is not determined that the selected DB buffer can be released (S1804: N), S1801 is set. If the next DB buffer surface is selected and the subsequent processing is performed, if it is determined that the selected DB buffer surface can be released (S1804: Y), the processing ends.
- FIG. 22 shows a flow of DB buffer surface release determination processing (S1803 in FIG. 21).
- the task allocation management unit 431 determines whether or not the number of task start information generations per unit time is larger than the number of task start information consumptions per unit time, and the number of task start information generations per unit time is When it is larger than the number of task start information consumptions per unit time, that is, when the total number of task start information tends to increase (S1901: Y), it is associated with a context that has a large number of tasks that can be generated.
- the task allocation management unit 431 determines whether or not the number of tasks that can be generated in the context associated with the page stored in the DB buffer surface selected in S1801 in FIG. 21 is equal to or greater than a predetermined threshold. As a result, if the number of tasks that can be generated is equal to or greater than the threshold (S1902: Y), the process proceeds to S1904. If the number of tasks that can be generated is not equal to or greater than the threshold (S1902: N), the process proceeds to S1905.
- step S1903 the task assignment management unit 431 determines whether or not the number of tasks that can be generated in the context associated with the page stored in the DB buffer selected in step S1801 in FIG. 21 is equal to or greater than a predetermined threshold value. If the number of tasks that can be generated is equal to or greater than the threshold (S1903: Y), the process proceeds to S1905. If the number of tasks that can be generated is not equal to or greater than the threshold (S1903: N), the process proceeds to S1904.
- the task allocation management unit 431 determines that the selected DB buffer can be released, and ends the DB buffer surface release determination processing.
- the task allocation management unit 431 determines that the selected DB buffer cannot be released, and ends the DB buffer surface release determination process.
- the DB buffer surface release determination process when the total number of task start information tends to increase, the DB buffer surface that stores a page associated with a context having a large number of tasks that can be generated is preferentially released.
- the task start information can be efficiently consumed by allowing pages associated with contexts with a small number of tasks to be generated to remain in the DB buffer. If the total number of task start information tends to decrease, the DB buffer plane that stores pages associated with contexts with a small number of tasks that can be generated is preferentially released to increase the number of tasks that can be generated.
- Example 2 will be described. At that time, differences from the first embodiment will be mainly described, and description of common points with the first embodiment will be omitted or simplified.
- FIG. 23 is a detailed configuration diagram of a part of the computer system according to the second embodiment.
- a part of the task allocation management unit 431 of the first embodiment and a part of the processing of the DB buffer management unit 427 of the first embodiment are newly provided. Accordingly, the processing of the task allocation management unit 431 and the DB buffer management unit 427 is changed accordingly.
- the task start information storage location management unit 438 manages the task start information storage location management table 439 and answers inquiries from the task allocation management unit 431 and the DB buffer management unit 427.
- the task start information storage location management unit 438 registers, deletes, and updates entries in the task start information location management table 439 based on the notification from the task assignment management unit 431 or the DB buffer management unit 427.
- the task start information storage location management unit 438 refers to the task start information storage location management table 439 when there is an inquiry from the task allocation management unit 431 as to whether or not the page storing the data address set is in the DB buffer.
- the task start information storage location management unit 438 refers to the task start information storage location management table 439 when there is an inquiry from the DB buffer management unit 427 as to whether or not to release the DB buffer. It is determined whether or not the corresponding DB buffer data can be evicted from the main memory, and the determination result is notified to the DB buffer management unit 427.
- FIG. 24 shows a configuration of a task start information storage location management table according to the second embodiment.
- the task start information storage location management table 439 includes a task start information ID 439a, a data address set storage location 439b, and main memory eviction availability 439c as information for each task start information.
- Various information is as follows.
- the task start information ID 439a indicates an ID (task start information ID) for identifying the task start information.
- the data address set storage location 439b is information on the storage location where the data address set of the corresponding task start information is stored. For example, when the data address set is stored in the DB buffer surface 437, the data address set storage location 439b becomes “main memory” and is not stored in the DB buffer but in the storage device group 443 of the external storage apparatus 402. If it is, it becomes “secondary memory”.
- Main memory eviction 439c indicates whether or not the corresponding data address set can be released from the main storage device, that is, the DB buffer surface 437.
- the task allocation management unit 431 When the task allocation management unit 431 generates the task start information, deletes the task start information, changes the availability of release from the DB buffer of the page storing the data address set of the task start information, the contents are displayed.
- the task start information storage location management unit 438 is notified.
- the task allocation management unit 431 executes DB buffer release determination processing shown in FIG. 22 for each task start information at a predetermined timing, and stores a data address set of each task start information.
- the task start information storage location management unit 438 is notified of the determination result indicating whether or not the DB buffer surface storing the page to be stored can be released.
- the task allocation management unit 431 inquires of the task start information storage location management unit 438 whether or not the DB buffer 436 has a page for storing a set of data addresses associated with the context.
- the DB buffer management unit 427 stores the contents of the task start information storage location management unit when the DB buffer surface storing the page storing the data address set of the task start information is secured and when the DB buffer surface is released. 438 is notified.
- the DB buffer management unit 427 inquires of the task start information storage location management unit 438 whether or not the DB buffer surface may be released.
- Example 3 will be described. At that time, the differences from the first and second embodiments will be mainly described, and the description of the common points with the first and second embodiments will be omitted or simplified.
- FIG. 25 shows a configuration of a computer system according to the third embodiment.
- An application server (hereinafter referred to as AP server) 3102 is connected to the DB server 401 so as to be able to communicate via the communication network 3112, and an external storage apparatus 402 is connected so as to be able to communicate via the communication network 403. ing.
- a user terminal (client terminal) 3101 is connected to the AP server 3102 via a communication network arc 3111 so that communication can be performed.
- the DB server 401 executes a DBMS that manages the DB.
- the external storage device 402 stores a DB.
- the AP server 3102 executes an AP that issues a query to the DBMS executed by the DB server 401.
- the user terminal 3101 issues a request to the AP executed by the AP server 3102.
- An AP server management terminal 3103, a DB server management terminal 3104, and a storage management terminal 3105 are connected to the AP server 3102, the DB server 401, and the external storage device 402 via communication networks 3114, 3115, and 3116, respectively.
- the AP server management terminal 3103 is a terminal that manages the AP server 3102
- the DB server management terminal 3104 is a terminal that manages the DB server 401
- the storage management terminal 3105 is a terminal that manages the external storage apparatus 402.
- At least two of the management terminals 3103 to 3105 may be common (integrated).
- At least two of the communication networks 3111, 3112, 3114, 3115, 3116, and 403 may be common (integrated).
- the AP server 3102 receives a request (hereinafter referred to as a user request) from the user terminal 3101.
- the AP server 3102 generates a query according to the user request received in S31, and issues the generated query to the DB server 401.
- the DB server 401 receives a query from the AP server 3102, executes the query, and issues a data input / output request (for example, a data read request) to the external storage apparatus 402 as the query is executed.
- the DB server 401 may issue a plurality of data input / output requests in parallel in executing one query.
- S33 may be performed a plurality of times in parallel.
- the DB server 401 receives a response to the data input / output request from the external storage apparatus 402 in executing the query.
- the DB server 401 may issue a plurality of data input / output requests in parallel in executing one query. Therefore, in the execution of one query, S34 may be performed a plurality of times in parallel.
- the DB server 401 transmits the query execution result to the AP server 3102.
- the AP server 3102 receives the query execution result, and transmits to the user terminal 3101 an answer to the user request received in S31 according to the execution result.
- the query execution unit 423 reads the data from the DB 451 by executing the same task without generating a new task when there is one data address that matches the DB operation condition.
- a new task (child task) is generated based on the task (parent task) and the child task is executed (child
- the data may be read from the DB 451 by assigning a data address to the task.
- the DB 451 may exist in a storage device having a slower access speed than the memory 416 other than the memory 416 in the DB server 401, for example, the local storage device 415.
- DBMS Database management system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
(S1)索引Aを用いて、カラムA_countryの値がクエリの指定値である表Aのレコードに対応したレコードIDの集合を検索する、
(S2)S1で見つかったレコードID集合を用いて、表Aの該当するレコードを含むデータをフェッチし、カラムA_factory_sizeの値がクエリの指定値である50より大きいレコードの、カラムA_factory_nameの値とカラムA_factory_idの値とを抽出する、
(S3)索引Bを用いて、カラムB_factory_idの値がS2で抽出したカラムA_factory_idの値と一致する表BのレコードのレコードID集合を検索する、
(S4)S3で見つかったレコードID集合を用いて、表Bの該当するレコードを含むデータをフェッチし、カラムB_product_priceの値がクエリの指定値である500より大きいレコードの、カラムB_product_idとカラムB_product_nameの値とを抽出する、
(S5)索引Cを用いて、カラムC_product_idの値がS4で抽出したカラムB_product_idの値と一致する表CのレコードのレコードID集合を検索する、
(S6)S5で見つかったレコードID集合を用いて、表Cの該当するレコードを含むデータをフェッチし、該当するレコードのカラムC_countの値を抽出する、
(S7)カラムC_countの値を、抽出したカラムA_factory_nameの値及びカラムB_product_nameの値でグループ化して、各グループにおけるカラムC_countの値の合計値を算出する、
(S8)クエリ実行結果として、抽出したカラムA_factory_nameの値、カラムB_product_nameの値、及びS7で算出したカラムC_countの値の合計値を生成し、クエリ発行元に返す、
を行う。
(*)横軸は、時刻を表す。
(*)図上部の横に長い五角形は、1つのタスクによる一連のDBオペレーションを意味する。五角形の左端はタスクによりDBオペレーションを開始する時刻を表し、五角形の右端は当該タスクによるDBオペレーションを終了する時刻を表す。
(*)図上部の五角形の内部の値は、タスクがDBオペレーションの実行に伴いアクセスする索引のページを示す情報(例えば、ページID)、又は、表のレコードを示す情報(例えば、レコードID)を表す。
(*)同時に実行可能なタスク数は、「3」とする。
(*)図中のひし形は、タスク開始情報TSのデータアドレス集合AGを表す。ひし形の中の数字は、当該タスク開始情報TSのコンテキストCTXに含まれるタスク生成可能数を表す。なお、図上部の五角形内のひし形の位置は、当該データアドレス集合AGを含むタスク開始情報TSが生成された時点を示す。
(*)図中部のDBバッファ436内におけるひし形に続く太い実線は、データアドレス集合AGを記憶するページがDBバッファ436に格納されていることを示し、太い破線は、データアドレス集合AGを記憶するページがDBバッファ436に格納されていないことを示す。
(*)DBバッファ436に同時に格納可能なページ数の上限数は、「2」とする。
(*)DBバッファ436から記憶デバイス群443への破線矢印は、DBバッファ436から記憶デバイス群443へのページの追い出しを示し、記憶デバイス群443からDBバッファ436への破線矢印は、記憶デバイス群443からDBバッファ436へのページの読込みを示す。なお、追い出し対象のページが、ダーティページ(記憶デバイス群443に格納されているページのデータと異なるデータが格納されているページ)でない場合には、DBMSは、そのページを、記憶デバイス群443に移動させずに、DBバッファから削除するだけでも良い。
(*)記憶デバイス群443のアクセス速度は、DBバッファ436を保持するメモリ416のアクセス速度よりも遅い。なお、アクセス速度が速い/遅いとは、単位時間当たりに入出力されるデータの量が多い/少ないであっても良いし、アクセス元(DBMS)からがアクセス要求が発行されてからそのアクセス要求に対するレスポンスがアクセス元(DBMS)へ戻るまでのレスポンスタイムの短い/遅いで良い。従って、例えば、メモリ416が、不揮発性半導体メモリであって、記憶デバイス群443を構成する各記憶デバイスも、同じアクセス速度の不揮発性半導体メモリであったとしても、記憶デバイス群443が、外部のストレージ装置に存在する場合には、ネットワーク転送速度が影響するので、記憶デバイス群443のアクセス速度は、メモリ416のアクセス速度よりも遅い。
DBMSは、タスク10Aを生成し、タスク10Aの実行により、記憶デバイス群443上の索引Aのページa11にアクセスする。なお、ページにアクセスする際は、アクセス対象ページがDBバッファ436に格納されている場合は、当該DBバッファ436に格納されているページを参照し、アクセス対象ページがDBバッファ436に格納されていない場合は、ページを記憶デバイス群443からDBバッファ436へ読込み、DBバッファ436に格納されたページを参照する。
DBMSは、タスク10Aの実行により、クエリの指定値とページa11のエントリに基づいて、アクセスすべき下位ページがa21~a25であることを特定し、タスク開始情報を生成する。すなわち、コンテキストを生成し、前記アクセスすべきと特定したページa21~a25のアドレスが格納されているページa11をデータアドレス集合11Aとして前記生成したコンテキストと関連付ける。DBバッファに同時に格納可能なページ数の上限は2であり、この時点でアクセスされるページ数は1であるので、データアドレス集合11AはDBバッファ上にある。また、前記コンテキストについて、次にアクセスすべきエントリをa22に設定し、タスク生成可能数を4に設定する。これにより、データアドレス集合11Aとそのデータアドレス集合11Aに関連付けられたコンテキストとのセットとしてのタスク開始情報が完成する。
続いて、DBMSは、タスク10Aの実行により、ページa21にアクセスする。
また、実行可能な同時タスク数は「3」であり、実行中タスクの数は「1」である(タスク10Aのみが実行中である)ため、生成可能なタスクの数は、「3」から「1」を減算した「2」であるので、DBMSは、2つのタスク10B及び10Cを生成する。
また、DBMSは、タスク10Bの実行により、タスク開始情報を参照してタスクを1つ実行開始する。すなわち、データアドレス集合11Aと関連づけられたコンテキストを参照して次にアクセスすべきエントリがa22であることを特定し、前記次にアクセスすべきエントリを次のページであるa23に変更する。そして、タスク生成可能数を1減算して3に変更し、データアドレス集合11Aを参照して前記ページa22のアドレスを取得し、取得したアドレスに基づいてページa22にアクセスする。
また、DBMSは、タスク10Cの実行により、タスク開始情報を参照してタスクを1つ実行開始する。すなわち、データアドレス集合11Aと関連づけられたコンテキストを参照して次にアクセスすべきエントリがa23であることを特定し、前記次にアクセスすべきエントリを次のページであるa24に変更する。そして、タスク生成可能数を1減算して2に変更し、データアドレス集合11Aを参照して前記ページa23のアドレスを取得し、前記取得したアドレスに基づいてページa23にアクセスする。
DBMSは、タスク10Aの実行により、クエリの指定値とページa21のエントリに基づいて、アクセスすべきレコードがA1であることを特定し、ページa21を参照して前記レコードA1のアドレスを取得し、前記取得したアドレスに基づいてページA1にアクセスする。
また、DBMSは、タスク10Bの実行により、クエリの指定値とページa22のエントリに基づいて、アクセスすべきレコードA2とA3とを特定し、タスク開始情報を生成する。すなわち、コンテキストを生成し、前記アクセスすべきと特定したページA2とA3のアドレスが格納されているページa22をデータアドレス集合11Bとして前記生成したコンテキストと関連付け、当該コンテキストについて、次にアクセスすべきエントリをA3に設定し、タスク生成可能数を1に設定する。これにより、データアドレス集合11Bとそのデータアドレス集合11Bに関連付けられたコンテキストとのセットとしてのタスク開始情報が完成する。続いて、DBMSは、タスク10Bの実行により、ページA2にアクセスする。
また、DBMSは、タスク10Cの実行により、クエリの指定値とページa23のエントリに基づいて、アクセスすべきレコードA4とA5とを特定し、タスク開始情報を生成する。すなわち、コンテキストを生成し、前記アクセスすべきと特定したページA4とA5のアドレスが格納されているページa23をデータアドレス集合11Cとして前記生成したコンテキストと関連付け、当該コンテキストについて、次にアクセスすべきエントリをA5に設定し、タスク生成可能数を1に設定する。これにより、データアドレス集合11Cとそのデータアドレス集合11Cに関連付けられたコンテキストとのセットとしてのタスク開始情報が完成する。続いて、DBMSは、タスク10Cの実行により、ページA4にアクセスする。
DBMSは、データアドレス集合11Bを記憶するページと、データアドレス集合11Cを記憶するページとをDBバッファ436に格納することとなるが、DBバッファ436に同時に格納可能なページの数は、「2」である。このため、DBMSは、データアドレス集合11B及び11Cを記憶するページのうちの少なくとも1つをDBバッファ436に格納する前に、DBバッファ436上の最も古いデータアドレス集合(DBバッファ436に格納されているデータアドレス集合のうち最初にDBバッファ436に格納されたデータアドレス集合)11Aを記憶するページを、記憶デバイス群443に追い出す。なお、t1においてアクセスされたページa21もバッファに格納されるため上記挙動に影響を与え得る。図8では本発明の要点を簡潔に説明するため、ページa21は一時的にDBバッファに格納され、A1を特定した後はすぐに記憶デバイス群443に追い出されると仮定して説明を行うが、後述の通り、本発明はこの仮定に限定されるものではない。
DBMSは、タスク10Aの実行により、レコードA1がクエリで指定された条件を満たすことを判定し、当該レコードに基づいて索引Bの検索条件を特定し、索引Bのページb11にアクセスする。
また、DBMSは、タスク10Bの実行により、レコードA2がクエリで指定された条件を満たさないことを判定する。続いて、タスクを実行するため、最初に生成されたタスク開始情報(データアドレス集合11Aとそれに関連づけられたコンテキストから成るタスク開始情報)を参照する。すなわち、データアドレス集合11Aと関連づけられたコンテキストを参照して次にアクセスすべきエントリがa24であることを特定し、前記次にアクセスすべきエントリを次のページであるa25に変更し、タスク生成可能数を1減算して1に変更し、データアドレス集合11Aを参照して前記ページa24のアドレスを取得しようと試みる。しかし、t2においてデータアドレス集合11Aは、記憶デバイス群443に追い出されており、DBバッファ436上に存在しないため、データアドレス集合11Aを記憶するページを記憶デバイス群443からDBバッファ436に読込む処理を行う。このため、タスク10Bは、データアドレス集合11Aを記憶するページがメモリ416に読込まれるのを待つ。ここで、DBMSは、データアドレス集合11Aを記憶するページをDBバッファ436に読込むと、DBバッファ436に格納されるページの数が、格納可能な数「3」を超えてしまうので、DBバッファ436の最も古いデータアドレス集合11Bを記憶するページを、記憶デバイス群443に追い出す。
また、DBMSは、タスク10Cの実行により、レコードA4がクエリで指定された条件を満たすことを判定し、当該レコードに基づいて索引Bの検索条件を特定し、索引Bのページb11にアクセスする。
DBMSは、タスク10Aの実行により、t3で特定した索引Bの検索条件とページb11のエントリに基づいて、アクセスすべき下位ページがb21であることを特定し、ページb11を参照してページb21のアドレスを取得し、前記取得したアドレスに基づいてページb21にアクセスする。
また、DBMSは、タスク10Bの実行により、t3で記憶デバイス群443からDBバッファ436に読込む処理を行ったデータアドレス集合11Aを参照してページa24のアドレスを取得し、前記取得したアドレスに基づいてページa24にアクセスする。
また、DBMSは、タスク10Cの実行により、t3で特定した索引Bの検索条件とページb11のエントリに基づいて、アクセスすべき下位ページがb23であることを特定し、ページb11を参照してページb23のアドレスを取得し、前記取得したアドレスに基づいてページb23にアクセスする。
DBMSは、タスク10Aの実行により、t3で特定した索引Bの検索条件とページb21のエントリに基づいて、アクセスすべき下位ページが存在しないことを判定する。続いて、タスクを実行するため、最初に生成されたタスク開始情報(データアドレス集合11Aとそれに関連づけられたコンテキストから成るタスク開始情報)を参照する。すなわち、データアドレス集合11Aと関連づけられたコンテキストを参照して次にアクセスすべきエントリがa25であることを特定し、タスク生成可能数を1減算して0になることを確認し、データアドレス集合11Aを参照して前記ページa25のアドレスを取得し、当該タスク開始情報を消去し、前記取得したアドレスに基づいてページa25にアクセスする。
また、DBMSは、タスク10Bの実行により、クエリの指定値とページa24のエントリに基づいて、アクセスすべきレコードがA6であることを特定し、ページa24を参照して前記レコードA6のアドレスを取得し、前記取得したアドレスに基づいてページA6にアクセスする。
また、DBMSは、タスク10Cの実行により、t3で特定した索引Bの検索条件とページb23のエントリに基づいて、アクセスすべきレコードがB1~B3であることを特定し、タスク開始情報を生成する。すなわち、コンテキストを生成し、前記アクセスすべきと特定したページB1~B3のアドレスが格納されているページb23をデータアドレス集合11Dとして前記生成したコンテキストと関連付け、当該コンテキストについて、次にアクセスすべきエントリをB2に設定し、タスク生成可能数を2に設定する。これにより、データアドレス集合11Dとそのデータアドレス集合11Dに関連付けられたコンテキストとのセットとしてのタスク開始情報が完成する。続いて、DBMSは、タスク10Cの実行により、ページB1にアクセスする。
ここで、DBMSは、データアドレス集合11Dを記憶するページをDBバッファ436に格納することとなるが、DBバッファ436には、その時点には、データアドレス集合11A及び11Cを記憶するページが格納されており、DBバッファ436に格納可能なページの数は、「2」である。このため、DBMSは、データアドレス集合11Dを記憶するページをDBバッファ436に格納する前に、DBバッファ436上の参照されていない最も古いデータアドレス集合11Cを記憶するページを、記憶デバイス群443に追い出す。
DBMSは、タスク10Aの実行により、クエリの指定値とページa25のエントリに基づいて、アクセスすべきレコードがA7であることを特定し、ページa25を参照して前記レコードA7のアドレスを取得し、前記取得したアドレスに基づいてページA7にアクセスする。
また、DBMSは、タスク10Bの実行により、レコードA6がクエリで指定された条件を満たさないことを判定する。続いて、タスクを実行するため、タスク生成可能数が1以上のタスク開始情報の中で最初に生成されたタスク開始情報(データアドレス集合11Bとそれに関連づけられたコンテキストから成るタスク開始情報)を参照する。すなわち、データアドレス集合11Bと関連づけられたコンテキストを参照して次にアクセスすべきエントリがA3であることを特定し、タスク生成可能数を1減算して0になることを確認し、データアドレス集合11Bを参照して前記ページA3のアドレスを取得しようと試みる。しかし、t3においてデータアドレス集合11Bを記憶するページは、記憶デバイス群443に追い出されており、DBバッファ436上に存在しないため、データアドレス集合11Bを記憶するページを記憶デバイス群443からDBバッファ436に読込む処理を行う。このため、タスク10Bは、データアドレス集合11Bを記憶するページがDBバッファ436に読込まれるのを待つ。
また、DBMSは、タスク10Cの実行により、レコードB1がクエリで指定された条件を満たすことを判定し、当該レコードに基づいて索引Cの検索条件を特定し、索引Cのページc11にアクセスする。
DBMSは、タスク10Aの実行により、レコードA7がクエリで指定された条件を満たさないことを判定する。続いて、タスクを実行するため、タスク生成可能数が1以上のタスク開始情報の中で最初に生成されたタスク開始情報(データアドレス集合11Cとそれに関連づけられたコンテキストから成るタスク開始情報)を参照する。すなわち、データアドレス集合11Cと関連づけられたコンテキストを参照して次にアクセスすべきエントリがA5であることを特定し、タスク生成可能数を1減算して0になることを確認し、データアドレス集合11Cを参照して前記ページA5のアドレスを取得しようと試みる。しかし、t5においてデータアドレス集合11Cを記憶するページは、記憶デバイス群443に追い出されており、DBバッファ436上に存在しないため、データアドレス集合11Cを記憶するページを記憶デバイス群443からDBバッファ436に読込む処理を行う。このため、タスク10Aは、データアドレス集合11Cを記憶するページがDBバッファ436に読込まれるのを待つ。ここで、DBMSは、データアドレス集合11Cを記憶するページをDBバッファ436に読込むこととなるが、DBバッファ436には、その時点には、データアドレス集合11B及び11Dを記憶するページが格納されており、DBバッファ436に格納可能なページの数は、「2」である。このため、DBMSは、DBバッファ436上の参照されていない最も古いデータアドレス集合11Dを記憶するページを、記憶デバイス群443に追い出す。
また、DBMSは、タスク10Bの実行により、t6で記憶デバイス群443からDBバッファ436に読込む処理を行ったデータアドレス集合11Bを参照してページA3のアドレスを取得し、タスク生成可能数が0になった当該タスク開始情報を削除し、前記取得したアドレスに基づいてページA3にアクセスする。
また、DBMSは、タスク10Cの実行により、t6で特定した索引Cの検索条件とページc11のエントリに基づいて、アクセスすべき下位ページがc21であることを特定し、ページc11を参照してページc21のアドレスを取得し、前記取得したアドレスに基づいてページc21にアクセスする。
DBMSは、タスク10Aの実行により、t7で記憶デバイス群443からDBバッファ436に読込む処理を行ったデータアドレス集合11Cを参照してページA5のアドレスを取得し、タスク生成可能数が0になった当該タスク開始情報を削除し、前記取得したアドレスに基づいてページA5にアクセスする。
また、DBMSは、タスク10Bの実行により、レコードA3がクエリで指定された条件を満たすことを判定し、当該レコードに基づいて索引Bの検索条件を特定し、索引Bのページb11にアクセスする。
また、DBMSは、タスク10Cの実行により、t6で特定した索引Cの検索条件とページc21のエントリに基づいて、アクセスすべき下位ページがc31であることを特定し、ページc21を参照してページc31のアドレスを取得し、前記取得したアドレスに基づいてページc31にアクセスする。
DBMSは、タスク10Aの実行により、レコードA5がクエリで指定された条件を満たすことを判定し、当該レコードに基づいて索引Bの検索条件を特定し、索引Bのページb11にアクセスする。
また、DBMSは、タスク10Bの実行により、t8で特定した索引Bの検索条件とページb11のエントリに基づいて、アクセスすべき下位ページがb22であることを特定し、ページb11を参照してページb22のアドレスを取得し、前記取得したアドレスに基づいてページb22にアクセスする。
また、DBMSは、タスク10Cの実行により、t6で特定した索引Cの検索条件とページc31のエントリに基づいて、アクセスすべきレコードがC1であることを特定し、ページc31を参照して前記レコードC1のアドレスを取得し、前記取得したアドレスに基づいてページC1にアクセスする。
DBMSは、タスク10Aの実行により、t9で特定した索引Bの検索条件とページb11のエントリに基づいて、アクセスすべき下位ページがb24であることを特定し、ページb11を参照してページb24のアドレスを取得し、前記取得したアドレスに基づいてページb24にアクセスする。
また、DBMSは、タスク10Bの実行により、t8で特定した索引Bの検索条件とページb22のエントリに基づいて、アクセスすべき下位ページが存在しないことを判定する。続いて、タスクを実行するため、タスク生成可能数が1以上のタスク開始情報の中で最初に生成されたタスク開始情報(データアドレス集合11Dとそれに関連づけられたコンテキストから成るタスク開始情報)を参照する。すなわち、データアドレス集合11Dと関連づけられたコンテキストを参照して次にアクセスすべきエントリがB2であることを特定し、前記次にアクセスすべきエントリを次のページであるB3に変更し、タスク生成可能数を1減算して1に変更し、データアドレス集合11Dを参照して前記ページB2のアドレスを取得しようと試みる。しかし、t7においてデータアドレス集合11Dを記憶するページは、記憶デバイス群443に追い出されており、DBバッファ436上に存在しないため、データアドレス集合11Dを記憶するページを記憶デバイス群443からDBバッファ436に読込む処理を行う。このため、タスク10Bは、データアドレス集合11Dを記憶するページがDBバッファ436に読込まれるのを待つ。
また、DBMSは、タスク10Cの実行により、レコードC1がクエリで指定された条件を満たすことを判定する。続いて、タスクを実行するため、タスク生成可能数が1以上のタスク開始情報の中で最初に生成されたタスク開始情報(データアドレス集合11Dとそれに関連づけられたコンテキストから成るタスク開始情報)を参照する。すなわち、データアドレス集合11Dと関連づけられたコンテキストを参照して次にアクセスすべきエントリがB3であることを特定し、タスク生成可能数を1減算して0になることを確認し、データアドレス集合11Dを参照して前記ページB3のアドレスを取得しようと試みる。しかし、t7においてデータアドレス集合11Dを記憶するページは、記憶デバイス群443に追い出されており、DBバッファ436上に存在しないため、データアドレス集合11Dを記憶するページを記憶デバイス群443からDBバッファ436に読込む処理を行う。このため、タスク10Cは、データアドレス集合11Dを記憶するページがDBバッファ436に読込まれるのを待つ。
DBMSは、タスク10Aの実行により、t9で特定した索引Bの検索条件とページb24のエントリに基づいて、アクセスすべき下位ページが存在しないことを判定する。続いて、タスクを実行するため、タスク生成可能数が1以上のタスク開始情報を検索するが、この時点ではタスク生成可能数が1以上のタスク開始情報がないため、タスク10Aを終了する。
また、DBMSは、タスク10Bの実行により、t10で記憶デバイス群443からDBバッファ436に読込む処理を行ったデータアドレス集合11Dを参照してページB2のアドレスを取得し、前記取得したアドレスに基づいてページB2にアクセスする。
また、DBMSは、タスク10Cの実行により、t10で記憶デバイス群443からDBバッファ436に読込む処理を行ったデータアドレス集合11Dを参照してページB3のアドレスを取得し、タスク生成可能数が0になった当該タスク開始情報を削除し、前記取得したアドレスに基づいてページB3にアクセスする。
DBMSは、タスク10Bの実行により、レコードB2がクエリで指定された条件を満たさないことを判定する。続いて、タスクを実行するため、タスク生成可能数が1以上のタスク開始情報を検索するが、この時点ではタスク生成可能数が1以上のタスク開始情報がないため、タスク10Bを終了する。
また、DBMSは、タスク10Cの実行により、レコードB3がクエリで指定された条件を満たさないことを判定する。続いて、タスクを実行するため、タスク生成可能数が1以上のタスク開始情報を検索するが、この時点ではタスク生成可能数が1以上のタスク開始情報がないため、タスク10Cを終了する。
(t2)において、DBMSは、DBバッファ436から記憶デバイス群443にデータアドレス集合を記憶するページ追い出すが、ここで、DBバッファ436にデータアドレス集合を記憶するページが複数存在する場合には、DBMSは、単純に最も古いデータアドレス集合(DBバッファ436に格納されているデータアドレス集合のうち最初にDBバッファ436に格納されたデータアドレス集合)を記憶するページを追い出し対象とするのではなく、タスク開始情報の生成スピード(単位時間当たりに生成するタスク開始情報の数)と、タスク開始情報の消費スピード(単位時間当たりに消費するタスク開始情報の数)との相対的な関係、および各タスク開始情報のコンテキストに保持されているタスク生成可能数に基づいて、追い出し対象とするデータアドレス集合を記憶するページを決定する。具体的には、DBMSは、タスク開始情報の生成スピードと、タスク開始情報の消費スピードとの比較結果に基づいて、追い出し対象とするデータアドレス集合を記憶するページを決定する。互いに比較される生成スピードと消費スピードは、同じ時間帯での生成スピードと消費スピードで良い。
DBMSは、タスク12Aの実行により、レコードA1がクエリで指定された条件を満たすことを判定し、当該レコードに基づいて索引Bの検索条件を特定し、索引Bのページb11にアクセスする。
また、DBMSは、タスク12Bの実行により、レコードA2がクエリで指定された条件を満たさないことを判定する。続いて、タスクを実行するため、タスク開始情報を参照する。ここで、実施例1においては、DBMSは、データアドレス集合を記憶するページがDBバッファ436に存在するタスク開始情報を優先して参照する。なお、DBバッファ436にデータアドレス集合を記憶するページが複数ある場合には、DBMSは、タスク開始情報のコンテキストに保持されているタスク生成可能数が少ないタスク開始情報を優先して参照しても良い。DBMSは、タスク12Bの実行により、DBバッファ436に存在するデータアドレス集合13Bと関連づけられたコンテキストを参照して次にアクセスすべきエントリがA3であることを特定し、タスク生成可能数を1減算して0になることを確認し、データアドレス集合13Bを参照して前記ページA3のアドレスを取得し、タスク生成可能数が0になった当該タスク開始情報を削除し、前記取得したアドレスに基づいてページA3にアクセスする。
また、DBMSは、タスク12Cの実行により、レコードA4がクエリで指定された条件を満たすことを判定し、当該レコードに基づいて索引Bの検索条件を特定し、索引Bのページb11にアクセスする。
DBMSは、タスク12Aの実行により、t3で特定した索引Bの検索条件とページb11のエントリに基づいて、アクセスすべき下位ページがb21であることを特定し、ページb11を参照してページb21のアドレスを取得し、前記取得したアドレスに基づいてページb21にアクセスする。
また、DBMSは、タスク12Bの実行により、レコードA3がクエリで指定された条件を満たすことを判定し、当該レコードに基づいて索引Bの検索条件を特定し、索引Bのページb11にアクセスする。
また、DBMSは、タスク12Cの実行により、t3で特定した索引Bの検索条件とページb11のエントリに基づいて、アクセスすべき下位ページがb23であることを特定し、ページb11を参照してページb23のアドレスを取得し、前記取得したアドレスに基づいてページb23にアクセスする。
DBMSは、タスク12Aの実行により、t3で特定した索引Bの検索条件とページb21のエントリに基づいて、アクセスすべき下位ページが存在しないことを判定する。続いて、タスクを実行するため、DBバッファ436に存在するデータアドレス集合13Cと関連づけられたコンテキストを参照して、次にアクセスすべきエントリがA5であることを特定し、タスク生成可能数を1減算して0になることを確認し、データアドレス集合13Cを参照して前記ページA5のアドレスを取得し、タスク生成可能数が0になった当該タスク開始情報を削除し、前記取得したアドレスに基づいてページA5にアクセスする。
また、DBMSは、タスク12Bの実行により、t4で特定した索引Bの検索条件とページb11のエントリに基づいて、アクセスすべき下位ページがb22であることを特定し、ページb11を参照してページb22のアドレスを取得し、前記取得したアドレスに基づいてページb22にアクセスする。
また、DBMSは、タスク12Cの実行により、t3で特定した索引Bの検索条件とページb23のエントリに基づいて、アクセスすべきレコードがB1~B3であることを特定し、タスク開始情報を生成する。すなわち、コンテキストを生成し、前記アクセスすべきと特定したページB1~B3のアドレスが格納されているページb23をデータアドレス集合13Dとして前記生成したコンテキストと関連付け、当該コンテキストについて、次にアクセスすべきエントリをB2に設定し、タスク生成可能数を2に設定する。これにより、データアドレス集合13Dとそのデータアドレス集合13Dに関連付けられたコンテキストとのセットとしてのタスク開始情報が完成する。続いて、DBMSは、タスク12Cの実行により、ページB1にアクセスする。
DBMSは、タスク12Aの実行により、レコードA5がクエリで指定された条件を満たすことを判定し、当該レコードに基づいて索引Bの検索条件を特定し、索引Bのページb11にアクセスする。
また、DBMSは、タスク12Bの実行により、t4で特定した索引Bの検索条件とページb22のエントリに基づいて、アクセスすべき下位ページが存在しないことを判定する。続いて、タスクを実行するため、DBバッファ436に存在するデータアドレス集合13Dと関連づけられたコンテキストを参照して、次にアクセスすべきエントリがB2であることを特定し、前記次にアクセスすべきエントリを次のページであるB3に変更し、タスク生成可能数を1減算して1に変更し、データアドレス集合13Dを参照して前記ページB2のアドレスを取得し、前記取得したアドレスに基づいてページB2にアクセスする。
また、DBMSは、タスク12Cの実行により、レコードB1がクエリで指定された条件を満たすことを判定し、当該レコードに基づいて索引Cの検索条件を特定し、索引Cのページc11にアクセスする。
DBMSは、タスク12Aの実行により、t6で特定した索引Bの検索条件とページb11のエントリに基づいて、アクセスすべき下位ページがb24であることを特定し、ページb11を参照してページb24のアドレスを取得し、前記取得したアドレスに基づいてページb24にアクセスする。
DBMSは、タスク12Bの実行により、レコードB2がクエリで指定された条件を満たさないことを判定する。続いて、タスクを実行するため、DBバッファ436に存在するデータアドレス集合13Dと関連づけられたコンテキストを参照して、次にアクセスすべきエントリがB3であることを特定し、タスク生成可能数を1減算して0になることを確認し、データアドレス集合13Dを参照して前記ページB3のアドレスを取得し、タスク生成可能数が0になった当該タスク開始情報を削除し、前記取得したアドレスに基づいてページB3にアクセスする。
また、DBMSは、タスク12Cの実行により、t6で特定した索引Cの検索条件とページc11のエントリに基づいて、アクセスすべき下位ページがc21であることを特定し、ページc11を参照してページc21のアドレスを取得し、前記取得したアドレスに基づいてページc21にアクセスする。
DBMSは、タスク12Aの実行により、t6で特定した索引Bの検索条件とページb24のエントリに基づいて、アクセスすべき下位ページが存在しないことを判定する。続いて、タスクを実行するため、DBバッファ436に存在するデータアドレス集合13Aと関連づけられたコンテキストを参照して、次にアクセスすべきエントリがa24であることを特定し、前記次にアクセスすべきエントリを次のページであるa25に変更し、タスク生成可能数を1減算して1に変更し、データアドレス集合13Aを参照して前記ページa24のアドレスを取得し、前記取得したアドレスに基づいてページa24にアクセスする。
また、DBMSは、タスク12Bの実行により、レコードB3がクエリで指定された条件を満たさないことを判定する。続いて、タスクを実行するため、DBバッファ436に存在するデータアドレス集合13Aと関連づけられたコンテキストを参照して、次にアクセスすべきエントリがa25であることを特定し、タスク生成可能数を1減算して0になることを確認し、データアドレス集合13Aを参照して前記ページa25のアドレスを取得し、当該タスク開始情報を消去し、前記取得したアドレスに基づいてページa25にアクセスする。
また、DBMSは、タスク12Cの実行により、t6で特定した索引Cの検索条件とページc21のエントリに基づいて、アクセスすべき下位ページがc31であることを特定し、ページc21を参照してページc31のアドレスを取得し、前記取得したアドレスに基づいてページc31にアクセスする。
DBMSは、タスク12Aの実行により、クエリの指定値とページa24のエントリに基づいて、アクセスすべきレコードがA6であることを特定し、ページa24を参照して前記レコードA6のアドレスを取得し、前記取得したアドレスに基づいてページA6にアクセスする。
また、DBMSは、タスク12Bの実行により、クエリの指定値とページa25のエントリに基づいて、アクセスすべきレコードがA7であることを特定し、ページa25を参照して前記レコードA7のアドレスを取得し、前記取得したアドレスに基づいてページA7にアクセスする。
また、DBMSは、タスク12Cの実行により、t6で特定した索引Cの検索条件とページc31のエントリに基づいて、アクセスすべきレコードがC1であることを特定し、ページc31を参照して前記レコードC1のアドレスを取得し、前記取得したアドレスに基づいてページC1にアクセスする。
DBMSは、タスク12Aの実行により、レコードA6がクエリで指定された条件を満たさないことを判定する。続いて、タスクを実行するため、タスク生成可能数が1以上のタスク開始情報を検索するが、この時点ではタスク生成可能数が1以上のタスク開始情報がないため、タスク12Aを終了する。
また、DBMSは、タスク12Bの実行により、レコードA7がクエリで指定された条件を満たさないことを判定する。続いて、タスクを実行するため、タスク生成可能数が1以上のタスク開始情報を検索するが、この時点ではタスク生成可能数が1以上のタスク開始情報がないため、タスク12Bを終了する。
また、DBMSは、タスク12Cの実行により、レコードC1がクエリで指定された条件を満たすことを判定する。続いて、タスクを実行するため、タスク生成可能数が1以上のタスク開始情報を検索するが、この時点ではタスク生成可能数が1以上のタスク開始情報がないため、タスク12Cを終了する。
(*)バッファID435aは、DBバッファ面437を識別するためのIDを示す。
(*)ページID435bは、対応するDBバッファ面437に格納されているページの外部ストレージ装置402における格納位置を特定することのできる情報(ここでは、ページID)である。なお、対応するDBバッファ面437にページが格納されていない場合には、ページID435bとして空を示す情報が設定される。
(*)タスク開始情報ID439aは、タスク開始情報を識別するためのID(タスク開始情報ID)を示す。
(*)データアドレス集合格納場所439bは、対応するタスク開始情報のデータアドレス集合が格納されている格納場所の情報である。データアドレス集合格納場所439bは、例えば、データアドレス集合がDBバッファ面437に格納されている場合には、「主記憶」となり、DBバッファではなく、外部ストレージ装置402の記憶デバイス群443に格納されている場合には、「二次記憶」となる。
(*)主記憶追出可否439cは、対応するデータアドレス集合を主記憶装置、すなわち、DBバッファ面437から解放することが可能であるか否かを示す。
(S31)APサーバ3102が、ユーザ端末3101から要求(以下、ユーザ要求)を受信する。
(S32)APサーバ3102が、S31で受信したユーザ要求に従いクエリを生成し、生成したクエリをDBサーバ401に発行する。
(S33)DBサーバ401が、APサーバ3102からのクエリを受け付け、そのクエリを実行し、そのクエリの実行に伴い、データ入出力要求(例えばデータ読出し要求)を外部ストレージ装置402に発行する。DBサーバ401は、1つのクエリの実行において、複数のデータ入出力要求を並行して発行することがある。そのため、1つのクエリの実行において、S33が複数回並行して行われることがある。
(S34)DBサーバ401が、クエリの実行において、外部ストレージ装置402からデータ入出力要求に対する応答を受ける。DBサーバ401は、1つのクエリの実行において、複数のデータ入出力要求を並行して発行することがある。そのため、1つのクエリの実行において、S34が複数回並行して行われることがある。
(S35)DBサーバ401が、クエリの実行結果をAPサーバ3102に送信する。
(S36)APサーバ3102が、クエリの実行結果を受信し、その実行結果に従う、S31で受信したユーザ要求に対する回答を、ユーザ端末3101に送信する。
Claims (13)
- 第1の記憶デバイスよりアクセス速度の遅い第2の記憶デバイスに存在するデータベースを管理するデータベース管理システムであって、
前記データベースへのクエリを受け付けるクエリ受付部と、
前記受け付けたクエリを実行するために必要な1以上のDBオペレーションと前記1以上のDBオペレーションの実行手順とを表す情報を含んだクエリ実行プランを生成するクエリ実行プラン生成部と、
前記生成したクエリ実行プランに基づいて前記クエリを実行し、前記クエリの実行において、前記1以上のDBオペレーションを実行するためのタスクを動的に生成し、実行可能な2以上のタスクが存在する場合には、前記2以上のタスクのうちの少なくとも2つを並行して実行するクエリ実行部と、
前記タスクの実行を管理する実行タスク管理部と、
前記第2の記憶デバイスに存在する前記データベースのデータを、前記第1の記憶デバイスに一時的に読出して管理するDBバッファ管理部と
を有し、
前記クエリ実行部はコンテキスト管理部とタスク割当て管理部とを有し、前記タスクにおいて実行を行う内容を示す情報であるタスク開始情報を生成し、前記タスクにより前記タスク開始情報が示す内容を実行し、
前記タスク開始情報は、コンテキストと前記コンテキストに関連づけられたデータアドレス集合とを含み、
前記コンテキストは、前記新たに生成するタスクにおいて実行を開始するDBオペレーションが、前記クエリ実行プランに含まれる情報である1以上のDBオペレーションのうちのいずれであるかを示す第1の情報と、前記第1の情報が示すDBオペレーションに要するデータのアクセス先に関する第2の情報と、前記新たに生成するタスクにより前記1以上のDBオペレーションに関する結果を生成するために必要なデータに関する第3の情報とを含む情報であり、
前記データアドレス集合は、前記第2の記憶デバイスに存在し、前記データのアクセス先に関する第2の情報に基づいて、アクセス先データのアドレスを特定するための情報であり、
前記コンテキスト管理部は、前記生成されたコンテキストを管理し、
前記タスク割当て管理部は、
(A)前記コンテキストと関連づけられたデータアドレス集合が前記第1の記憶デバイスに存在するか否かに基づいてタスク開始情報を選択し、
前記DBバッファ管理部は、
(B)タスク開始情報の管理状態に基づいて、前記第2の記憶デバイスから前記第1の記憶デバイスへデータアドレス集合を読み出し、又は、前記第1の記憶デバイスに読み出されたデータアドレス集合を削除する、
ことを特徴とする、データベース管理システム。 - 前記タスク割当て管理部は、
前記(A)で、前記第1の記憶デバイスに格納されているデータアドレス集合を含んだタスク開始情報が存在するか否かを判定し、その判定の結果が肯定的の場合に、前記第1の記憶デバイスに存在する前記データアドレス集合を含むタスク開始情報を選択し、前記判定が否定的の場合に、前記第2の記憶デバイスに存在するデータアドレス集合を選択し、前記選択されたデータアドレス集合を前記第1の記憶デバイスへ読み出し、前記読み出されたデータアドレス集合を含むタスク開始情報を選択する、
請求項1に記載のデータベース管理システム。 - 前記タスク割当て管理部は、
前記(A)で、前記第1の記憶デバイスに複数のデータアドレス集合が存在する場合に、前記複数のデータアドレス集合をそれぞれ含む複数のタスク開始情報のうち、アクセスされていないデータアドレス数が最も少ないデータアドレス集合を含むタスク開始情報を選択する、
請求項2に記載のデータベース管理システム。 - 前記タスク割当て管理部は、
(C)単位時間当たりに新たに生成される前記タスク開始情報の数である生成スピードと、アクセス先データが全てアクセスされた前記タスク開始情報が単位時間当たりに生じる数である消費スピードとを測定し、
(D)前記生成スピードと前記消費スピードとを比較し、
前記DBバッファ管理部は、前記(D)での比較の結果を基に、前記(B)を行う、
請求項1に記載のデータベース管理システム。 - 前記DBバッファ管理部は、前記(D)での比較の結果が、前記生成スピードが前記消費スピードより速い、である場合に、前記(B)で、前記第1の記憶デバイスから、アクセスされていないデータアドレス数が所定の値より多いデータアドレス集合を削除する、
請求項4に記載のデータベース管理システム。 - 前記DBバッファ管理部は、前記(D)での比較の結果が、前記生成スピードが前記消費スピードより遅い、である場合に、前記(B)で、前記第1の記憶デバイスから、アクセスされていないデータアドレス数が所定の値より少ないデータアドレス集合を削除する、
請求項4に記載のデータベース管理システム。 - 前記DBバッファ管理部は、前記(D)での比較の結果が、前記生成スピードが前記消費スピードより速い、である場合に、前記(B)で、前記1以上のタスク開始情報にそれぞれ対応する1以上のデータアドレス集合であって前記第1の記憶デバイスに存在していないデータアドレス集合のうち、アクセスされていないデータアドレス数が所定の値より少ないデータアドレス集合を、前記第2の記憶デバイスから前記第1の記憶デバイスに読み出す、
請求項4に記載のデータベース管理システム。 - 前記DBバッファ管理部は、前記(D)での比較の結果が、前記生成スピードが前記消費スピードより遅い、である場合に、前記(B)で、前記1以上のタスク開始情報にそれぞれ対応する1以上のデータアドレス集合であって前記第1の記憶デバイスに存在していないデータアドレス集合のうち、アクセスされていないデータアドレス数が所定の値より多いデータアドレス集合を、前記第2の記憶デバイスから前記第1の記憶デバイスに読み出す、
請求項4に記載のデータベース管理システム。 - 前記DBバッファ管理部は、
前記第1の記憶デバイスに、前記データアドレス集合を格納可能な空き容量が所定量より多い場合に、前記第2の記憶デバイス中の1以上の前記データアドレス集合を、前記第2の記憶デバイスから前記第1の記憶デバイスに読み出す、
請求項1に記載のデータベース管理システム。 - データベースを管理する計算機であって、
第1の記憶デバイスと、
前記第1の記憶デバイスに接続された制御デバイスと
を有し、
前記データベースが、第1の記憶デバイスよりアクセス速度の遅い第2の記憶デバイスに存在しており、
前記制御デバイスが、
(P)前記データベースへのクエリを受け付け、
(Q)前記受け付けたクエリを実行するために必要な1以上のDBオペレーションと前記1以上のDBオペレーションの実行手順とを表す情報を含んだクエリ実行プランを生成し、
(R)前記生成したクエリ実行プランに基づいて前記クエリを実行し、前記クエリの実行において、前記1以上のDBオペレーションを実行するためのタスクを動的に生成し、実行可能な2以上のタスクが存在する場合には、前記2以上のタスクのうちの少なくとも2つを並行して実行し、
(S)前記第2の記憶デバイスに存在する前記データベースのデータを、前記第1の記憶デバイスに一時的に読出して管理し、
前記制御デバイスが、前記(R)において、前記タスクにおいて実行を行う内容を示す情報であるタスク開始情報を生成し、前記タスクにより前記タスク開始情報が示す内容を実行し、
前記タスク開始情報は、コンテキストと前記コンテキストに関連づけられたデータアドレス集合とを含み、
前記コンテキストは、前記新たに生成するタスクにおいて実行を開始するDBオペレーションが、前記クエリ実行プランに含まれる情報である1以上のDBオペレーションのうちのいずれであるかを示す第1の情報と、前記第1の情報が示すDBオペレーションに要するデータのアクセス先に関する第2の情報と、前記新たに生成するタスクにより前記1以上のDBオペレーションに関する結果を生成するために必要なデータに関する第3の情報とを含む情報であり、
前記データアドレス集合は、前記第2の記憶デバイスに存在し、前記データのアクセス先に関する第2の情報に基づいて、アクセス先データのアドレスを特定するための情報であり、
前記制御デバイスが、
(A)前記コンテキストと関連づけられたデータアドレス集合が前記第1の記憶デバイスに存在するか否かに基づいてタスク開始情報を選択し、
(B)タスク開始情報の管理状態に基づいて、前記第2の記憶デバイスから前記第1の記憶デバイスへデータアドレス集合を読み出し、又は、前記第1の記憶デバイスに読み出されたデータアドレス集合を削除する、
ことを特徴とする、計算機。 - 前記制御デバイスは、
前記(A)で、前記第1の記憶デバイスに格納されているデータアドレス集合を含んだタスク開始情報が存在するか否かを判定し、その判定の結果が肯定的の場合に、前記第1の記憶デバイスに存在する前記データアドレス集合を含むタスク開始情報を選択する、
請求項10に記載の計算機。 - 前記制御デバイスは、
(C)単位時間当たりに新たに生成される前記タスク開始情報の数である生成スピードと、アクセス先データが全てアクセスされた前記タスク開始情報が単位時間当たりに生じる数である消費スピードとを測定し、
(D)前記生成スピードと前記消費スピードとを比較し、
前記制御デバイスは、前記(D)での比較の結果を基に、前記(B)を行う、請求項10に記載の計算機。 - 第1の記憶デバイスよりアクセス速度の遅い第2の記憶デバイスに存在するデータベースを管理するデータベース管理方法であって、
(P)前記データベースへのクエリを受け付け、
(Q)前記受け付けたクエリを実行するために必要な1以上のDBオペレーションと前記1以上のDBオペレーションの実行手順とを表す情報を含んだクエリ実行プランを生成し、
(R)前記生成したクエリ実行プランに基づいて前記クエリを実行し、前記クエリの実行において、前記1以上のDBオペレーションを実行するためのタスクを動的に生成し、実行可能な2以上のタスクが存在する場合には、前記2以上のタスクのうちの少なくとも2つを並行して実行し、
(S)前記第2の記憶デバイスに存在する前記データベースのデータを、前記第1の記憶デバイスに一時的に読出して管理し、
前記(R)で、前記タスクにおいて実行を行う内容を示す情報であるタスク開始情報を生成して管理し、前記タスクにより、前記タスク開始情報が示す内容を実行し、
前記タスク開始情報は、コンテキストと前記コンテキストに関連づけられたデータアドレス集合とを含み、
前記コンテキストは、前記新たに生成するタスクにおいて実行を開始するDBオペレーションが、前記クエリ実行プランに含まれる情報である1以上のDBオペレーションのうちのいずれであるかを示す第1の情報と、前記第1の情報が示すDBオペレーションに要するデータのアクセス先に関する第2の情報と、前記新たに生成するタスクにより前記1以上のDBオペレーションに関する結果を生成するために必要なデータに関する第3の情報とを含む情報であり、
前記データアドレス集合は、前記第2の記憶デバイスに存在し、前記データのアクセス先に関する第2の情報に基づいて、アクセス先データのアドレスを特定するための情報であり、
(A)前記コンテキストと関連づけられたデータアドレス集合が前記第1の記憶デバイスに存在するか否かに基づいてタスク開始情報を選択し、
(B)タスク開始情報の管理状態に基づいて、前記第2の記憶デバイスから前記第1の記憶デバイスへデータアドレス集合を読み出し、又は、前記第1の記憶デバイスに読み出されたデータアドレス集合を削除する、
ことを特徴とする、データベース管理方法。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/402,878 US10747773B2 (en) | 2012-05-24 | 2012-05-24 | Database management system, computer, and database management method |
| JP2014516587A JP5858308B2 (ja) | 2012-05-24 | 2012-05-24 | データベース管理システム、計算機、データベース管理方法 |
| PCT/JP2012/063332 WO2013175609A1 (ja) | 2012-05-24 | 2012-05-24 | データベース管理システム、計算機、データベース管理方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2012/063332 WO2013175609A1 (ja) | 2012-05-24 | 2012-05-24 | データベース管理システム、計算機、データベース管理方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2013175609A1 true WO2013175609A1 (ja) | 2013-11-28 |
Family
ID=49623340
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2012/063332 Ceased WO2013175609A1 (ja) | 2012-05-24 | 2012-05-24 | データベース管理システム、計算機、データベース管理方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US10747773B2 (ja) |
| JP (1) | JP5858308B2 (ja) |
| WO (1) | WO2013175609A1 (ja) |
Families Citing this family (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP2843559B1 (en) * | 2012-04-27 | 2025-08-27 | Hitachi, Ltd. | Database management system, computer, and database management method |
| EP3138231B8 (en) * | 2014-05-01 | 2024-08-14 | Intertrust Technologies Corporation | Secure computing systems and methods |
| JP6690829B2 (ja) * | 2015-08-28 | 2020-04-28 | 国立大学法人 東京大学 | 計算機システム、省電力化方法及び計算機 |
| US11816110B2 (en) | 2021-06-22 | 2023-11-14 | International Business Machines Corporation | Processing large query results in a database accelerator environment |
| US11941029B2 (en) | 2022-02-03 | 2024-03-26 | Bank Of America Corporation | Automatic extension of database partitions |
| CN117114628B (zh) * | 2023-10-20 | 2024-02-13 | 广东电网有限责任公司梅州供电局 | 一种临时计划识别方法、装置、设备及存储介质 |
| CN119396829A (zh) * | 2024-10-09 | 2025-02-07 | 三星(中国)半导体有限公司 | 主机设备、存储设备及其系统和方法 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002523839A (ja) * | 1998-08-31 | 2002-07-30 | コンピュータ アソシエイツ シンク,インコーポレイテッド | 急速広範囲dbms分析を行う方法および装置 |
| JP2007034414A (ja) * | 2005-07-22 | 2007-02-08 | Masaru Kiregawa | データベース管理システム及び方法 |
| JP2008234495A (ja) * | 2007-03-22 | 2008-10-02 | Toru Furuya | 合成関係演算を利用したマルチオペレーション・プロセッシングを用いたデータベースのクエリー処理システム |
| WO2012026140A1 (ja) * | 2010-08-25 | 2012-03-01 | 株式会社日立製作所 | データベース処理方法、データベース処理システム及びデータベースサーバ |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012026140A (ja) * | 2010-07-22 | 2012-02-09 | Ykk Ap株式会社 | 建具 |
| TW201205551A (en) * | 2010-07-29 | 2012-02-01 | Hon Hai Prec Ind Co Ltd | Display device assembling a camera |
-
2012
- 2012-05-24 JP JP2014516587A patent/JP5858308B2/ja active Active
- 2012-05-24 WO PCT/JP2012/063332 patent/WO2013175609A1/ja not_active Ceased
- 2012-05-24 US US14/402,878 patent/US10747773B2/en active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002523839A (ja) * | 1998-08-31 | 2002-07-30 | コンピュータ アソシエイツ シンク,インコーポレイテッド | 急速広範囲dbms分析を行う方法および装置 |
| JP2007034414A (ja) * | 2005-07-22 | 2007-02-08 | Masaru Kiregawa | データベース管理システム及び方法 |
| JP2008234495A (ja) * | 2007-03-22 | 2008-10-02 | Toru Furuya | 合成関係演算を利用したマルチオペレーション・プロセッシングを用いたデータベースのクエリー処理システム |
| WO2012026140A1 (ja) * | 2010-08-25 | 2012-03-01 | 株式会社日立製作所 | データベース処理方法、データベース処理システム及びデータベースサーバ |
Non-Patent Citations (1)
| Title |
|---|
| MASARU KITSUREGAWA ET AL.: "Vision and preliminary experiments for out-of-order database engine (OoODE)", DATABASE SOCIETY OF JAPAN RONBUNSHI, vol. 8, no. 1, 26 June 2009 (2009-06-26), pages 131 - 136 * |
Also Published As
| Publication number | Publication date |
|---|---|
| US10747773B2 (en) | 2020-08-18 |
| JP5858308B2 (ja) | 2016-02-10 |
| JPWO2013175609A1 (ja) | 2016-01-12 |
| US20150169591A1 (en) | 2015-06-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5858151B2 (ja) | データベース管理システム、計算機、データベース管理方法 | |
| JP5858308B2 (ja) | データベース管理システム、計算機、データベース管理方法 | |
| CN108519862B (zh) | 区块链系统的存储方法、装置、系统和存储介质 | |
| CN111506269B (zh) | 一种磁盘存储空间分配方法、装置、设备及存储介质 | |
| JP4659888B2 (ja) | データベース処理システム、計算機及びデータベース処理方法 | |
| JP5999574B2 (ja) | データベース管理システム及び計算機システム | |
| JP7150902B2 (ja) | グラフデータベースのトラバース方法、装置、機器及び記憶媒体 | |
| US20130055371A1 (en) | Storage control method and information processing apparatus | |
| JP2004070403A (ja) | ファイル格納先ボリューム制御方法 | |
| US8296286B2 (en) | Database processing method and database processing system | |
| US10810174B2 (en) | Database management system, database server, and database management method | |
| CN109359063A (zh) | 面向存储系统软件的缓存置换方法、存储设备及存储介质 | |
| CN107844592A (zh) | 一种查询元数据的方法和装置 | |
| JP6272556B2 (ja) | 共有リソース更新装置及び共有リソース更新方法 | |
| JP7730236B2 (ja) | コンピュータシステム、コンピュータプログラムおよびコンピュータ実装方法(ワークロード駆動によるデータベース再編成) | |
| WO2015015559A1 (ja) | 検索システムおよび検索方法 | |
| CN108334457A (zh) | 一种io处理方法及装置 | |
| JP6210501B2 (ja) | データベース管理システム、計算機、データベース管理方法 | |
| US10552273B2 (en) | Systems and methods for support log cache device removal through standard user interfaces | |
| CN113127415A (zh) | 实时流文件的处理方法、装置、介质及电子设备 | |
| JP2013088920A (ja) | 計算機システム及びデータ管理方法 | |
| CN114385584A (zh) | 一种数据写入方法及一种数据读取方法 | |
| JP7713417B2 (ja) | ストレージシステム及びデータキャッシュ方法 | |
| JP5674850B2 (ja) | データベース管理システム及び方法 | |
| CN121636521A (zh) | 具有共享智能存储装置的混合事务和分析处理数据库 |
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: 12877549 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2014516587 Country of ref document: JP Kind code of ref document: A |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 14402878 Country of ref document: US |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 12877549 Country of ref document: EP Kind code of ref document: A1 |