View maintenance rules for an update pipeline of an object-relational mapping (ORM) platform
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-017/30
G06F-007/00
출원번호
US-0725195
(2007-03-16)
등록번호
US-9430552
(2016-08-30)
발명자
/ 주소
Adya, Atul
Melnik, Sergey
Michailov, Zlatko
Meek, Colin Joseph
출원인 / 주소
Microsoft Technology Licensing, LLC
대리인 / 주소
Chen, Nicholas
인용정보
피인용 횟수 :
1인용 특허 :
19
초록▼
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 dat
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.
대표청구항▼
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 mo
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; andutilizing 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; andsubmitting 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; anda 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; andin 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; andtopologically 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; anda 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; andapply 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 processor, cause the system at least to apply an optimization level further cause the system at least to: select 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. 20. The system of claim 19, wherein the plurality of optimization levels comprise: a traditional view maintenance level;an insert/delete/update compatible level;an insert/delete compatible level; anda modification requests only level. 21. A computer readable storage device bearing instructions for providing data services to an application, that, when executed on a computer, cause the computer to perform functions comprising: receiving application data modifications that modify instances of the application, wherein the application data modifications are expressed according to an application schema; andutilizing incremental view maintenance to translate the application data modifications into relational database modifications expressed according to a database schema for updating a database, utilizing incremental view maintenance comprises: generating 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; andordering the set of operations based on the dependency graph; andapplying at least one view maintenance rule that specifies a view operator, andgiven the application data modifications, produces the relational database modifications. 22. The computer readable storage device of claim 21, wherein receiving application data modifications comprises: extracting the application data from a client computer cache. 23. The computer readable storage device of claim 21, further bearing instructions that, when executed on the computer, cause the computer to perform functions comprising: updating the relational database with the relational database modifications. 24. The computer readable storage device of claim 21, wherein applying at least one view maintenance rule further comprises: applying the at least one view maintenance rule based on pre-existing data. 25. The computer readable storage device of claim 21, 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. 26. The computer readable storage device of claim 21, 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. 27. The computer readable storage device of claim 21, further bearing instructions that, when executed on the computer, cause the computer to perform functions comprising: selecting an optimization level. 28. The computer readable storage device of claim 27, wherein applying at least one view maintenance rule comprises: applying a version of the view maintenance rule corresponding to the optimization level. 29. The computer readable storage device of claim 27, wherein selecting the optimization level comprises: selecting the optimization level from among a plurality of optimization levels, the optimization levels requiring differing application data or relational database data when utilizing the incremental view maintenance. 30. The computer readable storage device of claim 29, wherein the plurality of optimization levels comprise: a traditional view maintenance level;an insert/delete/update compatible level;an insert/delete compatible level; anda modification requests only level.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (19)
Folkert, Nathaniel Keith; Gupta, Abhinav; Witkowski, Andrew, Choosing whether to use a delayed index maintenance depending on the portion of the materialized view (MV) changed.
Lieuwen, Daniel Francis; Kawaguchi, Akira; Mumick, Inderpal Singh; Quass, Dallan Wendell; Ross, Kenneth A., Concurrency control in materialized views of a database.
Li,Ruiping; Liu,Irene Ching Hua; Liu,Lee Chin Hsu; Zhang,Guogen, Efficient heuristic approach in selection of materialized views when there are multiple matchings to an SQL query.
Gupta,Abhinav; Witkowski,Andrew, Incremental refresh of materialized views containing rank function, and rewrite of queries containing rank or rownumber or min/max aggregate functions using such a materialized view.
Lawande, Shilpa; Gupta, Abhinav; Dageville, Benoit, Incremental refresh of materialized views with joins and aggregates after arbitrary DML operations to multiple tables.
Lieuwen Daniel Francis ; Kawaguchi Akira ; Colby Latha Sankar ; Ross Kenneth A., Refreshing materialized views of a database to maintain consistency with underlying data.
Folkert, Nathaniel Keith; Gupta, Abhinav; Witkowski, Andrew, Using estimated cost to schedule an order for refreshing a set of materialized views (MVS).
※ AI-Helper는 부적절한 답변을 할 수 있습니다.