Search

US-12625861-B2 - Future transaction processing

US12625861B2US 12625861 B2US12625861 B2US 12625861B2US-12625861-B2

Abstract

Techniques for managing requests to modify a data set at future times are disclosed. The system receives a request to modify the data set at a future time, such as in a future time window. The system generates a representation of the data set at the future time. The system determines the future state of the data set based on the current state of the data set and requested future modifications to the data set. The system determines whether a conflict exists between the request to modify the data set at the future time and another scheduled request to modify the data set at the future time. Based on determining whether a conflict exists, the system performs one or more of scheduling the request to modify the data set at the future time and performing a remediation action to address the conflict.

Inventors

  • Douglas Ray COSBY
  • Anurag Garg
  • Byron Kevin McKenzie

Assignees

  • ORACLE INTERNATIONAL CORPORATION

Dates

Publication Date
20260512
Application Date
20240729

Claims (20)

  1. 1 . One or more non-transitory computer readable media comprising instructions which, when executed by one or more hardware processors, cause performance of operations comprising: receiving by a database server a first request corresponding to a first database transaction for modifying a first database record; determining, by the database server, a first present state of a first set of one or more database records including the first database record at a first moment in time at least by: querying a database, comprising the first set of one or more database records, to identify the first present state of the first set of one or more database records; determining, by the database server in real-time and in response to receiving the first request, whether the first database transaction conflicts with the first present state of the first set of one or more database records; based on determining the first database transaction does not conflict with the first present state of the first set of one or more database records, (a) refraining from performing any remediation action by the database server and (b) storing, by the database server, the first request to perform the first database transaction in a first queue; receiving, by the database server, a second request corresponding to a second database transaction for adding, modifying, or deleting at least one database record in the database; while the first request is stored in the first queue and in response to receiving the second request: executing, by the database server, the second database transaction for adding, modifying, or deleting the at least one database record; while the first request is stored in the first queue and subsequent to executing the second request, determining, by the database server, a second present state of a second set of one or more database records at a second moment in time subsequent to the first moment in time, wherein the second present state of the second set of one or more database records is based at least in part on the adding, modifying, or deleting of the at least one database record; determining, by the database server, whether the first database transaction conflicts with the second present state of the second set of one or more database records; and based on determining the first database transaction conflicts with the second present state of the second set of one or more database records: applying, by the database server, a set of conflict remediation rules to the first request to perform a remediation action corresponding to the first request.
  2. 2 . The one or more non-transitory computer readable media of claim 1 , wherein the first request is received without receiving a selection of any future time at which to perform the first database transaction.
  3. 3 . The one or more non-transitory computer readable media of claim 1 , wherein the operations further comprise: determining, in real-time, that an update has been made to the database, wherein determining the second present state of the second set of one or more database records and determining whether the first database transaction conflicts with the second present state of the second set of one or more database records are responsive to determining that the update has been made to the database.
  4. 4 . The one or more non-transitory computer readable media of claim 1 , wherein the remediation action comprises modifying the first database transaction to generate a modified first database transaction such that the first database transaction no longer conflicts with the second present state of the second set of one or more database records.
  5. 5 . The one or more non-transitory computer readable media of claim 1 , wherein the operations further comprise: based on receiving the first request: determining the first request is of a first type, wherein storing the first request to perform the first database transaction in the first queue is based on determining the first request is of the first type, wherein the second request includes a selection of a first future time at which to perform the second database transaction, and wherein the operations further comprise: based on the selection of the first future time at which to perform the second database transaction: storing the second request to perform the second database transaction at the first future time in a second queue.
  6. 6 . The one or more non-transitory computer readable media of claim 1 , wherein the second request includes a selection of a future time at which to perform the second database transaction, wherein the future time at which to perform the second database transaction is subsequent to the first moment in time and prior to the second moment in time, and wherein the operations further comprise: performing the second database transaction to add, modify, or delete the at least one database record prior to the second moment in time.
  7. 7 . The one or more non-transitory computer readable media of claim 1 , wherein the second request is received without a selection of any future time at which to perform the second database transaction, wherein the first request and the second request specify the first queue; determining an order for performance of the first request and the second request; and storing the first database transaction and the second database transaction in the first queue according to the order determined for the performance of the first request and the second request.
  8. 8 . The one or more non-transitory computer readable media of claim 1 , wherein the operations further comprise: storing a first set of database transactions to be performed at a first future time in a second queue; storing a second set of database transactions to be performed a at a second future time in a third queue, wherein the second future time is subsequent to the first future time; determining whether the second set of database transactions conflicts with the first set of database transactions; and based on the first database transaction being stored in the first queue, refraining from determining whether the second set of database transactions conflicts with the first database transaction.
  9. 9 . The one or more non-transitory computer readable media of claim 8 , wherein the operations further comprise: presenting, in a graphical user interface (GUI), a graphical representation of candidate database transactions, the graphical representation comprising: a first representation of a timeline; a second representation of a present time along the timeline; a third representation of the first queue located a predefined distance from the second representation; a fourth representation of the second queue located along the timeline, wherein at the first moment in time: the third representation is located at the predefined distance from the second representation along the timeline; and the fourth representation is located at a first location along the timeline, and wherein at the second moment in time: the third representation is located at the predefined distance from the second representation along the timeline; and the fourth representation is located at a second location along the timeline, wherein the second location is closer to the second representation than the first location.
  10. 10 . The one or more non-transitory computer readable media of claim 1 , wherein the first request is received from a first client computer in communication with the database server and with access to the database, and wherein the second request is received from a second client computer in communication with the database server and with access to the database.
  11. 11 . The one or more non-transitory computer readable media of claim 1 , wherein determining whether the first database transaction, for modifying the first database record, conflicts with the first present state of the first set of one or more database records comprises determining whether the first database transaction conflicts with a present state of the first database record.
  12. 12 . The one or more non-transitory computer readable media of claim 1 , wherein determining whether the first database transaction, for modifying the first database record, conflicts with the first present state of the first set of one or more database records comprises determining whether the first database transaction conflicts with a present state of a second database record different from the first database record.
  13. 13 . The one or more non-transitory computer readable media of claim 1 , wherein the first set of one or more database records is the same as the second set of one or more database records.
  14. 14 . The one or more non-transitory computer readable media of claim 1 , wherein the first request specifies the first queue for storing the first request, wherein the database server does not schedule any time for executing requests stored in the first queue, including the first request, and wherein the operations further comprise: subsequent to storing the first request: scheduling, by the database server, the second request for execution; and executing, by the database server, the second request in the database to add, modify, or delete the at least one database record in the database.
  15. 15 . The one or more non-transitory computer readable media of claim 1 , wherein the remediation action comprises discarding the first database transaction without executing the first database transaction on the database.
  16. 16 . The one or more non-transitory computer readable media of claim 1 , wherein the remediation action comprises generating a notification identifying the first database transaction.
  17. 17 . A method, comprising: receiving by a database server a first request corresponding to a first database transaction for modifying a first database record; determining, by the database server, a first present state of a first set of one or more database records including the first database record at a first moment in time at least by: querying a database, comprising the first set of one or more database records, to identify the first present state of the first set of one or more database records; determining, by the database server in real-time and in response to receiving the first request, whether the first database transaction conflicts with the first present state of the first set of one or more database records; based on determining the first database transaction does not conflict with the first present state of the first set of one or more database records, (a) refraining from performing any remediation action by the database server and (b) storing, by the database server, the first request to perform the first database transaction in a first queue; receiving, by the database server, a second request corresponding to a second database transaction for adding, modifying, or deleting at least one database record in the database; while the first request is stored in the first queue and in response to receiving the second request: executing, by the database server, the second database transaction for adding, modifying, or deleting the at least one database record; while the first request is stored in the first queue and subsequent to executing the second request, determining, by the database server, a second present state of a second set of one or more database records at a second moment in time subsequent to the first moment in time, wherein the second present state of the second set of one or more database records is based at least in part on the adding, modifying, or deleting of the at least one database record; determining, by the database server, whether the first database transaction conflicts with the second present state of the second set of one or more database records; and based on determining the first database transaction conflicts with the second present state of the second set of one or more database records: applying, by the database server, a set of conflict remediation rules to the first request to perform a remediation action corresponding to the first request.
  18. 18 . The method of claim 17 , further comprising: determining, in real-time, that an update has been made to the database, wherein determining the second present state of the second set of one or more database records and determining whether the first database transaction conflicts with the second present state of the second set of one or more database records are responsive to determining that the update has been made to the database.
  19. 19 . The method of claim 17 , wherein the remediation action comprises at least one of: (a) discarding the first database transaction without executing the first database transaction on the database record; (b) modifying the first database transaction to generate a modified first database transaction such that the first database transaction no longer conflicts with the second present state of the second set of one or more database records; and (c) generating a notification identifying the first database transaction.
  20. 20 . The method of claim 17 , further comprising: based on receiving the first request: determining the first request is of a first type, wherein storing the first request to perform the first database transaction in the first queue is based on determining the first request is of the first type, wherein the second request includes a selection of a first future time at which to perform the second database transaction, and wherein the method further comprises: based on the selection of the first future time at which to perform the second database transaction: storing the second request to perform the second database transaction at the first future time in a second queue.

Description

INCORPORATION BY REFERENCE; DISCLAIMER Each of the following applications are hereby incorporated by reference: application Ser. No. 17/861,579 filed on Jul. 11, 2022; Application 63/303,251, filed Jan. 26, 2022. The applicant hereby rescinds any disclaimer of claims scope in the parent application(s) or the prosecution history thereof and advises the USPTO that the claims in the application may be broader than any claim in the parent application(s). TECHNICAL FIELD The present disclosure relates to the processing of future transactions to be made to a dataset. In particular, the present disclosure relates to receiving, displaying, organizing, and remediating conflicts among requests for future changes to a future state of a dataset. BACKGROUND Organizations and enterprises generate large quantities of data that must be searchable to be useful to the organization. For example, a change in organization structure may result in varying zones of responsibility for employees that must be tracked for the organization to operate efficiently. A merger of two organizations may result in employee positions and entire cost centers being added, removed, or combined. A simple purchase transaction may include a receipt containing details about the products or services purchased, the store location, the buyer, payment terms, the transaction date, and so on. Sales transactions are booked in an organization's general ledger and posted to revenue accounts. Costs associated with creating and fulfilling purchases are recorded in expense accounts. Cost centers record expenses of companies and organizations within the company that support sales transactions. Every aspect of an organization or enterprise that describes and supports the functions of the enterprise generates data. Searching and analyzing the data-which is often in the terabytes—is vital to improve functioning of an enterprise. Enterprise data management systems allow different entities in an enterprise to access the enterprise data using different applications. For example, an accounting department runs an application that accesses one portion of the enterprise data. A sales department runs an application that accesses another portion of the enterprise data. The data accessed by the different entities may be entirely different or it may overlap. When one entity changes enterprise data, the enterprise data management system synchronizes the changes across any applications running in the enterprise to maintain consistency in the enterprise data. An enterprise may allow entities to request to change data in the enterprise data dataset at a future time. For example, the enterprise may schedule monthly updates to the dataset, and the enterprise may allow entities to schedule changes to the dataset to correspond with the monthly updates. However, when one or more entities request changes that affect data accessed by other entities, data modification conflicts may arise. For example, one entity may request to modify a node at a future time. However, another entity may request to delete the node at a future time preceding the modification. The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section. BRIEF DESCRIPTION OF THE DRAWINGS The embodiments are illustrated by way of example and not by way of limitation in the figures of the accompanying drawings. It should be noted that references to “an” or “one” embodiment in this disclosure are not necessarily to the same embodiment, and they mean at least one. In the drawings: FIG. 1 illustrates a system in accordance with one or more embodiments; FIG. 2 illustrates an example set of operations for processing requests to modify a future state of a dataset in accordance with one or more embodiments; FIGS. 3A-3D illustrate an example embodiment of a graphical user interface (GUI) for scheduling requests to a data set; and FIG. 4 shows a block diagram that illustrates a computer system in accordance with one or more embodiments. DETAILED DESCRIPTION In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding. One or more embodiments may be practiced without these specific details. Features described in one embodiment may be combined with features described in a different embodiment. In some examples, well-known structures and devices are described with reference to a block diagram form in order to avoid unnecessarily obscuring the present invention. 1. GENERAL OVERVIEW2. SYSTEM ARCHITECTURE3. MANAGING REQUESTS FOR FUTURE MODIFICATIONS TO A DATASET4. MANAGING ACCESS TO FUTURE DATASET MODIFICATION WINDOWS5. QUEUING REQUESTS IN TIME-INDEPENDENT REQUEST QUEUES6. EXA