Re: distributed concurrency in oracle 7.0

From: Sandor Nieuwenhuis NL <snieuwen_at_nl.oracle.com>
Date: 21 Jul 93 10:11:35 GMT
Message-ID: <4334_at_nlsun1.oracle.nl>


Richard Finkelstein (rfinkel_at_infochi.com) wrote:
: Sameer Soni (sameers_at_cs.tamu.edu) wrote:
: : Hi!
: : Can someone tell me how oracle scheduler maintains the concurrency? The only
: : thing I could get from the product info was that it uses multiversion data
: : items and does not require any read locks. I am sort of confused. I have a
: : background of concurrency control including Multiversion
[ Stuff deleted ]

: Oracle can enforce repeatable read (no phantom inserts or updates) but to
: do so it must lock the full table.

There are two ways to do this.
1) SET TRANSACTION READONLY
   This will enforce repeatable reads, without locking and uses multiversioning    to do this.
2) SERIALIZABLE=true in Init.ora

   This will enforce repeatable reads, but locks all tables involved. To my    knowledge this is hardly used.

[Stuff deleted]

Oracle used multiversioning to implement read-consistency, without locking. This means that you can read data in a consistent way, without any influence of changes during your query. The multiversioning algorithm will *NOT* place any locks during read. Most other databases I know of do place locks to implement read-consistency, which ofcourse can cause serious performance degradations or even unexpected dead-locks.

Sandor Nieuwenhuijs
Oracle Netherlands
Product Manager RDBMS Received on Wed Jul 21 1993 - 12:11:35 CEST

Original text of this message