Shirakami: A Hybrid Concurrency Control Protocol for Tsurugi Relational Database System

Il documento presenta Shirakami, un nuovo protocollo ibrido di controllo della concorrenza per il sistema di database relazionale Tsurugi, che integra in modo stabile transazioni lunghe e brevi senza necessità di commutazione dinamica, ottenendo prestazioni significativamente superiori rispetto a PostgreSQL.

Takayuki Tanabe, Shinichi Umegane, Suguru Arakawa, Ryoji Kurosawa, Takashi Hoshino, Hideyuki Kawashima, Masahiro Tanaka, Takashi Kambayashi

Pubblicato 2026-03-19
📖 5 min di lettura🧠 Approfondimento

Each language version is independently generated for its own context, not a direct translation.

🏗️ Il Problema: La Festa in Casa e il Cantante

Immagina di avere un database come se fosse una grande casa dove le persone (i dati) vivono e lavorano.
In questa casa accadono due cose molto diverse:

  1. Le "Spedite" (Transazioni Corte): Sono come ospiti che entrano, prendono un bicchiere d'acqua, lo rimettono e se ne vanno in 2 secondi. Sono veloci, leggere e tantissime.
  2. I "Lavoratori Pesanti" (Transazioni Lunghe): Sono come un'impresa edile che deve ristrutturare l'intera cucina. Devono spostare mobili, dipingere pareti e spostare tubi. Ci vogliono ore.

Il problema dei sistemi attuali (come PostgreSQL):
Finora, i sistemi di gestione delle case (i database) erano fatti per gestire solo le "spedite". Se arrivava il "lavoratore pesante" (l'impresa edile), il sistema si bloccava.

  • O il lavoratore pesante aspettava che tutti gli ospiti uscissero (lento).
  • O gli ospiti venivano cacciati di casa per far passare il lavoratore (errori e ritardi).
  • Spesso, per sicurezza, si decideva di fare i lavori pesanti solo di notte, quando non c'era nessuno, lasciando la casa inutilizzabile per le attività quotidiane.

💡 La Soluzione: Shirakami (Il Nuovo Portiere)

Gli autori di questo paper hanno creato un nuovo sistema chiamato Shirakami (nato dal monte Shirakami, simbolo di natura e stabilità in Giappone). È un "portiere" intelligente che sa gestire sia le spedite veloci che i lavori pesanti, facendoli convivere senza che si disturbino a vicenda.

Shirakami usa due strategie diverse, come se avesse due modi di lavorare:

1. Shirakami-OCC (Per le "Spedite" veloci)

Immagina un campionato di calcio.

  • I giocatori (le transazioni corte) corrono, passano la palla e tirano in porta.
  • Non si fermano a chiedere il permesso a ogni passo. Corrono, fanno il loro lavoro e solo alla fine controllano se qualcuno ha toccato la palla mentre loro correvano.
  • Se c'è stato un contatto, si riparte da capo (ma succede raramente perché sono veloci).
  • Metafora: È come un gruppo di amici che fanno una corsa veloce in un parco: ognuno corre per la sua strada e controlla solo alla fine se ha urtato qualcuno.

2. Shirakami-LTX (Per i "Lavoratori Pesanti")

Immagina un cantante che sta registrando un album in uno studio.

  • Prima di iniziare a cantare, il cantante (la transazione lunga) avvisa tutti: "Ok, tra un'ora userò questo microfono e questa stanza".
  • Questo avviso si chiama Write Preservation (Preservazione della Scrittura). È come mettere un cartello "Lavori in corso" prima ancora di iniziare a trivellare.
  • Gli ospiti veloci (Shirakami-OCC) vedono il cartello. Se devono passare di lì, sanno che devono aspettare o cambiare strada prima di entrare, evitando di urtare il cantante.
  • Il trucco magico (Order Forwarding): A volte, il cantante sta lavorando su una parte della casa e un ospite veloce sta guardando un'altra parte. Invece di dire all'ospite "fermati", il sistema dice: "Ok, tu sei arrivato prima di lui nella fila, quindi vai avanti". Questo permette a entrambi di finire il lavoro senza che nessuno debba ricominciare da zero.

🚀 Come funziona la convivenza?

Il segreto di Shirakami è che non deve scegliere tra i due metodi. Li usa contemporaneamente.

  • Priorità: Le transazioni lunghe (LTX) hanno una priorità speciale. Se un lavoro lungo sta per iniziare, il sistema lo protegge.
  • Nessun blocco: Le transazioni corte non vengono bloccate dai lavori lunghi, e i lavori lunghi non vengono interrotti dalle transazioni corte.
  • Sincronizzazione: Tutto funziona a "turni" (chiamati Epochs). Immagina che ogni minuto sia un turno. Alla fine del turno, tutti controllano se hanno fatto il lavoro correttamente e si aggiornano insieme.

📊 I Risultati: Quanto è veloce?

Gli autori hanno testato questo sistema su due scenari reali:

  1. Fatturazione Telefonica: Calcolare le chiamate di milioni di persone mentre arrivano nuove chiamate in tempo reale.
  2. Gestione Magazzino (Bill of Materials): Calcolare il costo di un prodotto che è fatto di migliaia di pezzi, aggiornando i prezzi dei materiali mentre il magazzino viene rifornito.

I numeri parlano chiaro:

  • Rispetto al sistema attuale (PostgreSQL), il nuovo sistema Tsurugi (che usa Shirakami) è 19,7 volte più veloce nel calcolo delle fatture telefoniche.
  • Per i lavori lunghi, Shirakami è 680 volte più efficiente rispetto a quando si usa solo il metodo per le transazioni corte.
  • In pratica: Nessun più "lavori notturni". Si può fare il calcolo dei costi o la fatturazione in tempo reale, mentre il sistema continua a gestire le piccole operazioni quotidiane senza rallentare.

🎯 In Sintesi

Shirakami è come un direttore d'orchestra geniale.
Prima, se c'era un assolo di violino (lavoro lungo), l'orchestra doveva fermarsi. Ora, il direttore sa come far suonare il violino (lavoro lungo) e le percussioni veloci (lavori corti) allo stesso tempo, senza che si coprano a vicenda.

Il risultato è un database che non si blocca mai, che gestisce sia i piccoli click veloci che i calcoli complessi, rendendo possibile fare cose che prima richiedevano ore di attesa o interruzioni del servizio. È un passo avanti verso database che lavorano davvero "in tempo reale", 24 ore su 24.