Cohérence (données)

schéma illustrant le besoin d'un protocole de cohérence de cache

En informatique, la cohérence est la capacité pour un système à refléter sur la copie d'une donnée les modifications intervenues sur d'autre copies de cette donnée. Cette notion est principalement utilisée dans trois domaines informatiques : les systèmes de fichiers, les bases de données, et les mémoires partagées. Un modèle de cohérence contraignant (cohérence « forte ») permet un comportement intuitif et simplifie la compréhension du comportement des programmes, mais des modèles de cohérence « faible » ou « relâchée » permettent souvent d'améliorer les performances, à charge pour les programmes d'assurer la cohérence des données lorsqu'elle est nécessaire.

Cohérence forte et faible

Une première distinction simple de la cohérence est souvent utilisée pour les bases de données.

  • Un système en cohérence forte assure que toute lecture d'une copie d'une donnée reflétera toute modification antérieure à la lecture intervenue sur n'importe quelle copie de la donnée.
  • Un système en cohérence faible assure que si une copie est modifiée, toutes les copies des données refléteront ces modifications au bout d'un certain temps, mais la modification n'est pas forcément immédiate.

Soit A une donnée. Elle peut être lue et modifiée via plusieurs copies {C1, C2... Cn}. Supposons que C1 soit modifiée en C1'. Le système de gestion de la donnée A assure une cohérence forte si toute lecture d'une copie Cx postérieure à la modification retourne C1'. Dans un système en cohérence faible, la lecture de C2 pourra encore donner l'ancienne version de A.

Modèles de cohérence

Protocole de cohérence

La cohérence est généralement plus complexe. Le modèle de cohérence est l'ensemble des garanties qui sont faites pour l'accès concurrent aux données. De très nombreux modèles de cohérence sont possibles, et nous n'en présenterons qu'une partie.

On divise les modèles en deux groupes, selon que ceux-ci incluent ou non des instructions « de synchronisation », qui permettent de forcer une cohérence des données plus forte.

Modèles sans synchronisation

Le modèle de cohérence sans synchronisation le plus contraignant est celui qui correspond exactement à la « vue idéale » des données. Les modèles de cohérence exposés vont du plus contraignant au plus rapide (en temps d’exécution).

Cohérence stricte

On parle de cohérence atomique, indivisible, stricte ou non-interruptible quand une lecture renvoie toujours le résultat de la dernière écriture effectuée, ce qui implique l'existence d'une base de temps globale. Ce modèle de cohérence est le plus fort qui soit[1].

Cohérence forte

On dit qu'il y a cohérence forte si à tout instant (i.e. en tout point d'observation) toutes les copies de données sont identiques. Une application concrète serait :

  • Chaque requête de modification est estampillée et diffusée à tous.
  • Les requêtes sont exécutées dans l'ordre des estampilles.

Hélas ce modèle de cohérence est très coûteux en ressource. La cohérence est assurée en toutes circonstances, même quand ce n'est pas nécessaire.

Cohérence séquentielle

Le résultat de toute exécution est le même que si les opérations de tous les processus étaient exécutées dans un ordre séquentiel quelconque, et les opérations de chaque processus apparaîtraient dans cette séquence dans l'ordre spécifié par leur programme. En résumé il existe un ordre global (total) sur tous les accès à la mémoire qui préserve l'ordre programme[2].

  • On impose un ordre total sur les écritures.
  • Les lectures locales à chaque processus lisent la dernière valeur écrite.

Cohérence immédiate

La cohérence immédiate est opposée à la cohérence à la longue. L’opération d’écriture est finalisée seulement lorsque tous les processus ou nœuds ont été synchronisés. Exposant cette nouvelle valeur au même moment. Il existe deux grandes solutions de cohérence immédiate :

Cohérence causale

Modèle plus faible que la cohérence séquentielle, car on ne considère que des évènements reliés par une relation de causalité[3]. Un modèle de cohérence est causal s'il garantit les deux conditions suivantes :

  • Les opérations d'écriture potentiellement causalement liées doivent être perçues par tous les processus dans le même ordre.
  • Les opérations d'écriture non causalement liées peuvent être perçues dans des ordres différents, sur des processus différents.

