19 capete ale hidrei. O prezentare generală mare a programului

Conferința va avea loc în Sankt Petersburg pe 11-12 iulie Hydra, dedicată dezvoltării sistemelor paralele și distribuite. Trăsătura distinctivă a Hydrei constă în faptul că reunește savanți excepționali (pe care, de obicei, îi găsim doar la conferințele științifice internaționale) și ingineri practicanți bine cunoscuți, într-un singur program vast la intersecția dintre știință și practică.

Hydra este una dintre cele mai importante conferințe pe care le avem în ultimii ani. A fost precedată de o pregătire serioasă, selecția vorbitorilor și a prezentărilor. Săptămâna trecută, a apărut un interviu pe Habrahabr cu directorul companiei JUG.ru Group, Alexey Fedorov (23derevo).

Noi a povestit deja despre trei participanți importanți, fondatorii teoriei sistemelor distribuite — Leslie Lamport, Maurice Herlihy și Michael Scott. Este timpul să discutăm mai în detaliu despre întregul program!

19 capete ale hidrei. O prezentare generală mare a programului

Motivația

Dacă te ocupi de programare, atunci în mod cert ai de-a face cu multithreading și calcul distribuit. Experții din domeniile relevante lucrează direct cu acestea, dar în mod indirect, conceptul de distribuție este omniprezent: în orice computer multicore sau serviciu distribuit se găsește ceva care execută calcule în paralel.

Există multe conferințe care abordează diferite aspecte ale programării aplicate. De cealaltă parte a spectrului, avem școli științifice speciale, care prin formate de cursuri dezvăluie volume mari de teorie complexă. De exemplu, în paralel cu Hydra, la Sankt Petersburg se desfășoară școala SPTDC. La conferința Hydra ne-am străduit să aducem împreună atât practica austeră, cât și știința, totul la intersecția lor.

Reflectați asupra a ceea ce vrem să spunem: trăim într-o perioadă uimitoare, când putem întâlni în persoană fondatorii domeniului de știință și inginerie în care ne activăm. Fizicienii nu vor avea ocazia să se întâlnească cu Newton sau Einstein — trenul a plecat. Dar printre noi încă trăiesc cei care au pus bazele teoriei sistemelor distribuite, care au creat limbaje de programare populare, care au realizat pentru prima dată toate acestea în prototipuri funcționale. Acești oameni nu și-au abandonat munca la jumătate, se ocupă în prezent de provocări relevante în universități și companii de renume mondial, și sunt cei mai mari furnizori de cunoștințe și experiență de astăzi.

Pe de altă parte, ocazia de a-i întâlni este de obicei pur teoretică: puțini dintre noi pot monitoriza constant evenimentele publice de la o universitate din Rochester, pentru a putea zburda în SUA și înapoi la o prelegere cu Michael Scott. A vizita toți participanții la Hydra ar costa o sumă considerabilă, fără a mai vorbi de timpul irosit (deși pare a fi o misiune interesantă).

Pe de altă parte, avem numeroși ingineri de top care lucrează acum la probleme curente ale sistemelor distribuite și cu siguranță au mult de povestit. Dar aici apare problema — ei lucrează, iar timpul lor este prețios. Da, dacă ești angajat la Microsoft, Google sau JetBrains, probabilitatea de a întâlni unul dintre cunoscuții vorbitori la un eveniment intern — crește semnificativ, însă, în general — nu se întâmplă în fiecare zi.

Astfel, conferința Hydra îndeplinește o sarcină importantă pe care majoritatea dintre noi nu o pot realiza singuri — aduce împreună, într-un singur loc și la un singur moment, oameni ale căror idei sau interacțiuni pot schimba viața ta. Accept că nu toată lumea are nevoie de sisteme distribuite sau de concepte fundamentale complicate. Poți programa CRUD-uri în PHP toată viața și să fii destul de fericit. Dar pentru cei care au nevoie — aceasta este șansa ta.

