Control simultan multiversiune
Controlul simultan multiversion (în engleză: Multiversion concurrency control ) în acronim MCC sau MVCC , în informatică, în domeniul bazelor de date, este o metodă de control al concurenței utilizată în mod obișnuit de sistemele de gestionare a bazelor de date pentru a oferi concurentului de acces la baze de date și limbaje de programare Pentru a implementa o memorie tranzacțională.
Multiversion Concurrency Control este descris pentru prima dată în detaliu în 1981 de Philip Bernstein și Nathan Goodman.
O bază de date implementează actualizări selectând datele vechi ca fiind învechite și adăugând noua versiune a datelor, stocând astfel mai multe copii ale acelorași date. Acest lucru permite bazei de date să evite supraîncărcarea acțiunilor de umplere a găurilor de memorie, dar (în general) necesită ca sistemul să curețe periodic și să șteargă setul de date mai vechi ca fiind învechit. Pentru o bază de date orientată spre documente, cum ar fi CouchDB , MVCC permite sistemului să optimizeze documentele scriind documente întregi în secțiuni adiacente ale discului la actualizarea acestuia, întregul document poate fi rescris mai degrabă decât împărțit în părți și legat în zone non-adiacente.
MVCC folosește timestampuri sau un ID de tranzacție pentru a determina starea bazei de date care trebuie citită, ceea ce este util pentru a evita manipularea blocărilor de citire a tranzacțiilor. MVCC oferă fiecărui utilizator conectat la baza de date o stare a bazei de date în sine, dar orice modificare nu va fi văzută de alți utilizatori până când nu va fi efectuată tranzacția.
Baze de date cu MVCC
- Altibase
- ArangoDB [1]
- Berkeley DB [2]
- Bigdata [3]
- Clustrix [4]
- CouchDB
- IBM DB2 - de la IBM DB2 9.7 LUW ("Cobra") sub nivelul de izolare CS - în modul angajat în prezent [5]
- IBM Cognos TM1 - în versiunile 9.5.2 și versiuni ulterioare. [6]
- Burniță
- eXtremeDB [7]
- Firebird [8]
- FLAIM
- Magazin de date gestionate de versiunea GE Smallworld
- Motor de baze de date H2 - experimental de la versiunea 1.0.57 (25.08.2007) [9]
- Hawtdb , la hawtdb.fusesource.org . Accesat la 14 martie 2019 (depus de „Adresa URL originală la 18 noiembrie 2012).
- Apache HBase , la hbase.apache.org .
- HSQLDB - începând cu versiunea 2.0
- SAP HANA - BAZA DE DATE SAP HANNA
- InfiniDB [10]
- Ingres [11]
- InterBase - toate versiunile [12]
- Server MarkLogic - o parte din acest lucru este descris în [13]
- MDB , pe gitorious.org . Adus la 8 decembrie 2011 (arhivat din original la 7 aprilie 2012) .
- Meronimie Server de baze de date SPARQL
- Microsoft SQL Server - când utilizați READ_COMMITTED_SNAPSHOT, începând cu SQL Server 2005 [14]
- MySQL atunci când este utilizat cu motoare de stocare InnoDB , [15] Falcon , [16] sau Archive .
- Netezza
- ObjectStore
- Baza de date Oracle - toate versiunile de la Oracle 3 [17]
- OrientDB [18]
- PostgreSQL [19]
- Rdb / ELN [20]
- RDM încorporat [21]
- Server REAL
- ScimoreDB
- sones GraphDB [22]
- Sybase SQL Anywhere
- Sybase IQ
- ThinkSQL
- Baza de date Zope Object [23]
Notă
- ^ Pagini manuale ArangoDB: AppendOnly / MVCC , la arangodb.org . Adus la 23 noiembrie 2012 (arhivat din original la 23 februarie 2013) .
- ^ Berkeley DB Reference Guide: Gradele de izolare
- ^ Bigdata Blog Arhivat 10 martie 2012 la Internet Archive .
- ^ O nouă abordare: motorul de baze de date Clustrix Sierra Arhivat 12 aprilie 2012 la Internet Archive .
- ^ DB2 Versiunea 9.7 LUW Information Center, Semantica angajată în prezent îmbunătățește concurența
- ^ TM1 9.5.2 Centru de informații, interacțiune paralelă
- ^ Steve Graves, Multi-Core Software: To Gain Speed, Eliminate Resource Contention , in RTC Magazine , 1 mai 2010 (arhivat din original la 1 iunie 2010) .
- ^ Cartea albă de Roman Rokytsky Firebird și Multi Version Concurrency Control, depusă la 7 august 2008 în Arhiva Internet .
- ^ Controlul concurenței în mai multe versiuni în motorul de baze de date H2
- ^ InfiniDB Column Database Accelerates Insights for Analytics, BI și Data Warehouses | InfiniDB
- ^ MVCC - Ingres Community Wiki Arhivat 21 iulie 2011 la Internet Archive .
- ^ Bill Todd, InterBase: What Sets It Apart , pe dbginc.com , 2000. Accesat la 4 mai 2006 (arhivat din original la 26 februarie 2006) .
- ^ În interiorul serverului MarkLogic
- ^ Izolarea instantaneului pe SQL Server
- ^ MySQL 5.1 Manual de referință, Secțiunea 14.2.12: Implementarea versiunilor multiple
- ^ sau Maria MySQL 5.1 Manual de referință, Secțiunea 14.6.1: Caracteristici Falcon [ link rupt ]
- ^ Concepte de baze de date Oracle: Capitolul 13 Concurența datelor și coerența controlului concurenței multiversiunii Arhivat 20 februarie 2009 la Arhiva Internet .
- ^ Documentație OrientDb
- ^ Documentația PostgreSQL 9.1, Capitolul 13: Controlul concurenței
- ^ VAX Rdb / ELN, Versiunea 2.3 (Relational Database Management System) ( PDF ), la h18000.www1.hp.com (arhivat din original la 3 martie 2016) .
- ^ RDM Embedded 10.1 Reference Manual, d_trrobegin Arhivat 4 martie 2016 la Internet Archive .
- ^ http://www.sones.com
- ^ Propunere pentru MVCC în ZODB. Arhivat 6 februarie 2012 la Internet Archive .