Considérons l'exemple suivant. On suppose que le processus P1 écrit dans la variable X. Ensuite P2 lit X et écrit Y. Ici, la lecture de X et l’écriture de Y par P2 sont potentiellement liée causalement car l'écriture de Y peut dépendre de la valeur de X.

Cohérence PRAM et FIFO

La cohérence causale peut encore être affaiblie, si on ne considère la causalité qu'à l'intérieur d'un seul processus, non entre processus différents. La cohérence PRAM (pipelined RAM due à Lipton et Sandberg) spécifie quant à elle que les écritures d'un même processus sont vues par les autres dans l'ordre où elles sont faites. En revanche, il n'y a pas de contrainte sur l'ordre dans lequel apparaissent celles de processus différents[4].

Cohérence objet et cache

Si les écritures sur un même objet (dans une base de données) ou à un même emplacement en mémoire sont vues dans un même ordre par tous les acteurs ; on parle respectivement de cohérence objet et de cohérence cache – c'est une cohérence « naturelle » lorsqu'on utilise un protocole de cohérence de cache. Lorsque ce modèle est associé à la cohérence PRAM, on parle de cohérence processeur.

Cohérence à terme

Le modèle de cohérence à terme (anglais: eventual consistency) requiert, d'une part que les écritures d'un processus soient vues par les autres inéluctablement, mais sans date limite ni contrainte d'ordre ; et d'autre part que lorsque les mises à jour s'arrêtent, tous les processus observent le même état. C'est le modèle de cohérence le plus faible utilisé en pratique.

Comme cette approche permet les écritures concurrentes, le système doit résoudre les conflits. Pour cela il y a trois solutions:

  • Réparation à la lecture : la résolution d'un conflit a lieu lors d'un accès en lecture qui constate le conflit. Cela ralentit les opérations de lecture.
  • Réparation à l’écriture : la résolution d'un conflit prend place lors d'une écriture qui constate le conflit. Cela ralentit les opérations d’écriture.
  • Réparation asynchrone : résolution par un processus de fond interne, ne faisant pas partie d'une opération de lecture ou d'écriture d'un client.

Modèles avec synchronisation

En fait, il n'est pas toujours nécessaire d'assurer la cohérence à tout instant. D'où l'idée de la forcer uniquement lorsqu'elle est nécessaire, à l'aide de variables et d'opérations de synchronisation. Dans ces modèles, des instructions de synchronisation permettent d'appliquer temporairement une cohérence plus forte. Ces instructions sont généralement des « barrières », qui assurent que les accès précédents ont été rendus visibles de tous les acteurs. Ceci permet de spécifier de manière fine les variables à protéger, en utilisant des informations sur les accès prévus. La motivation est de réduire le nombre d'opérations de mise en cohérence.

Cohérence faible

En cohérence faible, on distingue les accès normaux et les opérations de synchronisation. Les accès non synchronisés n'imposent pas de contraintes particulières. En revanche, les synchronisations imposent que tous les accès précédents se soient terminés (que les lectures soient faites et que les écritures aient été rendues visibles à tous les acteurs), et que de nouveaux accès attendent la fin des instructions de synchronisation qui, elles, suivent un modèle de cohérence séquentielle[5].

Le programmeur ou le compilateur a la charge de placer des instructions de synchronisation pour assurer la cohérence lorsqu'elle est nécessaire.

Cohérence au relâchement

La cohérence au relâchement est similaire à la cohérence faible, mais elle est sujet a deux opérations : le verrouillage et déverrouillage pour la synchronisation. Avant de modifier un objet en mémoire il faut acquérir celui-ci par verrouillage, pour ensuite le déverrouiller. Les modifications qui se situent entre ces deux opérations sont effectuées en "région critique"[6].

