19 teste dell'idra. Una grande panoramica del programma

L'11 e 12 luglio si terrà a San Pietroburgo una conferenza Hydra, dedicata allo sviluppo di sistemi paralleli e distribuiti. Il punto di forza di Hydra è che riunisce grandi scienziati (che di solito si trovano solo in conferenze scientifiche all'estero) e ingegneri pratici rinomati, in un grande programma che unisce scienza e pratica.

Hydra è una delle nostre conferenze più importanti degli ultimi anni. È stata preceduta da una preparazione molto seria, con la selezione di relatori e presentazioni. La settimana scorsa è stata pubblicata un'intervista su Habr con il direttore di JUG.ru Group, Alexey Fedorov ( 23derevo) riguardo a tre importanti partecipanti, pionieri della teoria dei sistemi distribuiti — Leslie Lamport, Maurice Herlihy e Michael Scott. È tempo di parlare più in dettaglio dell'intero programma!).

Noi già parlato su tre importanti figure, i fondatori della teoria dei sistemi distribuiti — Leslie Lamport, Maurice Herlihy e Michael Scott. È il momento di parlare più dettagliatamente dell'intero programma!

19 teste dell'idra. Una grande panoramica del programma

Motivazione

Se ti occupi di programmazione, ti confronti inevitabilmente con la multi-threading e il calcolo distribuito. Gli specialisti nelle aree pertinenti lavorano direttamente con questi concetti, ma la distribuzione ci circonda ovunque: in qualsiasi computer multi-core o servizio distribuito c'è sempre qualcosa che esegue calcoli in parallelo.

Esistono molte conferenze che esplorano vari aspetti della programmazione applicata. Dall'altra parte dello spettro abbiamo scuole scientifiche specializzate, che attraverso format di lezione svelano enormi volumi di teoria complessa. Ad esempio, parallelamente a Hydra a San Pietroburgo si svolge la scuola SPTDC. Alla conferenza Hydra abbiamo cercato di unire la dura pratica, la scienza e tutto ciò che si trova al loro incrocio.

Riflettete su questo: viviamo in un periodo straordinario, in cui è possibile incontrare di persona i fondatori di quel campo della scienza e dell'ingegneria in cui operiamo. I fisici non incontreranno né Newton né Einstein — il treno è già partito. Ma accanto a noi ci sono ancora coloro che hanno creato le basi della teoria dei sistemi distribuiti, inventato linguaggi di programmazione popolari e realizzato per la prima volta tutto ciò in prototipi funzionanti. Queste persone non hanno abbandonato il loro lavoro a metà strada, si occupano attualmente di problematiche attuali in università e aziende di fama mondiale, e sono le maggiori fonti di conoscenza e esperienza al giorno d'oggi.

