Catégorie: Cohérence (consistency)

12/07/2010

Permalink 20:03:00, Catégories: Tom Kyte, Cohérence (consistency), 773 mots   French (FR) , Pachot Franck

Ecritures cohérentes - conséquences pour le développeur, par Tom Kyte (3ème partie)

Cet article est la traduction d'un article de Tom Kyte sur son blog (L'article original en anglais se trouve ici). Lectures cohérentes et multi-versionnage, par Tom Kyte

Il est conseillé lire préalablement les premières partie:


La première chose qui vient à l'esprit, c'est que le trigger se déclenche deux fois. On avait une table avec une seule ligne, et un trigger BEFORE FOR EACH ROW qui se déclanche pour chaque ligne. Un a fait un update sur une seule ligne et le trigger s'est déclanché deux fois.

Vous devez penser aux conséquentes de cela. Si vous faites dans votre trigger quoi que ce soit qui ne soit pas transactionnel, vous pouvez avoir un problème assez sérieux.

» Lire la suite!

Vous devez être identifié pour poster un commentaire.

Permalink 20:02:00, Catégories: Tom Kyte, Cohérence (consistency), 1439 mots   French (FR) , Pachot Franck

Ecritures cohérentes - observation d'un redémarrage, par Tom Kyte (2ème partie)

Cet article est la traduction d'un article de Tom Kyte sur son blog (L'article original en anglais se trouve ici).

Il est conseillé lire préalablement la première partie:

Voir un redémarrage d'une requête update est plus plus facile qu'on ne pense.
En fait, nous allons même en voir un avec une simple table d'une seule ligne.

» Lire la suite!

Vous devez être identifié pour poster un commentaire.

Permalink 20:01:00, Catégories: Oracle, Tom Kyte, Cohérence (consistency), 1569 mots   French (FR) , Pachot Franck

[Oracle][SGBD] Ecritures cohérentes, par Tom Kyte (1ère partie)

Cet article est la traduction d'un article de Tom Kyte sur son blog (L'article original en anglais se trouve ici). L'article est en 3 parties (il s'agit ici de la partie 1) et il est extrait de son livre Expert Oracle Database Architecture.


Il peut être utile de (re)lire avant:

Nous avons étudié précédemment (en français ici) la lecture cohérente: la capacité d'Oracle à utiliser les informations d'undo pour fournir des requêtes non-bloquantes et cohérentes (c'est à dire correctes) pour une lecture. Nous savons que lorsque Oracle lit des blocs pour notre requête, dans le buffer cache, il s'assure que la version du bloc est assez 'vieille' pour que notre requête puisse le voir.

Mais cela soulève la question suivante: Qu'en est-il des écritures/modifications ? Qu'est-ce qui se passe lorsque vous exécutez l'instruction UPDATE suivante: UPDATE T SET X = 2 WHERE Y = 5;
et que, pendant que cette requête est en cours d'exécution, quelqu'un modifie une ligne en faisant passer la valeur de Y de 5 vers 6, et commite cette modification, avant que nôtre requête n'ait lu cette ligne ?

Autrement dit, lorsque votre mise à jour a commencé, certaines lignes ont Y=5. Et comme votre mise à jour fait des lectures cohérentes, elle voit pour cette ligne Y=5, puisque c'est la valeur qu'il y avait au moment où votre update a démarré. Cependant, la valeur actuelle de Y est maintenant 6, et non plus 5, et avant de mettre à jour la valeur de X, Oracle va vérifier si la valeur de Y est toujours 5. Maintenant que doit-il se passer ? Et comment cela impacte les update ?

De toute évidence, nous ne pouvons pas modifier une ancienne version d'un bloc: quand on va modifier une ligne, il faut modifier la version actuelle du bloc. En outre, Oracle ne peut pas simplement ignorer cette ligne, car ce serait une lecture incohérente et imprévisible. Ce que nous allons découvrir, c'est que dans ce cas, Oracle va redémarrer à zéro l'écriture des modification.

» Lire la suite!

Vous devez être identifié pour poster un commentaire.

13/04/2010

Permalink 23:29:47, Catégories: Oracle, Undo (rollback segment), Tom Kyte, Cohérence (consistency), 1114 mots   French (FR) , Pachot Franck

[Oracle][SGBD] Lectures cohérentes et multi-versionnage, par Tom Kyte

Cet article est la traduction d'une réponse Tom Kyte à une question sur les vues cohérentes (L'article original en anglais se trouve ici).

Question:

J'ai lu qu'Oracle garantit une vue cohérente en lecture. Je l'ai lu, mais je n'ai pas l'impression que c'est très clair.
Pouvez-vous expliquer, avec vos mots, ce qu'est une vue cohérente ?

Réponse:

J'ai fais cela dans "Expert One on One Oracle".
J'ai écrit beaucoup là dessus et voici un court extrait (il y a beaucoup plus dans le livre).

Extrait de 'Expert One on One Oracle' de Tomas Kyte - Apress

Multi-Versionnage et Concurrence

Le Multi-versionnage (multiversioning) est un sujet lié au contrôle de concurrence d'accès aux données, car qu'il est à la base de ce mécanisme: Oracle implémente la concurrence d'accès en faisant des lecture multi-versions cohérentes (multi-version read consistent concurrency model). Dans le chapitre suivant 'Ce que vous devez savoir', nous allons parler des aspects techniques de manière plus détaillée, mais dans l'essentiel, il s'agit du mécanisme fourni par Oracle pour:

  • faire des lectures cohérentes (Read-consistent queries): les requêtes donnent un résultat cohérent à un instant donné.
  • Requêtes non bloquantes (Non-blocking queries): les requêtes en lecture ne sont jamais bloquées par les écritures, contrairement à ce qui se passe avec d'autres SGBD.

» Lire la suite!

Vous devez être identifié pour poster un commentaire.

Oracle - Articles d'experts

Blog Oracle - Articles d'Experts


Traduction en français d'articles d'experts a propos des concepts avancés d'Oracle.

Traduits par Franck Pachot
contact@pachot.net

Rechercher

<  Mai 2012  >
Lun Mar Mer Jeu Ven Sam Dim
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Syndiquez ce blog XML

Articles :

Commentaires :

 
 
 
 
Partenaires

Hébergement Web