De la prima anunțare a conferinței Hydra pe Habr, a trecut deja mult timp. În acest interval, s-a realizat o muncă imensă — și iată, avem o listă cu aproape toate prezentările. Niciun algoritm plictisitor de un singur fir, doar hardcore distribuit! Să terminăm cu cuvintele generale și să vedem ce avem acum la dispoziție.

Prezentări principale

Prezentările principale încep și încheie zilele conferinței. De obicei, scopul prezentării principale de deschidere este de a stabili spiritul general și direcția conferinței. Prezentarea principală de închidere trage o linie și explică cum să trăim cu cunoștințele și abilitățile dobândite în zilele conferinței. Începutul și sfârșitul: ceea ce se va aminti cel mai bine și are, în general, o importanță crescută.

Cliff Click — Algoritmul distribuit K/V H2O

19 capete ale hidrei. O prezentare generală mare a programului Cliff este o legendă în lumea Java. La sfârșitul anilor '90, pentru teza sa de doctorat, a scris o lucrare intitulată „Îmbinarea analizelor, îmbinarea optimizărilor”, care, care a devenit, după un timp, baza pentru compilatorul HotSpot JVM Server. După doi ani, el lucra deja la Sun Microsystems pe JVM și a arătat lumii că JIT are dreptul de a exista. Toată această poveste despre Java ca unul dintre cele mai rapide runtime-uri moderne, cu cele mai inteligente și rapide optimizări, a început cu Cliff Click. La început, se credea că dacă ceva este disponibil unui compilator static, nu merită să mai încerci să faci JIT. Datorită muncii lui Cliff și a echipei, toate limbile noi au început să fie create cu ideea de JIT compilation ca setare implicită. Fără îndoială, aceasta a fost o muncă de echipă, dar Cliff a jucat un rol foarte important.

În keynote-ul de deschidere, Cliff va vorbi despre another one of his ventures — H20, o platformă in-memory pentru învățare automată distribuită și scalabilă pentru utilizări industriale. Mai exact — despre un depozit distribuit de perechi „cheie-valoare” în interiorul său. Este un depozit foarte rapid, cu o mulțime de proprietăți interesante (lista completă se găsește în descriere), care permit utilizarea unor soluții similare în matematică pentru procesarea fluxurilor de date mari.

Un alt discurs cu care va apărea Cliff — Experiența de memorie tranzacțională hardware Azul. O altă parte a biografiei sale — zece ani de muncă la Azul, unde a actualizat și îmbunătățit multe aspecte ale hardware-ului și stivei de tehnologii Azul: compilatoare JIT, runtime, modelul de thread-uri, gestionarea erorilor, lucrul cu stiva, întreruperi hardware, încărcarea claselor și așa mai departe — bine, ați înțeles.

Partea cea mai interesantă a început când au construit hardware pentru mari afaceri — supercomputer pentru a rula Java. A fost o chestie destul de inovatoare, special concepută pentru Java, care are cerințe speciale — bariere de memorie pentru citire pentru colectarea gunoiului cu latență scăzută, tablouri cu verificarea limitelor, apeluri virtuale… Una dintre cele mai cool tehnologii — memoria tranzacțională hardware. Întregul L1 din oricare dintre cele 864 de nuclee putea participa la o scriere tranzacțională, ceea ce este deosebit de important pentru gestionarea blocărilor în Java (blocurile synchronized pot funcționa în paralel, atâta timp cât nu există un conflict real pe memorie). Dar ideea frumoasă s-a clătinat în fața unei realități dure — iar în acest discurs, Cliff va explica de ce HTM și STM nu sunt foarte potrivite pentru nevoile practice ale calculatoarelor multi-threaded.

Michael Scott — Structuri de date duale

19 capete ale hidrei. O prezentare generală mare a programului de la Universitatea Rochester. Și ghiciți ce — are și el — profesor de Științe Computaționale la Universitatea din Rochester, cu care destinul l-a legat deja de 34 de ani, iar la universitatea sa de origine Wisconsin–Madison, a fost decan timp de cinci ani. Se ocupă de cercetări în domeniul programării paralele și distribuite, precum și al designului limbajelor, și îi învață pe studenți acestea.

Întreaga lume îl cunoaște pe Michael datorită manualului „Programming Language Pragmatics”, ultima ediție a căruia a fost publicată relativ recent — în 2015. Lucrarea sa „Algorithms for scalable synchronization on shared-memory multiprocessors” a primit a câștigat premiul Dijkstra ca fiind una dintre cele mai cunoscute lucrări în domeniul calculului distribuit și este disponibilă deschis în biblioteca online a Universității din Rochester. De asemenea, s-ar putea să-l cunoașteți ca autorul acelui algoritm cunoscut sub numele de Michael-Scott din „Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms”.

În ceea ce privește lumea Java, aici situația este specială: împreună cu Doug Lea, el a dezvoltat acele algoritmi non-blocant și cozi sincronizate pe care se bazează bibliotecile Java. Despre asta va fi keynote-ul „Structuri de date duale” — implementarea acestor structuri în Java SE 6 a permis îmbunătățirea performanței java.util.concurrent.ThreadPoolExecutor. Dacă sunteți deja curios ce sunt aceste „Structuri de date duale”, este disponibilă o lucrare corespunzătoare.

Maurice Herlihy — Blockchains and the future of distributed computing

19 capete ale hidrei. O prezentare generală mare a programului Maurice Herlihy — câștigător a două premii Dijkstra. Prima — pentru lucrarea sa de la iar al doilea, mai recent — (Universitatea Brown), iar a doua, mai recentă — De altfel, linkurile duc nu la SciHub, ci la Universitatea Brown și Virginia Tech University, le puteți deschide și citi. (Universitatea Virginia Tech). Premiul Dijkstra se acordă pentru lucrări a căror semnificație și impact au fost notabile timp de cel puțin zece ani, și este evident că Maurice este unul dintre cei mai cunoscuți specialiști în domeniu. În acest moment, el este profesor la Universitatea Brown și are numeroase realizări care ar umple un întreg paragraf.

În acest keynote de încheiere, Maurice va vorbi despre teoria și practica sistemelor distribuite bazate pe blockchain din perspectiva clasică a calculului distribuit și despre cum aceasta simplifică multe probleme conexe. Aceasta este o prezentare strict pe tema conferinței — deloc despre hype-ul mineritului, ci mai degrabă despre cum cunoștințele noastre pot fi utilizate într-un mod surprinzător de eficient și relevant pentru diverse probleme.

În iulie 2017, Maurice a fost deja în Rusia la școala SPTDC, a luat parte la meetup-ul JUG.ru, iar înregistrarea poate fi vizionată pe YouTube:

Redați video

Programul principal

Următoarea va fi o scurtă prezentare a lucrărilor incluse în program. Unele lucrări sunt descrise în detaliu, iar altele - pe scurt. Descrierile lungi au fost, în principal, alocate lucrărilor în limba engleză, care necesită referințe la lucrări științifice, termeni pe Wikipedia etc. Lista completă poate fi văzută pe site-ul conferinței. Lista de pe site va fi actualizată și completată.

Leslie Lamport — Întrebări și răspunsuri

19 capete ale hidrei. O prezentare generală mare a programului Leslie Lamport este autorul lucrărilor fundamentale în calculul distribuit. „LaTeX” se descifrează ca „Lamport TeX”. El a fost primul, încă din 1979, care a introdus conceptul consistență secvențială, iar articolul său „How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs” a primit premiul Dijkstra.

Aceasta este cea mai neobișnuită parte a programului, deoarece nu este nici măcar o lucrare, ci o sesiune de întrebări și răspunsuri. Când o parte semnificativă a audienței este deja familiarizată (sau poate deveni) cu toate lucrările bazate pe „teoria lui Lamport”, propriile sale articole și lucrări, cel mai important este să petrecem tot timpul disponibil comunicând direct.