D'altra parte, la possibilità di incontrarli rimane per lo più teorica: pochi di noi possono costantemente monitorare eventi pubblici in qualche università di Rochester, per poi correre negli Stati Uniti e tornare indietro per una lezione con Michael Scott. Visitare tutti i partecipanti a Hydra costerebbe una piccola fortuna, senza contare l'enorme quantità di tempo sprecato (anche se suona come un'avventura interessante).

D'altro canto, abbiamo un gran numero di eccellenti ingegneri che stanno attualmente lavorando su questioni attuali dei sistemi distribuiti, e hanno sicuramente molte cose da raccontare. Ma ecco il problema: loro lavorano, e il loro tempo è prezioso. Sì, se sei un dipendente di Microsoft, Google o JetBrains, le probabilità di incontrare uno dei relatori noti a un evento interno aumentano drasticamente, ma in generale—no, non capita tutti i giorni.

In questo modo, la conferenza Hydra svolge un compito importante che la maggior parte di noi non può fare da sola: riunisce in un luogo e in un momento le persone le cui idee o interazioni possono cambiare la tua vita. Ammetto che non a tutti interessano i sistemi distribuiti o questioni fondamentali complesse. Si può passare tutta la vita a programmare CRUD in PHP e comunque essere piuttosto felici. Ma chi è interessato, questa è la vostra opportunità.

Dall'annuncio iniziale della conferenza Hydra su Habr è passato già molto tempo. In questo periodo è stato fatto un enorme lavoro, e ora abbiamo un elenco di quasi tutte le presentazioni. Niente algoritmi unici e lenti, solo puro hardcore distribuito! Mettiamo da parte le parole generiche e vediamo cosa abbiamo ora.

Keynote

I keynote aprono e chiudono i giorni della conferenza. Di solito l'obiettivo del keynote di apertura è impostare lo spirito generale e la direzione della conferenza. Il keynote di chiusura riassume gli eventi e spiega come vivere con le conoscenze e le abilità acquisite nei giorni della conferenza. Inizio e fine: ciò che resterà meglio impresso e, in generale, ha un'importanza maggiore.

Cliff Click — L'algoritmo K/V distribuito H2O

19 teste dell'idra. Una grande panoramica del programma Cliff è una leggenda nel mondo Java. Alla fine degli anni '90, per la sua tesi di PhD, ha scritto un lavoro intitolato «Combining Analyses, Combining Optimizations», che diventò in seguito la base per il HotSpot JVM Server Compiler. Due anni dopo stava già lavorando in Sun Microsystems sulla JVM e dimostrò al mondo che il JIT aveva diritto di esistere. Tutta questa storia sul fatto che Java è uno dei runtime moderni più rapidi, con le ottimizzazioni più intelligenti e veloci, nasce proprio da Cliff Click. Inizialmente si pensava che se qualcosa fosse accessibile a un compilatore statico, non valesse nemmeno la pena di tentare di JITare. Grazie ai lavori di Cliff e del suo team, tutti i nuovi linguaggi iniziarono ad essere creati con l'idea di JIT compilation come opzione predefinita. Certamente, non fu un lavoro di una sola persona, ma Cliff giocò un ruolo molto importante in esso.

Nella keynote di apertura, Cliff parlerà di un'altra sua iniziativa — H20, una piattaforma in-memory per l'apprendimento automatico distribuito e scalabile per applicazioni industriali. Più precisamente — di uno storage distribuito di coppie «chiave-valore» all'interno di essa. Si tratta di uno storage molto veloce con una miriade di proprietà interessanti (l'elenco completo è in descrizione), che permettono di utilizzare soluzioni simili nella matematica dello streaming di grandi dati.

Un altro intervento al quale parteciperà Cliff — L'esperienza con la Memoria Trasazionale Hardware di Azul. Un'altra parte della sua biografia è stata dieci anni di lavoro in Azul, dove ha aggiornato e migliorato molte cose nell'hardware e nel stack tecnologico di Azul: compilatori JIT, runtime, modello di thread, gestione degli errori, gestione dello stack, interruzioni hardware, caricamento delle classi e così via — insomma, avete capito.

La parte più interessante è iniziata quando hanno creato hardware per grandi imprese — un supercomputer progettato per eseguire Java. Era una cosa piuttosto innovativa, progettata appositamente per Java, che ha requisiti speciali — barriere di memoria per una raccolta dei rifiuti a bassa latenza, array con verifica dei limiti, chiamate virtuali… Una delle tecnologie più interessanti è la memoria trasazionale hardware. Ogni L1 di ciascuno dei 864 nuclei poteva partecipare a una registrazione transazionale, il che è particolarmente importante per lavorare con i lock in Java (i blocchi synchronized possono funzionare in parallelo, finché non c'è un reale conflitto di memoria). Ma la bella idea si è scontrata con la dura realtà — e in questa presentazione, Cliff spiegherà perché HTM e STM non si adattano bene alle esigenze pratiche del calcolo multithreading.

Michael Scott — Strutture dati duali

19 teste dell'idra. Una grande panoramica del programma Michael Scott — professore di Informatica presso l'Università di Rochester, con cui il destino lo ha legato già da 34 anni, e all'Università del Wisconsin-Madison, dove è stato decano per cinque anni. Si occupa di ricerca nel campo della programmazione parallela e distribuita e del design dei linguaggi, insegnando a questo i suoi studenti.

Il mondo conosce Michael grazie al suo libro di testo «Programming Language Pragmatics», la cui ultima edizione è stata pubblicata relativamente recentemente — nel 2015. Il suo lavoro «Algorithms for scalable synchronization on shared-memory multiprocessors» ha ricevuto ha vinto il premio Dijkstra come uno dei più noti nel campo del calcolo distribuito e è semplicemente accessibile nella biblioteca online dell'Università di Rochester. Potreste anche conoscerlo come l'autore dell'algoritmo di Michael-Scott di «Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms».

Per quanto riguarda il mondo Java, qui il caso è particolare: insieme a Doug Lea ha sviluppato quegli algoritmi non bloccanti e le code sincrone su cui si basano le librerie Java. È esattamente di questo che parlerà il keynote «Strutture dati duali» — l'implementazione di queste strutture in Java SE 6 ha permesso di migliorare le prestazioni di 10 volte java.util.concurrent.ThreadPoolExecutor. Se ti interessa in anticipo cosa siano queste famose «strutture dati duali», puoi leggere di questo nella lavoro corrispondente.

Maurice Herlihy — Blockchain e il futuro del calcolo distribuito

19 teste dell'idra. Una grande panoramica del programma Maurice Herlihy — vincitore di ben due premi Dijkstra. Il primo — per il lavoro su «Wait-Free Synchronization» (Brown University), e il secondo, più recente — «Transactional Memory: Architectural Support for Lock-Free Data Structures» (Virginia Tech University). Il premio Dijkstra è assegnato per opere la cui rilevanza e influenza sono state evidenti per almeno dieci anni, e chiaramente Maurice è uno dei più noti esperti nel settore. Attualmente svolge la professione di professore alla Brown University e ha numerosi traguardi che meritano un intero paragrafo.

In questo keynote conclusivo, Maurice parlerà della teoria e della pratica dei sistemi distribuiti basati su blockchain dal punto di vista della classica informatica distribuita e di come ciò semplifichi molte problematiche correlate. Questa è una presentazione esclusivamente sulla tematica della conferenza — niente sul boom del mining, ma piuttosto su come le nostre conoscenze possono essere straordinariamente efficacemente e opportunamente utilizzate per affrontare una vasta gamma di compiti.

Nel luglio 2017, Maurice era già stato in Russia per la scuola SPTDC, ha partecipato a un meet-up di JUG.ru, e la registrazione può essere vista su YouTube:

Riproduci video

Programma principale

Di seguito troverai una breve panoramica delle relazioni incluse nel programma. Alcune relazioni sono descritte in dettaglio, altre in modo più conciso. Le descrizioni lunghe sono state assegnate principalmente a relazioni in lingua inglese che richiedono riferimenti a lavori scientifici, termini su Wikipedia e così via. L'elenco completo può essere visto sul sito della conferenza. L'elenco sul sito verrà aggiornato e ampliato.

Leslie Lamport — Domande e risposte

19 teste dell'idra. Una grande panoramica del programma Leslie Lamport è l'autore di opere fondamentali nel campo del calcolo distribuito. «LaTeX» è l'acronimo di «Lamport TeX». È stato lui a introdurre per primo, nel 1979, il concetto di coerenza sequenziale, e il suo articolo «How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs» ha ricevuto il premio Dijkstra.

Questa è la parte del programma più insolita per formato, poiché non si tratta nemmeno di una relazione, ma di una sessione di domande e risposte. Quando gran parte del pubblico è già familiare (o può familiarizzare) con vari lavori basati sulla «teoria di Lamport», sui suoi articoli e presentazioni, è essenziale dedicare tutto il tempo disponibile alla comunicazione diretta.

L'idea è semplice: guardi due relazioni su YouTube: «Programming Should Be More Than Coding» e «If You’re Not Writing a Program, Don’t Use a Programming Language» e prepari almeno una domanda, a cui Leslie risponderà.

Il primo di questi due video lo abbiamo già trasformato in un articolo. Se non hai un'ora da dedicare alla visione del video, puoi rapidamente leggere tutto questo in forma testuale.

Nota: su YouTube ci sono molti più video con Leslie Lamport. Ad esempio, c'è un ottimo un corso su TLA+. La versione offline di tutto questo corso è disponibile sulla pagina principale dell'autore, e su YouTube ha caricato una versione per una visualizzazione più comoda su dispositivi mobili.

Martin Kleppmann — Sincronizzazione dei dati tra i dispositivi degli utenti per una collaborazione distribuita

19 teste dell'idra. Una grande panoramica del programma Martin Kleppmann è un ricercatore all'Università di Cambridge, che lavora su CRDT e verifica formale degli algoritmi. Il libro di Martin «Designing Data-Intensive Applications», pubblicato nel 2017, ha avuto un grande successo ed è entrato nelle liste dei bestseller nel campo dello storage e dell'elaborazione dei dati. Kevin Scott, CTO di Microsoft, ha una volta detto: «Questo libro dovrebbe essere obbligatorio per gli ingegneri di sviluppo. È una risorsa rara che unisce teoria e pratica, aiutando gli sviluppatori a progettare e implementare in modo più intelligente infrastrutture e sistemi di elaborazione dei dati». Qualcosa di simile ha detto anche il creatore di Kafka e CTO di Confluent, Jay Kreps.

Prima di dedicarsi alla ricerca accademica, Martin ha lavorato nel settore e co-fondato due startup di successo:

  • Rapportive, dedicata alla visualizzazione del profilo sociale dei contatti dalla tua email, acquistata da LinkedIn nel 2012;
  • Go Test It, un servizio per il controllo automatico dei siti web su diversi browser, acquistato da RedGate nel 2009.

In generale, anche se Martin è meno conosciuto dei nostri relatori principali, ha già contribuito allo sviluppo dell'informatica distribuita e all'industria.

In questa presentazione, Martin parlerà di un argomento più vicino alle sue ricerche accademiche. In Google Docs e simili software per la modifica collaborativa dei documenti, la ‘modifica collaborativa’ significa replicare: ogni utente ha la propria replica del documento condiviso, che poi modifica, e tutte le modifiche vengono inviate in rete agli altri partecipanti. Le modifiche ai documenti offline portano a una temporanea inconsistenza del documento rispetto agli altri partecipanti, e la ri-sincronizzazione richiede la gestione dei conflitti. È proprio per questo che esistono Tipi di dati replicati senza conflitti (CRDT), in sostanza — un concetto relativamente nuovo, definito solo nel 2011. In questa relazione discutiamo di cosa è accaduto nel mondo dei CRDT da allora, quali sono gli ultimi progressi, e il modo in cui si sta affrontando la creazione di applicazioni local-first utilizzando una libreria open source. Automerge in particolare.

La prossima settimana pubblicheremo su Habr un'intervista approfondita con Martin, sarà interessante.

Pedro Ramalhete — Strutture dati senza attesa e transazioni senza attesa

19 teste dell'idra. Una grande panoramica del programma Pedro lavora in Cisco e sviluppa algoritmi paralleli da circa dieci anni, inclusi meccanismi di sincronizzazione, strutture dati lock-free e wait-free e tutto ciò che potete immaginare su questo argomento. I suoi attuali interessi scientifici e ingegneristici sono focalizzati su Costruzioni Universali, Memoria Trasazionale Software, Memoria Persistente e tecnologie simili che permettono di realizzare applicazioni corrette, scalabili e resilienti. Inoltre, è l'autore di un blog ben noto in determinati circoli. Concurrency Freaks.

Nelle strutture dati parallele lavorano ora la maggior parte delle applicazioni multithreading, dalle code di messaggi tra attori fino alle strutture dati indicizzate nei database key-value. In Java JDK funzionano con successo da molti anni e in C++ stanno lentamente venendo aggiunte.

Il modo più semplice per implementare una struttura dati parallela è un'implementazione sequenziale (monothreading), in cui i metodi sono protetti da mutex. Questo è accessibile a qualsiasi junior, ma presenta evidenti problemi di scalabilità e prestazioni. Allo stesso tempo, le strutture dati lock-free e wait-free non solo gestiscono meglio gli errori, ma hanno anche un profilo di prestazioni più favorevole — tuttavia, per svilupparle è necessaria un'esperienza profonda e un'adattamento al modo specifico di applicazione. Una riga di codice errata è sufficiente a rompere tutto.

Come fare in modo che anche i non esperti possano progettare e implementare tali strutture dati? È noto che qualsiasi algoritmo sequenziale può essere reso thread-safe tramite o una costruzione universale, oppure della memoria transazionale. Sebbene entrambi possano ridurre la barriera all'ingresso per risolvere questo problema, di solito portano a implementazioni inefficienti. Pedro parlerà di come sono riusciti a rendere queste costruzioni più efficienti e come possono essere utilizzate per i propri algoritmi.

Heidi Howard — Liberare il consenso distribuito

19 teste dell'idra. Una grande panoramica del programma Heidi Howard è, come Martin, una ricercatrice di sistemi distribuiti all'Università di Cambridge. La sua specializzazione è la coerenza, la tolleranza ai guasti, le prestazioni e il consenso distribuito. È più conosciuta per la generalizzazione dell'algoritmo Paxos chiamata Flexible Paxos.

Ricordiamo che Paxos — una famiglia di protocolli per risolvere il problema del consenso in una rete di calcolatori inaffidabili, basata sui lavori di Leslie Lamport. Così, alcuni dei nostri relatori lavorano su problemi inizialmente proposti da altri dei nostri relatori — ed è fantastico.

La possibilità di trovare un consenso tra più host — per l'indirizzamento, la selezione del leader, il blocco o il coordinamento — è una questione fondamentale nei moderni sistemi distribuiti. Paxos è attualmente il metodo principale per affrontare le sfide del consenso, e attorno ad esso si svolgono molte ricerche per espandere e ottimizzare l'algoritmo per varie necessità pratiche.

In questa relazione rivedremo le basi teoriche di Paxos, alleggerendo i requisiti iniziali e generalizzando l'algoritmo. Vedremo che Paxos, di fatto, è solo una delle tante varianti all'interno di un vasto spettro di approcci al consenso, e che anche altri punti di questo spettro sono molto utili per costruire buoni sistemi distribuiti.

Alex Petrov — Riduci i costi di archiviazione con la replicazione transitoria e quorums economici

19 teste dell'idra. Una grande panoramica del programma Alex è specialista in database e in sistemi di archiviazione, e ciò che è più importante per noi — è un committer in Cassandra. Attualmente sta lavorando con O’Reilly a un libro su Database Internals.

Per i sistemi con eventual consistency (nella terminologia di lingua russa – «coerenza alla fine»), dopo il fallimento di un nodo o la divisione della rete, si devono affrontare due dilemmi: continuare a elaborare richieste sacrificando la coerenza, o negare l'elaborazione e sacrificare la disponibilità. In un tale sistema, i quorum, le sottoinsiemi sovrapposti di nodi che garantiscono che almeno un nodo contenga il valore più recente, possono diventare una buona soluzione di frontiera. È possibile sopportare guasti e perdita di connessione fino a determinati nodi, continuando a rispondere con i valori più aggiornati.

Tuttavia, tutto ha un costo. Uno schema di replicazione a quorum comporta un costo di archiviazione maggiore: è necessario memorizzare dati ridondanti su più nodi contemporaneamente per garantire un numero sufficiente di copie disponibili al momento del problema. Si scopre che non è necessario memorizzare tutti i dati su tutte le repliche. È possibile alleviare il carico sull'archiviazione mantenendo i dati solo su alcuni nodi e utilizzando nodi speciali (Transient Replica) per scenari di gestione dei guasti.

Durante la presentazione esamineremo Replica Testimoni, lo schema di replica utilizzato in Spanner e Megastore, e l'implementazione di questo concetto in Apache Cassandra con i nomi Replica Transitoria & Quorum Economici.

Dmitry Vyukov — Goroutines esposti

19 teste dell'idra. Una grande panoramica del programma Dmitry è uno sviluppatore di Google che lavora sul testing dinamico per C/C++ e Go — Address/Memory/ThreadSanitizer, e su strumenti simili per il kernel Linux. Ha contribuito a Go con un pianificatore di goroutine scalabile, un poller di rete e un garbage collector parallelo. È un esperto in programmazione multithreading, autore di una dozzina di nuovi algoritmi non bloccanti ed è detentore di cintura nera Intel.

Ora parleremo brevemente della presentazione. Il linguaggio Go supporta nativamente la multithreading attraverso le goroutine (thread leggeri) e i canali (code FIFO). Grazie a questi meccanismi, gli utenti possono scrivere facilmente e piacevolmente moderne applicazioni multithreading, e sembra quasi magia. Come ben sappiamo, non c'è nulla di magico in tutto questo. In questa presentazione, Dmitry approfondirà le sottigliezze del funzionamento dello scheduler di Go e mostrerà i segreti dietro questa «magia». Inizialmente fornirà una panoramica dei componenti principali dello scheduler e spiegherà il suo funzionamento. Successivamente, esploreremo più da vicino aspetti come le strategie di parcheggio/sblocco e la gestione delle chiamate di sistema bloccanti. Infine, Dmitry parlerà di possibili miglioramenti nello scheduler.

Dmitry Bugaychenko — Acceleriamo l'analisi distribuita dei grafi utilizzando sketch probabilistici e non solo

19 teste dell'idra. Una grande panoramica del programma Dmitrij ha lavorato quasi 9 anni nell'outsourcing, mantenendo un contatto costante con l'università e il mondo accademico. L'analisi dei big data in Odnoklassniki è stata per lui un'opportunità unica per coniugare la preparazione teorica e le basi scientifiche con lo sviluppo di prodotti reali e richiesti.

L'analisi distribuita dei grafo è stata e rimane una sfida complessa: quando si rende necessario ottenere informazioni sulle connessioni di un vertice vicino, i dati devono spesso essere trasferiti tra macchine, il che porta a un aumento del tempo di esecuzione e del carico sulla rete. In questa presentazione vedremo come ottenere un significativo acceleramento nel trattamento dei dati utilizzando strutture dati probabilistiche o fatti come la simmetria del grafo di amicizia in una rete sociale. Tutto ciò è illustrato con esempi di codice su Apache Spark.

Denis Ryscov — Riduci i costi di archiviazione con la replicazione transitoria e quorums economici

19 teste dell'idra. Una grande panoramica del programma Denis è uno sviluppatore Cosmos DB, esperto nella verifica dei modelli di coerenza, negli algoritmi di consenso e nelle transazioni distribuite. Attualmente lavora in Microsoft, dopo aver gestito sistemi distribuiti in Amazon e Yandex.

In questo talk, presenteremo i protocolli di transazioni distribuite sviluppati negli ultimi anni, che possono essere implementati sul lato client sopra qualsiasi sistema di archiviazione dati che supporti l'aggiornamento condizionale (compare and set). La questione principale è che la vita non finisce con il commit a due fasi; le transazioni possono essere aggiunte sopra qualsiasi database — a livello di applicazione, ma diversi protocolli (2PC, Percolator, RAMP) presentano diversi trade-off e non sono gratuiti.

Aleksej Zinov'ev — Non tutti gli algoritmi ML raggiungono il paradiso distribuito

19 teste dell'idra. Una grande panoramica del programma Aleksej (zaleslaw) — è un nostro storico relatore e membro dei comitati di programma di altre conferenze. È un formatore pratico presso EPAM Systems e ha familiarità con Hadoop/Spark e altre tecnologie di big data dal 2012.

In questo talk, Aleksej parlerà delle sfide nell'adattare gli algoritmi classici di apprendimento automatico per l'esecuzione in modalità distribuita, basandosi sulla sua esperienza con Apache Spark ML, Apache Mahout, Apache Flink ML e sull'implementazione di algoritmi ML distribuiti in questi framework.

E infine, due presentazioni da Yandex su Yandex Database.

Vladislav Kuznetsov — Yandex Database — come garantiamo la resilienza

19 teste dell'idra. Una grande panoramica del programma Vladislav è uno sviluppatore in Yandex nel gruppo delle piattaforme distribuite. Yandex Database è un DBMS geo-distribuito, resiliente e scalabile orizzontalmente, capace di resistere a guasti di dischi, server, rack e data center senza compromettere la coerenza. Per garantire la resilienza, utilizziamo un algoritmo proprietario per raggiungere il consenso distribuito, oltre a diverse soluzioni tecniche che vengono esaminate in dettaglio nella presentazione. La presentazione può interessare sia gli sviluppatori di DBMS sia gli sviluppatori di soluzioni applicative basate su DBMS.

Semyon Checherinda — Transazioni distribuite in YDB

19 teste dell'idra. Una grande panoramica del programma Semyon è uno sviluppatore nel gruppo delle piattaforme distribuite in Yandex, e lavora sulla possibilità di utilizzare in modo multi-tenant l'installazione di YDB.

Yandex Database è progettata per le richieste OLTP e soddisfa i requisiti ACID per i sistemi transazionali. Nel rapporto, esamineremo l'algoritmo di pianificazione delle transazioni alla base del sistema transazionale YDB. Analizzeremo quali entità partecipano alle transazioni, chi assegna l'ordine globale alle transazioni, come si raggiunge l'atomicità delle transazioni, l'affidabilità e un livello rigoroso di isolamento. Prendendo come esempio un compito comune, esamineremo le implementazioni delle transazioni utilizzando il commit in due fasi e le transazioni determinate. Discuteremo le loro differenze.

E ora?

Il programma della conferenza continua a essere arricchito con nuovi rapporti. In particolare, ci aspettiamo un intervento da Nikita Koval (ndkoval) da JetBrains e Oleg Anastasev (m0nstermind) dall'azienda Odnoklassniki. Nikita si occupa di algoritmi per coroutine nel team Kotlin, mentre Oleg sviluppa architetture e soluzioni per sistemi ad alta richiesta sulla piattaforma di Odnoklassniki. Inoltre, c'è ancora 1 slot condizionatamente vuoto, su cui il comitato del programma sta attualmente lavorando.

La conferenza Hydra si svolgerà l'11-12 luglio a San Pietroburgo. I biglietti possono essere acquistare sul sito ufficiale. Si prega di notare la disponibilità di biglietti online: se per qualche motivo non potete recarvi di persona a San Pietroburgo in questi giorni.

Ci vediamo su Hydra!

Fonte: habr.com

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster