摘要:
A mechanism is described for constructing work granules, where the work granules are constructed independently of whether two or more of the work granules are assigned to operate on a logical storage unit that contains a portion of the same row. A database system maintains transaction control data for data blocks in a manner that avoids self-deadlocks for slaves that follow a row collision protocol. A row collision protocol is a set of rules or steps that slaves follow to ensure that only one subtransaction in a distributed transaction updates a spanning row. Thus, for a particular spanning row, a single subtransaction modifies all the row pieces of the spanning row in any data block containing any row pieces of the spanning row. Consequently, a given data block may be affected by multiple subtransactions in a distributed transaction, one subtransaction affecting a row piece in the data block, another subtransaction affecting other rows in the data block.
摘要:
A system and method for selectively viewing temporal row data in a consistent read-implemented database are described. Committed transactions effecting row data changes to a database are tracked and a stored system change number is assigned upon each committed transaction. Rollback segments for uncommitted transactions are stored. Each rollback segment stores a transaction identifier and transaction table entries containing ordered row data values reflecting the database changes. The database is transitioned into successive consistent versions responsive to each committed transaction at a journaled commit time. The transaction table entries are maintained for a user-definable retention period following the commit time of each committed transaction. A queried selection of row data values from the database is performed as of a query time occurring prior to the commit time of at least one committed transaction. The ordered row data values contained in the rollback segments storing a transaction identifier for the at least one committed transaction are retrieved.
摘要:
A method and apparatus for incremental undo is provided. A process, executing in a database system, establishes a rollback entry in an undo log file as a current rollback entry. The rollback entry, which was selected from a set of rollback entries contained in an undo record, contains data that indicates a change made by a transaction to a data block in the database system. The process first determines whether the rollback entry has been applied by testing a status flag. In one embodiment, the status flag is a bit in a bit vector in the undo block. If the rollback entry has been applied to the database, then the rollback entry is not re-applied; rather, a next rollback entry is established from the set of rollback entries and the process repeats. If the rollback entry has not been applied, then undo information from the rollback entry is retrieved from the undo block and change is generated. The status flag is set to indicate that the rollback entry has been applied and a next rollback entry corresponding to the data block is retrieved. The process repeats until there are no more rollback entries to be performed, then the multiple changes are applied to disk in a single atomic operation.
摘要:
A method and mechanism for dependency tracking in a database system is disclosed. According to an embodiment, dependency tracking for a referentially constrained object is performed by tracking change or commit time values for key ranges as well as change or commit time values at various granularities in the database. The combination of various sets of change or commit values are employed to determine a single value representing all prior transactions or changes that an operation is dependent upon.
摘要:
A method and mechanism for tracking dependencies at low granularity levels in a database system is disclosed. An embodiment utilities commit time values at low granularity levels which are associated with structures in a database system. Those associated commit time values are used to compute dependency values.
摘要:
A method and mechanism of accessing segments in data storage systems is disclosed. In one embodiment, extents in a segment are coalesced into groups based on the data storage device each extent is stored on. Rather than submit an I/O operation for each extent, a single I/O operation is submitted for each group of extents.
摘要:
A method and mechanism for tracking dependencies at low granularity levels in a database system is disclosed. An embodiment utilities commit time values at low granularity levels which are associated with structures in a database system. Those associated commit time values are used to compute dependency values.
摘要:
A method and mechanism for dependency tracking in a database system is disclosed. According to an embodiment, dependency tracking is performed for a uniqueness constrained object by tracking change or commit values for a key range associated with the uniqueness constrained object. For uniqueness constrained tables, this type of key range can be associated with a column or set of columns in the uniqueness constrained table.
摘要:
A method and apparatus for batch processing of updates to indexes is provided. A plurality of index update records are generated that identify a plurality of index update operations to be made to an index. The plurality of index entry records are sorted and then applied, in an order that corresponds to the sort order, in batches to their respective indexes. As a result of performing batch processing of updates to indexes, the number of disk I/Os will be greatly reduced, freeing database system resources to perform other tasks. The overall efficiency of index maintenance is also improved, as is the recovery of the database system after a failure, resultant from an ordering of the index maintenance operations and a partial ordering of the persistent redo log file.
摘要:
A pluggable tablespace is enabled by logically partitioning a database into a set of tablespaces and storing all of the tablespaces disk pointers in tablespace-relative format. A pluggable set of tablespaces is unplugged by exporting the associated metadata, and making a binary copy of the tablespaces. The pluggable set of tablespaces is plugged into a target database by making the pluggable set accessible to the target database and importing the associated metadata, without patching any of the disk pointers.