View maintenance rules for an update pipeline of an object-relational mapping (ORM) platform

US9430552B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9430552-B2
Application numberUS-72519507-A
CountryUS
Kind codeB2
Filing dateMar 16, 2007
Priority dateMar 16, 2007
Publication dateAug 30, 2016
Grant dateAug 30, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A database update pipeline may be incorporated into a data access architecture for providing data services to applications, thereby bridging the gap between application data and data as persisted in databases. The update pipeline has the ability to translate changes made to object instances into data store change constructs, and carry those changes over to a data store. Such a pipeline can also advantageously perform the reverse operation, allowing applications to query using the database update pipeline, and receive materialized object instances.

First claim

Opening claim text (preview).

What is claimed: 1. A method for providing data services to an application, comprising: receiving, by a data access system, application data modifications that modify instances of the application, the application data modifications being expressed according to an application schema; extracting the application data modifications from a client cache that are to be persisted to a relational database, wherein the client cache is a cache operatively coupled to a server associated with the relational database; generating a mapping view that maps a relationship between the application and the relational database, a mapping of the mapping view being specified using a declarative language and being compiled into bidirectional views; and utilizing incremental view maintenance to materialize object instances that have changed in accordance with the mapping to translate the application data modifications into relational database modifications expressed according to a database schema for updating the relational database, utilizing incremental view maintenance comprising: applying at least one view maintenance rule that specifies a view operator, and given the application data modifications, produces the relational database modifications; identifying a minimum set of affected store tables in the database based on a set of changed materialized object instances; identifying a minimum set of changes to a given store table based on a set of changed materialized entity instances based at least in part on an entity data model; generating a dependency graph based on the set of changed materialized entity instances, wherein a node of the dependency graph represents an operation on a table of the relational database of a set of operations, and an edge in the dependency graph indicates that there is a dependency between two nodes connected by the edge, a dependency indicating that a first operation on the table relies on a result of having already performed a second operation; ordering the set of operations based on the dependency graph; and submitting the set of operations to the relational database based on the order. 2. The method of claim 1 , wherein the at least one view maintenance rule is also given pre-existing data. 3. The method of claim 1 , wherein the at least one view maintenance rule comprises an insert rule selected from a group comprising a selection rule, a projection rule, a join rule, a union rule, and a semi-join rule. 4. The method of claim 1 , wherein the at least one view maintenance rule comprises a delete rule selected from a group comprising a selection rule, a projection rule, a join rule, a union rule, and a semi-join rule. 5. The method of claim 1 , further comprising: selecting an optimization level. 6. The method of claim 5 , wherein applying at least one view maintenance rule comprises: applying a version of the view maintenance rule corresponding to the optimization level. 7. The method of claim 5 , wherein the selecting an optimization level comprises: selecting the optimization level from among a plurality of optimization levels, the plurality of optimization levels requiring differing application data or relational database data when utilizing the incremental view maintenance. 8. The method of claim 7 , wherein the plurality of optimization levels comprise: a traditional view maintenance level; an insert/delete/update compatible level; an insert/delete compatible level; and a modification requests only level. 9. The method of claim 1 , wherein generating the dependency graph comprises: while extracting the application data modifications from the client cache, applying an annotation to a key value that has a global identifier; while compiling the set of operations, identifying that a server that maintains the relational database has generated a column of a table that contains the key value that has the global identifier; and in response to identifying that the server that maintains the relational database has generated a column of the table that contains the key value that has the global identifier, registering a dependency from an operation producing the global identifier to an operation consuming the global identifier. 10. The method of claim 1 , wherein generating the dependency graph comprises: performing a topological sort on the dependency graph and removing each element for which there is an ordering to produce a remaining dependency graph; decomposing at least one node of the remaining dependency graph into at least two row-level operations; and topologically sorting the at least two row-level operations. 11. The method of claim 1 , wherein generating the dependency graph comprises: topologically sorting a plurality of nodes of the dependency graph. 12. A data access system for providing data services to an application, comprising: a processor; and a memory bearing instructions that, upon execution by the processor, cause the system at least to: receive application data modifications that modify instances of the application, the application data modifications being expressed according to an application schema; utilize incremental view maintenance to translate the application data modifications into relational database modifications expressed according to a database schema for updating a database, wherein incremental view maintenance further causes the system at least to: generate a dependency graph based on a set of changed materialized entity instances in the incremental view maintenance, wherein a node of the dependency graph represents an operation on a table of the relational database of a set of operations, and an edge in the dependency graph indicates that there is a dependency between two nodes connected by the edge, a dependency indicating that a first operation on the table relies on a result of having already performed a second operation; order the set of operations based on the dependency graph; and apply the set of operations to the database based on the order. 13. The system of claim 12 , wherein the instructions that, upon execution by the processor, cause the system at least to receive application data modifications further cause the system at least to: extract the application data from a client computer cache. 14. The system of claim 12 , wherein the instructions that, upon execution by the processor, cause the system at least to apply at least one view maintenance rule further cause the system at least to: apply at least one view maintenance rule based on pre-existing data. 15. The system of claim 12 , wherein the at least one view maintenance rule comprises an insert rule selected from a group comprising a selection rule, a projection rule, a join rule, a union rule, and a semi-join rule. 16. The system of claim 12 , wherein the at least one view maintenance rule comprises a delete rule selected from a group comprising a selection rule, a projection rule, a join rule, a union rule, and a semi-join rule. 17. The system of claim 12 , wherein the memory further bears instructions that, upon execution by the processor, cause the system at least to: select an optimization level. 18. The system of claim 17 , wherein the instructions that, upon execution by the processor, cause the system at least to apply at least one view maintenance rule further cause the system at least to: apply a version of the view maintenance rule corresponding to the optimization level. 19. The system of claim 17 , wherein the instructions that, upon execution by the processo

Assignees

Inventors

Classifications

  • Database tuning (G06F16/2282 takes precedence; database performance monitoring G06F11/3409) · CPC title

  • G06F16/27Primary

    Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor · CPC title

  • Physics · mapped topic

  • Physics · mapped topic

  • with details for data modelling support · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9430552B2 cover?
A database update pipeline may be incorporated into a data access architecture for providing data services to applications, thereby bridging the gap between application data and data as persisted in databases. The update pipeline has the ability to translate changes made to object instances into data store change constructs, and carry those changes over to a data store. Such a pipeline can also…
Who is the assignee on this patent?
Adya Atul, Melnik Sergey, Michailov Zlatko, and 2 more
What technology area does this patent fall under?
Primary CPC classification G06F16/27. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 30 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).