摘要:
A method and apparatus for removing changes made by a dead transaction is provided. According to the method, a first change is performed by the dead transaction prior to a second change. The first change made by the dead transaction is then undone prior to undoing the second change made by the dead transaction. According to another aspect of the invention, a method and apparatus for applying changes in redo records to make a particular resource reflect changes made to the particular resource in volatile memory before a failure is provided. The method includes establishing links that link together a set of redo records that contain changes made to the particular resource. The links are then followed to apply the changes contained in the set of redo records to cause the particular resource to reflect the changes made to the particular resource in volatile memory before the failure. According to another aspect of the invention, a method and apparatus for applying changes in two or more redo records in parallel is provided. According to the method, a plurality of resources are locked by a dead transaction. A plurality of sets of redo records are established that do not contain any redo records that depend on any redo records in any other set of redo records. The plurality of sets of redo records are applied in parallel relative to one another.
摘要:
Described is an approach for recovering the failure of a transaction. According to the approach, a first change and a third change is made to a first resource and a second change is made to a second resource. The second change was made after the first but before the third. However, to recover the failure of the transaction, a recovery record for the third change is applied before the recovery record for the second change. Also described is an approach involving establishing links that link together a set of undo records that contain changes made to the particular resource. Also described is an approach for applying two or more undo records in parallel.
摘要:
Techniques are disclosed for creating and using a filter index in order to identify registered queries whose result sets are likely to have been changed by changes made to tables. The filter index entries are based on filter conditions. The filter conditions are created based on predicates contained in the registered queries. The filter conditions may include exclusive predicates and join predicates. Join predicates that join a table T1 with a table T2 may be instantiated by replacing references to table T2 with values extracted from table T2. Various techniques are described for recognizing situations in which a query can be included in, or excluded from, the set of likely-changed queries, without fully evaluating the filter conditions that correspond to the queries.
摘要:
Techniques are disclosed for creating and using a filter index in order to identify registered queries whose result sets are likely to have been changed by changes made to tables. The filter index entries are based on filter conditions. The filter conditions are created based on predicates contained in the registered queries. The filter conditions may include exclusive predicates and join predicates. Join predicates that join a table T1 with a table T2 may be instantiated by replacing references to table T2 with values extracted from table T2. Various techniques are described for recognizing situations in which a query can be included in, or excluded from, the set of likely-changed queries, without fully evaluating the filter conditions that correspond to the queries.
摘要:
Systems, methods, and other embodiments associated with bi-temporal user profiling are described. An event is detected that occurs at a valid event time. In response to the event, a repository is accessed that stores data describing one or more user profiles that include a profile record valid time period specifying a time at which the given profile record is valid. A prior user profile record is retrieved that has a profile record valid time period that overlaps with the valid event time. An updated user profile record is created based, at least in part, on the event. The updated user profile record is saved with the valid event time demarcating the start of a profile valid time period. The prior user profile with the valid event time demarcating the end of the profile record valid time period is also saved for subsequent processing.
摘要:
Techniques are provided for freeing up resources before operations that change the resources have successfully completed. Resources are freed up by committing database transactions that perform portions of operations before the operations themselves have successfully completed. If the operations fail to complete successfully, then “compensation information” is used to remove the effects of the committed changes that were performed as part of the operation. Techniques are also provided for allowing database transactions to update values without retaining exclusive locks on those values. Operational constraints set forth conditions that must be satisfied before an update is allowed to proceed. If an attempt is made to update a particular value that has changes that may be undone, then the database server determines a plurality of “possible result values” for the particular value. If the possible result values satisfy the operational constraint conditions, then the update is allowed to proceed.
摘要:
A method for managing expressions includes receiving a first query that includes a first conditional expression. The first expression is then represented as data in a column of a table. A second query is received that specifies a first set of criteria, and the second query is executed to select data based at least on whether expressions in the column satisfy the first set of criteria. In an embodiment, the second query further specifies a second set of criteria, wherein executing the second query includes selecting data based on whether data in columns other than the expression column satisfy the second criteria. A special index is defined, which can be created on the column that stores the expressions as data, to filter large sets of expressions efficiently. A method of evaluating an expression set stored as data in a table classifies each predicate from each expression, and filters the expression set based on the predicate classification.
摘要:
A method and system are provided for handling within a database system data items that are associated with data types that are not supported by the database language used to the database system. The data types are registered with the database system by storing, in the database, metadata that indicates the structure, physical layout, and constraints that apply to the data types. The database system uses the structure and physical layout information to access individual elements of data items. The database system validates data items using the constraint information, which includes constraints that dictate what values are valid for certain elements based on what values are supplied for other elements. Data items associated with many different data types may be stored in the same table. Applications can access the data items through a transformation view that transforms the data items from their native format to a format expected by the applications.
摘要:
Techniques for sharing information in a wide variety of contexts allows both an explicit capture process and an implicit capture process to add information items to a staging area. An information sharing system supports both implicit and explicit consumption of information items that are stored in the staging area. A rules engine allows users to create and register rules that customize the behavior of the capture processes, the consuming processes, and propagation processes that propagate information from the staging areas to designated destinations. Exactly-once handling of sequence of items is achieved for items maintained in volatile memory. DDL operations are recorded, and operations are asynchronously performed based on the previously-performed DDL operations.
摘要:
An advanced message queuing system is integrated into a database system. A queue is an ordered list of messages. Messages are requests for processing by an application. Messages are database objects and can represent events or data. Messages comprise user data and control information such as a queue name. Each queue is part of a table in a relational database. A queue table holds a set of queues. Dictionary tables store configuration information describing queues and queue tables. Messages are entered into a queue by instructing the database system using an enqueuing command attached to a message and control information. The control information describes how to order, schedule, and execute the message, and can include a result queue name into which a result message is written after execution. The system responds to a dequeuing command by delivering a copy of a message from the queue. A user can define message order within a queue, message delay factors, and exception processing. Messages may be retained in their queues after delivery and can be preserved, queried, documented, correlated, reviewed and tracked, alone or in a set comprising a transaction, regardless of message state or execution state. The system can be used to develop large-scale, message-oriented distributed applications. Existing development tools for database applications can also be used to develop queuing applications. Administrative functions to create, delete, and specify access control for queues are provided. The system provides transactional integrity; a single transaction applies to both the database and the queue. A single transaction log is maintained.