Apparatus, system, and method for database provisioning
Summary by NHIP
Centralized federation apparatus
The apparatus analyzes a database query stream in real time and provisions resources when performance attributes cross a threshold. A move module transfers metadata and structural configuration data to assigned resources, while a query module redirects subsequent queries transparently to the new resource.
Claim Score by NHIP
Abstract
An apparatus, system, and method are disclosed for provisioning database resource within a grid database system. The apparatus comprises an analysis module and a provision module. The analysis module analyzes a data query stream from an application to a database instance and determines that the data query stream exhibits a predetermined performance attribute. The provision module provisions a database resource in response to a determination that the data query stream exhibits the predetermined performance attribute. The provisioned database resource may be a database instance, a database server, or a cache. The provisioning of the new database resource advantageously is substantially transparent to a client on the database system.

Term
Term ended
Expired 28 March 2026, 0.5 years ago.
- Priority and filed
- Granted
- Expired
- Today
16 claims: 3 independent, 13 dependent
- 1A centralized federation apparatus implemented on a processor and a memory, the centralized federation apparatus for provisioning database resources, the centralized federation apparatus comprising:an analysis module that analyzes a database query stream from an application to a database instance in real time, the database instance comprising a logical representation of a database and returning a result set in response to a database query from the database query stream, the database comprising physical data stored on a storage device;the analysis module further determines that the database query stream exhibits a predetermined performance attribute;a provision module that assigns a database resource selected from the group consisting of a second database instance stored in computer readable memory, a database server, and a cache stored in computer readable memory in response to a determination that the database query stream exhibits the predetermined performance attribute;a move module that transfers at least a portion of the database instance to the assigned database resource such that the transfer is transparent to a client, wherein the portion of the database instance comprises metadata and structural configuration data for operating one of the second database instance, the database server, and the cache defined by the assigned database resource;and a query module that redirects one or more database queries from the database query stream to the assigned database resource, the assigned database resource assigned in response to a value for the predetermined performance attribute of the database query stream crossing a predetermined threshold.
- 5A system for provisioning database resources, the system comprising:a first database resource having data;an application that generates a database query to be submitted to the first database resource;a centralized federation apparatus coupled between the first database resource and the application, the centralized federation apparatus provisioning a second database resource and redirecting the database query to the second database resource, the centralized federation apparatus comprising a processor and a memory;an analysis module that analyzes a database query stream from an application to a database instance in real time the database instance comprising a logical representation of a database and returning a result set in response to a database query from the database query stream, the database comprising physical data stored on a storage device;the analysis module further determines that the database query stream exhibits a predetermined performance attribute;a provision module that assigns a database resource selected from the group consisting of a second database instance stored in computer readable memory, a database server, and a cache stored in computer readable memory in response to a determination that the database query stream exhibits the predetermined performance attribute;a move module that transfers at least a portion of the database instance to the assigned database resource such that the transfer is transparent to a client, wherein the portion of the database instance comprises metadata and structural configuration data for operating one of the second database instance, the database server, and the cache defined by the assigned database resource;a queue module coupled to the move module, the queue module that queues at least one database query from the database query stream substantially concurrently with the transfer of the database instance such that a database query failure is avoided and the transfer is transparent to a client;and a query module that redirects one or more database queries from the database query stream to the assigned database resource, the assigned database resource assigned in response to a value for the predetermined performance attribute of the database query stream crossing a predetermined threshold.
- 12Broadest claimClaim Score 31, narrow(NHIP)A computer implemented method for provisioning database resources, the method-comprising:analyzing, by a centralized federation apparatus, a database query stream from an application to a database instance in real time, the database instance comprising a logical representation of a database and returning a result set in response to a database query from the database query stream, the database comprising physical data stored on a storage device;determining, by the centralized federation apparatus, when the database query stream exhibits a predetermined performance attribute;assigning, by the centralized federation apparatus, a database resource selected from the group consisting of a second database instance stored in computer readable memory, a database server, and a cache stored in computer readable memory in response to a determination that the database query stream exhibits the predetermined performance attribute;replicating a portion of a database from the database instance to the assigned database resources;transferring at least a portion of the database instance to the assigned database resource such that the transfer is transparent to a client, wherein the portion of the database instance comprises metadata and structural configuration data for operating one of the second database instance, the database server, and the cache defined by the assigned database resource;and redirecting one or more database queries from the database query stream to the assigned database resource, the assigned database resource assigned in response to a value for the predetermined performance attribute of the database query stream crossing a predetermined threshold.
Independent claims3
66 paragraphs in 4 sections, as filed
BACKGROUND OF THE INVENTION
p-00021. Field of the Invention
p-0003This invention relates to databases and more particularly relates to provisioning database resources on a grid computing system.
p-00042. Description of the Related Art
p-0005Grid computing takes advantage of the combined processing power of several computers that are loosely coupled to share processing cycles to execute shared operations or portions of an overall operation. By employing grid computing, complex operations may be executed that might overwhelm a single computer. From another perspective, grid computing allows several users to more efficiently use the resources of a fewer number of machines.
p-0006One application for grid computing is apparent in the shared access by disparate entities to a central or distributed data storage system. For example, a storage area network (SAN) having a plurality of data storage devices may be used by one company during the day and by another company during the night. In this way, one company may back up its data, for example, during the off hours of the night and another company can back up its data during a slow time during the day. This implementation may be especially useful where the companies have different operating needs, for example, where one company is in the United States and the other company is in India.
p-0007<figref idrefs="DRAWINGS">FIG. 1</figref> shows a database system. The illustrated database system includes a client that is connected to several database servers, which are connected to several databases via a SAN. The databases are physically stored on storage media, such as magnetic disks in the SAN. The database servers (also referred to as database managers and/or database instances) are logical representations of one or more of the databases. A database instance also may include other data and metadata that may be useful in operating the database. For example, the database instance may include some or all of the following information: a database name, volumes, files, and metadata, including configuration files, database parameters, and paths to the volumes.
p-0008One database instance may facilitate client access to one or more databases. However, when the workload on the database instance increases, conventional technology may not allow an alternative way to access the data more effectively within the database. In other words, the database server may become overloaded and the potential performance of the grid may be diminished.
p-0009In order to implement an efficient grid computing system, the grid system should be designed to accommodate increased or decreased load demands. The grid system should also be designed to balance the loads on the system among the multiple computers within the system. Unfortunately, conventional technology fails to demonstrate adequate workload balancing and resource provisioning within a grid computing system. Additionally, conventional database technologies for grid computing are rather limited. Although some conventional technologies attempt to transfer a database from one instance to another upon failure of a database manager, conventional technology does not provide for resource provisioning to increase the performance of the database system.
p-0010From the foregoing discussion, it should be apparent that a need exists for an apparatus, system, and method that provision database resources in response to performance of the database system. Beneficially, such an apparatus, system, and method would additionally overcome the performance limitations of conventional database systems and would cause less disruption (outages) than a failover mechanism.
SUMMARY OF THE INVENTION
p-0011From the foregoing discussion, it should be apparent that a need exists for an apparatus, system, and method that provisions database resources in response to performance of the database system. Beneficially, such an apparatus, system, and method would additionally overcome the performance limitations of conventional database systems.
p-0012The several embodiments of the present invention have been developed in response to the present state of the art, and in particular, in response to the problems and needs in the art that have not yet been fully solved by currently available database systems. Accordingly, the present invention has been developed to provide an apparatus, system, and method for provisioning database resources that overcome many or all of the above-discussed shortcomings in the art.
p-0013In one embodiment, the analysis module analyzes a data query stream from a client to a database instance. The analysis module also determines if the data query stream exhibits a predetermined performance attribute. The predetermined performance attribute may be any type of performance attribute that defines the performance of the database instance or a corresponding database, such as workload balance, network delay, failure, query throughput, and so forth.
p-0014In one embodiment, the provision module provisions a database resource in response to a determination that the data query stream exhibits a given performance attribute. The provisioned database resource may be a database instance, a cache, or another database resource.
p-0015In one embodiment, the query module redirects a data query within a data query stream to the provisioned database resource. In one embodiment, the move module transfers an entire database from a first database instance to another database instance. Alternatively, the move module may transfer a portion of a database. In one embodiment, the cache module determines which data within a database might be replicated on a provisioned database resource, such as a cache. In one embodiment, the replication module copies the specified data from the database to the cache. The replication module also may ensure that the data on the cache is updated periodically or when the data in the back end database is updated. In one embodiment, the queue module queues a data query from the data query stream approximately during the time that the new database resource is provisioned and initialized. In one embodiment, the patrol module captures a copy of every data query in the data query stream.
p-0016A system of the present invention is also presented to provision database resources. The system may be embodied in a database system having one or more clients, one or more database servers, one or more databases, and a federation apparatus, as described above. The system also may include a storage area network (SAN) and/or other networking and communication subsystems to couple together the client(s), database(s), server(s), and federation apparatus.
p-0017A signal bearing medium is also presented to store a program that, when executed, performs operations to provision database resources. In one embodiment, the operations include analyzing a data query stream from an application to a database instance, determining if the data query stream exhibits a predetermined performance attribute, and provisioning a database resource in response to a determination that the data query stream exhibits the predetermined performance attribute.
p-0018In further embodiments, the operations may include redirecting a data query from the data query stream to the provisioned database resource, transferring an entire database from the database instance to the provisioned database resource, and/or provisioning a new database instance. In further embodiments, the operations may include replicating a portion of a database, from the database instance, on the provisioned database resource, provisioning a cache, updating the replicated data in the cache in response to an update to the database, and/or determining the portion of the database to be replicated on the provisioned database resource. In further embodiments, the operations may include provisioning the database resource locally to the federation apparatus, provisioning the database resource remotely from the federation apparatus, and/or queuing a data query from the data query stream approximately while the provision module provisions the database resource
p-0019Reference throughout this specification to features, advantages, or similar language does not imply that all of the features and advantages that may be realized with the present invention should be or are in any single embodiment of the invention. Rather, language referring to the features and advantages is understood to mean that a specific feature, advantage, or characteristic described in connection with an embodiment is included in at least one embodiment of the present invention. Thus, discussion of the features and advantages, and similar language, throughout this specification may, but do not necessarily, refer to the same embodiment.
p-0020Furthermore, the described features, advantages, and characteristics of the invention may be combined in any suitable manner in one or more embodiments. One skilled in the relevant art will recognize that the invention may be practiced without one or more of the specific features or advantages of a particular embodiment. In other instances, additional features and advantages may be recognized in certain embodiments that may not be present in all embodiments of the invention.
p-0021These features and advantages of the present invention will become more fully apparent from the following description and appended claims, or may be learned by the practice of the invention as set forth hereinafter.
BRIEF DESCRIPTION OF THE DRAWINGS
p-0022In order that the advantages of the invention will be readily understood, a more particular description of the invention briefly described above will be rendered by reference to specific embodiments that are illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments of the invention and are not therefore to be considered to be limiting of its scope, the invention will be described and explained with additional specificity and detail through the use of the accompanying drawings, in which:
p-0023<figref idrefs="DRAWINGS">FIG. 1</figref> is a schematic block diagram illustrating a database system;
p-0024<figref idrefs="DRAWINGS">FIG. 2</figref> is a schematic block diagram illustrating one embodiment of a database system to provision database resources;
p-0025<figref idrefs="DRAWINGS">FIG. 3</figref> is a schematic block diagram illustrating one embodiment of a database move operation;
p-0026<figref idrefs="DRAWINGS">FIG. 4</figref> is a schematic block diagram illustrating one embodiment of a database cache operation;
p-0027<figref idrefs="DRAWINGS">FIG. 5</figref> is a schematic flow chart diagram illustrating one embodiment of a federation apparatus;
p-0028<figref idrefs="DRAWINGS">FIG. 6</figref> is a schematic flow chart diagram illustrating one embodiment of a federation method that may be implemented on the database system of <figref idrefs="DRAWINGS">FIG. 2</figref>;
p-0029<figref idrefs="DRAWINGS">FIG. 7</figref> is a schematic flow chart diagram illustrating another embodiment of a federation method that may be implemented on the database system of <figref idrefs="DRAWINGS">FIG. 2</figref>; and
p-0030<figref idrefs="DRAWINGS">FIG. 8</figref> is a schematic flow chart diagram illustrating another embodiment of a federation method that may be implemented on the database system of <figref idrefs="DRAWINGS">FIG. 2</figref>.
DETAILED DESCRIPTION OF THE INVENTION
p-0031Many of the functional units described in this specification have been labeled as modules, in order to more particularly emphasize their implementation independence. For example, a module may be implemented as a hardware circuit comprising custom VLSI circuits or gate arrays, off-the-shelf semiconductors such as logic chips, transistors, or other discrete components. A module may also be implemented in programmable hardware devices such as field programmable gate arrays, programmable array logic, programmable logic devices or the like.
p-0032Modules may also be implemented in software for execution by various types of processors. An identified module of executable code may, for instance, comprise one or more physical or logical blocks of computer instructions which may, for instance, be organized as an object, procedure, or function. Nevertheless, the executables of an identified module need not be physically located together, but may comprise disparate instructions stored in different locations which, when joined logically together, comprise the module and achieve the stated purpose for the module.
p-0033Indeed, a module of executable code may be a single instruction, or many instructions, and may even be distributed over several different code segments, among different programs, and across several memory devices. Similarly, operational data may be identified and illustrated herein within modules, and may be embodied in any suitable a) form and organized within any suitable type of data structure. The operational data may be collected as a single data set, or may be distributed over different locations including over different storage devices, and may exist, at least partially, merely as electronic signals on a system or network.
p-0034<figref idrefs="DRAWINGS">FIG. 2</figref> depicts one embodiment of a database system <b>200</b> to provision database resources. The illustrated database system <b>200</b> includes a client <b>202</b> that is coupled to a federation apparatus <b>204</b>. The federation apparatus <b>204</b>, in turn, is coupled to a plurality of database servers <b>206</b> via a local area network (LAN) <b>208</b>. Alternatively, the federation apparatus <b>204</b> may be coupled to the database servers <b>206</b> via another type of communication channel or network.
p-0035The database servers <b>206</b> are coupled to a plurality of databases <b>210</b> that are physically stored on electronic storage media. Each database <b>210</b> may be stored on a single electronic storage device or may be distributed over a plurality of electronic storage devices. The electronic storage media may be magnetic disks, optical disks, magnetic tape, or another type of data storage device. In one embodiment, the database servers <b>206</b> are connected to the databases <b>210</b> via a storage area network (SAN) <b>212</b>. The SAN <b>212</b> provides shared access to the several databases <b>210</b> stored on the electronic storage media connected to the SAN <b>212</b>. Alternatively, the database servers <b>206</b> may be coupled to the databases <b>210</b> via another type of communication channel or network. For example, in one embodiment, a database <b>210</b> may be stored locally on a database server <b>206</b> and coupled via a bus within the database server <b>206</b>.
p-0036The database servers <b>206</b> also may be referred to as database managers, database manager instances, or simply database instances. The database servers <b>206</b> are logical representations of one or more of the databases <b>210</b>. Additionally, the database server <b>206</b> may include other data and/or metadata that may be useful in operating a database <b>210</b>. For example, the database server <b>206</b> may include some or all of the following information: a database name, volumes, files, and metadata, including configuration files, database parameters, and paths to the volumes. A single database server <b>206</b> may facilitate client access to one or more of the databases <b>210</b>. Furthermore, a data server <b>206</b> may facilitate client access to a portion of one of the databases <b>210</b>.
p-0037During operation of the database system <b>200</b>, it may be useful for the client <b>202</b> to access information in a database <b>210</b> through various path configurations. In the depicted embodiment, the client <b>202</b> may access database information through a single database server <b>206</b>. Alternatively, the client <b>202</b> may access database information by moving the logical instance of the database <b>210</b> to another existing or new database server <b>206</b>. One example of a database move operation is described in more detail with reference to <figref idrefs="DRAWINGS">FIG. 3</figref>. In another embodiment, the client <b>202</b> may access database information by copying or moving some or all of the physical data within the database <b>210</b> to another storage location on the same storage device or on another storage device. One example of a database cache operation is described in more detail with reference to <figref idrefs="DRAWINGS">FIG. 4</figref>.
p-0038<figref idrefs="DRAWINGS">FIG. 3</figref> depicts one embodiment of a database move operation <b>300</b>. The database move operation <b>300</b> is described with reference to a client <b>302</b>, a federation apparatus <b>304</b>, database servers <b>306</b>, and a database <b>310</b> that are substantially similar to the client <b>202</b>, federation apparatus <b>204</b>, database servers <b>206</b>, and databases <b>210</b>, respectively, of <figref idrefs="DRAWINGS">FIG. 2</figref>. Devices corresponding to other components of the database system <b>200</b> have been omitted for clarity. The illustrated database move operation <b>300</b> is exemplary of how the federation apparatus <b>304</b> may provision a second database server <b>306</b> and move the logical instance <b>320</b> of the database <b>310</b> from a first database server <b>306</b><i>a </i>to the second database server <b>306</b><i>a. </i>
p-0039Prior to provisioning the second database server <b>306</b><i>b</i>, the client <b>302</b> accesses the database <b>310</b> via the database instance <b>320</b> on the first database server <b>306</b><i>a </i>(shown by the dashed arrows). As described above, the database servers <b>306</b> may also service other database instances on the same database server <b>306</b><i>s</i>. In response to a trigger event, such as failure or overloading of the first database server <b>306</b><i>a</i>, the federation apparatus <b>304</b> may move <b>322</b> the database instance <b>320</b> from the first database server <b>306</b><i>a </i>to the second database server <b>306</b><i>b</i>. After moving the database instance <b>320</b>, the client <b>302</b> may access the database <b>310</b> via the database instance <b>320</b> on the second database server <b>306</b><i>b </i>(shown by the solid arrows). The client <b>302</b> may continue to access other databases (not shown) via the first database server <b>306</b><i>a</i>, but accesses the moved database <b>310</b> via the second database server <b>306</b><i>b. </i>
p-0040In another embodiment, the second database server <b>306</b><i>b </i>may already exist and service other database instances <b>320</b> before the federation apparatus <b>304</b> moves <b>322</b> the database instance <b>320</b> from the first database server <b>306</b><i>a </i>to the second database server <b>306</b><i>b</i>. In a further embodiment, the federation apparatus <b>304</b> may move a selected portion of the database instance <b>320</b> from the first database server <b>306</b><i>a </i>to the second database server <b>306</b><i>b</i>. For example, the federation apparatus <b>304</b> may move certain indexes, tables, or subsets of rows and columns from a given table from the first database server <b>306</b><i>a </i>to the second database server <b>306</b><i>b. </i>
p-0041<figref idrefs="DRAWINGS">FIG. 4</figref> depicts one embodiment of a database cache operation <b>400</b>. The database cache operation <b>400</b> is described with reference to a client <b>402</b>, a federation apparatus <b>404</b>, and a database <b>410</b> that are substantially similar to the client <b>202</b>, federation apparatus <b>204</b>, and databases <b>210</b>, respectively, of <figref idrefs="DRAWINGS">FIG. 2</figref>. Devices corresponding to other components of the database system <b>200</b> have been omitted for clarity. The illustrated database cache operation <b>400</b> is exemplary of how the federation apparatus <b>404</b> may provision a cache <b>420</b> and copy all or part of the database <b>410</b> to the cache <b>420</b>.
p-0042Prior to provisioning the cache <b>420</b>, the client <b>402</b> accesses the data <b>422</b> in the database <b>410</b> (shown by the dashed lines). As described above, the client <b>402</b> may access the database <b>410</b> via a database server (not shown). In response to a trigger event, such as failure or frequent access of particular data in the database <b>410</b>, the federation apparatus <b>404</b> may copy <b>424</b> all or part of the data <b>422</b> in the database <b>410</b> to the cache <b>420</b>. After caching the data <b>422</b> in the cache <b>420</b>, the client <b>302</b> may access the data in the cache <b>420</b> (shown by the solid arrows). The client <b>402</b> may continue to access other non-cached data in the database <b>410</b>, but accesses the cached data <b>422</b> in the cache <b>420</b>. To provide for data integrity, the data <b>422</b> in the cache <b>420</b> may be periodically updated to correspond to the source data <b>422</b> in the database <b>410</b>. Other caching and updating schemes may be employed to maintain the data <b>422</b> in the cache <b>420</b>.
p-0043<figref idrefs="DRAWINGS">FIG. 5</figref> depicts one embodiment of a federation apparatus <b>500</b> that is substantially similar to the federation apparatus <b>200</b> of the database system <b>200</b>. The illustrated federation apparatus <b>500</b> includes an analysis module <b>502</b>, a provision module <b>504</b>, a query module <b>506</b>, and a move module <b>508</b>. The federation apparatus <b>500</b> also includes a cache module <b>510</b>, a replication module <b>512</b>, a queue module <b>514</b>, and a patrol module <b>516</b>. These modules <b>502</b>-<b>516</b>, although shown in a single schematic block, may be on a single machine or may be distributed among several machines that are coupled together in one manner or another within a database system <b>200</b>.
p-0044In one embodiment, the analysis module <b>502</b> analyzes a data query stream from the client <b>202</b> to a database instance <b>206</b>. The data query stream includes the ongoing data queries from an application on the client <b>202</b>. In another embodiment, the analysis module <b>502</b> also determines if the data query stream exhibits a predetermined performance attribute.
p-0045The predetermined performance attribute may be any type of performance attribute that defines the performance of the database system <b>200</b>, database instance <b>206</b>, or database <b>210</b>. For example, in one embodiment, the predefined performance attribute may be the workload balance of the database system <b>200</b>. In another embodiment, the predefined performance attribute may be a measure of the network delay in the database system <b>200</b>. In another embodiment, the predefined performance attribute may be recognition of a failure in the database system <b>200</b>. In another embodiment, the predefined performance attribute may be a measure of the query throughput of a database server <b>206</b> within the database system <b>200</b>. In another embodiment, the predefined performance attribute may be a measure of processor usage of a database server <b>206</b> within the database system <b>200</b>. In further embodiments, the predefined performance attribute may be any measure of the quality of service (QoS) for the user of the database system <b>200</b> or, in particular, of a database server <b>206</b> or a database <b>210</b>.
p-0046In one embodiment, the provision module <b>504</b> provisions a database resource in response to a determination that the data query stream exhibits a given performance attribute. In other words, the provision module <b>504</b> provisions a new database resource to improve the performance of the database system <b>200</b>. In one embodiment, the provisioned database resource may be a database instance <b>206</b>, such as the database server <b>306</b> described with reference to <figref idrefs="DRAWINGS">FIG. 3</figref>. Alternatively, the provisioned database resource may be a cache, such as the cache <b>420</b> described with reference to <figref idrefs="DRAWINGS">FIG. 4</figref>. In another embodiment, the provisioned database resource may be another database resource that allows the federation apparatus <b>500</b> to balance the workload of the database system <b>200</b>, to avoid failure of a device within the database system <b>200</b>, to reduce network delays within the database system <b>200</b>, or to otherwise provide a relatively high performance level for the database system <b>200</b>.
p-0047Depending on the type of database resource that is provisioned, the provision module <b>504</b> may provision the database resource on a physical data storage device, within a logical software layer, or on another layer of the database system <b>200</b>. Additionally, the provision module <b>504</b> may provision the database resource locally on the federation apparatus <b>500</b> or remotely from the federation apparatus <b>500</b>. In a further embodiment, the provision module <b>504</b> may provision the database resource with reference to the geographic distance or network distance between the client <b>202</b> and the provisioned database resource.
p-0048In one embodiment, the query module <b>506</b> redirects a data query within a data query stream to the provisioned database resource. For example, if the entire logical instance of a database <b>210</b> is moved to another database server <b>206</b>, then the query module <b>506</b> redirects all queries for the corresponding database <b>210</b> to the provisioned database server <b>206</b>. Alternatively, if a portion of the physical data from a database <b>210</b> has been copied to a cache then the query module <b>506</b> redirects all queries for the corresponding data to the provisioned cache.
p-0049In one embodiment, the move module <b>508</b> transfers an entire database <b>210</b> from one database instance <b>206</b> to another database instance <b>206</b>. Alternatively, the move module <b>508</b> may transfer a portion of a database <b>210</b> from one database instance <b>206</b> to another. Allowing a database <b>210</b>, or portion thereof, to be accessed via a separate database server <b>206</b> in this manner may avoid failures of a database server <b>206</b> and/or balance out the workload among multiple database servers <b>206</b>. Moving a logical instance of a database <b>210</b> may be relatively fast compared to copying or caching the physical data of the database <b>210</b>.
p-0050In one embodiment, the cache module <b>510</b> determines which data within a database <b>210</b> might be replicated on a provisioned database resource, such as a cache. For example, the cache module <b>510</b> might identify particular rows and columns within a database <b>210</b> that are frequently accessed by a particular client <b>202</b> or application. Alternatively, the cache module <b>510</b> may identify other subsets of a particular database <b>210</b> or several databases <b>210</b> to be replicated on the cache.
p-0051In one embodiment, the replication module <b>512</b> copies the specified data from the database <b>210</b> to the cache. In another embodiment, the replication module <b>512</b> also may ensure that the data on the cache is updated periodically or when the data in the back end database is updated.
p-0052In one embodiment, the queue module <b>514</b> queues a data query from the data query stream during the time that the move module <b>508</b> moves a logical instance of a database <b>210</b> from one database server <b>206</b> to another database server <b>206</b>. In a further embodiment, the queue module <b>514</b> may queue a data query during the time that the cache module <b>510</b> copies data from a database <b>210</b> to a cache. Queuing data queries at the federation apparatus <b>500</b> advantageously may prevent the client <b>202</b> from experiencing a data query failure or becoming aware of the newly provisioned data resource.
p-0053In one embodiment, the patrol module <b>516</b> captures a copy of every data query in the data query stream. By capturing copies of the data queries, the patrol module <b>516</b> may aid the analysis module <b>502</b> in analyzing the data query stream. In one embodiment, the data query copies may be stored on an electronic storage device locally or remotely coupled to the federation apparatus <b>500</b>.
p-0054Although certain functional characteristics of each of the modules <b>502</b>-<b>516</b> of the federation apparatus <b>500</b> have been described in some detail above, the modules <b>502</b>-<b>516</b> may be further understood with reference to the following schematic flow chart diagrams. However, the exemplary language employed in describing the following operations is intended to provide only one example of the functionality of the federation apparatus <b>500</b> within a database system. The various modules <b>502</b>-<b>516</b> of the federation apparatus <b>500</b> may perform similar functions alone or in combination with one another or in combination with other modules.
p-0055<figref idrefs="DRAWINGS">FIG. 6</figref> depicts one embodiment of a federation method <b>600</b> that may be implemented on the database system <b>200</b> in conjunction with the federation apparatus <b>500</b>. The illustrated federation method <b>600</b> begins during operation of the database system <b>200</b>. The analysis module <b>502</b> analyzes <b>602</b> the data query stream of the client <b>202</b>. As used herein, analyzing <b>602</b> the data query stream refers to measuring a performance level of the database system <b>200</b> using one of the performance measurements presented above or a similar performance measurement. The analysis module <b>502</b> subsequently compares <b>604</b> the data query stream to a predefined performance attribute, as described above. Depending on the determination of the analysis module <b>502</b>, the provision module <b>504</b> may provision <b>606</b> a new database resource to be used for future data queries within the data query stream. More detailed examples of the federation method <b>600</b> are described with reference to <figref idrefs="DRAWINGS">FIGS. 7 and 8</figref>.
p-0056<figref idrefs="DRAWINGS">FIG. 7</figref> depicts an embodiment of another federation method <b>700</b> that may be implemented on the database system of <figref idrefs="DRAWINGS">FIG. 2</figref>. In particular, the federation method <b>700</b> is an alternative embodiment of the federation method <b>600</b> of <figref idrefs="DRAWINGS">FIG. 6</figref>. The federation method <b>700</b> specifically implements a database move operation <b>300</b> as shown in <figref idrefs="DRAWINGS">FIG. 3</figref>.
p-0057The illustrated federation method <b>700</b> begins when the federation apparatus <b>500</b> recognizes <b>702</b> a trigger event, as described above. The provision module <b>504</b> then provisions <b>704</b> a new database manager instance <b>206</b>. In preparation for moving the logical instance of the database <b>210</b>, the queue module <b>514</b> queues <b>706</b> the current data query transactions in the data query stream and the move module <b>508</b> logically moves <b>708</b> the database <b>210</b> to the new database manager instance <b>206</b>. Alternatively, the move module <b>508</b> may move <b>708</b> a portion of the database <b>210</b> rather than the entire database <b>210</b>. In one embodiment, the queue module <b>514</b> may allow currently executing transactions to complete while queuing <b>706</b> new data query transactions. The federation module <b>500</b> then redefines <b>710</b> the federation mapping, which defines how the databases <b>210</b> are mapped to the database servers <b>206</b>. In one embodiment, the move module <b>508</b> may update <b>710</b> the federation mapping.
p-0058After the newly provisioned database manager instance <b>206</b> is ready to start processing queries, the queue module <b>514</b> stops queuing the data queries and the database system <b>200</b> processes the queued data queries. The database system <b>200</b> also processes <b>714</b> the other data queries within the data query stream. The depicted federation method <b>700</b> then ends.
p-0059<figref idrefs="DRAWINGS">FIG. 8</figref> depicts an embodiment of another federation method <b>800</b> that may be implemented on the database system of <figref idrefs="DRAWINGS">FIG. 2</figref>. In particular, the federation method <b>800</b> is an alternative embodiment of the federation method <b>600</b> of <figref idrefs="DRAWINGS">FIG. 6</figref>. The federation method <b>800</b> specifically implements a database cache operation <b>400</b> as shown in <figref idrefs="DRAWINGS">FIG. 4</figref>.
p-0060The illustrated federation method <b>800</b> begins during operation of the database system <b>200</b>. The analysis module <b>502</b> monitors <b>802</b> the data query stream from the client <b>202</b>. In one embodiment, the analysis module <b>502</b> may employ the patrol module <b>516</b> to capture copies of all of the individual data queries in the data query stream. The analysis module <b>502</b> then analyzes <b>804</b> the data query stream and determines <b>806</b> which data should be replicated on a cache. In one embodiment, analysis module <b>502</b> may wait for a certain period of time or until a certain number of data queries have been received before analyzing <b>804</b> the data query stream.
p-0061The provision module <b>504</b> then provisions <b>808</b> a new cache. In association with the provision module <b>504</b>, the replication module <b>512</b> establishes a replication process and populates <b>810</b> the cache with the data from a selected database <b>210</b>. The federation module <b>500</b> then redefines <b>812</b> the federation mapping for the database system <b>200</b>. In one embodiment, the cache module <b>510</b> may update <b>812</b> the federation mapping. The database system <b>200</b> then processes <b>814</b> the data queries within the data query stream and the depicted federation method <b>800</b> ends. In one embodiment, the replication process established by the replication module <b>512</b> may be used to keep the data in the cache consistent with the data in the source database <b>210</b>.
p-0062Advantageously, the provisioning of new database resources using the federation apparatus <b>500</b> is substantially transparent to a client <b>202</b> on the database system <b>200</b>. As described above, the federation apparatus <b>500</b> is configured to provision one or more new database resources without making the client <b>202</b> experience a query failure. Although a delay may be apparent to the client <b>202</b>, the federation apparatus <b>500</b> may allow the client <b>202</b> to substantially continue operations without awareness of the newly provisioned database resources.
p-0063The schematic flow chart diagrams included herein are generally set forth as logical flow chart diagrams. As such, the depicted order and labeled operations are indicative of one embodiment of the presented method. Other operations and methods may be conceived that are equivalent in function, logic, or effect to one or more operations, or portions thereof, of the illustrated method. Additionally, the format and symbols employed are provided to explain the logical operations of the method and are understood not to limit the scope of the method. Although various arrow types and line types may be employed in the flow chart diagrams, they are understood not to limit the scope of the corresponding method. Indeed, some arrows or other connectors may be used to indicate only the logical flow of the method. For instance, an arrow may indicate a waiting or monitoring period of unspecified duration between enumerated operations of the depicted method. Additionally, the order in which a particular method occurs may or may not strictly adhere to the order of the corresponding operations shown.
p-0064Reference throughout this specification to “one embodiment,” “an embodiment,” or similar language means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, appearances of the phrases “in one embodiment,” “in an embodiment,” and similar language throughout this specification may, but do not necessarily, all refer to the same embodiment.
p-0065Reference to a signal bearing medium may take any form capable of generating a signal, causing a signal to be generated, or causing execution of a program of machine-readable instructions on a digital processing apparatus. A signal bearing medium may be embodied by a transmission line, a compact disk, digital-video disk, a magnetic tape, a Bernoulli drive, a magnetic disk, a punch card, flash memory, integrated circuits, or other digital processing apparatus memory device.
p-0066Furthermore, the described features, structures, or characteristics of the invention may be combined in any suitable manner in one or more embodiments. In the following description, numerous specific details are provided, such as examples of programming, software modules, user selections, network transactions, database queries, database structures, hardware modules, hardware circuits, hardware chips, etc., to provide a thorough understanding of embodiments of the invention. One skilled in the relevant art will recognize, however, that the invention may be practiced without one or more of the specific details, or with other methods, components, materials, and so forth. In other instances, well-known structures, materials, or operations are not shown or described in detail to avoid obscuring aspects of the invention.
p-0067The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
Contents4
9 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US2010251339A1 | Cited by | United States of America | Pre-grant |
| US11714726B2 | Cited by | United States of America | Applicant |
| US9705888B2 | Cited by | United States of America | Applicant |
| US2010250748A1 | Cited by | United States of America | Pre-grant |
| US11537575B1 | Cited by | United States of America | Search report |
| US11907254B2 | Cited by | United States of America | Applicant |
| US2016125026A1 | Cited by | United States of America | Pre-grant |
| US2008256020A1 | Cited by | United States of America | Pre-grant |
| US8595192B1 | Cited by | United States of America | Search report |
| US9336292B2 | Cited by | United States of America | Applicant |
| US8307003B1 | Cited by | United States of America | Search report |
| US10114874B2 | Cited by | United States of America | Search report |
| US9135283B2 | Cited by | United States of America | Applicant |
| US10162715B1 | Cited by | United States of America | Applicant |
| US9817727B2 | Cited by | United States of America | Applicant |
| US12259861B2 | Cited by | United States of America | Applicant |
| US2025045251A1 | Cited by | United States of America | Search report |
| US9298728B2 | Cited by | United States of America | Applicant |
| US11385969B2 | Cited by | United States of America | Applicant |
| US10127149B2 | Cited by | United States of America | Applicant |
| US11477105B2 | Cited by | United States of America | Applicant |
| US12373311B2 | Cited by | United States of America | Applicant |
| US10977226B2 | Cited by | United States of America | Applicant |
| US10798101B2 | Cited by | United States of America | Applicant |
| US10089350B2 | Cited by | United States of America | Search report |
| US8612396B1 | Cited by | United States of America | Applicant |
| US11132227B2 | Cited by | United States of America | Applicant |
| US11379332B2 | Cited by | United States of America | Applicant |
| US11770381B2 | Cited by | United States of America | Applicant |
| US8676753B2 | Cited by | United States of America | Applicant |
| US9218245B1 | Cited by | United States of America | Applicant |
| US8335765B2 | Cited by | United States of America | Applicant |
| US10120897B2 | Cited by | United States of America | Search report |
| US2011099146A1 | Cited by | United States of America | Pre-grant |
| US11550630B2 | Cited by | United States of America | Applicant |
| US10761975B2 | Cited by | United States of America | Applicant |
| US8402147B2 | Cited by | United States of America | Applicant |
| US11281666B2 | Cited by | United States of America | Applicant |
| US8713060B2 | Cited by | United States of America | Search report |
| US10225262B2 | Cited by | United States of America | Applicant |
| US8713061B1 | Cited by | United States of America | Applicant |
| US2011083138A1 | Cited by | United States of America | Pre-grant |
| US2012310992A1 | Cited by | United States of America | Pre-grant |
| US8631283B1 | Cited by | United States of America | Applicant |
| US10963484B2 | Cited by | United States of America | Search report |
| US11914486B2 | Cited by | United States of America | Applicant |
| US2008253403A1 | Cited by | United States of America | Pre-grant |
| US8706764B2 | Cited by | United States of America | Applicant |
| US2010251242A1 | Cited by | United States of America | Pre-grant |
| US9112873B2 | Cited by | United States of America | Applicant |
| US9207984B2 | Cited by | United States of America | Applicant |
| US11321348B2 | Cited by | United States of America | Applicant |
| US9806978B2 | Cited by | United States of America | Applicant |
| US8782085B2 | Cited by | United States of America | Applicant |
| US12665906B2 | Cited by | United States of America | Applicant |
| US8996572B2 | Cited by | United States of America | Applicant |
| US2011179015A1 | Cited by | United States of America | Pre-grant |
| US2015242464A1 | Cited by | United States of America | Pre-grant |
| US2011099147A1 | Cited by | United States of America | Pre-grant |
| US8661024B2 | Cited by | United States of America | Search report |
| US10860439B2 | Cited by | United States of America | Applicant |
| US10282231B1 | Cited by | United States of America | Applicant |
| US2002194015A1 | Cites | United States of America | Applicant |
| US2003212673A1 | Cites | United States of America | Search report |
| US2004103195A1 | Cites | United States of America | Applicant |
| US2004103338A1 | Cites | United States of America | Applicant |
| US2004215626A1 | Cites | United States of America | Search report |
| US2004249810A1 | Cites | United States of America | Search report |
| US2005131872A1 | Cites | United States of America | Search report |
| US2005149496A1 | Cites | United States of America | Search report |
| US2005192921A1 | Cites | United States of America | Search report |
| US2005192937A1 | Cites | United States of America | Search report |
| US2005203887A1 | Cites | United States of America | Search report |
| US2005278290A1 | Cites | United States of America | Search report |
| US2006036989A1 | Cites | United States of America | Search report |
| US2006294038A1 | Cites | United States of America | Search report |
| US5890156A | Cites | United States of America | Search report |
| US6473750B1 | Cites | United States of America | Search report |
| US6714980B1 | Cites | United States of America | Applicant |
| US6779016B1 | Cites | United States of America | Applicant |
| US7194451B2 | Cites | United States of America | Search report |
| US7483918B2 | Cites | United States of America | Search report |
| US7529196B2 | Cites | United States of America | Search report |
| David G. Cameron et al., "Evaluating Scheduling and Replica Optimisation Strategies in OptorSim", Published 2003 IEEE Computer Society. | Non-patent | – | Search report |
| David G. Cameron et al., "Evaluating Scheduling and Replica Optimisation Strategies in OptorSim", Published 2003, IEEE Computer Society. | Non-patent | – | Search report |
| Cialini et al., "Overview of IBM DB2 Universal Database Using the IBM TotalStorage SAN File System" IBM Nov. 14, 2003 pp. 1-20. | Non-patent | – | Applicant |
| Monty Wright, "An overview of high availability and disaster recovery for DB2 UDB", http://www.106.ibm.com/developerworks/db2/library/techarticle/0304wright/0304wright... Apr. 10, 2003 pp. 1-12. | Non-patent | – | Applicant |
| Shahed Quezi, "Split Mirror using Suspended I/O in IBM DB2 universal database version 7", http:www-106.ibm.com/developerworks/db2/library/techarticle/0204quazi/0204quzai.html, Apr. 2002, pp. 1-9. | Non-patent | – | Applicant |
| Baris Naciterhan, "Open Source linux high Availability for IBM DB2 Universal Database", DB2 Information management Software, Sep. 2003. | Non-patent | – | Applicant |
| Ranganathan, et al., "Improving data availability through dynamic model-driven replication in large peer-to-peer communities", Department of Computer Science, The University of Chicago, 2002 IEEE. | Non-patent | – | Applicant |
| Shen et al., "MS-I/O: A distributed multi-storage I/O System", Center for Parallel and Distributed Computing Department of Electrical and Computer Engineering, NorthWestern University, 2002 IEEE. | Non-patent | – | Applicant |
| Cameron, et al., "Evaluating Scheduling and Replica optimisation strategies in optorsim", University of Glasgow, 2003 IEEE. | Non-patent | – | Applicant |
| Lamehamedi, et al., "Data replication strategies in grid environments", Department of Computer Science, Information Sciences Institute, 2002 IEEE. | Non-patent | – | Applicant |
| Cheung et al., "The Grid Protocol: A high performance scheme for maintaining replicated data"1992 IEEE. | Non-patent | – | Applicant |
| Stockinger, et al. "File and Object Replication in Data Grids", 2001 IEEE. | Non-patent | – | Applicant |
| Bell, et al. "Evaluation of an economy-based file replication strategy for a data grid", 2003 IEEE. | Non-patent | – | Applicant |
| Lee et al., "Dynamic replica management in the service grid", Department of Computer Science and Engineering, University of Minnesota, 2001 IEEE; pp. 433-434. | Non-patent | – | Applicant |
| Sudharshan Vazhkudai, "Enabling the Co-Allocation of grid data transfers", Department of Computer Sciences, University of Mississippi, 2003 IEEE. | Non-patent | – | Applicant |
| Akhil Kumar, "An efficient supergrid protocol for high availability and load balancing", IEEE computer Society, 2000. | Non-patent | – | Applicant |
| "IBM TotalStorage SAN Volume Controller, Planning Guide", Version 1.2.0, Apr. 2004, pp. 1-102. | Non-patent | – | Applicant |
2 members in 1 office; this record represents the family
Members2
| Document | Office | Kind | |
|---|---|---|---|
| US2006136448A1 | United States of America | A1 | |
| US7680771B2This record | United States of America | B2 |
68 transactions on the USPTO file
Allowed after 3 non-final rejections, 2 final rejections and 2 RCEs.
- Non-final rejections
- 3
- Final rejections
- 2
- RCEs
- 2
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 12th Year, Large EntityM1553 | M1553 | |
| Payment of Maintenance Fee, 8th Year, Large EntityM1552 | M1552 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Correspondence Address ChangeC.AD | C.AD | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Miscellaneous Incoming LetterLET. | LET. | |
| Response after Non-Final ActionA... | A... | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Miscellaneous Incoming LetterLET. | LET. | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| IFW TSS Processing by Tech Center CompleteTSSCOMP | TSSCOMP | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Transfer Inquiry to GAUTI1050 | TI1050 | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Application Is Now CompleteCOMP | COMP | |
| Additional Application Filing FeesADDFLFEE | ADDFLFEE | |
| A statement by one or more inventors satisfying the requirement under 35 USC 115, Oath of the ApplicOATHDECL | OATHDECL | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Notice Mailed--Application Incomplete--Filing Date AssignedINCD | INCD | |
| Cleared by OIPE CSRL194 | L194 | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Initial Exam Team nnIEXX | IEXX |
18 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| Maintenance fee paymentMAFP | MAFP | |
| Maintenance fee paymentMAFP | MAFP | |
| Fee paymentFPAY | FPAY | |
| Surcharge for late paymentSULP | SULP | |
| AssignmentAS | AS | |
| Maintenance fee reminder mailedREMI | REMI | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| Fee payment procedurePAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| AssignmentAS | AS | |
| AssignmentAS | AS |
Numbers
- Publication
- 07680771
- Application
- 1749004
Titles
- English
- Apparatus, system, and method for database provisioning
Patent term adjustment
- A delay
- +456 daysthe office missed an examination deadline
- B delay
- +7 dayspendency past three years
- Net adjustment
- 463 days
Classification
- CPC, 3
- G06F16/217
- G06F16/2471
- Y10S707/99933
- IPC, 3
- G06F7 00
- G06F17 00
- G06F17 30