[go: up one dir, main page]

WO2018154725A1 - 計算機及びキャッシュ制御方法 - Google Patents

計算機及びキャッシュ制御方法 Download PDF

Info

Publication number
WO2018154725A1
WO2018154725A1 PCT/JP2017/007168 JP2017007168W WO2018154725A1 WO 2018154725 A1 WO2018154725 A1 WO 2018154725A1 JP 2017007168 W JP2017007168 W JP 2017007168W WO 2018154725 A1 WO2018154725 A1 WO 2018154725A1
Authority
WO
WIPO (PCT)
Prior art keywords
cache
latency
data
databases
virtual database
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
Application number
PCT/JP2017/007168
Other languages
English (en)
French (fr)
Inventor
近藤 伸和
成己 倉田
功人 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to PCT/JP2017/007168 priority Critical patent/WO2018154725A1/ja
Priority to US16/335,112 priority patent/US20190236076A1/en
Publication of WO2018154725A1 publication Critical patent/WO2018154725A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/256Integrating or interfacing systems involving database management systems in federated or virtual databases
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management

Definitions

  • the present invention relates to cache control in a virtual database system.
  • Patent Document 1 a technique for realizing a virtual database system in which a plurality of database systems having different interfaces, data structures, management methods, and the like are virtually integrated has attracted attention (see, for example, Patent Document 1 and Patent Document 2).
  • Patent Document 1 includes a “logical database dictionary for holding information on a logical database that is a group of one or more databases, a logical database definition unit that registers information on the logical database in the logical database dictionary, and a database.
  • a table position search unit that transfers any of the databases as an access target to a physical database management system that manages the physical database.
  • Patent Document 2 states that “in a database system management apparatus in which a plurality of database systems are connected and data is output in response to access from a user system, physical database management information and logical database management information are stored.
  • the database management unit 22, a query statement generation unit 25 that performs generation of a subquery statement for each database system and conversion of the query statement accompanying data rearrangement by the subquery statement, and an execution result size of the given query statement are estimated
  • data arrangement is determined based on the execution result size estimated by the execution result estimation unit, and the logical database management information is A query input analysis unit 24 to be updated, and a series of sequences generated by the query input analysis unit And a query execution unit 28 for executing the execution plan of the query statement.
  • a device having a function for realizing a virtual database system is connected to a plurality of database systems via a network.
  • the apparatus When receiving a virtual database reference request provided by the virtual database system from a user, the apparatus needs to access each database system and acquire data. Therefore, there is a problem that it takes a long time from when a virtual database reference request is received from a user until the virtual database system is presented.
  • Patent Document 3 describes that a cache file storing column information of a plurality of databases is created. Also, paragraphs “0033” and “0034” of Patent Document 4 describe a method for determining whether or not the smart cache device caches data based on the time elapsed since the previous query was received. Yes.
  • the first data and the second data are stored in the cache memory, and one of the data is expelled from the cache memory.
  • the first data is stored in an internal storage device, and the reference count is “100”
  • the second data is stored in a storage device connected via a network, and the reference count is “80”.
  • the second data is evicted from the cache memory.
  • the acquisition time of the second data is longer than the acquisition time of the first data, there is a possibility that the reference performance is improved if the first data is expelled.
  • An object of the present invention is to provide an apparatus and method for realizing cache control that improves the reference performance of a virtual database in consideration of latency caused by connection between database systems.
  • a typical example of the present invention is as follows. That is, a computer that generates a virtual database generated by integrating a plurality of databases, a processor, a memory connected to the processor, a network interface connected to the processor, and a connection connected to the processor
  • a virtual database management system comprising a plurality of database systems having an interface and managing a plurality of databases constituting the virtual database by connecting to a plurality of database systems for managing the database and a cache memory system for providing a cache area for storing data acquired from the database Information, cache management information used for cache control, and latency information for managing latency at the time of data acquisition from the database.
  • the processor stores the virtual data.
  • a plurality of target databases constituting the virtual database are identified based on the analysis result of the query and the virtual database management information, and the data of the plurality of target databases
  • the data in which cache data is stored in the cache memory system is obtained from the cache memory system, and the data that is not stored in the cache memory system among the data of the plurality of target databases is the data
  • the virtual database is generated using the cache data acquired from the plurality of target databases and the cache data acquired from the cache memory system and the data acquired from the specified plurality of databases,
  • the cache area evaluation value is calculated based on the cache management information and the latency information, and the cache value is calculated based on the evaluation value.
  • the cache area from which data is to be deleted is selected, and the data acquired from the plurality of target databases is stored in the selected cache area.
  • cache control that can improve the reference performance of the virtual database can be realized.
  • FIG. 1 is a diagram illustrating an example of a configuration of a computer system that implements a virtual database system according to Embodiment 1.
  • FIG. 1 is a diagram illustrating an example of a detailed configuration of a virtual database system management apparatus and a cache memory system according to a first embodiment. It is a figure which shows an example of the virtual database management information of Example 1. It is a figure which shows an example of the cache management information of Example 1. It is a figure which shows an example of the cache management information of Example 1. It is a figure which shows an example of the latency information of Example 1.
  • 6 is a flowchart illustrating an example of processing executed by a virtual database system management module according to the first embodiment.
  • 6 is a flowchart illustrating an example of processing executed by a virtual database system management module according to the first embodiment.
  • 6 is a flowchart illustrating an example of processing executed by the OS according to the first embodiment.
  • 6 is a flowchart illustrating an example of processing when the cache driver according to the first exemplary embodiment searches cache data.
  • 7 is a flowchart illustrating an example of processing when the cache driver according to the first embodiment stores data in a cache area.
  • 10 is a flowchart illustrating an example of processing executed by a virtual database system management module according to the second embodiment.
  • 10 is a flowchart illustrating an example of processing executed by a virtual database system management module according to the second embodiment.
  • 10 is a flowchart illustrating an example of processing when the cache driver according to the second embodiment stores data in a cache area.
  • 10 is a flowchart illustrating an example of processing when the cache driver according to the second embodiment stores data in a cache area. It is a figure which shows an example of the detailed structure of the virtual database system management apparatus of Example 3, and a cache memory system.
  • 10 is a flowchart illustrating an example of processing executed by a virtual database system management module according to a third embodiment.
  • 10 is a flowchart illustrating an example of processing executed by a virtual database system management module according to a third embodiment.
  • FIG. 1 is a diagram illustrating an example of a configuration of a computer system that implements the virtual database system according to the first embodiment.
  • the computer system includes a virtual database system management apparatus 100, a cache memory system 110, a plurality of database systems 120, and a client terminal 130.
  • the virtual database system management apparatus 100 and the client terminal 130 are connected directly or via a network.
  • the virtual database system management apparatus 100 and the database system 120 are connected via a network. Note that at least one database system 120 may be directly connected to the virtual database system management apparatus 100.
  • the database system 120 manages the database 122 defined based on a predetermined schema.
  • the database system 120 includes a controller and a plurality of storage media.
  • As the storage medium HDD (Hard Disk Drive), SSD (Solid State Drive), and the like are conceivable.
  • the database system 120 has a database system management module 121.
  • the database system management module 121 includes a database system management module 121 that manages the database 122 and controls various operations on the database 122.
  • the database system 120 may be realized using a system located at a base in a different region, or may be realized using a cloud system.
  • the virtual database system management apparatus 100 generates a virtual database defined based on a predetermined schema by virtually integrating the database 122 managed by each of the plurality of database systems 120.
  • the virtual database system management apparatus 100 includes an OS 101 and a virtual database system management module 102.
  • the virtual database system management module 102 generates and manages a virtual database.
  • the cache memory system 110 provides a cache area 111 used by the virtual database system management apparatus 100.
  • the cache area 111 stores cache data in units of blocks.
  • a buffer cache may be used as a block-based data management method.
  • the buffer cache is generated by assigning a buffer page to a storage area of the cache memory system 110 and dividing the buffer page into block buffers having a predetermined block size.
  • the client terminal 130 is a terminal used by a user who operates the virtual database.
  • the client terminal 130 has an application 131 for operating the virtual database.
  • the application 131 issues a query for referring to the virtual database.
  • the client terminal 130 includes a processor, a memory, a network interface, an input device, and an output device (not shown).
  • the input device includes a keyboard, a mouse, a touch panel, and the like, and the output device includes a touch panel, a display, and the like.
  • FIG. 2 is a diagram illustrating an example of a detailed configuration of the virtual database system management apparatus 100 and the cache memory system 110 according to the first embodiment.
  • the virtual database system management apparatus 100 includes a processor 201, a memory 202, a network interface 203, and a connection interface 204 as hardware.
  • the processor 201 executes a program stored in the memory 202.
  • the processor 201 operates as a module having a predetermined function by executing processing according to a program.
  • a module when a module is described as a subject, it indicates that the processor 201 is operating according to a program that realizes the module.
  • the memory 202 stores a program executed by the processor 201 and information necessary for executing the program.
  • the memory 202 includes a work area used by the program.
  • the memory 202 of this embodiment stores programs that realize the OS 101 and the virtual database system management module 102.
  • the network interface 203 is an interface for connecting to other devices via a network.
  • the virtual database system management apparatus 100 of this embodiment is connected to the database system 120 and the client terminal 130 via the network interface 203.
  • connection interface 204 is an interface for connecting to the cache memory system 110. It is assumed that the virtual database system management apparatus 100 and the cache memory system 110 according to this embodiment are connected via a PCIe bus. In this case, the PCIe interface is used as the connection interface 204.
  • the cache memory system 110 includes a controller 205 and a nonvolatile memory 206 as hardware.
  • the controller 205 controls the entire cache memory system 110.
  • the controller 205 includes a processor, a memory, a connection interface, and the like.
  • the non-volatile memory 206 provides a storage area used for the cache area 111.
  • the nonvolatile memory 206 may be a flash memory or the like.
  • the OS 101 controls the entire virtual database system management apparatus 100.
  • the OS 101 includes a cache driver 211 and a measurement module 212, and manages cache management information 213 and latency information 214.
  • the cache driver 211 is a device driver that controls the cache memory system 110.
  • the cache area 111 is used to generate a virtual database at high speed.
  • the measurement module 212 measures latency due to the connection between the virtual database system management apparatus 100 and the database system 120. Specifically, the measurement module 212 uses, as the latency, the time from when the virtual database system management apparatus 100 issues a query to each database system 120 until the response is received (data acquisition time from the database system 120). measure.
  • the cache management information 213 is information used for cache control corresponding to the cache algorithm. For example, when the LRU method is adopted, the LRU list corresponds to the cache management information 213. A specific example of the cache management information 213 will be described with reference to FIGS. 4A and 4B.
  • Latency information 214 is information for managing latency related to data stored in the cache area 111. Details of the latency information 214 will be described with reference to FIG.
  • the virtual database system management module 102 includes a control module 221, a user interface 222, and a database interface 223, and manages virtual database management information 224.
  • the control module 221 controls the entire virtual database system management module 102.
  • the control module 221 analyzes the query received from the client terminal 130, identifies the access destination database system 120, and issues a query for accessing the identified database system 120.
  • the control module 221 generates a virtual database using data acquired from the database system 120 and transmits the virtual database to the client terminal 130.
  • the user interface 222 is an interface for the client terminal 130 to operate the virtual database.
  • the user interface 222 receives the query issued by the client terminal 130 and outputs it to the control module 221.
  • the user interface 222 transmits the virtual database generated by the control module 221 to the client terminal 130.
  • the database interface 223 is an interface for operating a plurality of database systems 120.
  • the database interface 223 transmits the query issued by the control module 221 to the database system 120 and outputs the data acquired from the database 122 to the control module 221.
  • the virtual database management information 224 is information for managing the configuration of the virtual database. Details of the virtual database management information 224 will be described with reference to FIG.
  • the memory 202 may store information for managing the configuration of the database 122.
  • FIG. 3 is a diagram illustrating an example of the virtual database management information 224 according to the first embodiment.
  • the virtual database management information 224 includes an entry including a virtual database name 301 and a physical database name 302. One entry corresponds to one virtual database.
  • the virtual database name 301 is a field for storing the name of the virtual database.
  • the physical database name 302 is a field for storing the name of the database 122.
  • One entry includes as many rows as the number of the databases 122 constituting the virtual database.
  • the virtual database is data in a table format, information in which fields are associated with the database 122 may be used.
  • identification information such as an ID may be used instead of the names of the virtual database and the database 122.
  • FIG. 4A and 4B are diagrams illustrating an example of the cache management information 213 according to the first embodiment.
  • FIG. 4A shows an example of the cache management information 213 used for the LFU cache algorithm.
  • FIG. 4B shows an example of the cache management information 213 used for the LRU cache algorithm.
  • the cache management information 213 shown in FIG. 4A includes an entry composed of an address 401 and an access frequency 402.
  • the address 401 is a field for storing the address of the cache area 111.
  • the access frequency 402 is a field for storing the number of accesses to the cache area 111 corresponding to the address 401.
  • the cache management information 213 shown in FIG. 4B is a list of structures 410.
  • the structure 410 includes an address 411, a previous pointer 412, and a next pointer 413.
  • the structure 410 corresponding to the recently accessed cache area 111 is managed so as to be arranged on the leftmost side.
  • Address 411 is the same as address 401.
  • the previous pointer 412 is a field for storing a pointer indicating the previous structure 410.
  • the next pointer 413 is a field for storing a pointer indicating the next structure 410.
  • cache management information 213 illustrated in FIGS. 4A and 4B is an example, and the present invention is not limited to this.
  • FIG. 5 is a diagram illustrating an example of the latency information 214 according to the first embodiment.
  • the latency information 214 includes an entry composed of an address 510 and a latency score 502. One entry corresponds to one cache area 111 in which data is stored.
  • the address 510 is a field for storing the address of the cache area 111 in which data is stored.
  • the latency score 502 is a field for storing a value calculated based on the latency at the time of acquisition of data stored in the cache area 111 corresponding to the address 510.
  • the score is “1” when the latency is less than 100 ⁇ s, the score is “2” when the latency is 100 ⁇ s or more and less than 500 ms, and the score is “3” when the latency is 500 ms or more.
  • 6A and 6B are flowcharts for explaining an example of processing executed by the virtual database system management module 102 according to the first embodiment.
  • the user interface 222 receives a query for referring to the virtual database from the client terminal 130 (step S101).
  • the query includes at least the name of the virtual database.
  • the user interface 222 outputs the accepted query to the control module 221.
  • control module 221 specifies the access destination database 122 based on the query analysis result (step S102).
  • control module 221 acquires the name of the virtual database from the query.
  • the control module 221 refers to the virtual database management information 224 and searches for an entry in which the virtual database name 301 matches the name of the database acquired from the query.
  • control module 221 selects the target database 122 from the identified database 122 (step S103).
  • control module 221 selects one name of the database 122 included in the searched entry.
  • control module 221 inquires of the OS 101 whether or not the data in the target database 122 is stored in the cache memory system 110 (step S104).
  • the control module 221 determines whether or not there is a cache hit based on the response from the OS 101 (step S105). For example, when data is included in the response, the control module 221 determines a cache hit.
  • control module 221 proceeds to step S106. At this time, the control module 221 stores the cache data read by the cache driver 211 in the work area.
  • control module 221 In the case of a cache miss, the control module 221 generates a query for acquiring data from the target database 122 (step S111). In addition, the control module 221 requests the OS 101 to start the measurement module 212 (step S112), and transmits the generated query to the target database 122 (step S113).
  • control module 221 When the control module 221 receives data from the target database 122 via the database interface 223 (step S114), the received data is stored in the work area. In addition, the control module 221 requests the OS 101 to stop the measurement module 212 (step S115). In addition, the control module 221 outputs a cache registration request for registering data stored in the work area in the cache area 111 to the OS 101 (step S116). Thereafter, the control module 221 proceeds to step S106.
  • step S106 determines whether data has been acquired from all the specified databases 122 (step S106).
  • control module 221 If it is determined that data has not been acquired from all the specified databases 122, the control module 221 returns to step S103 and executes the same processing.
  • control module 221 When it is determined that data has been acquired from all the specified databases 122, the control module 221 generates a virtual database using the data acquired from the database 122 and the cache memory system 110 (step S107).
  • the control module 221 transmits the generated virtual database to the client terminal 130 via the user interface 222 (step S108).
  • FIG. 7 is a flowchart illustrating an example of processing executed by the OS 101 according to the first embodiment.
  • the OS 101 When the OS 101 receives an inquiry about cache data from the control module 221, the OS 101 calls the cache driver 211 to instruct search of cache data (step S201).
  • the OS 101 When the OS 101 receives an activation request for the measurement module 212 from the virtual database system management module 102, the OS 101 calls the measurement module 212 and instructs to start measuring latency (data acquisition time) (step S202).
  • the OS 101 When the OS 101 receives a stop request for the measurement module 212 from the virtual database system management module 102, the OS 101 instructs the measurement module 212 to stop (step S203). At this time, the OS 101 acquires the latency measured by the measurement module 212 and calculates a score based on the latency. The OS 101 stores the score in the work area.
  • the OS 101 When the OS 101 receives a cache registration request from the virtual database system management module 102, the OS 101 outputs a write request to the cache driver 211 (step S204).
  • the write request includes the score and data acquired from the target database 122.
  • FIG. 8 is a flowchart for explaining an example of processing when the cache driver 211 according to the first embodiment searches for cache data.
  • the cache driver 211 refers to the cache area 111 of the cache memory system 110 and searches for data (cache data) in the target database 122 (step S301).
  • the cache driver 211 determines whether or not the cache data is stored in the cache memory system 110 based on the search result (step S302).
  • the cache driver 211 reads the cache data from the cache area 111 and outputs the cache data to the OS 101 (step S303).
  • the cache driver 211 When it is determined that the cache data is not stored in the cache memory system 110, the cache driver 211 notifies the OS 101 of a cache miss (step S304).
  • the OS 101 outputs a response including the output of the cache driver 211 to the control module 221.
  • FIG. 9 is a flowchart for explaining an example of processing when the cache driver 211 according to the first embodiment stores data in the cache area 111.
  • the cache driver 211 determines whether or not the storage area for storing the data received from the target database 122 exists in the cache memory system 110 (step S401).
  • the cache driver 211 When it is determined that a storage area for storing data received from the target database 122 exists in the cache memory system 110, the cache driver 211 stores the data in the predetermined cache area 111 (step S402). Thereafter, the cache driver 211 updates the cache management information 213 and the latency information 214 (step S405).
  • the cache driver 211 adds entries for the number of cache areas 111 in which data is stored in the latency information 214, and sets the address of the cache area 111 in which data is stored in the address 501 of each added entry. Set. The cache driver 211 sets the score calculated by the OS 101 to the latency score 502 of all the added entries. At this time, the score set for each entry has the same value.
  • step S 401 If it is determined in step S 401 that the storage area for storing the data received from the target database 122 does not exist in the cache memory system 110, the cache driver 211 determines that the cache management information 213 and the latency information 214 based on the cache management information 213 and the latency information 214.
  • the cache data to be evicted from the memory system 110 is selected (step S403). For example, the following processing can be considered.
  • the cache driver 211 calculates an evaluation value based on the access frequency 402 and the latency score 502 of the entry having the address 401 and the address 501 that match.
  • the evaluation value a total value and a multiplication value of the access frequency 402 and the latency score 502 can be considered.
  • the cache driver 211 selects cache data to be expelled based on the evaluation value. For example, the cache driver 211 selects cache data to be evicted in ascending order of evaluation value.
  • the cache driver 211 calculates an evaluation value based on the order of the structures 410 in which the addresses 411 and 501 match and the latency score 502.
  • the evaluation value may be the order of the structure 410, the total value of the latency score 502, the multiplication value, or the like.
  • the cache driver 211 selects cache data to be expelled based on the evaluation value. For example, the cache driver 211 selects cache data to be evicted in ascending order of evaluation value.
  • the evaluation value corresponds to a value obtained by correcting the cache management information 213 based on the score.
  • the LFU method indicates that the access frequency is corrected based on the score
  • the LRU method indicates that the order of the structures 410 is corrected based on the score.
  • the cache driver 211 stores new data in the cache area 111 in which the selected cache data is stored (step S404). Thereafter, the cache driver 211 updates the cache management information 213 and the latency information 214 (step S405).
  • the cache driver 211 searches for an entry in which the address 501 of the latency information 214 matches the address of the selected cache area 111.
  • the cache driver 211 sets the score calculated by the OS 101 in the latency score 502 of the searched entry.
  • the cache driver 211 and the measurement module 212 may not be included in the OS 101. That is, it may be realized as a module different from the OS 101.
  • the first embodiment by performing cache control based on cache management information reflecting latency, it is possible to improve the reference performance of the virtual database.
  • the virtual database system management module 102 only needs to call the measurement module 212 and instruct the registration of cache data, so that it can be realized without greatly changing an existing application.
  • the virtual database system management apparatus 100 has a function of switching between two operation modes.
  • One operation mode is a mode in which cache control using the latency information 214 is performed
  • the other operation mode is a mode in which cache control without using the latency information 214 is performed.
  • the configuration of the computer system of the second embodiment is the same as the configuration of the computer system of the first embodiment.
  • the configuration of each device in the second embodiment is the same as the configuration of each device in the first embodiment.
  • the second embodiment is different in that information (syntax) for instructing activation of the measurement module 212 is included in a query issued by the application 131.
  • 10A and 10B are flowcharts illustrating an example of processing executed by the virtual database system management module 102 according to the second embodiment.
  • step S501 to step S508 is the same as the processing from step S101 to step S108.
  • step S505 If it is determined in step S505 that a cache miss has occurred, the virtual database system management module 102 determines whether to activate the measurement module 212 based on the analysis result of the query (step S511).
  • the virtual database system management module 102 determines whether or not the query issued by the application 131 includes information instructing activation of the measurement module 212. When the query includes information instructing activation of the measurement module 212, the virtual database system management module 102 determines to activate the measurement module 212.
  • step S512 the virtual database system management module 102 executes the processing from step S512 to step S517, and then proceeds to step S506. Note that the processing from step S512 to step S517 is the same as the processing from step S111 to step S116.
  • control module 221 When it is determined that the measurement module 212 is not activated, the control module 221 generates a query for making an inquiry to the target database 122 (step S518), and transmits the generated query to the target database 122 (step S519).
  • control module 221 When the control module 221 receives data from the target database 122 via the database interface 223 (step S520), the control module 221 stores the received data in the work area, and stores the data stored in the work area in the cache area 111. A cache registration request for registration is output to the OS 101 (step S521). Thereafter, the control module 221 proceeds to step S506.
  • step S518, step S519, step S520, and step S521 is the same as the processing in step S111, step S113, step S114, and step S118.
  • step S ⁇ b> 204 a write request that does not include a score is input to the cache driver 211.
  • the processing when the cache driver 211 searches for cache data is the same as the processing in the first embodiment.
  • 11A and 11B are flowcharts for explaining an example of processing when the cache driver 211 according to the second embodiment stores data in the cache area 111.
  • the cache driver 211 determines whether or not the score is included in the write request (step S601).
  • step S602. The processing from step S602 to step S606 is the same as the processing from step S401 to step S405.
  • the cache driver 211 determines whether or not a storage area for storing data received from the target database 122 exists in the cache memory system 110 (step). S611).
  • the process in step S611 is the same as the process in step S401.
  • the cache driver 211 stores the data in the predetermined cache area 111 (step S612). Thereafter, the cache driver 211 updates the cache management information 213 (step S615). Thereafter, the cache driver 211 ends the process.
  • step S612 and step S615 are the same processing as known cache control, and thus detailed description thereof is omitted.
  • step S 611 If it is determined in step S 611 that the storage area for storing the data received from the target database 122 does not exist in the cache memory system 110, the cache driver 211 determines from the cache memory system 110 based on the cache management information 213. The cache data to be evicted is selected (step S613). In addition, the cache driver 211 stores new data in the cache area 111 in which the selected cache data is stored (step S614). The cache driver 211 updates the cache management information 213 (step S615). Thereafter, the cache driver 211 ends the process.
  • step S613, step S614, and step S615 is the same as a well-known cache control process, detailed description is abbreviate
  • the user can appropriately switch the cache control.
  • the virtual database system management module 102 has a cache control function.
  • the third embodiment will be described focusing on differences from the first embodiment.
  • the configuration of the computer system of the third embodiment is the same as the configuration of the computer system of the first embodiment.
  • the software configuration of the virtual database system management apparatus 100 is different from that in the first embodiment.
  • FIG. 12 is a diagram illustrating an example of a detailed configuration of the virtual database system management apparatus 100 and the cache memory system 110 according to the third embodiment.
  • the hardware configuration of the virtual database system management apparatus 100 is the same as that of the first embodiment.
  • the virtual database system management module 102 has a measurement module 212 and holds cache management information 213 and latency information 214.
  • the addresses stored in the addresses 401, 411, and 501 of the cache management information 213 and the latency information 214 are addresses in the virtual address space recognized by the virtual database system management module 102. Further, the virtual database system management module 102 recognizes the cache area 111 in page units.
  • FIGS. 13A and 13B are flowcharts illustrating an example of processing executed by the virtual database system management module 102 according to the third embodiment.
  • step S701 to step S708 is the same as the processing from step S101 to step S108.
  • step S705 If it is determined in step S705 that the cache miss has occurred, the control module 221 generates a query (step S711) and starts the measurement module 212 (step S712).
  • the process in step S711 is the same as the process in step S111.
  • the control module 221 since the virtual database system management module 102 includes the measurement module 212, the control module 221 directly calls the measurement module 212.
  • step S713 and step S714 are the same as the processing of step S113 and step S114.
  • the control module 221 instructs the measurement module 212 to stop (step S715).
  • the control module 221 acquires the latency from the measurement module 212 and calculates a score based on the latency.
  • the control module 221 stores the score in the work area.
  • the control module 221 executes a cache registration process (step S716). Thereafter, the control module 221 proceeds to step S706.
  • the cache registration process executed by the control module 221 has the same contents as the process shown in FIG. However, the control module 221 writes free space in the cache memory system 110 and data to the cache memory system 110 via the cache driver 211.
  • a system having the same effect as the first embodiment can be realized without changing the existing OS 101.
  • this invention is not limited to the above-mentioned Example, Various modifications are included. Further, for example, the above-described embodiments are described in detail for easy understanding of the present invention, and are not necessarily limited to those provided with all the described configurations. Further, a part of the configuration of each embodiment can be added to, deleted from, or replaced with another configuration.
  • each of the above-described configurations, functions, processing units, processing means, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit.
  • the present invention can also be realized by software program codes that implement the functions of the embodiments.
  • a storage medium in which the program code is recorded is provided to the computer, and a CPU included in the computer reads the program code stored in the storage medium.
  • the program code itself read from the storage medium realizes the functions of the above-described embodiments, and the program code itself and the storage medium storing it constitute the present invention.
  • Examples of storage media for supplying such program codes include flexible disks, CD-ROMs, DVD-ROMs, hard disks, SSDs (Solid State Drives), optical disks, magneto-optical disks, CD-Rs, magnetic tapes, A non-volatile memory card, ROM, or the like is used.
  • program code for realizing the functions described in this embodiment can be implemented by a wide range of programs or script languages such as assembler, C / C ++, Perl, Shell, PHP, Java, and the like.
  • the program code is stored in a storage means such as a hard disk or memory of a computer or a storage medium such as a CD-RW or CD-R.
  • the CPU included in the computer may read and execute the program code stored in the storage unit or the storage medium.
  • control lines and information lines indicate those that are considered necessary for the explanation, and do not necessarily indicate all the control lines and information lines on the product. All the components may be connected to each other.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