Ideea este simplă — vă uitați pe YouTube la două lucrări: „Programarea ar trebui să fie mai mult decât codare” și „Dacă nu scrieți un program, nu folosiți un limbaj de programare” și pregătiți măcar o întrebare, iar Leslie va răspunde.

Primul dintre aceste două videoclipuri l-am transformat într-un articol pentru hub. Dacă nu aveți o oră de timp pentru a viziona videoclipul, puteți citi rapid totul sub formă de text.

De reținut: pe YouTube sunt mult mai multe videoclipuri cu Leslie Lamport. De exemplu, există unul excelent curs de TLA+. Versiunea offline a acestui curs este disponibilă pe pagina de start a autorului, iar pe YouTube el a postat-o pentru o vizionare mai convenabilă pe dispozitive mobile.

Martin Kleppmann — Sincronizarea datelor între dispozitivele utilizatorilor pentru colaborare distribuită

19 capete ale hidrei. O prezentare generală mare a programului Martin Kleppmann este cercetător la Universitatea Cambridge, lucrând asupra CRDT și verificării formale a algoritmilor. Cartea lui Martin „Designing Data-Intensive Applications”, publicată în 2017, s-a dovedit a fi foarte de succes și a intrat în listele bestsellerelor în domeniul stocării și prelucrării datelor. Kevin Scott, CTO la Microsoft, a spus odată: „Această carte ar trebui să fie obligatorie pentru inginerii de dezvoltare. Este o resursă rară care combină teoria cu practica, ajutând dezvoltatorii să proiecteze și să implementeze mai inteligent infrastructura și sistemele de prelucrare a datelor.” Ceva similar a spus și creatorul Kafka și CTO Confluent, Jay Kreps.

Înainte de a se ocupa de cercetările academice, Martin a lucrat în industrie și a fost cofondator al două startup-uri de succes:

  • Rapportive, dedicat afișării profilului social al contactelor din e-mailul tău, care a fost achiziționat de LinkedIn în 2012;
  • Go Test It, un serviciu pentru verificarea automată a site-urilor web în diferite browsere, care a fost achiziționat de RedGate în 2009.

În general, Martin, deși este mai puțin cunoscut decât vorbitorii noștri, a reușit deja să contribuie la dezvoltarea calculului distribuit și a industriei.

În această prezentare, Martin va vorbi despre un subiect mai apropiat de cercetările sale academice. În Google Docs și în aplicații similare de editare colaborativă, "editarea colaborativă" înseamnă sarcina de replicare: fiecare utilizator are propria replică a documentului comun, pe care o modifică, iar toate modificările sunt distribuite prin rețea celorlalți participanți. Modificările documentelor în offline duc la o inconsistență temporară a documentului în raport cu ceilalți participanți, iar re-sincronizarea necesită gestionarea conflictelor. Acest lucru este exact ceea ce există pentru Tipuri de date replicabile fără conflicte (CRDT), care, în esență, este o idee relativ nouă, formulată abia în 2011. În această prezentare se va discuta despre ce s-a întâmplat de atunci în lumea CRDT, care sunt cele mai recente realizări, și se va discuta despre abordarea creării de aplicații locale în general și utilizarea bibliotecii open-source Automerge în special.

Săptămâna viitoare vom publica pe Habr un interviu amplu cu Martin, va fi interesant.

Pedro Ramalhete — Structuri de date fără așteptare și tranzacții fără așteptare

19 capete ale hidrei. O prezentare generală mare a programului Pedro lucrează la Cisco și dezvoltă algoritmi paralele de aproximativ zece ani, inclusiv mecanisme de sincronizare, structuri de date fără blocare și fără așteptare, și tot ce poți imagina pe această temă. Interesele sale științifice și inginerești actuale se concentrează pe Construcții Universale, Memoria Transacțională Software, Memorie Persistentă și tehnologii similare care permit realizarea de aplicații corecte, scalabile și rezistente la erori. Încă, el este autorul unui blog bine cunoscut în cercurile restrânse numit Concurrency Freaks.

