A weak record locking scheme that, while enforcing serialization of record
updates, permits a read to extract data from uncommitted updates.
Specifically, records are locked in association with a process or thread
performing a lock. When the records affected by a transaction are
initially locked for reading or updating, they are locked at the process
level. When a particular record is to be read or updated as part of a
transaction, it is locked at the thread level. A read transaction that
will accept uncommitted changes uses a weak lock to lock the record for
reading. A weak lock may be made on a record so long as the record is not
already locked for updating at the thread level. While a record is weakly
locked for reading, it cannot be locked for updating at the thread level.
A record may thus be weakly locked even though the record is locked for
updating at the process level by the same process. Weak locking thus
preserves serialization of updates, while reducing delays caused by
locking conflicts.
Ένα αδύνατο σχέδιο κλειδώματος αρχείων που, επιβάλλοντας serialization των αναπροσαρμογών αρχείων, επιτρέπει διαβασμένη στα στοιχεία αποσπασμάτων από τις αδέσμευτες αναπροσαρμογές. Συγκεκριμένα, τα αρχεία είναι κλειδωμένα σε συνδυασμό με μια διαδικασία ή ένα νήμα εκτελώντας μια κλειδαριά. Όταν τα αρχεία που επηρεάζονται από μια συναλλαγή είναι αρχικά κλειδωμένα για την ανάγνωση ή ενημέρωση, είναι κλειδωμένα στο επίπεδο διαδικασίας. Όταν ένα ιδιαίτερο αρχείο πρόκειται να διαβαστεί ή να ενημερωθεί ως τμήμα μιας συναλλαγής, είναι κλειδωμένο στο επίπεδο νημάτων. Μια διαβασμένη συναλλαγή που θα δεχτεί τις αδέσμευτες αλλαγές χρησιμοποιεί μια αδύνατη κλειδαριά για να κλειδώσει το αρχείο για την ανάγνωση. Μια αδύνατη κλειδαριά μπορεί να γίνει σε ένα αρχείο εφ' όσον δεν κλειδώνεται ήδη το αρχείο για την ενημέρωση στο επίπεδο νημάτων. Ενώ ένα αρχείο κλειδώνεται αδύναμα για την ανάγνωση, δεν μπορεί να κλειδωθεί για την ενημέρωση στο επίπεδο νημάτων. Ένα αρχείο μπορεί έτσι να κλειδωθεί αδύναμα ακόμα κι αν το αρχείο κλειδώνεται για την ενημέρωση στο επίπεδο διαδικασίας με την ίδια διαδικασία. Το αδύνατο κλείδωμα συντηρεί έτσι serialization των αναπροσαρμογών, μειώνοντας τις καθυστερήσεις που προκαλούνται με το κλείσιμο των συγκρούσεων.