仮想データベースを生成する計算機であって、データベースを管理する複数のデータベースシステム、及びキャッシュ領域を提供するキャッシュメモリシステムと接続し、仮想データベースを構成する複数のデータベースを管理する仮想データベース管理情報と、キャッシュ管理情報と、データベースからのデータの取得時におけるレイテンシを管理するレイテンシ情報と、を保持し、仮想データベースの参照するためのクエリを受け付けた場合に取得したデータを格納するキャッシュ領域が不足している場合、キャッシュ管理情報及びレイテンシ情報を用いて算出された評価値に基づいて、キャッシュデータを削除するキャッシュ領域を選択する。

Description

計算機及びキャッシュ制御方法
 本発明は、仮想データベースシステムにおけるキャッシュ制御に関する。
 近年、インタフェース、データ構造、及び管理方法等が異なる複数のデータベースシステムを仮想的に統合した仮想データベースシステムを実現する技術が注目されている(例えば、特許文献1及び特許文献2を参照)。
 特許文献1には、「データベースの一以上をグループ化したものである論理データベースに関する情報を保持するための論理データベースディクショナリと、論理データベースに関する情報を論理データベースディクショナリに登録する論理データベース定義部と、データベースへのアクセス構文を保持するための構文バッファと、アプリケーションプログラム実行手段からのアクセス構文を受け付け、構文バッファに格納する論理データベースアクセス制御部と、構文バッファに保持されたアクセス構文を、論理データベースに属するデータベースのいずれかをアクセス対象として、該物理データベースを管理する物理データベース管理システムに転送するテーブル位置検索部とを有する。」ことが記載されている。
 また、特許文献2には、「複数のデータベースシステムが接続され、ユーザシステムからのアクセスに応じてデータが出力されるデータベースシステム管理装置において、物理データベース管理情報と論理データベース管理情報とが記憶されたデータベース管理部22と、データベースシステム単位に副問合せ文の生成及び副問合せ文によるデータ再配置に伴う問合せ文の変換を行う問合せ文生成部25と、与えられた問合せ文の実行結果サイズを推定する実行結果推定部26と、前記問合せ文生成部が生成及び変換した副問合せ文に対して、前記実行結果推定部が推定した実行結果サイズに基づいてデータ配置を決定し、前記論理データベース管理情報を更新する問合せ入力解析部24と、前記問合せ入力解析部により生成された一連の副問合せ文の実行計画を実行する問合せ実行部28とを備える。」ことが記載されている。