Un modèle de cohérence est au relâchement s'il garantit les trois propriétés suivantes :

  • Les opérations de synchronisation (verrouillage et déverrouillage) se font selon un modèle de cohérence processeur.
  • Les opérations de lecture et d'écriture ne peuvent se faire que si toutes les opérations d'acquisition précédentes sont terminées sur tous les sites.
  • L'opération de relâchement ne peut se terminer que si toutes les opérations d'écriture et de lecture sont terminées sur tous les sites.

Cohérence à l'entrée

La cohérence à l'entrée est voisine de la cohérence au relâchement. La différence est que toute variable modifiée indépendamment doit être associée à un verrou spécifique. Lors de l’opération de verrouillage, seules les variables associées au verrou utilisé sont mises à jour[7].

Formellement, une cohérence à l'entrée nécessite trois conditions :

  • Le verrouillage d'une variable de synchronisation n'est permis que lorsque toutes les modifications sur la section gardée ont été effectuées.
  • Avant le verrouillage d'une variable de synchronisation, aucune autre entité ne doit manipuler la variable.
  • Après le déverrouillage d'une variable de synchronisation, les prochains accès devront respecter les deux étapes précédentes.

Cohérence delta

La cohérence delta synchronise l’ensemble du système à intervalle de temps régulier. Autrement dit, le résultat d'une lecture mémoire est cohérent à l'exception d'un courte période de temps où la synchronisation n'a pas encore été effectuée. Donc si un espace mémoire a été modifié, pendant une courte période les accès en lecture seront inconsistants. Il faudra attendre que la synchronisation soit effectuée.

Cohérence par vecteur

Ce modèle de cohérence est conçu pour minimiser le temps d’accès vers les données proches d'une source. Typiquement il peut être utilisé dans un environnement tel qu'un jeu vidéo pour minimiser la bande passante[8]. En effet les joueurs ont besoin de connaitre certaines informations de façon plus rapide et fiable au fur et à mesure que se rapproche la position ciblée. Cela nécessite un schéma multidimensionnel basé sur un champ de vecteurs utilisés pour maintenir la cohérence. La cohérence par champ de vecteur émane de champs générateurs couplés à des pivots (le joueur). L’intensité du champ diminuant au fur et à mesure de l’accroissement de la distance.

Cohérence dans les systèmes multiprocesseurs

Dans les systèmes multiprocesseurs, les modèles de cohérence varient. Une cohérence relâchée permet certaines optimisations. Par exemple, certains modèles de cohérence permettent de continuer l'exécution sans attendre que le résultat d'une écriture ait été rendu visible à tous les processeurs, via un buffer. On s'accommode de la présence de caches en implémentant des protocoles destinés à en assurer la cohérence[9].

Notes et références

Articles connexes

Bibliographie

  • (en) David Mosberger, « Memory Consistency Models », ACM SIGOPS Operating Systems Review,‎ , p. 18-26 (DOI 10.1145/160551.160553)
  • (en) Sarita V. Adve et Kourosh Gharachorloo, « Shared Memory Consistency Models: A Tutorial », Research Report 95/7,‎ , p. 28 (DOI 10.1109/2.546611)
  • (en) Ali Sezgin, Formalization and verification of shared memory, The University of Utah, , p. 120
  • (en) Haifeng Yu et Amin Vahdat, « Design and Evaluation of a Continuous Consistency Model for Replicated Services », OSDI'00 Proceedings of the 4th conference on Symposium on Operating System Design & Implementation - Volume 4,‎ , p. 21 (DOI 10.1145/566340.566342)
  • (en) Robert C. Steinke et Gary J. Nutt, « A Unified Theory of Shared Memory Consistency », Journal of the ACM, vol. 51, no 5,‎ , p. 50 (DOI 10.1145/1017460.1017464)
  • (en) Suiping Zhou et Haifeng Shen, « A Consistency Model for Highly Interactive Multi-player Online Game », dans Simulation Symposium, 2007. ANSS '07. 40th Annual, IEEE, (DOI 10.1109/ANSS.2007.5), p. 318-323
  • (en) Zhiyuan Zhan, Mustaque Ahamad et Micheal Raynal, « Mixed Consistency Model: Meeting Data Sharing Needs of Heterogeneous Users », dans Distributed Computing Systems, 2005. ICDCS 2005. Proceedings. 25th IEEE International Conference on, IEEE, (DOI 10.1109/ICDCS.2005.49), p. 209-218
  • (en) Leslie Lamport, « How to make a multiprocessor computer that correctly executes », IEEE Transactions on Computers, C-28(9),‎ , p. 690–691
  • (en) P. W. Hutto et M. Ahamad, « Weakening consistency to enhance concurrency in distributed shared memories », In Proceedings of the 10th International Conference on Distributed Computing Systems,‎ , p. 302–311
  • (en) R. J. Lipton et J. S. Sandberg, « A scalable shared memory », Technical Report CS-TR-180-88, Princeton University,‎
  • (en) James R. Goodman, « Cache consistency and sequential consistency », Technical Report 61, SCI Committee,‎
  • (en) M. Dubois, C. Scheurich et F.A. Briggs, « Memory access buffering in multiprocessors », In Proceedings of the Thirteenth Annual International Symposium on Computer Architecture,‎ , p. 434–442
  • (en) K. Gharachorloo, D. Lenoski et J. Laudon, « Memory consistency and event ordering in scalable shared-memory multiprocessors », Computer Architecture News,‎ , p. 15–26
  • (en) N. Bershad et J. Zekauskas, « Midway: Shared memory parallel programming with entry consistency for distributed memory multiprocessors », Technical Report CMU-CS-91-170, CarnegieMellon University,‎

