Controllo della concorrenza multiversione

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

Il Controllo della concorrenza multiversione (in inglese: Multiversion concurrency control) in sigla MCC o MVCC, in informatica, nel campo delle basi di dati, è un metodo di Controllo della concorrenza comunemente usato dai sistemi di gestione delle basi di dati per fornire un accesso concorrente alle basi di dati e nei linguaggi di programmazione per implementare una memoria transazionale.

Il Controllo della concorrenza multiversione è descritto per la prima volta in dettaglio nel 1981 da Philip Bernstein e Nathan Goodman.

Una base di dati implementa gli aggiornamenti selezionando il dato vecchio come obsoleto e aggiungendo la versione nuova del dato, archiviando così più copie dello stesso dato. Questo permette al database di evitare sovraccarichi di azioni di riempimento di buchi in memoria ma richiede (generalmente) che il sistema periodicamente faccia pulizia e cancelli i dati più vecchi impostati come obsoleti. Per una base di dati orientata al documento come CouchDB lo MVCC permette al sistema di ottimizzare i documenti scrivendo interi documenti in sezioni contigue del disco quando lo si aggiorna, l'intero documento può essere riscritto piuttosto che diviso in parti e collegato in aree non contigue.

MVCC usa marche temporali o un ID di transazione per determinare quale stato della base di dati bisogna leggere, utile per evitare la gestione dei blocchi in lettura delle transazioni. MVCC fornisce ad ogni utente connesso alla base di dati uno stato della basi di dati stessa, ma ogni cambiamento non sarà visto dagli altri utenti fin quando la transazione non è stata eseguita.

Basi di dati con MVCC

[modifica | modifica wikitesto]
  1. ^ ArangoDB Manual Pages: AppendOnly/MVCC, su arangodb.org. URL consultato il 23 novembre 2012 (archiviato dall'url originale il 23 febbraio 2013).
  2. ^ Berkeley DB Reference Guide: Degrees of Isolation
  3. ^ Bigdata Blog Archiviato il 10 marzo 2012 in Internet Archive.
  4. ^ A new approach: Clustrix Sierra database engine Archiviato il 12 aprile 2012 in Internet Archive.
  5. ^ DB2 Version 9.7 LUW Information Center, Currently committed semantics improve concurrency
  6. ^ TM1 9.5.2 Information Center, Parallel Interaction
  7. ^ Steve Graves, Multi-Core Software: To Gain Speed, Eliminate Resource Contention, in RTC Magazine, 1º maggio 2010 (archiviato dall'url originale il 1º giugno 2010).
  8. ^ White paper by Roman Rokytsky Firebird and Multi Version Concurrency Control Archiviato il 7 agosto 2008 in Internet Archive.
  9. ^ Multi-Version Concurrency Control in the H2 Database Engine
  10. ^ InfiniDB Column Database Accelerates Insights for Analytics, BI and Data Warehouses | InfiniDB
  11. ^ MVCC - Ingres Community Wiki Archiviato il 21 luglio 2011 in Internet Archive.
  12. ^ Bill Todd, InterBase: What Sets It Apart, su dbginc.com, 2000. URL consultato il 4 maggio 2006 (archiviato dall'url originale il 26 febbraio 2006).
  13. ^ Inside MarkLogic Server
  14. ^ Snapshot Isolation in SQL Server
  15. ^ MySQL 5.1 Reference Manual, Section 14.2.12: Implementation of Multi-Versioning
  16. ^ or Maria MySQL 5.1 Reference Manual, Section 14.6.1: Falcon Features[collegamento interrotto]
  17. ^ Oracle Database Concepts: Chapter 13 Data Concurrency and Consistency Multiversion Concurency Control Archiviato il 20 febbraio 2009 in Internet Archive.
  18. ^ OrientDb Documentation
  19. ^ PostgreSQL 9.1 Documentation, Chapter 13: Concurrency Control
  20. ^ VAX Rdb/ELN, Version 2.3 (Relational Database Management System) (PDF), su h18000.www1.hp.com (archiviato dall'url originale il 3 marzo 2016).
  21. ^ RDM Embedded 10.1 Reference Manual, d_trrobegin Archiviato il 4 marzo 2016 in Internet Archive.
  22. ^ http://www.sones.com
  23. ^ Proposal for MVCC in ZODB Archiviato il 6 febbraio 2012 in Internet Archive.

Voci correlate

[modifica | modifica wikitesto]
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica