Oracle RAC uses a cache-to-cache block transfer mechanism known as Cache Fusion to transfer read-consistent images of data blocks from one database instance to another.įigure 9-1 Read Consistency in the Read Committed Isolation Levelĭescription of "Figure 9-1 Read Consistency in the Read Committed Isolation Level"Īs the database retrieves data blocks on behalf of a query, the database ensures that the data in each block reflects the contents of the block when the query began. Read consistency is guaranteed in single-instance and Oracle Real Application Clusters (Oracle RAC) environments. The database can use snapshots of data at different points in time to provide read-consistent views of the data and enable nonblocking queries. Thus, multiple versions of the same data, all at different points in time, can exist in the database. The undo segments contain the old values of data that have been changed by uncommitted or recently committed transactions. Whenever a user modifies data, Oracle Database creates undo entries, which it writes to undo segments ( "Undo Segments"). Oracle Database achieves this goal through undo data. To manage the multiversion read consistency model, the database must create a read-consistent set of data when a table is simultaneously queried and updated. Because different versions of data blocks can exist simultaneously, transactions can read the version of data committed at the point in time required by a query and return results that are consistent to a single point in time. In this way, the database can present a view of data to multiple concurrent users, with each view consistent to a point in time. Oracle Database maintains data consistency by using a multiversion consistency model and various types of locks and transactions. In short, real-world considerations usually require a compromise between perfect transaction isolation and performance. Complete isolation of concurrently running transactions could mean that one transaction cannot perform an insertion into a table being queried by another transaction. While this degree of isolation between transactions is generally desirable, running many applications in serializable mode can seriously compromise application throughput. A serializable transaction operates in an environment that makes it appear as if no other users were modifying data in the database. To describe consistent transaction behavior when transactions run concurrently, database researchers have defined a transaction isolation model called serializability. Therefore, a multiuser database must provide the following:ĭata concurrency, which ensures that users can access data at the same timeĭata consistency, which ensures that each user sees a consistent view of the data, including visible changes made by the user's own transactions and committed transactions of other users Transactions executing simultaneously must produce meaningful and consistent results. However, in a multiuser database, statements within multiple simultaneous transactions can update the same data. In a single-user database, a user can modify data without concern for other users modifying the same data at the same time. Introduction to Data Concurrency and Consistency
0 Comments
Leave a Reply. |