Liens externes

Read other articles:

Hide and SeekAlbum mini karya Weki MekiDirilis18 Juni 2020 (2020-06-18)GenreDance-popHip hopmoombahtonretroR&BDurasi16:25Label Fantagio Music Kakao M Produser Stainboys Jonas Mengler CR Kim Aiming Cho Se-hee Lee Joo-heon The Far Eastern Division Jeong Tae-ho Kronologi Weki Meki Lucky(2018) Hide and Seek(2020) New Rules(2020) Singel dalam album Hide and Seek Dazzle DazzleDirilis: 20 Februari 2020 OopsyDirilis: 18 Juni 2020 Hide and Seek (ditulis sebagai HIDE and SEEK) adalah album...

 

Delta FMJenisJaringan radioSloganHits TerenakHits Radio Station for Millennials (bersama Bahana FM dan FeMale Radio)NegaraIndonesiaBahasaBahasa IndonesiaPendiriMalik SjafeiTanggal peluncuran23 Maret 1987Kantor pusatJl. Rumah Sakit Fatmawati Raya No. 7, Cilandak Barat, Jakarta Selatan, IndonesiaWilayah siaranNasional (lihat #Jaringan)PemilikMasima Radio NetworkAnggota jaringanlihat #JaringanSitus webwww.deltafm.net Delta FM (PM2FGW)PT Radio Delta InsaniWilayah siarJabodetabek dan sekitarnyaMer...

 

Untuk kegunaan lain, lihat Ceres (disambiguasi). Ceres Ceres dilihat melalui wahana antariksa Dawn pada Mei 2015.[a]Penemuan[1]Ditemukan olehGiuseppe PiazziTanggal penemuan1 Januari 1801PenamaanPenamaan1 CeresPelafalan/ˈsɪəriːz/ SEER-eez[2]Asal namaCerēsNama alternatifA899 OF; 1943 XBKategori planet minorplanet kataisabuk utamaKata sifat bahasa InggrisCererian /sɨˈrɪəri.ən/[3]Ciri-ciri orbit[5]Epos 18 Juni 2009(Hari Julian ...

Copying BeethovenTheatrical release posterSutradaraAgnieszka HollandProduserSidney KimmelStephen J. RiveleMichael TaylorChristopher WilkinsonDitulis olehStephen J. RiveleChristopher WilkinsonPemeranEd HarrisDiane KrugerSinematograferAshley RowePenyuntingAlex MackieDistributorMetro-Goldwyn-MayerTanggal rilis 10 November 2006 (2006-11-10) Durasi104 minutesNegaraAmerika SerikatBahasaInggrisPendapatankotor$6,191,746[1] Copying Beethoven adalah judul film Amerika Serikat produksi Met...

 

2019 biographical film See also: Professor and the Madman (band) The Professor and the MadmanTheatrical release posterDirected byP. B. ShemranScreenplay by Todd Komarnicki P. B. Shemran Based onThe Surgeon of Crowthorneby Simon WinchesterProduced by Nicolas Chartier Gastón Pavlovich Mel Gibson Starring Mel Gibson Sean Penn Natalie Dormer Eddie Marsan Jennifer Ehle Jeremy Irvine David O'Hara Ioan Gruffudd Stephen Dillane Steve Coogan CinematographyKasper TuxenEdited byDino JonsaterMusic byBea...

 

This article is about the men's team. For the women's team, see United States women's national baseball team. United States national baseball teamInformationCountry United StatesFederationUSA BaseballConfederationWBSC AmericasManagerMark DeRosa (WBC)Mike Scioscia (WBSC)CaptainMike Trout[2]WBSC rankingCurrent 3 (18 December 2023)[1]Highest1 (first in September 2018)Lowest5 (first in December 2021)Uniforms Home Away Alternate World Baseball ClassicAppearances5 (first in 20...

Hermann WeylLahirHermann Klaus Hugo Weyl(1885-11-09)9 November 1885Elmshorn, JermanMeninggal8 Desember 1955(1955-12-08) (umur 70)Zurich, SwissAlmamaterUniversitas GöttingenPenghargaanFellow of the Royal Society[1]Karier ilmiahBidangFisika matematikaInstitusiInstitute for Advanced StudyUniversitas GöttingenETH ZurichPembimbing doktoralDavid Hilbert[2]Mahasiswa doktoralAlexander WeinsteinMahasiswa ternama lainSaunders Mac LaneTerinspirasiEdmund Husserl[3]L. ...

 

FSCN1 التراكيب المتوفرة بنك بيانات البروتينOrtholog search: PDBe RCSB قائمة رموز معرفات بنك بيانات البروتين 1DFC, 4GP0, 4GP3, 3P53, 4GOY, 4GOV, 3LLP المعرفات الأسماء المستعارة FSCN1, FAN1, HSN, SNL, p55, fascin actin-bundling protein 1 معرفات خارجية الوراثة المندلية البشرية عبر الإنترنت 602689 MGI: MGI:1352745 HomoloGene: 48164 GeneCards: 6624 علم الوج�...

 

此條目可参照英語維基百科相應條目来扩充。 (2021年5月6日)若您熟悉来源语言和主题,请协助参考外语维基百科扩充条目。请勿直接提交机械翻译,也不要翻译不可靠、低品质内容。依版权协议,译文需在编辑摘要注明来源,或于讨论页顶部标记{{Translated page}}标签。 约翰斯顿环礁Kalama Atoll 美國本土外小島嶼 Johnston Atoll 旗幟颂歌:《星條旗》The Star-Spangled Banner約翰斯頓環礁�...

Binary system consisting of a white dwarf and a main sequence star or a brown dwarf HD 101584 is a suspected post-common envelope binary. The engulfed companion triggered an outflow of gas, creating the nebula seen by ALMA. Key stages in a common envelope phase. Top: A star fills its Roche lobe. Middle: The companion is engulfed; the core and companion spiral towards one another inside a common envelope. Bottom: The envelope is ejected and forms a PCEB or the two stars merge. A post-common en...

 

Swedish footballer and manager Erik Hamren redirects here. For the baseball player, see Erik Hamren (baseball). Erik Hamrén Hamrén with Sweden in August 2011Personal informationFull name Erik Anders HamrénDate of birth (1957-06-27) 27 June 1957 (age 66)Place of birth Ljusdal, SwedenPosition(s) MidfielderManagerial careerYears Team1987–1988 Enköpings SK1989 Väsby IK1990–1991 IF Brommapojkarna1992–1993 Vasalunds IF1994 Degerfors IF1995–1997 AIK1998–2003 Örgryte IS2004–200...

 

هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليلة جدًا. فضلًا، ساعد بإضافة وصلة إليها في مقالات متعلقة بها. (يونيو 2021) سيف بن حمد العتيقي معلومات شخصية الميلاد سنة 1695   الوفاة سنة 1775 (79–80 سنة)  الأحساء  الديانة الإسلام[1]،  وأهل السنة والجماعة[1]  الحياة ا�...

Tyrolean Anabaptist leader and founder of the Hutterites Not to be confused with Hans Hut. Jakob Hutter, 18th century engraving Part of a series onAnabaptismA 1685 illustration by Jan Luyken, published in Martyrs Mirror, of Dirk Willems saving his pursuer, an act of mercy that led to his recapture, after which he was burned at the stake near Asperen in the present-day Netherlands Background Christianity Radical Reformation Sermon on the Mount Doctrines and practices Theology of Anabaptism Bel...

 

Study of matter and energy flow in industrial systems Part of a series aboutEnvironmental economics Carbon price Carbon credit Carbon emission trading Carbon fee and dividend Carbon finance Carbon offset Carbon tax Emissions trading Environmental tax Personal carbon trading Pigovian tax Social cost of carbon Climate change Carbon footprint Climate change mitigation Food miles Concepts Bright green environmentalism Circular economy Climate finance Corporate sustainability Degrowth Disinvestmen...

 

Political party in Germany This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Free Democratic Party Germany – news · newspapers · books · scholar · JSTOR (March 2016) (Learn how and when to remove this message) Free Democratic Party Freie Demokratische ParteiAbbreviationFDPChairmanChristian LindnerGeneral ...

Fashionsnap.comファッションスナップ・ドットコム URL www.fashionsnap.com言語 日本語タイプ ニュースサイトジャンル ファッション運営者 レコオーランド設立者 光山玲央奈座間康平開始 2005年 Fashionsnap.com(ファッションスナップ・ドットコム)は、株式会社レコオーランドの運営によるウェブサイト。スナップ写真を中心としたファッション関連情報を主なコンテンツとしてい...

 

Questa voce o sezione sull'argomento autorità unitarie dell'Inghilterra non cita le fonti necessarie o quelle presenti sono insufficienti. Puoi migliorare questa voce aggiungendo citazioni da fonti attendibili secondo le linee guida sull'uso delle fonti. Distretto del South OxfordshireDistrettoDistretto del South Oxfordshire – Veduta LocalizzazioneStato Regno Unito    Inghilterra RegioneSud Est Contea Oxfordshire AmministrazioneCapoluogoCrowmarsh Gifford ...

 

Questa voce sull'argomento calciatori andorrani è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Segui i suggerimenti del progetto di riferimento. Aarón SánchezNazionalità Andorra Altezza183 cm Calcio RuoloAttaccante Squadra Ordino CarrieraGiovanili 20??-20?? Almería20??-2013 FC Andorra2013-2014 Los Molinos2014-2015  Lleida Esportiu Squadre di club1 2012-2013 FC Andorra2 (0)2014-2015 Lleida Esportiu B20 (2)20...

James RamerMOMJames Ramer in 2010Interim Chief of the Toronto Police ServiceIn officeAugust 1, 2020 – December 19, 2022Preceded byMark SaundersSucceeded byMyron Demkiw Personal detailsResidence(s)Toronto, Ontario, CanadaOccupationPolice officer Donald James Ramer MOM is a Canadian police officer who served as interim chief of police with the Toronto Police Service (TPS) from August 1, 2020 to December 19, 2022. Education Ramer graduated from the University of Toronto with a Bachel...

 

Pour un article plus général, voir Union de la gauche. Pour la coalition politique de gauche républicaine formée en vue des élections générales espagnoles de 1936, voir Front populaire (Espagne). Pour la coalition politique de gauche formée en vue des élections législatives françaises de 1936, voir Front populaire (France). Nouveau Front populaire Logo du Nouveau Front populaire. Fondation 10 juin 2024 Fusion de Nouvelle Union populaire écologique et sociale(indirectement) Élect...