特開平7-98669号公報 特開2016-91356号公報 特開2006-92409号公報 米国特許出願公開第2013/0060810号明細書
 仮想データベースシステムを実現する機能を有する装置は、ネットワークを介した複数のデータベースシステムと接続する。当該装置は、ユーザから、仮想データベースシステムが提供する仮想データベースの参照要求を受け付けた場合、各データベースシステムにアクセスし、データを取得する必要がある。したがって、ユーザから仮想データベースの参照要求を受けてから仮想データベースシステムを提示するまでの時間が長くなるという課題がある。
 この課題に対して、キャッシュを利用することが考えられる(例えば、特許文献3を参照)。また、キャッシュアルゴリズムとして、LRU(Least Recently Used)及びLFU(Least Frequently Used)等のキャッシュ制御方式、及び特許文献4に記載の制御方式が知られている。
 特許文献3には、複数のデータベースの列情報を格納したキャッシュファイルを作成することが記載されている。また、特許文献4の段落「0033」及び「0034」等には、スマートキャッシュ装置が、前回クエリを受信したから経過した時間に基づいてデータをキャッシュするか否かを判定する方法が記載されている。
 仮想データベースシステムでは複数のデータベースシステムと接続されているため、データの取得に時間を要する。すなわち、システム間の接続に起因したボトルネック(レイテンシ)が発生する。しかし、LRU及びLFU等の既存のキャッシュアルゴリズムでは、前述したレイテンシは考慮されていない。
 ここで、第1のデータ及び第2のデータがキャッシュメモリに格納され、いずれかのデータをキャッシュメモリから追い出す場合を想定する。なお、第1のデータは、内部の記憶装置に格納され、かつ、参照回数が「100」とし、第2のデータは、ネットワークを介して接続される記憶装置に格納され、かつ、参照回数が「80」とする。LFU方式のキャッシュ制御の場合、第2のデータがキャッシュメモリから追い出される。しかし、第2のデータの取得時間は、第1のデータの取得時間より長いため、第1のデータを追い出した方が参照性能が向上する可能性がある。
 また、特許文献4に記載の経過時間は固定値であり、各データベースシステム間のレイテンシを考慮したものではない。
 本発明は、データベースシステム間の接続に起因するレイテンシを考慮し、仮想データベースの参照性能を向上させるキャッシュ制御を実現する装置及び方法を提供することを目的とする。
 本発明の代表的な一例を示せば以下の通りである。すなわち、複数のデータベースを統合することによって生成される仮想データベースを生成する計算機であって、プロセッサ、前記プロセッサに接続されるメモリ、前記プロセッサに接続されるネットワークインタフェース、及び前記プロセッサに接続される接続インタフェースを備え、データベースを管理する複数のデータベースシステム、及び前記データベースから取得したデータを格納するキャッシュ領域を提供するキャッシュメモリシステムと接続し、前記仮想データベースを構成する複数のデータベースを管理する仮想データベース管理情報と、キャッシュ制御に使用するキャッシュ管理情報と、前記データベースからのデータの取得時におけるレイテンシを管理するレイテンシ情報と、を保持し、前記プロセッサは、前記仮想データベースを参照するためのクエリを受け付けた場合、前記クエリの解析結果及び前記仮想データベース管理情報に基づいて、前記仮想データベースを構成する複数のターゲットデータベースを特定し、前記複数のターゲットデータベースのデータのうち、前記キャッシュメモリシステムにキャッシュデータが格納されているデータは、前記キャッシュメモリシステムから取得し、前記複数のターゲットデータベースのデータのうち、前記キャッシュメモリシステムにキャッシュデータが格納されていないデータは、前記複数のターゲットデータベースから取得し、前記キャッシュメモリシステムから取得したキャッシュデータ及び前記特定された複数のデータベースから取得したデータを用いて前記仮想データベースを生成し、前記複数のターゲットデータベースから取得したデータを格納する前記キャッシュ領域が不足している場合、前記キャッシュ管理情報及び前記レイテンシ情報に基づいて、前記キャッシュ領域の評価値を算出し、前記評価値に基づいて、キャッシュデータを削除する前記キャッシュ領域を選択し、前記選択されたキャッシュ領域に、前記複数のターゲットデータベースから取得したデータを格納することを特徴とする。
 本発明によれば、仮想データベースの参照性能を向上できるキャッシュ制御を実現できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
