Topic: updating information with locking

topics > computer science > database > Group: distributed database

concurrency control by monitors
critical regions
database implementation
database transactions
lock-free concurrency
optimistic update for concurrency control
race conditions
updating information in a distributed system


Locking is the primary method for updating shared data. If you acquire a lock, then you can guarantee that no other process is reading and updating the information at the same time. Read and write operations may be locked. A monitor prevents concurrent use of a shared resource.

Database systems use locks to implement transactions and two-phase commit.

Locking may lead to deadlocks and livelock. Not locking may lead to race conditions and inconsistent data. (cbb 8/06)

Subtopic: locking and concurrency up

Quote: for concurrency, locking data is more fundamental than multi-tasking [»stroB_1994]

Subtopic: lock as ownership up

Quote: holding a lock implies ownership of the data [»stefM1_1987]

Subtopic: lock as reservation up

Quote: use thread lock reservations for faster locking without atomic operations; needs one bit and a shared word of the object header [»kawaK11_2002]
Quote: use floor-passing or reservations to avoid conflicting updates to a shared window [»sariS10_1985]
Quote: avoid conflicting updates by graying out screen items that are in use [»stefM1_1987]

Subtopic: lock allocation up

Quote: automatic lock allocation by instrumentation and 0-1 integer linear programming; use with Autolocker [»emmiM1_2007]

Subtopic: release lock up

Quote: use destructors to release a lock for exclusive access to data; simpler, more reliable, handles exceptions

Subtopic: redundant locking up

Quote: use 'confine' and 'restrict' to track lock state; removed spurious type errors in 138 of 152 device driver modules [»aikeA6_2003]

Subtopic: file-level commit up

Quote: Helix uses two-phase commit and file sets to implement transactions (large-scale atomic actions) [»fridM5_1985]
Quote: if a Helix application program succeeds, its file set is committed [»fridM5_1985]
Quote: a commit (snapshot) in Helix colors all blocks red; must write them to new addresses [»fridM5_1985]
Quote: while Unix does not have user-level locks, it has internal locks for maintaining the logical consistency of the file system [»ritcDM7_1978a]

Subtopic: powerfail reliability up

Quote: commitment works well in Helix; no shut-down command is provided; take down file servers by pressing reset or turning off [»fridM5_1985]
Quote: if a Helix application program fails, all resources in its file set are released

Subtopic: write vs. read up

Quote: Guava has non-exclusive read locks and exclusive update locks; better than Java's synchronized methods [»bacoDF10_2000]
Quote: Helix access mode consists of type (read, write) and a lock (copy, original, exclusive);
Quote: a Helix object can have one committable instance, i.e., write-original or write-exclusive access mode; other modes allow sharing and concurrency [»fridM5_1985]

Subtopic: avoid global locks up

Quote: SDD-1 does not require that every transaction use global locking to update data [»bernPA5_1978]
Quote: since a monitor locks an entire data structure, PORTAL has resources to lock individual data items; i.e., semaphores [»schiR4_1980]
Quote: instructions for lock manipulation are expensive, compound atomic operations; e.g., compare and swap

Related Topics up

Topic: concurrency control by monitors (24 items)
Topic: critical regions (58 items)
Topic: database implementation (18 items)
Topic: database transactions (27 items)
Topic: deadlocks (21 items)
Topic: lock-free concurrency (8 items)
Topic: optimistic update for concurrency control (35 items)
Topic: race conditions (33 items)
Topic: updating information in a distributed system
(50 items)

Updated barberCB 3/05
Copyright © 2002-2008 by C. Bradford Barber. All rights reserved.
Thesa is a trademark of C. Bradford Barber.