Support for compensation aware data types in relational database systems
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-007/00
G06F-015/18
출원번호
US-0270790
(2008-11-13)
등록번호
US-8566296
(2013-10-22)
발명자
/ 주소
Yalamanchi, Aravind
출원인 / 주소
Oracle International Corporation
대리인 / 주소
Hickman Palermo Truong Becker Bingham Wong LLP
인용정보
피인용 횟수 :
2인용 특허 :
8
초록▼
Techniques are provided for extending a business transaction framework to support user-provided compensation logic for business transactions. The extensibility framework may be used to implement user-defined semantics for (a) validating concurrent updates to shared data and (b) performing compensati
Techniques are provided for extending a business transaction framework to support user-provided compensation logic for business transactions. The extensibility framework may be used to implement user-defined semantics for (a) validating concurrent updates to shared data and (b) performing compensating actions when an associated transaction is aborted. In one embodiment, the extensibility and the compensation are provided at the data-type level. User-provided logic also maintains summaries that include values that are externalized so that they may be referenced in user-provided operational constraints.
대표청구항▼
1. A method for performing shared updates, comprising: receiving user-provided logic for determining whether updates to a particular column are valid in the presence of concurrent updates to data items in the particular column;storing the user-provided logic at a location accessible to a business tr
1. A method for performing shared updates, comprising: receiving user-provided logic for determining whether updates to a particular column are valid in the presence of concurrent updates to data items in the particular column;storing the user-provided logic at a location accessible to a business transaction framework;wherein the user-provided logic is distinct and separate from the business transaction framework;receiving a request, associated with a particular business transaction, to perform an update to a particular copy of a data item in a particular row in the particular column;wherein the particular copy of the data item has a value that has been updated by updates, made by one or more business transactions other than the particular business transaction, that have not yet been confirmed, andupdates, made by the particular business transaction, previous to receiving the request, that have not yet been confirmed; andin response to the request, the business transaction framework performing the steps of: (a) determining, for the particular copy of the data item, a particular value, wherein the particular value is a current value of the particular copy of the data item;(b) causing the user-provided logic to generate an indication of whether the update should be allowed, in the presence of concurrent updates to the particular copy of the data item, by: invoking the user-provided logic, andpassing, to the user-provided logic, said particular value to enable the user-provided logic to determine whether the update should be allowed based, at least in part, on the particular value, and one or more constraints on the value of the data item;(c) determining whether to allow the update based, at least in part, on the indication;wherein the step of receiving user-provided logic includes receiving at least one of:an implementation of a method of a customized data classification type; or a definition of an operational constraint that includes logic for enforcing cross-column dependencies;wherein the method is performed by at least one device comprising a processor. 2. A non-transitory computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform steps comprising: receiving user-provided logic for determining whether updates to a particular column are valid in the presence of concurrent updates to data items in the particular column;storing the user-provided logic at a location accessible to a business transaction framework;wherein the user-provided logic is distinct and separate from the business transaction framework;receiving a request, associated with a particular business transaction, to perform an update to a particular copy of a data item in a particular row in the particular column;wherein the particular copy of the data item has a value that has been updated by updates, made by one or more business transactions other than the particular business transaction, that have not yet been confirmed, andupdates, made by the particular business transaction, previous to receiving the request, that have not yet been confirmed; andin response to the request, the business transaction framework performing the steps of: (a) determining, for the particular copy of the data item, a particular value, wherein the particular value is a current value of the particular copy of the data item;(b) causing the user-provided logic to generate an indication of whether the update should be allowed, in the presence of concurrent updates to the particular copy of the data item, by: invoking the user-provided logic, andpassing, to the user-provided logic, said particular value to enable the user-provided logic to determine whether the update should be allowed based, at least in part, on the particular value, and one or more constraints on the value of the data item;(c) determining whether to allow the update based, at least in part, on the indication;wherein the step of receiving user-provided logic includes receiving at least one of:an implementation of a method of a customized data classification type; or a definition of an operational constraint that includes logic for enforcing cross-column dependencies. 3. A method for performing shared updates, comprising: receiving user-provided logic for determining whether updates to a particular column are valid in the presence of concurrent updates to a same value;storing the user-provided logic at a location accessible to a business transaction framework;receiving a request, associated with a particular business transaction, to perform an update to a value in the particular column; andin response to the request, the business transaction framework performing the steps of: (a) determining a projected value for the value in the particular column(b) causing the user-provided logic to generate an indication of whether the update should be allowed, in the presence of concurrent updates to the same value, by: invoking the user-provided logic, andpassing, to the user-provided logic, said projected value to enable the user-provided logic to determine whether the update should be allowed based, at least in part, on the projected value and one or more constraints on the value of the particular column;(c) determining whether to allow the update based, at least in part, on the indication;wherein the step of receiving user-provided logic includes receiving at least one of:an implementation of a method of a customized data classification type; or a definition of an operational constraint that includes logic for enforcing cross-column dependencies;wherein the method is performed by at least one device comprising a processor. 4. The method of claim 3 wherein: the step of invoking the user-provided logic includes making a call to the implementation of the method of the customized data classification type. 5. The method of claim 3 wherein: the step of invoking the user-provided logic includes evaluating the operational constraint. 6. The method of claim 5 wherein the operational constraint references values externalized from summaries maintained by third user-provided logic. 7. The method of claim 3 further comprising, prior to invoking the user-provided logic, invoking second user-provided logic to undo past changes to said value in the particular column that were made by the business transaction. 8. The method of claim 3 further comprising determining a net change based on all changes made by the business transaction to said value of the particular column. 9. The method of claim 3 further comprising, in response to determining that the update is allowed, performing the steps of: invoking second user-provided logic which prepares metadata for the update operation; andstoring the metadata returned by the second user-provided logic in a business transaction journal for subsequent operations. 10. The method of claim 3 further comprising: receiving an indication that the business transaction confirmed; andin response to the indication, invoking second user-provided logic to compute a new confirmed value for the value; andstoring the new confirmed value in a journal table. 11. The method of claim 3 further comprising: receiving an indication that the business transaction aborted; andin response to the indication, invoking second user-provided logic to obtain a compensated value; andusing the compensated value to undo effects of the business transaction. 12. The method of claim 3 wherein: the user-defined logic includes logic for both shared update validation and for maintaining metadata through transaction abort and confirm; andthe user-defined logic is encapsulated into an extensible data type implementation, which is associated with a field/column that receives shared update requests. 13. A method for performing shared updates, comprising: receiving user-provided logic for determining whether updates to a particular column are valid in the presence of concurrent updates to a same value;storing the user-provided logic at a location accessible to a business transaction framework;receiving a request, associated with a particular business transaction, to perform an update to a value in the particular column; andin response to the request, the business transaction framework performing the steps of: (a) determining a confirmed value for the value in the particular column(b) causing the user-provided logic to generate an indication of whether the update should be allowed, in the presence of concurrent updates to the same value, by: invoking the user-provided logic, andpassing, to the user-provided logic, said confirmed value to enable the user-provided logic to determine whether the update should be allowed based, at least in part, on the confirmed value and one or more constraints on the value of the particular column;(c) determining whether to allow the update based, at least in part, on the indication;wherein the step of receiving user-provided logic includes receiving at least one of:an implementation of a method of a customized data classification type; or a definition of an operational constraint that includes logic for enforcing cross-column dependencies;wherein the method is performed by at least one device comprising a processor. 14. The method of claim 13 wherein: the step of invoking the user-provided logic includes making a call to the implementation of the method of the customized data classification type. 15. The method of claim 13 wherein: the step of invoking the user-provided logic includes evaluating the operational constraint. 16. The method of claim 15 wherein the operational constraint references values externalized from summaries maintained by third user-provided logic. 17. The method of claim 13 further comprising, prior to invoking the user-provided logic, invoking second user-provided logic to undo past changes to said value in the particular column that were made by the business transaction. 18. The method of claim 13 further comprising determining a net change based on all changes made by the business transaction to said value of the particular column. 19. The method of claim 13 further comprising, in response to determining that the update is allowed, performing the steps of: invoking second user-provided logic which prepares metadata for the update operation; andstoring the metadata returned by the second user-provided logic in a business transaction journal for subsequent operations. 20. The method of claim 13 further comprising: receiving an indication that the business transaction confirmed; andin response to the indication, invoking second user-provided logic to compute a new confirmed value for the value; andstoring the new confirmed value in a journal table. 21. The method of claim 13 further comprising: receiving an indication that the business transaction aborted; andin response to the indication, invoking second user-provided logic to obtain a compensated value; andusing the compensated value to undo effects of the business transaction. 22. The method of claim 13 wherein: the user-defined logic includes logic for both shared update validation and for maintaining metadata through transaction abort and confirm; andthe user-defined logic is encapsulated into an extensible data type implementation, which is associated with a field/column that receives shared update requests. 23. A non-transitory computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform steps comprising: receiving user-provided logic for determining whether updates to a particular column are valid in the presence of concurrent updates to a same value;storing the user-provided logic at a location accessible to a business transaction framework;receiving a request, associated with a particular business transaction, to perform an update to a value in the particular column; andin response to the request, the business transaction framework performing the steps of: (a) determining a projected value for the value in the particular column(b) causing the user-provided logic to generate an indication of whether the update should be allowed, in the presence of concurrent updates to the same value, by: invoking the user-provided logic, and passing, to the user-provided logic, said projected value to enable the user-provided logic to determine whether the update should be allowed based, at least in part, on the projected value with one or more other values and one or more constraints on the value of the particular column; (c) determining whether to allow the update based, at least in part, on the indication; wherein the step of receiving user-provided logic includes receiving at least one of: an implementation of a method of a customized data classification type; or a definition of an operational constraint that includes logic for enforcing cross-column dependencies. 24. The non-transitory computer-readable storage medium as recited in claim 23, wherein: the step of invoking the user-provided logic includes making a call to the implementation of the method. 25. The non-transitory computer-readable storage medium as recited in claim 23, wherein: the step of invoking the user-provided logic includes evaluating the operational constraint. 26. The non-transitory computer-readable storage medium as recited in claim 25, wherein the operational constraint references values externalized from summaries maintained by third user-provided logic. 27. The non-transitory computer-readable storage medium as recited in claim 23, further storing one or more sequences of instructions which, when executed by the one or more processors, causes the one or more processors to perform steps comprising: prior to invoking the user-provided logic, invoking second user-provided logic to undo past changes to said value in the particular column that were made by the business transaction. 28. The non-transitory computer-readable storage medium as recited in claim 23, further storing one or more sequences of instructions which, when executed by the one or more processors, causes the one or more processors to perform steps comprising: determining a net change based on all changes made by the business transaction to said value of the particular column. 29. The non-transitory computer-readable storage medium as recited in claim 23, further storing one or more sequences of instructions which, when executed by the one or more processors, causes the one or more processors to perform steps comprising: invoking second user-provided logic which prepares metadata for the update operation; andstoring the metadata returned by the second user-provided logic in a business transaction journal for subsequent operations. 30. The non-transitory computer-readable storage medium as recited in claim 23, further storing one or more sequences of instructions which, when executed by the one or more processors, causes the one or more processors to perform steps comprising: receiving an indication that the business transaction confirmed; andin response to the indication, invoking second user-provided logic to compute a new confirmed value for the value; andstoring the new confirmed value in a journal table. 31. The non-transitory computer-readable storage medium as recited in claim 23, further storing one or more sequences of instructions which, when executed by the one or more processors, causes the one or more processors to perform steps comprising: receiving an indication that the business transaction aborted; andin response to the indication, invoking second user-provided logic to obtain a compensated value; andusing the compensated value to undo effects of the business transaction. 32. The non-transitory computer-readable storage medium as recited in claim 23, wherein: the user-defined logic includes logic for shared update validation and for maintaining metadata through transaction abort and confirm; andthe user-defined logic is encapsulated into an extensible data type implementation, which is associated with a field/column that receives shared update requests. 33. A non-transitory computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform steps comprising: receiving user-provided logic for determining whether updates to a particular column are valid in the presence of concurrent updates to a same value;storing the user-provided logic at a location accessible to a business transaction framework;receiving a request, associated with a particular business transaction, to perform an update to a value in the particular column; andin response to the request, the business transaction framework performing the steps of: (a) determining a confirmed value for the value in the particular column(b) causing the user-provided logic to generate an indication of whether the update should be allowed, in the presence of concurrent updates to the same value, by: invoking the user-provided logic, andpassing, to the user-provided logic, said confirmed value to enable the user-provided logic to determine whether the update should be allowed based, at least in part, on comparing the confirmed value and one or more constraints on the value of the particular column;(c) determining whether to allow the update based, at least in part, on the indication;wherein the step of receiving user-provided logic includes receiving at least one of:an implementation of a method of a customized data classification type; or a definition of an operational constraint that includes logic for enforcing cross-column dependencies. 34. The non-transitory computer-readable storage medium as recited in claim 33, wherein: the step of invoking the user-provided logic includes making a call to the implementation of the method. 35. The non-transitory computer-readable storage medium as recited in claim 33, wherein: the step of invoking the user-provided logic includes evaluating the operational constraint. 36. The non-transitory computer-readable storage medium as recited in claim 35, wherein the operational constraint references values externalized from summaries maintained by third user-provided logic. 37. The non-transitory computer-readable storage medium as recited in claim 33, further storing one or more sequences of instructions which, when executed by the one or more processors, causes the one or more processors to perform steps comprising: prior to invoking the user-provided logic, invoking second user-provided logic to undo past changes to said value in the particular column that were made by the business transaction. 38. The non-transitory computer-readable storage medium as recited in claim 33, further storing one or more sequences of instructions which, when executed by the one or more processors, causes the one or more processors to perform steps comprising: determining a net change based on all changes made by the business transaction to said value of the particular column. 39. The non-transitory computer-readable storage medium as recited in claim 33, further storing one or more sequences of instructions which, when executed by the one or more processors, causes the one or more processors to perform steps comprising: invoking second user-provided logic which prepares metadata for the update operation; andstoring the metadata returned by the second user-provided logic in a business transaction journal for subsequent operations. 40. The non-transitory computer-readable storage medium as recited in claim 33, further storing one or more sequences of instructions which, when executed by the one or more processors, causes the one or more processors to perform steps comprising: receiving an indication that the business transaction confirmed; andin response to the indication, invoking second user-provided logic to compute a new confirmed value for the value; andstoring the new confirmed value in a journal table. 41. The non-transitory computer-readable storage medium as recited in claim 33, further storing one or more sequences of instructions which, when executed by the one or more processors, causes the one or more processors to perform steps comprising: receiving an indication that the business transaction aborted; andin response to the indication, invoking second user-provided logic to obtain a compensated value; andusing the compensated value to undo effects of the business transaction. 42. The non-transitory computer-readable storage medium as recited in claim 33, wherein: the user-defined logic includes logic for shared update validation and for maintaining metadata through transaction abort and confirm; andthe user-defined logic is encapsulated into an extensible data type implementation, which is associated with a field/column that receives shared update requests.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (8)
King John Wesley ; Kizer Geoffrey Minard ; Smith Gregory R., Buffered table user index.
Helgeson, Christopher S.; Lipkin, Daniel S.; Larson, Robert S.; Panuganti, Srinivas, Method and apparatus for managing data exchange among systems in a network.
Beizer Mordechai M. ; Berg Daniel ; Scullard Rand ; Simha Pradeep R. ; Solomon Mark A., Method of resolving data conflicts in a shared data environment.
Lomet David B. (Westford MA), Multilevel transaction recovery in a database system which loss parent transaction undo operation upon commit of child t.
Ankireddipally, Lakshmi Narasimha; Yeh, Ryh-Wei; Nichols, Dan; Devesetti, Ravi, Transaction data structure for process communications among network-distributed applications.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.