実施例1の仮想データベースシステムを実現する計算機システムの構成の一例を示す図である。 実施例1の仮想データベースシステム管理装置及びキャッシュメモリシステムの詳細な構成の一例を示す図である。 実施例1の仮想データベース管理情報の一例を示す図である。 実施例1のキャッシュ管理情報の一例を示す図である。 実施例1のキャッシュ管理情報の一例を示す図である。 実施例1のレイテンシ情報の一例を示す図である。 実施例1の仮想データベースシステム管理モジュールが実行する処理の一例を説明するフローチャートである。 実施例1の仮想データベースシステム管理モジュールが実行する処理の一例を説明するフローチャートである。 実施例1のOSが実行する処理の一例を説明するフローチャートである。 実施例1のキャッシュドライバがキャッシュデータを検索する場合の処理の一例を説明するフローチャートである。 実施例1のキャッシュドライバがキャッシュ領域にデータを格納する場合の処理の一例を説明するフローチャートである。 実施例2の仮想データベースシステム管理モジュールが実行する処理の一例を説明するフローチャートである。 実施例2の仮想データベースシステム管理モジュールが実行する処理の一例を説明するフローチャートである。 実施例2のキャッシュドライバがキャッシュ領域にデータを格納する場合の処理の一例を説明するフローチャートである。 実施例2のキャッシュドライバがキャッシュ領域にデータを格納する場合の処理の一例を説明するフローチャートである。 実施例3の仮想データベースシステム管理装置及びキャッシュメモリシステムの詳細な構成の一例を示す図である。 実施例3の仮想データベースシステム管理モジュールが実行する処理の一例を説明するフローチャートである。 実施例3の仮想データベースシステム管理モジュールが実行する処理の一例を説明するフローチャートである。
 以下、本発明の実施の形態を図面に基づいて詳細に説明する。
 図1は、実施例1の仮想データベースシステムを実現する計算機システムの構成の一例を示す図である。
 計算機システムは、仮想データベースシステム管理装置100、キャッシュメモリシステム110、複数のデータベースシステム120、及びクライアント端末130から構成される。
 仮想データベースシステム管理装置100及びクライアント端末130は、直接又はネットワークを介して接続される。仮想データベースシステム管理装置100及びデータベースシステム120は、ネットワークを介して接続される。なお、少なくとも一つのデータベースシステム120は、仮想データベースシステム管理装置100と直接接続されてもよい。
 データベースシステム120は、所定のスキーマに基づいて定義されたデータベース122を管理する。データベースシステム120は、コントローラ及び複数の記憶媒体を有する。記憶媒体は、HDD(Hard Disk Drive)及びSSD(Solid State Drive)等が考えられる。データベースシステム120は、データベースシステム管理モジュール121を有する。データベースシステム管理モジュール121は、データベース122を管理し、また、データベース122に対する各種操作を制御するデータベースシステム管理モジュール121を有する。
 なお、データベースシステム120は、異なる地域の拠点に配置されたシステムを用いて実現してもよいし、また、クラウドシステムを用いて実現してもよい。
 仮想データベースシステム管理装置100は、複数のデータベースシステム120の各々が管理するデータベース122を仮想的に統合することによって、所定のスキーマに基づいて定義された仮想データベースを生成する。仮想データベースシステム管理装置100は、OS101及び仮想データベースシステム管理モジュール102を有する。仮想データベースシステム管理モジュール102は、仮想データベースを生成し、また、管理する。
 キャッシュメモリシステム110は、仮想データベースシステム管理装置100が使用するキャッシュ領域111を提供する。キャッシュ領域111には、ブロック単位のキャッシュデータが格納される。なお、ブロック単位のデータの管理方法としては、バッファキャッシュを用いることが考えられる。バッファキャッシュは、キャッシュメモリシステム110の記憶領域にバッファページを割り当て、所定のブロックサイズのブロックバッファに当該バッファページを分割することによって生成される。
 クライアント端末130は、仮想データベースを操作するユーザが使用する端末である。クライアント端末130は、仮想データベースを操作するためのアプリケーション131を有する。例えば、アプリケーション131は、仮想データベースを参照するためのクエリを発行する。クライアント端末130は、図示しないプロセッサ、メモリ、ネットワークインタフェース、入力装置、及び出力装置を有する。なお、入力装置は、キーボード、マウス、及びタッチパネル等を含み、出力装置は、タッチパネル及びディスプレイ等を含む。
 図2は、実施例1の仮想データベースシステム管理装置100及びキャッシュメモリシステム110の詳細な構成の一例を示す図である。
 仮想データベースシステム管理装置100は、ハードウェアとして、プロセッサ201、メモリ202、ネットワークインタフェース203、及び接続インタフェース204を有する。
 プロセッサ201は、メモリ202に格納されるプログラムを実行する。プロセッサ201が、プログラムにしたがって処理を実行することによって、所定の機能を有するモジュールとして動作する。以下の説明では、モジュールを主語に説明する場合、プロセッサ201がモジュールを実現するプログラムにしたがって動作していることを示す。
 メモリ202は、プロセッサ201によって実行されるプログラム及び当該プログラムの実行に必要な情報を格納する。また、メモリ202は、プログラムが使用するワークエリアを含む。本実施例のメモリ202は、OS101及び仮想データベースシステム管理モジュール102を実現するプログラムを格納する。
 ネットワークインタフェース203は、ネットワークを介して他の装置と接続するためのインタフェースである。本実施例の仮想データベースシステム管理装置100は、ネットワークインタフェース203を介して、データベースシステム120及びクライアント端末130と接続する。
 接続インタフェース204は、キャッシュメモリシステム110に接続するためのインタフェースである。本実施例の仮想データベースシステム管理装置100及びキャッシュメモリシステム110は、PCIeバスを介して接続されているものとする。この場合、PCIeインタフェースが接続インタフェース204として用いられる。
 キャッシュメモリシステム110は、ハードウェアとして、コントローラ205及び不揮発性メモリ206を有する。
 コントローラ205は、キャッシュメモリシステム110全体を制御する。コントローラ205には、プロセッサ、メモリ、及び接続インタフェース等が含まれる。
 不揮発性メモリ206は、キャッシュ領域111に使用される記憶領域を提供する。不揮発性メモリ206は、Flashメモリ等が考えられる。
 ここで、メモリ202に格納されるプログラムについて説明する。
 OS101は、仮想データベースシステム管理装置100全体を制御する。OS101は、キャッシュドライバ211及び計測モジュール212を含み、また、キャッシュ管理情報213及びレイテンシ情報214を管理する。
 キャッシュドライバ211は、キャッシュメモリシステム110を制御するデバイスドライバである。本実施例では、仮想データベースを高速に生成するために、キャッシュ領域111が使用される。
 計測モジュール212は、仮想データベースシステム管理装置100及びデータベースシステム120との間の接続に起因するレイテンシを計測する。具体的には、計測モジュール212は、仮想データベースシステム管理装置100が各データベースシステム120にクエリを発行してから応答を受信するまでの時間(データベースシステム120からのデータの取得時間)を、レイテンシとして計測する。
 キャッシュ管理情報213は、キャッシュアルゴリズムに対応したキャッシュ制御に使用する情報である。例えば、LRU方式を採用している場合、LRUリストがキャッシュ管理情報213に対応する。キャッシュ管理情報213の具体例については、図4A及び図4Bを用いて説明する。
 レイテンシ情報214は、キャッシュ領域111に格納されるデータに関するレイテンシを管理する情報である。レイテンシ情報214の詳細は、図6を用いて説明する。
 仮想データベースシステム管理モジュール102は、制御モジュール221、ユーザインタフェース222、及びデータベースインタフェース223を含み、また、仮想データベース管理情報224を管理する。
 制御モジュール221は、仮想データベースシステム管理モジュール102全体を制御する。制御モジュール221は、クライアント端末130から受信したクエリを解析して、アクセス先のデータベースシステム120を特定し、特定されたデータベースシステム120へアクセスするためのクエリを発行する。また、制御モジュール221は、データベースシステム120から取得したデータを用いて仮想データベースを生成し、クライアント端末130に送信する。
 なお、クライアント端末130から受信したクエリの解析処理、データベースシステム120に出力するクエリの発行処理、及び仮想データベースの生成処理は、公知の処理であるため、詳細な説明は省略する。
 ユーザインタフェース222は、クライアント端末130が仮想データベースを操作するためのインタフェースである。ユーザインタフェース222は、クライアント端末130が発行したクエリを受信し、制御モジュール221に出力する。また、ユーザインタフェース222は、制御モジュール221が生成した仮想データベースをクライアント端末130に送信する。
 データベースインタフェース223は、複数のデータベースシステム120を操作するためのインタフェースである。データベースインタフェース223は、制御モジュール221が発行したクエリをデータベースシステム120に送信し、データベース122から取得したデータを制御モジュール221に出力する。
 仮想データベース管理情報224は、仮想データベースの構成を管理する情報である。仮想データベース管理情報224の詳細は図3を用いて説明する。なお、メモリ202には、データベース122の構成を管理する情報が格納されてもよい。
 図3は、実施例1の仮想データベース管理情報224の一例を示す図である。
 仮想データベース管理情報224は、仮想データベース名301及び物理データベース名302から構成されるエントリを含む。一つのエントリが一つの仮想データベースに対応する。
 仮想データベース名301は、仮想データベースの名称を格納するフィールドである。物理データベース名302は、データベース122の名称を格納するフィールドである。一つのエントリには、仮想データベースを構成するデータベース122の数だけ行が含まれる。なお、仮想データベースがテーブル形式のデータである場合、フィールドとデータベース122とを対応づけた情報でもよい。
 なお、仮想データベース及びデータベース122の名称の代わりに、ID等の識別情報を用いてもよい。
 図4A及び図4Bは、実施例1のキャッシュ管理情報213の一例を示す図である。図4Aは、LFU方式のキャッシュアルゴリズムに使用するキャッシュ管理情報213の一例を示す。図4Bは、LRU方式のキャッシュアルゴリズムに使用するキャッシュ管理情報213の一例を示す。
 図4Aに示すキャッシュ管理情報213は、アドレス401及びアクセス頻度402から構成されるエントリを含む。
 アドレス401は、キャッシュ領域111のアドレスを格納するフィールドである。アクセス頻度402は、アドレス401に対応するキャッシュ領域111に対するアクセス回数を格納するフィールドである。
 図4Bに示すキャッシュ管理情報213は、構造体410のリストである。構造体410は、アドレス411、previousポインタ412、及びnextポインタ413を含む。本実施例では、最近アクセスされたキャッシュ領域111に対応する構造体410が最も左に配置されるように管理される。
 アドレス411は、アドレス401と同一のものである。previousポインタ412は、前の構造体410を示すポインタを格納するフィールドである。nextポインタ413は、次の構造体410を示すポインタを格納するフィールドである。
 なお、図4A及び図4Bに示すキャッシュ管理情報213は一例であって、これに限定されない。
 図5は、実施例1のレイテンシ情報214の一例を示す図である。
 レイテンシ情報214は、アドレス510及びレイテンシスコア502から構成されるエントリを含む。一つのエントリは、データが格納された一つのキャッシュ領域111に対応する。
 アドレス510は、データが格納されるキャッシュ領域111のアドレスを格納するフィールドである。レイテンシスコア502は、アドレス510に対応するキャッシュ領域111に格納されるデータの取得時のレイテンシに基づいて算出された値を格納するフィールドである。
 本実施例では、予め、レイテンシからスコアを算出するための関数が与えられているものとする。例えば、レイテンシが100μsより小さい場合にはスコアを「1」とし、レイテンシが100μs以上500msより小さい場合にはスコアを「2」とし、レイテンシが500ms以上の場合には「3」とする。
 図6A及び図6Bは、実施例1の仮想データベースシステム管理モジュール102が実行する処理の一例を説明するフローチャートである。
 ユーザインタフェース222は、クライアント端末130から仮想データベースを参照するためのクエリを受け付ける(ステップS101)。当該クエリには、少なくとも仮想データベースの名称が含まれる。ユーザインタフェース222は、受け付けたクエリを制御モジュール221に出力する。
 次に、制御モジュール221は、クエリの解析結果に基づいて、アクセス先のデータベース122を特定する(ステップS102)。
 具体的には、制御モジュール221は、クエリから仮想データベースの名称を取得する。制御モジュール221は、仮想データベース管理情報224を参照し、仮想データベース名301がクエリから取得したデータベースの名称に一致するエントリを検索する。
 次に、制御モジュール221は、特定されたデータベース122の中からターゲットデータベース122を選択する(ステップS103)。
 具体的には、制御モジュール221は、検索されたエントリに含まれるデータベース122の名称を一つ選択する。
 次に、制御モジュール221は、ターゲットデータベース122のデータがキャッシュメモリシステム110に格納されるか否かをOS101に問い合わせる(ステップS104)。制御モジュール221は、OS101からの応答に基づいてキャッシュヒットか否かを判定する(ステップS105)。例えば、応答にデータが含まれる場合、制御モジュール221は、キャッシュヒットと判定する。
 キャッシュヒットの場合、制御モジュール221は、ステップS106に進む。このとき、制御モジュール221は、キャッシュドライバ211によって読み出されたキャッシュデータをワークエリアに格納する。
 キャッシュミスの場合、制御モジュール221は、ターゲットデータベース122からデータを取得するためのクエリを生成する(ステップS111)。また、制御モジュール221は、OS101に計測モジュール212の起動を要求し(ステップS112)、生成したクエリをターゲットデータベース122に送信する(ステップS113)。
 制御モジュール221は、データベースインタフェース223を介して、ターゲットデータベース122からデータを受信した場合(ステップS114)、受信したデータをワークエリアに格納する。また、制御モジュール221は、OS101に計測モジュール212の停止を要求する(ステップS115)。また、制御モジュール221は、ワークエリアに格納されたデータをキャッシュ領域111に登録するためのキャッシュ登録要求をOS101に出力する(ステップS116)。その後、制御モジュール221は、ステップS106に進む。
 ステップS106の判定結果がYESの場合、又は、ステップS116の処理が完了した場合、制御モジュール221は、特定された全てのデータベース122からデータが取得されたか否かを判定する(ステップS106)。
 特定された全てのデータベース122からデータが取得されていないと判定された場合、制御モジュール221は、ステップS103に戻り、同様の処理を実行する。
 特定された全てのデータベース122からデータが取得されたと判定された場合、制御モジュール221は、データベース122及びキャッシュメモリシステム110から取得したデータを用いて仮想データベースを生成する(ステップS107)。
 制御モジュール221は、生成された仮想データベースをユーザインタフェース222を介して、クライアント端末130に送信する(ステップS108)。
 図7は、実施例1のOS101が実行する処理の一例を説明するフローチャートである。
 OS101は、制御モジュール221からキャッシュデータの問合せを受け付けた場合、キャッシュドライバ211を呼び出して、キャッシュデータの検索を指示する(ステップS201)。
 OS101は、仮想データベースシステム管理モジュール102から計測モジュール212の起動要求を受け付けた場合、計測モジュール212を呼び出し、レイテンシ(データの取得時間)の計測の開始を指示する(ステップS202)。
 OS101は、仮想データベースシステム管理モジュール102から計測モジュール212の停止要求を受け付けた場合、計測モジュール212に停止指示を指示する(ステップS203)。このとき、OS101は、計測モジュール212が計測したレイテンシを取得し、当該レイテンシに基づいてスコアを算出する。OS101は、ワークエリアにスコアを格納する。
 OS101は、仮想データベースシステム管理モジュール102からキャッシュ登録要求を受け付けた場合、キャッシュドライバ211に書込要求を出力する(ステップS204)。当該書込要求には、スコア及びターゲットデータベース122から取得されたデータが含まれる。
 図8は、実施例1のキャッシュドライバ211がキャッシュデータを検索する場合の処理の一例を説明するフローチャートである。
 キャッシュドライバ211は、キャッシュメモリシステム110のキャッシュ領域111を参照し、ターゲットデータベース122のデータ(キャッシュデータ)を検索する(ステップS301)。
 キャッシュドライバ211は、検索結果に基づいて、キャッシュデータがキャッシュメモリシステム110に格納されているか否かを判定する(ステップS302)。
 キャッシュデータがキャッシュメモリシステム110に格納されていると判定された場合、キャッシュドライバ211は、キャッシュ領域111から当該キャッシュデータを読み出し、OS101にキャッシュデータを出力する(ステップS303)。
 キャッシュデータがキャッシュメモリシステム110に格納されていないと判定された場合、キャッシュドライバ211は、キャッシュミスをOS101に通知する(ステップS304)。
 なお、図7に示す処理の後、OS101は、キャッシュドライバ211の出力を含む応答を制御モジュール221に出力する。
 図9は、実施例1のキャッシュドライバ211がキャッシュ領域111にデータを格納する場合の処理の一例を説明するフローチャートである。
 キャッシュドライバ211は、書込要求を受け付けた場合、ターゲットデータベース122から受信したデータを格納するための記憶領域がキャッシュメモリシステム110に存在するか否かを判定する(ステップS401)。
 ターゲットデータベース122から受信したデータを格納するための記憶領域がキャッシュメモリシステム110に存在すると判定された場合、キャッシュドライバ211は、所定のキャッシュ領域111に当該データを格納する(ステップS402)。その後、キャッシュドライバ211は、キャッシュ管理情報213及びレイテンシ情報214を更新する(ステップS405)。
 具体的には、キャッシュドライバ211は、レイテンシ情報214にデータが格納されたキャッシュ領域111の数だけエントリを追加し、追加された各エントリのアドレス501にデータが格納されたキャッシュ領域111のアドレスを設定する。キャッシュドライバ211は、追加された全てのエントリのレイテンシスコア502にOS101が算出したスコアを設定する。このとき、各エントリに設定されるスコアは同一の値である。
 ステップS401において、ターゲットデータベース122から受信したデータを格納するための記憶領域がキャッシュメモリシステム110に存在しないと判定された場合、キャッシュドライバ211は、キャッシュ管理情報213及びレイテンシ情報214に基づいて、キャッシュメモリシステム110から追い出すキャッシュデータを選択する(ステップS403)。例えば、以下のような処理が考えられる。
 図4Aに示すキャッシュ管理情報213の場合、キャッシュドライバ211は、アドレス401及びアドレス501が一致するエントリのアクセス頻度402及びレイテンシスコア502に基づいて評価値を算出する。評価値は、アクセス頻度402及びレイテンシスコア502の合計値及び乗算値等が考えられる。キャッシュドライバ211は、当該評価値に基づいて、追い出すキャッシュデータを選択する。例えば、キャッシュドライバ211は、評価値が小さい順に、追い出すキャッシュデータを選択する。
 図4Bに示すキャッシュ管理情報213の場合、キャッシュドライバ211は、アドレス411及びアドレス501が一致する構造体410の順番及びレイテンシスコア502に基づいて評価値を算出する。評価値は、構造体410の順番及びレイテンシスコア502の合計値及び乗算値等が考えられる。キャッシュドライバ211は、当該評価値に基づいて、追い出すキャッシュデータを選択する。例えば、キャッシュドライバ211は、評価値が小さい順に、追い出すキャッシュデータを選択する。
 なお、評価値は、スコアに基づいてキャッシュ管理情報213を補正した値に対応する。例えば、LFU方式の場合はアクセス頻度がスコアに基づいて補正されることを示し、LRU方式の場合は構造体410の順番がスコアに基づいて補正されることを示す。
 キャッシュドライバ211は、選択されたキャッシュデータが格納されるキャッシュ領域111に新たなデータを格納する(ステップS404)。その後、キャッシュドライバ211は、キャッシュ管理情報213及びレイテンシ情報214を更新する(ステップS405)。
 具体的には、キャッシュドライバ211は、レイテンシ情報214のアドレス501が選択されたキャッシュ領域111のアドレスに一致するエントリを検索する。キャッシュドライバ211は、検索されたエントリのレイテンシスコア502にOS101が算出したスコアを設定する。
 なお、キャッシュドライバ211及び計測モジュール212は、OS101に含まれていなくてもよい。すなわち、OS101とは別のモジュールとして実現してもよい。
 実施例1によれば、レイテンシを反映したキャッシュ管理情報に基づいてキャッシュ制御を行うことによって、仮想データベースの参照性能を向上させることができる。
 また、実施例1では、仮想データベースシステム管理モジュール102は、計測モジュール212を呼び出し、また、キャッシュデータの登録を指示するだけでよいため、既存のアプリケーションを大きく変更することなく実現できる。
 実施例2では、仮想データベースシステム管理装置100が、二つの動作のモードを切り替える機能を有する。一つの動作モードはレイテンシ情報214を用いるキャッシュ制御を行うモードであり、他の動作モードはレイテンシ情報214を用いないキャッシュ制御を行うモードである。以下、実施例1との差異を中心に実施例2について説明する。
 実施例2の計算機システムの構成は、実施例1の計算機システムの構成と同一である。また、実施例2の各装置の構成は、実施例1の各装置の構成と同一である。
 実施例2では、アプリケーション131が発行するクエリに、計測モジュール212の起動を指示する情報(構文)を含める点が異なる。
 図10A及び図10Bは、実施例2の仮想データベースシステム管理モジュール102が実行する処理の一例を説明するフローチャートである。
 ステップS501からステップS508の処理は、ステップS101からステップS108の処理と同一である。
 ステップS505において、キャッシュミスと判定された場合、仮想データベースシステム管理モジュール102は、クエリの解析結果に基づいて、計測モジュール212を起動させるか否かを判定する(ステップS511)。
 具体的には、仮想データベースシステム管理モジュール102は、アプリケーション131が発行したクエリに計測モジュール212の起動を指示する情報が含まれるか否かを判定する。当該クエリに計測モジュール212の起動を指示する情報が含まれる場合、仮想データベースシステム管理モジュール102は、計測モジュール212を起動させると判定する。
 計測モジュール212を起動させると判定された場合、仮想データベースシステム管理モジュール102は、ステップS512からステップS517の処理を実行した後、ステップS506に進む。なお、ステップS512からステップS517の処理は、ステップS111からステップS116の処理と同一である。
 計測モジュール212を起動させないと判定された場合、制御モジュール221は、ターゲットデータベース122へ問い合わせるためのクエリを生成し(ステップS518)、生成したクエリをターゲットデータベース122に送信する(ステップS519)。
 また、制御モジュール221は、データベースインタフェース223を介して、ターゲットデータベース122からデータを受信した場合(ステップS520)、受信したデータをワークエリアに格納し、ワークエリアに格納されたデータをキャッシュ領域111に登録するためのキャッシュ登録要求をOS101に出力する(ステップS521)。その後、制御モジュール221は、ステップS506に進む。
 なお、ステップS518、ステップS519、ステップS520、及びステップS521の処理は、ステップS111、ステップS113、ステップS114、及びステップS118の処理と同一である。
 OS101が実行する処理は、実施例1と同一である。ただし、計測モジュール212を起動する必要がない場合、ステップS202及びステップS203の処理は省略される。また、ステップS204では、スコアが含まれない書込要求がキャッシュドライバ211に入力される。
 キャッシュドライバ211がキャッシュデータを検索する場合の処理は、実施例1の処理と同一である。
 図11A及び図11Bは、実施例2のキャッシュドライバ211がキャッシュ領域111にデータを格納する場合の処理の一例を説明するフローチャートである。
 キャッシュドライバ211は、書込要求を受け付けた場合、書込要求にスコアが含まれるか否かを判定する(ステップS601)。
 書込要求にスコアが含まれると判定された場合、キャッシュドライバ211は、ステップS602に進む。ステップS602からステップS606の処理は、ステップS401からステップS405の処理と同一である。
 書込要求にスコアが含まれないと判定された場合、キャッシュドライバ211は、ターゲットデータベース122から受信したデータを格納するための記憶領域がキャッシュメモリシステム110に存在するか否かを判定する(ステップS611)。ステップS611の処理は、ステップS401の処理と同一である。
 ターゲットデータベース122から受信したデータを格納するための記憶領域がキャッシュメモリシステム110に存在すると判定された場合、キャッシュドライバ211は、所定のキャッシュ領域111に当該データを格納する(ステップS612)。その後、キャッシュドライバ211は、キャッシュ管理情報213を更新する(ステップS615)。その後、キャッシュドライバ211は処理を終了する。
 なお、ステップS612及びステップS615は、公知のキャッシュ制御と同一の処理であるため詳細な説明は省略する。
 ステップS611において、ターゲットデータベース122から受信したデータを格納するための記憶領域がキャッシュメモリシステム110に存在しないと判定された場合、キャッシュドライバ211は、キャッシュ管理情報213に基づいて、キャッシュメモリシステム110から追い出すキャッシュデータを選択する(ステップS613)。また、キャッシュドライバ211は、選択されたキャッシュデータが格納されるキャッシュ領域111に新たなデータを格納する(ステップS614)。キャッシュドライバ211は、キャッシュ管理情報213を更新する(ステップS615)。その後、キャッシュドライバ211は処理を終了する。
 なお、ステップS613、ステップS614、及びステップS615の処理は、公知のキャッシュ制御処理と同一であるため詳細な説明は省略する。
 実施例2によれば、ユーザがキャッシュ制御を適宜切り替えることができる。
 実施例3では、仮想データベースシステム管理モジュール102がキャッシュ制御の機能を有する。以下、実施例1との差異を中心に実施例3について説明する。
 実施例3の計算機システムの構成は、実施例1の計算機システムの構成と同一である。実施例3では、仮想データベースシステム管理装置100のソフトウェア構成が実施例1と異なる。
 図12は、実施例3の仮想データベースシステム管理装置100及びキャッシュメモリシステム110の詳細な構成の一例を示す図である。
 仮想データベースシステム管理装置100のハードウェア構成は、実施例1と同一である。実施例3では、仮想データベースシステム管理モジュール102が計測モジュール212を有し、また、キャッシュ管理情報213及びレイテンシ情報214を保持する。
 なお、キャッシュ管理情報213及びレイテンシ情報214のアドレス401、411、501に格納されるアドレスは、仮想データベースシステム管理モジュール102が認識する仮想アドレス空間におけるアドレスである。また、仮想データベースシステム管理モジュール102は、ページ単位のキャッシュ領域111を認識する。
 図13A及び図13Bは、実施例3の仮想データベースシステム管理モジュール102が実行する処理の一例を説明するフローチャートである。
 ステップS701からステップS708の処理は、ステップS101からステップS108の処理と同一である。
 ステップS705において、キャッシュミスと判定された場合、制御モジュール221は、クエリを生成し(ステップS711)、計測モジュール212を起動する(ステップS712)。ステップS711の処理はステップS111の処理と同一である。実施例3では、仮想データベースシステム管理モジュール102が計測モジュール212を含むため、制御モジュール221が直接計測モジュール212を呼び出す。
 ステップS713及びステップS714の処理は、ステップS113及びステップS114の処理と同一である。ステップS714の処理が実行された後、制御モジュール221は、計測モジュール212に停止を指示する(ステップS715)。このとき、制御モジュール221は、計測モジュール212からレイテンシを取得し、当該レイテンシに基づいてスコアを算出する。制御モジュール221は、ワークエリアにスコアを格納する。
 制御モジュール221は、キャッシュ登録処理を実行する(ステップS716)。その後、制御モジュール221は、ステップS706に進む。
 制御モジュール221が実行するキャッシュ登録処理は、図9に示す処理と同様の内容である。ただし、制御モジュール221は、キャッシュドライバ211を介して、キャッシュメモリシステム110の空き容量、キャッシュメモリシステム110へのデータの書込を行う。
 実施例3によれば、既存のOS101を変更することなく、実施例1と同様の効果を有するシステムを実現できる。
 なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
 また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるCPUが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
 また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Java等の広範囲のプログラム又はスクリプト言語で実装できる。
 さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD-RW、CD-R等の記憶媒体に格納し、コンピュータが備えるCPUが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
 上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。

