A method and apparatus are provided for transferring a resource from the
cache of one database server to the cache of another database server
without first writing the resource to disk. When a database server
(Requestor) desires to modify a resource, the Requestor asks for the
current version of the resource. The database server that has the current
version (Holder) directly ships the current version to the Requestor. Upon
shipping the version, the Holder loses permission to modify the resource,
but continues to retain the resource in memory. When the retained version
of the resource, or a later version thereof, is written to disk, the
Holder can discard the retained version of the resource. Otherwise, the
Holder does not discard the retained version. Using this technique,
single-server failures are recovered without having to merge the recovery
logs of the various database servers that had access to the resource.
Μια μέθοδος και μια συσκευή παρέχονται για τη μεταφορά ενός πόρου από την κρύπτη ενός κεντρικού υπολογιστή βάσεων δεδομένων στην κρύπτη ενός άλλου κεντρικού υπολογιστή βάσεων δεδομένων χωρίς πρώτα να γράψουν τον πόρο στο δίσκο. Όταν ένας κεντρικός υπολογιστής βάσεων δεδομένων (αιτών) επιθυμεί να τροποποιήσει έναν πόρο, ο αιτών ζητά την τρέχουσα έκδοση του πόρου. Ο κεντρικός υπολογιστής βάσεων δεδομένων που έχει την τρέχουσα έκδοση (κάτοχος) άμεσα στέλνει την τρέχουσα έκδοση στον αιτούντα. Επάνω στη ναυτιλία της έκδοσης, ο κάτοχος χάνει την άδεια να τροποποιήσει τον πόρο, αλλά συνεχίζει να διατηρεί τον πόρο στη μνήμη. Όταν η διατηρημένη έκδοση του πόρου, ή μια πιό πρόσφατη έκδοση επ' αυτού, γράφεται στο δίσκο, ο κάτοχος μπορεί να απορρίψει τη διατηρημένη έκδοση του πόρου. Διαφορετικά, ο κάτοχος δεν απορρίπτει τη διατηρημένη έκδοση. Χρησιμοποιώντας αυτήν την τεχνική, οι αποτυχίες ενιαίος-κεντρικών υπολογιστών ανακτώνται χωρίς να πρέπει να συγχωνευθούν τα κούτσουρα αποκατάστασης των διάφορων κεντρικών υπολογιστών βάσεων δεδομένων που είχαν πρόσβαση στον πόρο.