Quali sono i principali problemi di ricerca nelle transazioni distribuite?


10

Contesto: l' elaborazione delle transazioni è stata un argomento di ricerca tradizionale nella teoria dei database. Al giorno d'oggi le transazioni distribuite sono rese popolari dai sistemi di archiviazione distribuita su larga scala che in genere coinvolgono la partizione dei dati (chiamata anche sharding) e la replica dei dati .

Quali sono i principali problemi di ricerca nelle transazioni distribuite?

Esistono teorie e soluzioni ben note che richiedono miglioramenti (teorici)?

Eventuali riferimenti sono apprezzati.

Risposte:


9

Esistono molte aree di ricerca sia nella teoria che nella pratica dei database distribuiti.

Una delle principali sfide pratiche è quella di implementare meccanismi di controllo della concorrenza efficienti per database distribuiti e geo-replicati. Al fine di eseguire le transazioni in modo efficiente, tali meccanismi possono fornire garanzie più deboli rispetto alla serializzazione, il che richiede che le transazioni sembrino essere eseguite in sequenza. Un'alternativa alla serializzabilità è quella di accontentarsi di Snapshot Isolation [1], ma si è dimostrato che questo si ridimensiona male ai sistemi geo-replicati e distribuiti. Allo stato dell'arte, sono state definite due diverse varianti di Snapshot Isolation (SI) per gestire il controllo della concorrenza nei sistemi geo-replicati: Parallel Snapshot Isolation (PSI) [2] e Non Monotonic Snapshot Isolation (NMSI) [ 3,4]. Per quanto riguarda i database distribuiti (ovvero dove i dati sono suddivisi tra diversi siti),

Avendo diverse nozioni di livelli di isolamento che forniscono garanzie più deboli rispetto alla serializzabilità, un'altra questione importante è quella di scrivere programmi in modo tale che le esecuzioni sembrino comunque essere serializzabili. Un criterio sonoro per l'isolamento di istantanee è stato elaborato in [1]. Alcune persone del mio gruppo stanno attualmente lavorando per elaborare un criterio ragionevole per il PSI.

Un'altra domanda rilevante, sia dal punto di vista teorico che pratico, è quella del trinciamento delle transazioni. Fondamentalmente il chipping è una tecnica di analisi statica in cui le transazioni a grana grossa sono suddivise in transazioni più piccole, a grana fine. Per la serializzazione, questa domanda è stata affrontata in [6] e la teoria risultante è stata applicata per dare un'implementazione pratica in [7].

Dal punto di vista delle basi teoriche dei database distribuiti, è stata proposta la possibilità di utilizzare tecniche della comunità dei modelli di memoria debole [8] per definire formalmente il comportamento delle transazioni. In [9] gli autori forniscono una nozione formale di comportamento per le transazioni; lo stesso approccio è stato usato in [10] per specificare il comportamento dei tipi di dati replicati.

Di recente, io e alcuni miei colleghi (Alexey Gotsman e Hongseok Yang) abbiamo costruito, a partire dalle tecniche sviluppate in [8,9,10], un quadro teorico per specificare il comportamento osservabile dei livelli di coerenza per i database geo-replicati. Abbiamo impiegato con successo il framework per fornire un'assiomatizzazione di SI, PSI e NMSI, ognuna delle quali si è dimostrata corretta rispetto a una semplice implementazione. Abbiamo anche sfruttato la teoria risultante per escogitare un criterio di trinciatura per PSI. Speriamo che questi risultati vengano pubblicati nel prossimo futuro.

Non esitare a scrivermi se hai altre domande. Spero che sia di aiuto,

Andrea Cerone.

Riferimenti:

[1] Fekete et al, Making Serializable Isolation Snapshot (2005)

[2] Sovran et al, Transactional Storage for Geo-replicated Systems (2011)

[3] Arkedani et al, Isolamento di istantanee non monotone: coerenza scalabile e forte per sistemi transazionali geo-replicati (2013)

[4] Arkedani et al, On the Scalability of Snapshot Isolation (2013)

[5] Binnig et al, Isolamento distribuito di istantanee: le transazioni globali pagano globalmente, le transazioni locali pagano localmente

[6] Shasha et al, Transaction chopping: algoritmi e studi delle prestazioni (1995)

[7] Zhang et al, catene di transazioni: raggiungimento della serializzabilità con bassa latenza nei sistemi di archiviazione geo-distribuiti (2013)

[8] Alglave, una gerarchia formale di modelli di memoria debole (2012)

[9] Buckhardt et al, Understanding Eventual Coerency (2013)

[10] Buckhardt et al, tipi di dati replicati: specifica, verifica, ottimalità (2014)


Grazie per la tua risposta esaustiva. Per SI, ci sono protocolli distribuiti e senza blocco nelle impostazioni replicate in letteratura? O questo tentativo non ha senso perché SI non si adatta bene? Per PSI, ho letto un documento (Tim Kraska @ Eurosys'13) che menzionava la sua attuazione in lavori futuri. Paxos generalizzato è adatto a questo? Quali sono i possibili pro / contro / sfide rispetto a quello originale in Sovran et al [2]? Grazie ancora.
hengxin,

2
Infatti SI non si adatta bene ai sistemi geo-replicati. In [4] sopra, gli autori dimostrano che ci sono proprietà, come la replica parziale genuina, che non possono essere raggiunte da DBMS replicati geograficamente in esecuzione a livello di coerenza SI. In [5], gli autori mostrano esempi di esecuzioni che si comportano secondo SI localmente (a frammenti singoli), ma non a livello globale, e propongono una variante di SI, chiamata DSI. Per quanto riguarda MDCC, non sono a conoscenza di questo documento e devo ammettere che non conosco i dettagli di implementazione di Paxos generalizzati. Ma darò volentieri un'occhiata e risponderò al più presto.
Andrea Cerone,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.