Claims (10)

  1.  複数のデータベースを統合することによって生成される仮想データベースを生成する計算機であって、
     プロセッサ、前記プロセッサに接続されるメモリ、前記プロセッサに接続されるネットワークインタフェース、及び前記プロセッサに接続される接続インタフェースを備え、
     データベースを管理する複数のデータベースシステム、及び前記データベースから取得したデータを格納するキャッシュ領域を提供するキャッシュメモリシステムと接続し、
     前記仮想データベースを構成する複数のデータベースを管理する仮想データベース管理情報と、キャッシュ制御に使用するキャッシュ管理情報と、前記データベースからのデータの取得時におけるレイテンシを管理するレイテンシ情報と、を保持し、
     前記プロセッサは、
     前記仮想データベースを参照するためのクエリを受け付けた場合、前記クエリの解析結果及び前記仮想データベース管理情報に基づいて、前記仮想データベースを構成する複数のターゲットデータベースを特定し、
     前記複数のターゲットデータベースのデータのうち、前記キャッシュメモリシステムにキャッシュデータが格納されているデータは、前記キャッシュメモリシステムから取得し、
     前記複数のターゲットデータベースのデータのうち、前記キャッシュメモリシステムにキャッシュデータが格納されていないデータは、前記複数のターゲットデータベースから取得し、
     前記キャッシュメモリシステムから取得したキャッシュデータ及び前記特定された複数のデータベースから取得したデータを用いて前記仮想データベースを生成し、
     前記複数のターゲットデータベースから取得したデータを格納する前記キャッシュ領域が不足している場合、前記キャッシュ管理情報及び前記レイテンシ情報に基づいて、前記キャッシュ領域の評価値を算出し、
     前記評価値に基づいて、キャッシュデータを削除する前記キャッシュ領域を選択し、
     前記選択されたキャッシュ領域に、前記複数のターゲットデータベースから取得したデータを格納することを特徴とする計算機。
  2.  請求項1に記載の計算機であって、
     前記レイテンシ情報は、前記キャッシュ領域のアドレス及び前記レイテンシから構成されるエントリを含み、
     前記プロセッサは、
     前記複数のターゲットデータベースからデータを取得する場合に要する取得時間を前記レイテンシとして計測し、
     前記選択されたキャッシュ領域に、前記複数のデータベースから取得したデータを格納した後に、前記選択されたキャッシュ領域に対応するエントリを検索し、
     前記検索されたエントリに前記レイテンシを設定することを特徴とする計算機。
  3.  請求項2に記載の計算機であって、
     前記キャッシュ管理情報は、前記キャッシュ領域のアドレス及び前記キャッシュ領域に対するアクセス回数から構成されるエントリを含み、
     前記プロセッサは、前記キャッシュ領域の前記アクセス回数及び前記レイテンシに基づいて、前記評価値を算出することを特徴とする計算機。
  4.  請求項2に記載の計算機であって、
     前記キャッシュ管理情報は、前記キャッシュ領域のアドレスのリストであり、
     前記プロセッサは、前記リストにおける前記キャッシュ領域の順番及び前記レイテンシに基づいて、前記評価値を算出することを特徴とする計算機。
  5.  請求項2に記載の計算機であって、
     前記クエリは、前記レイテンシの計測を行うか否かを示す情報を含み、
     前記プロセッサは、
     前記レイテンシの計測を指示する情報を含む前記クエリを受け付けた場合、前記レイテンシを計測し、
     前記レイテンシの計測を指示する情報を含まない前記クエリを受け付けた場合、前記キャッシュ管理情報に基づいて、前記キャッシュデータを削除する前記キャッシュ領域を選択することを特徴とする計算機。
  6.  複数のデータベースを統合することによって生成される仮想データベースを生成する計算機におけるキャッシュ制御方法であって、
     プロセッサ、前記プロセッサに接続されるメモリ、前記プロセッサに接続されるネットワークインタフェース、及び前記プロセッサに接続される接続インタフェースを備え、
     データベースを管理する複数のデータベースシステム、及び前記データベースから取得したデータを格納するキャッシュ領域を提供するキャッシュメモリシステムと接続し、
     前記仮想データベースを構成する複数のデータベースを管理する仮想データベース管理情報と、キャッシュ制御に使用するキャッシュ管理情報と、前記データベースからのデータの取得時におけるレイテンシを管理するレイテンシ情報と、を保持し、
     前記プロセッサは、
     前記仮想データベースを参照するためのクエリを受け付けた場合、前記クエリの解析結果及び前記仮想データベース管理情報に基づいて、前記仮想データベースを構成する複数のターゲットデータベースを特定する第1のステップと、
     前記複数のターゲットデータベースのデータのうち、前記キャッシュメモリシステムにキャッシュデータが格納されているデータは、前記キャッシュメモリシステムから取得する第2のステップと、
     前記複数のターゲットデータベースのデータのうち、前記キャッシュメモリシステムにキャッシュデータが格納されていないデータは、前記複数のターゲットデータベースから取得する第3のステップと、
     前記キャッシュメモリシステムから取得したキャッシュデータ及び前記特定された複数のデータベースから取得したデータを用いて前記仮想データベースを生成する第4のステップと、
     前記複数のターゲットデータベースから取得したデータを格納する前記キャッシュ領域が不足している場合、前記キャッシュ管理情報及び前記レイテンシ情報に基づいて、前記キャッシュ領域の評価値を算出する第5のステップと、
     前記評価値に基づいて、キャッシュデータを削除する前記キャッシュ領域を選択する第6のステップと、
     前記選択されたキャッシュ領域に、前記複数のターゲットデータベースから取得したデータを格納する第7のステップと、を含むことを特徴とするキャッシュ制御方法。
  7.  請求項6に記載のキャッシュ制御方法であって、
     前記レイテンシ情報は、前記キャッシュ領域のアドレス及び前記レイテンシから構成されるエントリを含み、
     前記第3のステップは、前記プロセッサが、前記複数のターゲットデータベースからデータを取得する場合に要する取得時間を前記レイテンシとして計測するステップを含み、
     前記第7のステップは、
     前記プロセッサが、前記選択されたキャッシュ領域に、前記複数のデータベースから取得したデータを格納した後に、前記選択されたキャッシュ領域に対応するエントリを検索するステップと、
     前記プロセッサが、前記検索されたエントリに前記レイテンシを設定するステップと、を含むことを特徴とするキャッシュ制御方法。
  8.  請求項7に記載のキャッシュ制御方法であって、
     前記キャッシュ管理情報は、前記キャッシュ領域のアドレス及び前記キャッシュ領域に対するアクセス回数から構成されるエントリを含み、
     前記第5のステップでは、前記プロセッサが、前記キャッシュ領域の前記アクセス回数及び前記レイテンシに基づいて、前記評価値を算出することを特徴とするキャッシュ制御方法。
  9.  請求項7に記載のキャッシュ制御方法であって、
     前記キャッシュ管理情報は、前記キャッシュ領域のアドレスのリストであり、
     前記第5のステップでは、前記プロセッサが、前記リストにおける前記キャッシュ領域の順番及び前記レイテンシに基づいて、前記評価値を算出することを特徴とするキャッシュ制御方法。
  10.  請求項7に記載のキャッシュ制御方法であって、
     前記クエリは、前記レイテンシの計測を行うか否かを示す情報を含み、
     前記第3のステップでは、前記レイテンシの計測を指示する情報を含む前記クエリを受け付けた場合、前記プロセッサが、前記レイテンシを計測し、
     前記第6のステップでは、前記レイテンシの計測を指示する情報を含まない前記クエリを受け付けた場合、前記プロセッサが、前記キャッシュ管理情報に基づいて、前記キャッシュデータを削除する前記キャッシュ領域を選択することを特徴とするキャッシュ制御方法。
PCT/JP2017/007168 2017-02-24 2017-02-24 計算機及びキャッシュ制御方法 Ceased WO2018154725A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2017/007168 WO2018154725A1 (ja) 2017-02-24 2017-02-24 計算機及びキャッシュ制御方法
US16/335,112 US20190236076A1 (en) 2017-02-24 2017-02-24 Computer and cache control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/007168 WO2018154725A1 (ja) 2017-02-24 2017-02-24 計算機及びキャッシュ制御方法

Publications (1)

Publication Number Publication Date
WO2018154725A1 true WO2018154725A1 (ja) 2018-08-30

Family

ID=63253599

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/007168 Ceased WO2018154725A1 (ja) 2017-02-24 2017-02-24 計算機及びキャッシュ制御方法

Country Status (2)

Country Link
US (1) US20190236076A1 (ja)
WO (1) WO2018154725A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023127146A1 (ja) * 2021-12-28 2023-07-06 楽天モバイル株式会社 情報処理システム及び情報処理方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12105973B2 (en) * 2020-03-25 2024-10-01 Samsung Electronics Co., Ltd. Dynamic quantization in storage devices using machine learning

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012203792A (ja) * 2011-03-28 2012-10-22 Nippon Telegr & Teleph Corp <Ntt> 有効期限算出装置、有効期限算出方法及び有効期限算出プログラム
JP2016146205A (ja) * 2014-11-19 2016-08-12 株式会社インフォメックス データ検索装置、プログラム、及び記録媒体

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012203792A (ja) * 2011-03-28 2012-10-22 Nippon Telegr & Teleph Corp <Ntt> 有効期限算出装置、有効期限算出方法及び有効期限算出プログラム
JP2016146205A (ja) * 2014-11-19 2016-08-12 株式会社インフォメックス データ検索装置、プログラム、及び記録媒体

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023127146A1 (ja) * 2021-12-28 2023-07-06 楽天モバイル株式会社 情報処理システム及び情報処理方法

Also Published As

Publication number Publication date
US20190236076A1 (en) 2019-08-01

Similar Documents

Publication Publication Date Title
JP6983806B2 (ja) タグ付きオブジェクトメモリのモニタリング方法及び処理装置
US10579267B2 (en) Memory controller and memory system
US20210406183A1 (en) Method and apparatus for a page-local delta-based prefetcher
US11481318B2 (en) Method and apparatus, and storage system for translating I/O requests before sending
US9501419B2 (en) Apparatus, systems, and methods for providing a memory efficient cache
CN104272275A (zh) 增强数据缓存性能
CN103635887B (zh) 缓存数据的方法和存储系统
TWI824837B (zh) 記憶體系統
JP5183403B2 (ja) ストレージシステムおよび制御プログラムならびにストレージシステム制御方法
JP2017010396A (ja) ストレージ装置、キャッシュ書込制御方法及びキャッシュ書込制御プログラム
CN103279427B (zh) 存储标识符的基于散列的管理方法和系统
KR102482516B1 (ko) 메모리 어드레스 변환
JP6203592B2 (ja) 計算機システム、キャッシュ管理方法及び計算機
JPWO2012002428A1 (ja) 記憶装置、解放優先順位決定方法およびプログラム
JP5999536B2 (ja) 計算機及びデータ読み出し方法
WO2018154725A1 (ja) 計算機及びキャッシュ制御方法
CN112840330B (zh) 指令高速缓存中的预取终止和恢复
JP2015184883A (ja) 計算機システム
JP4643543B2 (ja) キャッシュ一貫性保証機能を有するストレージクラスタシステム
CN118193411A (zh) 内存管理装置、方法、芯片、电子设备
CN107679093B (zh) 一种数据查询方法及装置
EP2782002A2 (en) Control device, storage system, and control program
US8055815B2 (en) Optimal paths with SCSI I/O referrals
WO2014038016A1 (ja) 制御プログラム、制御方法及び制御装置
JP6132010B2 (ja) 制御装置、制御プログラム、および制御方法

Legal Events

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

Ref document number: 17898158

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17898158

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP