Techniques are provided for handling distributed transactions in
shared-nothing database systems where one or more of the nodes have access
to a shared persistent storage. Rather than coordinate the distributed
transaction using a two-phase commit protocol, the coordinator of the
distributed transaction uses a one-phase commit protocol with those
participants that have access to the transaction status information
maintained by the coordinator. The transaction status information may
reside, for example, in the redo log of the coordinator. In the case that
the coordinator fails, those participants can determine the state of the
distributed transaction based on information stored on the shared disk. In
addition, the coordinator is able to determine whether it is possible to
commit the distributed transaction based on information that is stored on
the shared disk by the participants, without those participants entering a
formal "prepared" state.
Des techniques sont données pour manipuler des transactions distribuées en partager-rien des systèmes de base de données où un ou plusieurs des noeuds a accès à un stockage persistant partagé. Plutôt que coordonnez la transaction distribuée employant un biphasé commettent le protocole, le coordonnateur des utilisations distribuées de transaction que un uniphasé commet le protocole avec ces participants qui ont accès à l'information de statut de transaction maintenue par le coordonnateur. L'information de statut de transaction peut résider, par exemple, dans la notation de refaire du coordonnateur. Dans le cas que le coordonnateur échoue, ces participants peuvent déterminer l'état de la transaction distribuée basée sur l'information stockée sur le disque partagé. En outre, le coordonnateur peut déterminer s'il est possible de commettre la transaction distribuée basée sur l'information qui est stockée sur le disque partagé par les participants, sans ces participants écrivant un état "préparé" formel.