web-dev-qa-db-fra.com

Transactions concurrentes vs transactions simultanées

Chapitre 6 de David Kroenke's Database Concepts: Database Administration

Mon compréhension est-il correct que dans une base de données, des transactions simultanées ne se produisent pas vraiment. Au lieu de cela, il s'agit d'une transaction concomitante qui se passe vite que les utilisateurs pensent que c'est une transaction simultanée?

La raison pour laquelle je demande est parce que j'ai été jetée par la question de ma mission demandant combien de processeurs sont nécessaires pour effectuer une transaction simultanée. J'ai répondu qu'un seul processeur est requis puisqu'il s'agit vraiment d'une transaction simultanée qui se produit et non une simultanée?

Pensées, n'importe qui?

Edit : ~ Jcolebrand -

@gbn et @mark,

J'apprécie votre contribution, cependant, je n'ai absolument aucune idée de ce que ces termes sont parce que ce cours que je prends actuellement est un cours d'introduction à la gestion de la base de données et ma question n'a été discutée que dans le livre dans 1 paragraphe et n'a pas élaboré davantage. Je pourrais peut-être comprendre vos réponses dans le temps, mais maintenant, je ne peux pas encore. Merci quand même!

5
momo

Votre question d'affectation est médiocre et la réponse attendue probablement incorrecte. N'hésitez pas à envoyer le conférencier notre façon de discuter!

Du livre:

Expliquez la différence entre les transactions simultanées et les transactions simultanées. Combien de processeurs sont nécessaires pour les transactions simultanées?

Je suppose que la différenciation attendue est la suivante:

  • Transactions concurrentes = multiples transactions actives en même temps.
  • Transactions simultanées = multiples transactions exécutions en même temps.

Question de Naff à mon avis.

Mon compréhension est-il correct que dans une base de données, des transactions simultanées ne se produisent pas vraiment

Les transactions fonctionnent bien sûr simultanément et simultanément. La question est de savoir si les commissions simultanées peuvent se produire ou non ce que @GBN s'adresse à sa réponse.

@gbn est correct que deux commits simultanés ne peuvent pas se produire si Vous envisagez la transaction à commérer au point que l'entrée WAL est durcie au disque. D'une perspective de récupération d'accident, la transaction est définitivement engagée à ce stade. En cas d'échec survenant, cette transaction serait renvoyée vers l'avant (Redo), non renvoyée (annuler). Comme deux écrit sur le disque ne peuvent pas se produire en même temps, nous pourrions faire valoir que deux commits simultanés ne peuvent pas se produire.

Cependant, vous pouvez également affirmer qu'une transaction est commise au point que le SGBBR est notifié par le fichier IO que l'écriture WAL a terminé avec succès et a publié des serrures qu'il contenait pendant la durée de la la transaction. Par conséquent, dans un environnement multi-CPU simultané des engagements peut et se produira.

La mécanique de la manière dont cela peut se produire pour SQL Server est expliqué dans Waits de réglage de la performance et files d'attente , section intitulée "Modèle d'exécution (simplifié)". Encore une fois pour le serveur SQL Folk, certains lecture de fond sur le type d'attente Writelog est utile pour comprendre les concepts.

4
Mark Storey-Smith

Simultané n'arrivera pas à cause du journal écrit à venir (WAL)

Le journal de transaction WAL (A.K.A A.K.A, etc. en fonction des RDBMS) oblige toutes les modifications de données à être sérialisables pour une rejoue ou une restauration ultérieure.

Sur un serveur de deux principaux, deux écrivies peuvent être simultanées car il ne peut y avoir aucune conflit avant que le WAL n'écrit que l'un DOI se produise avant l'autre.

Plus haut, les verrous et les verrous peuvent sérialiser les modifications de données sur la même ligne/page/tableau.

3
gbn