Structurile de date paralele sunt utilizate acum de majoritatea aplicațiilor multi-thread, începând cu utilizarea coadelor de mesaje între actori și terminând cu structuri de date indexate în stocările key-value. În Java JDK, acestea funcționează cu succes de mulți ani, iar în C++ se adaugă treptat.

Cel mai simplu mod de a implementa o structură de date paralelă este o implementare secvențială (single-thread), în care metodele sunt protejate de mutexuri. Aceasta este accesibilă oricărui junior, dar are probleme evidente de scalabilitate și performanță. Pe de altă parte, structurile de date lock-free și wait-free nu doar că gestionează mai bine erorile, dar au și un profil de performanță favorabil — totuși, dezvoltarea lor necesită o expertiză profundă și adaptare la modul specific de aplicare. O singură linie greșită de cod poate strica tot.

Cum putem face astfel încât chiar și un neexpert să poată proiecta și implementa astfel de structuri de date? Este cunoscut faptul că orice algoritm secvențial poate fi făcut thread-safe prin intermediul fie unei construcții universale, fie a memoriei tranzacționale. Ambele pot reduce pragul de accesibilitate la soluționarea acestei probleme. Totuși, ambele soluții duc, de obicei, la o implementare ineficientă. Pedro va vorbi despre cum au reușit să facă aceste construcții mai eficiente și cum pot fi utilizate pentru algoritmii lor.

Heidi Howard — Liberating distributed consensus

19 capete ale hidrei. O prezentare generală mare a programului Heidi Howard — la fel ca și Martin, este cercetătoare în sisteme distribuite la Universitatea Cambridge. Specializarea ei este consistența, reziliența la erori, performanța și consensul distribuit. Este cel mai bine cunoscută pentru generalizarea algoritmului Paxos, numit Flexible Paxos.

Reamintim că Paxos — o familie de protocoale pentru a rezolva problema consensului într-o rețea de computatoare nesigure, fundamentată pe lucrările lui Leslie Lamport. Astfel, unii dintre oratorii noștri lucrează la probleme inițial propuse de alți oratori ai noștri — și aceasta este minunat.

Posibilitatea de a găsi consensul între mai mulți gazde — pentru adresare, alegerea liderului, blocare sau coordonare — este o problemă fundamentală a sistemelor distribuite moderne. Paxos este în prezent principalul mod de a aborda problemele de consens, iar în jurul său sunt desfășurate numeroase cercetări pentru a extinde și optimiza algoritmul pentru diverse nevoi practice.

În această lucrare, vom revizui baza teoretică a Paxos, slăbind cerințele inițiale și generalizând algoritmul. Vom observa că Paxos este, în esență, doar una dintre opțiunile dintr-un spectru uriaș de abordări pentru consens și că alte puncte din spectru sunt de asemenea foarte utile pentru construirea unor sisteme distribuite de calitate.

Alex Petrov — Reduceți costurile de stocare cu Replicarea Tranzitorie și Cvorumuri Ieftine

19 capete ale hidrei. O prezentare generală mare a programului Alex este specialist în baze de date și sisteme de stocare și, ceea ce este cel mai important pentru noi — comitter la Cassandra. Împreună cu O’Reilly, lucrează în prezent la o carte despre Internals ale bazelor de date.

Pentru sistemele cu consistență eventuală (în terminologia românească — „consistență în cele din urmă”), după o cădere a unui nod sau o divizare a rețelei, trebuie să rezolvăm următoarea dilemă: fie continuăm să executăm cereri, sacrificând consistența, fie refuzăm să le executăm și sacrificăm disponibilitatea. Într-un astfel de sistem, cvorumurile, submulțimi suprapuse de noduri care garantează că cel puțin un nod va conține cea mai recentă valoare, pot fi o bună soluție de compromis. Se pot suporta defecțiuni și pierderi de conexiune către anumite noduri, continuând să răspundem cu cele mai recente valori.

Cu toate acestea, totul are un preț. Schema de replicare cu cvorum înseamnă costuri de stocare crescute: este necesar să se stocheze date redundante pe mai multe noduri simultan pentru a garanta un număr suficient de copii disponibile în momentul apariției unei probleme. Se pare că nu trebuie să stocăm toate datele pe toate replicile. Poate fi redusă sarcina pe stocare dacă păstrăm datele doar pe o parte din noduri, iar pentru scenariile de gestionare a defecțiunilor să folosim noduri speciale (Replica Tranzitorie).

Pe parcursul lucrării, vom analiza Replicas Martor, schema de replicare utilizată în Spanner și Megastore, și implementarea acestei concepte în Apache Cassandra sub denumirile Replicare Tranzitorie & Cvorumuri Ieftine.

Dmitry Vyukov — Goroutines expuse

19 capete ale hidrei. O prezentare generală mare a programului Dmitrie este un dezvoltator la Google, lucrând la testarea dinamică C/C++ și Go — Address/Memory/ThreadSanitizer, și la instrumente similare pentru nucleul Linux. A contribuit la Go un planificator scalabil de goroutines, un poller de rețea și un colector de gunoi paralel. Este expert în programarea multi-thread și autorul a zeci de algoritmi non-blocanți și este deținătorul Centurii Negre Intel.

Acum, să vorbim puțin despre prezentare. Limbajul Go are suport nativ pentru programarea multi-thread sub forma goroutine-urilor (thread-uri ușoare) și canalelor (cozi FIFO). Datorită acestor mecanisme, utilizatorilor le este foarte ușor și plăcut să scrie aplicații moderne multi-thread, iar această experiență pare magică. După cum înțelegem, nu există nicio magie aici. În această prezentare, Dmitrie va explora subtilitățile funcționării planificatorului Go și va revela secretele implementării acestei „magii”. În primul rând, va oferi o privire de ansamblu asupra componentelor de bază ale planificatorului și va explica cum funcționează. Apoi, ne vom familiariza mai îndeaproape cu aspecte specifice precum strategia de parcare/deparcare și gestionarea apelurilor sistemului blocante. În cele din urmă, Dmitrie va discuta despre posibile îmbunătățiri ale planificatorului.

Dmitrie Bugaychenko — Accelerarea analizei distribuite a graficelor folosind schițe probabilistice și nu numai

19 capete ale hidrei. O prezentare generală mare a programului Dmitrie a lucrat aproape 9 ani în outsourcing, fără a pierde legătura cu universitatea și mediul academic. Analiza datelor mari în Odnoklassniki i-a oferit o oportunitate unică de a combina pregătirea teoretică și fundația științifică cu dezvoltarea de produse reale, căutate.

Analiza distribuită a graficelor a fost și rămâne o provocare complexă: atunci când apare necesitatea de a obține informații despre legăturile unei vârfuri adiacente, datele trebuie adesea transferate între mașini, ceea ce duce la creșterea timpului de execuție și la o încărcare suplimentară a infrastructurii de rețea. În această prezentare, vom vedea cum se poate obține o accelerare semnificativă a procesării, utilizând structuri de date probabiliste sau fapte precum simetria graficului de prietenie în rețele sociale. Totul va fi ilustrat prin exemple de cod pe Apache Spark.

Denis Rîscov — Reduceți costurile de stocare cu Replicarea Tranzitorie și Cvorumuri Ieftine

19 capete ale hidrei. O prezentare generală mare a programului Denis este dezvoltator Cosmos DB, expert în verificarea modelelor de consistență, în algoritmi de consens și în tranzacții distribuite. Acum lucrează la Microsoft, iar anterior s-a ocupat de sisteme distribuite la Amazon și Yandex.

În această prezentare, ne vom familiariza cu protocoalele de tranzacții distribuite, inventate în ultimii câțiva ani, care pot fi implementate pe partea clientului deasupra oricărui sistem de stocare de date care suportă actualizarea condiționată (compare and set). Ideea este că viața nu se termină cu comiterea în două faze; tranzacțiile pot fi adăugate deasupra oricăror baze de date — la nivel de aplicație, dar diferitele protocoale (2PC, Percolator, RAMP) au trade-off-uri diferite și nu sunt oferite gratuit.

Alexei Zinoviev — Nu toate algoritmii ML ajung în raiul distribuit

19 capete ale hidrei. O prezentare generală mare a programului Alexei (zaleslaw) — este un speaker de multă vreme și membru al comitetelor programului la alte conferințe. Este trainer practic la compania EPAM Systems și colaborează cu Hadoop/Spark și alte tehnologii Big Data din 2012.

În această prezentare, Alexei va vorbi despre problemele de adaptare a algoritmilor clasici de învățare automată pentru a funcționa în mod distribuit, pe baza experienței sale cu Apache Spark ML, Apache Mahout, Apache Flink ML și experiența de implementare a algoritmilor ML distribuiți în aceste cadre.

Și, în final, două prezentări de la compania Yandex despre Yandex Database.

Vladislav Kuznetsov — Yandex Database — cum asigurăm disponibilitatea

19 capete ale hidrei. O prezentare generală mare a programului Vladislav este dezvoltator la Yandex în grupul platformei distribuite. Yandex Database este un sistem de baze de date georepartizate scalabile orizontal și rezistente la erori, care poate rezista la eșecul discurilor, serverelor, rack-urilor și centrelor de date fără a pierde consistența. Pentru a asigura rezistența la erori, se aplică un algoritm propriu pentru atingerea consensului distribuit, precum și o serie de soluții tehnice, care sunt prezentate în detaliu în prezentare. Prezentarea poate fi interesantă atât pentru dezvoltatorii de baze de date, cât și pentru dezvoltatorii de soluții aplicative bazate pe baze de date.

Semyon Checherinda — Tranzacții distribuite în YDB

19 capete ale hidrei. O prezentare generală mare a programului Semyon este dezvoltator în grupul platformei distribuite la Yandex, lucrând la posibilitatea de utilizare multi-închiriere a instalării YDB.

Baza de date Yandex este concepută pentru interogări OLTP și respectă cerințele ACID pentru sistemele tranzacționale. În prezentare, vom analiza algoritmul de planificare a tranzacțiilor care stă la baza sistemului tranzacțional YDB. Vom discuta despre entitățile implicate în tranzacții, cine atribuie tranzacțiilor un ordin global, cum se realizează atomicitatea tranzacțiilor, fiabilitatea și nivelul strict de izolare. Pe baza unei probleme comune, vom examina implementările tranzacțiilor folosind commit-uri în două faze și tranzacții deterministe. Vom discuta diferențele dintre acestea.

Ce urmează?

Programul conferinței continuă să fie completat cu noi prezentări. În special, așteptăm o prezentare de la Nikita Koval (ndkoval) de la JetBrains și Oleg Anastasiev (m0nstermind) de la compania Odnoklassniki. Nikita se ocupă cu algoritmi pentru coroutine în echipa Kotlin, iar Oleg dezvoltă arhitectura și soluțiile pentru sistemele cu încărcare mare pe platforma companiei Odnoklassniki. În plus, mai există un slot condiționat liber, cu candidați pentru care comitetul programului lucrează în prezent.

Conferința Hydra va avea loc pe 11-12 iulie în Sankt Petersburg. Biletele pot fi cumpărate de pe site-ul oficial. Vă atragem atenția asupra disponibilității biletelor online — dacă din anumite motive nu puteți ajunge fizic în Petersburg în aceste zile.

Ne vedem la Hydra!

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster