19 галоў гідры. Вялікі агляд праграмы

11-12 ліпеня ў Санкт-Пецярбургу адбудзецца канферэнцыя гідра, прысвечаная распрацоўцы паралельных і размеркаваных сістэм. Фішка Гідры ў тым, што яна аб'ядноўвае крутых навукоўцаў (якіх звычайна можна знайсці толькі на замежных навуковых канферэнцыях) і вядомых практыкуючых інжынераў, у адну вялікую праграму на стыку навукі і практыкі.

Hydra - адна з самых важных нашых канферэнцый за апошнія некалькі гадоў. Ёй папярэднічала вельмі сур'ёзная падрыхтоўка, адбор спікераў і дакладаў. На мінулым тыдні пра гэта выйшла хабраінтэрв'ю з дырэктарам кампаніі JUG.ru Group, Аляксеем Фёдаравым (23derevo).

Мы ужо расказвалі аб трох важных удзельніках, заснавальніках тэорыі размеркаваных сістэм - Леслі Лэмпарте, Морыс Херліхі і Майкле Скоце. Надышоў час больш падрабязна пагаварыць аб усёй праграме!

19 галоў гідры. Вялікі агляд праграмы

Матывацыя

Калі вы займаецеся праграмаваннем, то так ці інакш маеце справу са шматструменнасцю і размеркаванымі вылічэннямі. Спецыялісты ў адпаведных галінах працуюць з імі напрамую, але няяўна размеркаванасць глядзіць на нас адусюль: у любым шмат'ядравым кампутары або размеркаваным сэрвісе знойдзецца нешта, раўналежна якое выконвае вылічэнні.

Існуе мноства канферэнцый, якія раскрываюць тыя ці іншыя аспекты прыкладнога праграмавання. На другім баку спектра ў нас спецыяльныя навуковыя школы, якія ў фармаце лекцый раскрываюць вялізныя аб'ёмы складанай тэорыі. Напрыклад, паралельна з Hydra у Піцеры праходзіць школа SPTDC. На канферэнцыі Hydra мы пастараліся звесці разам і суровую практыку, і навуку, і ўсё, што на іх стыку.

Задумайцеся вось над чым: мы жывем у дзіўны час, калі можна ўжывую сустрэць заснавальнікаў той вобласці навукі і інжынерыі, якімі мы займаемся. Фізікі не сустрэнуць ні Ньютана, ні Эйнштэйна - цягнік сышоў. Але побач з намі ўсё яшчэ жывуць тыя, хто стварыў асновы тэорыі размеркаваных сістэм, прыдумаў папулярныя мовы праграмавання, упершыню ўвасобіў усё гэта ў працуючыя прататыпы. Гэтыя людзі не кінулі сваю працу на паўдарогі, прама зараз займаюцца актуальнымі задачамі ў сусветна вядомых універсітэтах і кампаніях, і з'яўляюцца найвялікшымі крыніцамі ведаў і досведу на сённяшні дзень.

З іншага боку, магчымасць сустрэцца з імі звычайна застаецца чыста тэарэтычнай: мала хто з нас можа ўвесь час маніторыць публічныя падзеі ў якім-небудзь Рочэстэрскім універсітэце, каб потым кінуцца ў ЗША і зваротна на лекцыю да Майкла Скота. Наведаць наогул усіх удзельнікаў Hydra выйшла б у невялікі стан, не лічачы бездані выдаткаванага часу (хоць гэта гучыць як цікавы квэст).

З іншага боку, у нас ёсць мноства топавых інжынераў, якія прама цяпер працуюць над актуальнымі праблемамі размеркаваных сістэм, і ім сапраўды ёсць што расказаць. Але вось праблема - яны працуюць, і іх час дорага. Так, калі ты супрацоўнік Microsoft, Google або JetBrains, верагоднасць сустрэць аднаго з вядомых спікераў на ўнутраным мерапрыемстве - рэзка ўзрастае, а наогул - не, не кожны дзень гэта бывае.

Такім чынам канферэнцыя Hydra выконвае важную задачу, якую большасць з нас не могуць зрабіць самі - у адным месцы і ў адзін час аб'ядноўвае людзей, ідэі якіх або зносіны з якімі можа змяніць ваша жыццё. Дапускаю, што зусім не ўсім патрэбны размеркаваныя сістэмы, нейкія складаныя фундаментальныя рэчы. Можна да канца жыцця праграмаваць CRUD-ы на PHP і заставацца суцэль шчаслівым. Але каму патрэбныя - гэта ваш шанец.

З першага анонсу канферэнцыі Hydra на Хабры прайшло ўжо даволі шмат часу. За гэты час праведзена велізарная праца — і вось, у нас ёсць спіс амаль усіх дакладаў. Ніякіх вяленькіх аднаструменных алгарытмаў, толькі чысты размеркаваны хардкор! Давайце заканчваць з агульнымі словамі, і паглядзім, што ў нас зараз на руках.

Кейнаўты

Кейнаўты пачынаюць і завяршаюць дні канферэнцыі. Звычайна сэнс які адкрывае кейноута - задаць агульны дух і кірунак канферэнцыі. Кейноўт, які закрывае рысу, тлумачыць, як нам жыць з набытымі ў дні канферэнцыі ведамі і навыкамі. Пачатак і канец: тое, што запомніцца лепш за ўсё, і ўвогуле, мае падвышанае значэнне.

Cliff Click The H2O distributed K/V algorithm

19 галоў гідры. Вялікі агляд праграмы Кліф - легенда Java-свету. У канцы 90-х гадоў для PhD-тэзы ён напісаў працу пад назовам "Combining Analyses, Combining Optimizations", Якая праз некаторы час стала асновай для HotSpot JVM Server Compiler. Праз два гады ён ужо працаваў у Sun Microsystems над JVM і паказаў усяму свету, што JIT мае права на існаванне. Уся гэтая гісторыя пра тое, што Java – адзін з найхуткіх сучасных рантаймаў з самымі разумнымі і хуткімі аптымізацыямі пайшла менавіта з Кліфа Кліка. У самым пачатку лічылася, што, калі нешта даступна статычнаму кампілятару - гэта можна нават не спрабаваць джыціць. Дзякуючы працам Кліфа і каманды, усе новыя мовы пачалі стварацца з ідэяй аб JIT-кампіляцыі па змаўчанні. Безумоўна, гэта была праца не для аднаго чалавека, але Кліф адыграў у ёй вельмі важную ролю.

У кейнауце Кліф, які адкрывае, раскажа пра іншае сваё пачынанне. H20, in-memory платформе для размеркаванага і маштабуецца машыннага навучання для прамысловага прымянення. А дакладней - аб размеркаваным сховішча пар «ключ-значэнне» усярэдзіне яе. Гэта вельмі хуткае сховішча з масай цікавых уласцівасцяў (дакладны спіс ёсць у апісанні), якія дазваляюць выкарыстоўваць падобныя рашэнні ў матэматыцы стрымінгу вялікіх дадзеных.

Яшчэ адзін даклад, з якім выступіць Кліф. The Azul Hardware Transactional Memory experience. Іншая частка яго біяграфіі - дзесяць гадоў працы ў Azul, дзе ён абнавіў і палепшыў шмат усяго ў жалезе і стэку тэхналогій Azul: JIT-кампілятары, рантайм, тредовую мадэль, апрацоўку памылак, працу са стэкам, апаратныя перапыненні, загрузку класаў і гэтак далей і да таго падобнае - ну, вы зразумелі.

Самая цікавая частка пачалася, калі яны зрабілі жалеза для вялікага бізнэсу – суперкампутар для запуску Java. Гэта была даволі інавацыйная штука, заменчаная менавіта пад Java, у якой ёсць спецыяльныя патрабаванні – бар'еры памяці на чытанне для нізкапаўзной зборкі смецця, масівы з праверкай межаў, віртуальныя выклікі… Адна з найбольш крутых тэхналогій – апаратная транзакцыйная памяць. Увесь L1 любога з 864 ядраў мог удзельнічаць у транзакцыйным запісе, што асабліва важна для працы з блакіроўкамі ў Java (synchronized-блокі могуць працаваць раўналежна, датуль, пакуль няма рэальнага канфлікту па памяці). Але прыгожая ідэя разбілася аб суровую рэальнасць – і ў гэтым дакладзе Кліф раскажа, чаму HTM і STM не вельмі добра падыходзяць для практычных патрэб шматструменных вылічэнняў.

Michael Scott Dual data structures

19 галоў гідры. Вялікі агляд праграмы Майкл Скот — прафесар Computer Science у Рочэстэрскім універсітэце, з якім лёс звязаў яго ужо на 34 гады, а ў родным універсітэце Wisconsin-Madison, быў дэканам на працягу пяці гадоў. Ён займаецца даследаваннямі ў галіне паралельнага і размеркаванага праграмавання і дызайну моў і навучае гэтаму студэнтаў.

Увесь свет ведае Майкла дзякуючы падручніку "Programming Language Pragmatics", апошняе выданне якога выйшла параўнальна нядаўна - у 2015 годзе. Яго праца "Algorithms for scalable synchronization on shared-memory multiprocessors" атрымала прэмію Дэйкстры як адна з найбольш вядомых у галіне размеркаваных вылічэнняў і адкрыта ляжыць у анлайн-бібліятэцы Рочэстэрскага Універсітэта. Таксама вы можаце ведаць яго як аўтара таго самага алгарытму Майкла-Скота з "Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms".

Што тычыцца Java-свету, то тут выпадак асаблівы: разам з Doug Lea ён распрацаваў тыя неблакіруючыя алгарытмы і сінхронныя чэргі, на якіх працуюць бібліятэкі Java. Менавіта пра гэта і будзе кейноут «Dual data structures» – укараненне гэтых структур у Java SE 6 дазволіла ў 10 разоў палепшыць прадукцыйнасць. java.util.concurrent.ThreadPoolExecutor. Калі вам загадзя цікава, што такое гэтыя самыя "Dual data structures", то пра гэта ёсць адпаведная праца.

Maurice Herlihy - Blockchains and the future of distributed computing

19 галоў гідры. Вялікі агляд праграмы Морыс Херліхі - уладальнік цэлых двух прэмій Дэйкстры. Першая - за працу па "Wait-Free Synchronization" (Brown University), і другая, больш свежая – "Transactional Memory: Architectural Support for Lock-Free Data Structures" (Virginia Tech University). Прэмію Дэйкстры даюць за працы, значнасць і ўплыў якіх былі прыкметныя на працягу не менш за дзесяць гадоў, і відавочна, Морыс - адзін з самых вядомых спецыялістаў у вобласці. У дадзены момант ён працуе прафесарам у Браунаўскім універсітэце і мае мноства дасягненняў на цэлы абзац даўжынёй.

На гэтым зачыняе кейнаўце Морыс раскажа пра тэорыю і практыку блокчейновых размеркаваных сістэм з пункту гледжання класікі размеркаваных вылічэнняў і пра тое, як гэта спрашчае мноства звязаных праблем. Гэта даклад выключна па тэме канферэнцыі — зусім не пра майнінгавы хайп, а хутчэй пра тое, як нашы веды можна дзіўна эфектыўна і дарэчы выкарыстоўваць у дачыненні да самых розных задач.

У ліпені 2017 года Морыс ужо прыязджаў у Расію на школу SPTDC, удзельнічаў у мітапе JUG.ru, і запіс можна паглядзець на YouTube:

Асноўная праграма

Далей будзе невялікі агляд дакладаў, якія ўвайшлі ў праграму. Частка дакладаў тут апісана падрабязна, частка — карацейшая. Доўгія апісанні дасталіся, у асноўным, англамоўным дакладам, якія патрабуюць спасылак на навуковыя працы, тэрміны на Вікіпедыі, і гэтак далей. Поўны спіс можна убачыць на сайце канферэнцыі. Спіс на сайце будзе абнаўляцца і дапаўняцца.

Leslie Lamport Q & A

19 галоў гідры. Вялікі агляд праграмы Леслі Лэмпарт - аўтар асноўных работ у размеркаваных вылічэннях. "LaTeX" расшыфроўваецца як "Lamport TeX". Гэта ён упершыню, яшчэ ў 1979 годзе, увёў паняцце паслядоўнай узгодненасці, а яго артыкул "Гэтыя камп'ютэрныя камп'ютэрныя камп'ютары з'яўляюцца сапраўднымі executes Multiprocess Programs" атрымала прэмію Дэйкстры.

Гэта самая незвычайная па фармаце частка праграмы, бо гэта нават не даклад, а сесія пытанняў і адказаў. Калі значная частка аўдыторыі ўжо знаёмая (ці можа пазнаёміцца) з разнастайнымі працамі, заснаванымі на «тэорыі Лэмпарта», яго ўласнымі артыкуламі і дакладамі, важней выдаткаваць увесь даступны час на прамыя зносіны.

Ідэя простая - вы глядзіце на YouTube два даклады: "Programming Should Be More Than Coding" и "If You're Not Writing a Program, не выкарыстоўваецца для Programming Language" і рыхтуйце хаця б адно пытанне, а Леслі адказвае.

Першае з гэтых двух відэа мы ўжо ператварылі ў хабраартыку. Калі ў вас няма гадзіны часу на прагляд відэа, можна хуценька прачытаць усё гэта ў выглядзе тэксту.

На нататку: на YouTube ёсць куды больш відэа з Леслі Лэмпартам. Напрыклад, ёсць выдатны курс па TLA+. Афлайн-версія ўсяго гэтага курса ёсць на хатняй старонцы аўтара, А на YouTube ён яго пераліў для зручнейшага прагляду на мабільных дэвайсах.

Martin Kleppmann Syncing data across user devices for distributed collaboration

19 галоў гідры. Вялікі агляд праграмы Марцін Клеппман - даследчык у Кембрыджскім універсітэце, які працуе над CRDT і фармальнай верыфікацыяй алгарытмаў. Кніга Марціна "Designing Data-Intensive Applications", апублікаваная ў 2017 годзе, аказалася вельмі паспяховай і патрапіла ў спісы бэстсэлераў у галіне захоўвання і апрацоўкі дадзеных. Кевін Скот, CTO ў Microsoft, аднойчы сказаў: «Гэтая кніга павінна быць абавязковай для інжынераў-распрацоўшчыкаў. Гэта рэдкі рэсурс, які аб'ядноўвае тэорыю і практыку, які дапамагае распрацоўнікам разумнейшыя дызайнаваць і рэалізоўваць інфраструктуру і сістэмы апрацоўкі дадзеных». Нешта падобнае казаў і стваральнік Kafka і CTO Confluent, Джэй Крэпс.

Перш чым заняцца акадэмічнымі даследаваннямі, Марцін працаваў у індустрыі і стаў сузаснавальнікам двух паспяховых стартапаў:

  • Rapportive, прысвечаны адлюстраванню сацыяльнага профілю кантактаў з вашай электроннай пошты, які LinkedIn купілі ў 2012 годзе;
  • Go Test It, сэрвіс для аўтаматычнай праверкі вэб-сайтаў у розных браўзэрах, які RedGate купілі ў 2009 годзе.

Увогуле, Марцін хоць і менш вядомы, чым нашы кейноўтэры, але ўжо змог унесці некаторы ўклад і ў развіццё размеркаваных вылічэнняў, і ў індустрыю.

У гэтым дакладзе Марцін будзе распавядаць аб тэме, бліжэйшай да яго акадэмічных даследаванняў. У Google Docs і падобным сафе для сумеснага рэдагавання дакументаў, "сумеснае рэдагаванне" азначае задачу рэплікацыі: кожны карыстач мае ўласную рэпліку агульнага дакумента, якую яны потым змяняюць, і ўсе змены рассылаюцца па сетцы астатнім удзельнікам. Змены дакументаў у афлайне прыводзіць да часовай некансістэнтнасці дакумента ў адносінах да астатніх удзельнікаў, і перасінхранізацыя патрабуе апрацоўкі канфліктаў. Якраз для гэтага існуюць Conflict-free Replicated Data Types (CRDT), па сутнасці – даволі новая штука, сутнасць якой сфармулявалі ўсяго толькі ў 2011 годзе. У гэтым дакладзе абмяркоўваецца, што адбылося з таго часу ў свеце CRDT, якія самыя апошнія дасягненні, абмяркоўваецца падыход да стварэння local-first прыкладанняў наогул і выкарыстанне апенсорнай бібліятэкі. Automerge у прыватнасці.

На наступным тыдні мы апублікуем на Хабры вялікае інтэрв'ю з Марцінам, будзе цікава.

Pedro Ramalhete Wait-free data structures and wait-free transactions

19 галоў гідры. Вялікі агляд праграмы Пэдра працуе ў Cisco і распрацоўвае раўналежныя алгарытмы апошнія гадоў гэтак дзесяць, уключаючы механізмы сінхранізацыі, lock-free і wait-free структуры дадзеных і ўсё, што вы можаце ўявіць на гэтую тэму. Яго бягучыя навуковыя і інжынерныя інтарэсы сфакусаваныя на Universal Constructions, Software Transactional Memory, Persistent Memory і падобных тэхналогіях, якія дазваляюць рэалізоўваць карэктныя, якія маштабуюцца і адмоваўстойлівыя прыкладання. А яшчэ ён - аўтар шырока вядомага ў вузкіх колах блога Concurrency Freaks.

На паралельных структурах дадзеных зараз працуе большасць шматструменных прыкладанняў, пачынаючы з выкарыстання чэргаў паведамленняў паміж актарамі і заканчваючы індэксаваць структурамі дадзеных у key-value сховішчах. У Java JDK яны паспяхова працуюць на працягу шматлікіх гадоў, ды і ў C++ паволі дадаюцца.

Найпросты спосаб рэалізаваць паралельную структуру дадзеных - паслядоўная (аднаструменная) рэалізацыя, у якой метады абаронены м'ютэксамі. Гэта даступна любому джуна, але мае відавочныя праблемы з маштабаваннем і прадукцыйнасцю. У той жа час, lock-free і wait-free структуры дадзеных не толькі лепш спраўляюцца з памылкамі, але і маюць больш удалы профіль прадукцыйнасці – аднак, для іх распрацоўкі патрабуецца глыбокая экспертыза і адаптацыя пад пэўны спосаб ужывання. Аднаго няправільнага радка кода хопіць, каб усё зламаць.

Як зрабіць так, каб нават неэксперт змог дызайніць і рэалізоўваць такія структуры звестак? Вядома, што любы паслядоўны алгарытм можна зрабіць струменебяспечным пры дапамозе або універсальнай канструкцыі, альбо транзакцыйнай памяці. За адным яны могуць панізіць парог уваходу ў рашэнне гэтай задачы. Аднак, абодва рашэнні, як правіла, прыводзяць да неэфектыўнай рэалізацыі. Пэдра раскажа аб тым, як ім удалося зрабіць гэтыя канструкцыі больш эфектыўнымі і як можна іх выкарыстоўваць для сваіх алгарытмаў.

Heidi Howard - Liberating distributed consensus

19 галоў гідры. Вялікі агляд праграмы Хайдзі Говард - як і Марцін, даследчык размеркаваных сістэм у Кембрыджскім універсітэце. Яе спецыялізацыя - кансістэнтнасць, адмоваўстойлівасць, прадукцыйнасць і размеркаваны кансэнсус. Яна найболей вядома абагульненнем алгарытму Paxos пад назовам Flexible Paxos.

Нагадаем, што Paxos — сямейства пратаколаў для рашэння задачы кансенсусу ў сетцы ненадзейных вылічальнікаў, у аснову якіх ляглі працы Леслі Лэмпарта. Такім чынам, адны нашыя дакладчыкі працуюць над задачамі, першапачаткова прапанаванымі іншымі нашымі дакладчыкамі — і гэта цудоўна.

Магчымасць знайсці кансэнсус паміж некалькімі хастамі - для адрасацыі, выбару лідэра, блакіроўкі або каардынацыі - фундаментальнае пытанне сучасных размеркаваных сістэм. Paxos зараз з'яўляецца асноўным спосабам рашэння задач знаходжання кансэнсусу, і вакол яго праводзіцца мноства даследаванняў з мэтай пашырэння і аптымізацыі алгарытму пад розныя практычныя патрэбы.

У гэтым дакладзе мы перагледзім тэарэтычную аснову Paxos, саслабляючы першапачатковыя патрабаванні і абагульняючы алгарытм. Мы ўбачым, што Paxos, у сутнасці, з'яўляецца толькі адным з варыянтаў сярод велізарнага спектру падыходаў да кансэнсусу, і што іншыя кропкі спектру таксама вельмі карысныя для пабудовы добрых размеркаваных сістэм.

Alex Petrov - Reduce vaše storage costs s Transient Replication and Cheap Quorums

19 галоў гідры. Вялікі агляд праграмы Алекс - адмысловец па базах дадзеных і сістэмам захоўвання, і што важней для нас - коммитер у Касандра. Разам з O'Reilly ён зараз працуе над кнігай Database Internals.

Для сістэм з канчатковая кансістэнцыя (у рускамоўнай тэрміналогіі — «узгодненасцю ў канчатковым рахунку»), пасля падзення вузла ці падзелу сеткі, трэба вырашыць наступную дылему: ці то працягваць выконваць запыты, ахвяраваўшы кансістэнтнасцю, ці адмовіць у іх выкананні і ахвяраваць даступнасцю. У такой сістэме кворумы, якія перакрываюцца падмноства вузлоў і гарантуюць, што прынамсі адзін вузел будзе ўтрымоўваць самае апошняе значэнне, могуць стаць добрым памежным рашэннем. Можна перажыць збоі і страту злучэння да некаторых вузлоў, працягваючы адказваць самымі свежымі значэннямі.

Тым не менш, усё мае свой кошт. Кворумная схема рэплікацыі азначае падвышаны кошт захоўвання: неабходна захоўваць залішнія дадзеныя на некалькіх вузлах адразу, каб гарантаваць дастатковую колькасць даступных дзід на момант узнікнення праблемы. Аказваецца, можна не захоўваць усе даныя на ўсіх рэпліках. Можна паменшыць нагрузку на сховішча, калі трымаць дадзеныя толькі на часткі вузлоў, а для сцэнараў апрацоўкі збояў выкарыстоўваць спецыяльныя ноды (Transient Replica).

Па ходзе даклада мы разгледзім Witness Replicas, схему рэплікацыі выкарыстоўваную ў гаечны ключ и Мегамагазін, і рэалізацыю дадзенай канцэпцыі ў Apache Cassandra пад назовамі Transient Replication & Cheap Quorums.

Зміцер В'юкаў Goroutines exposed

19 галоў гідры. Вялікі агляд праграмы Зміцер – распрацоўнік у Google, які працуе над дынамічным тэставаннем C/C++ і Go – Address/Memory/ThreadSanitizer, і над падобнымі прыладамі для ядра Linux. Законтрыб'ютіл у Go які маштабуецца планавальнік гаруцін, network poller і раўналежны зборшчык смецця. З'яўляецца экспертам у шматструменнасці, аўтарам тузіна новых неблакіруючых алгарытмаў і з'яўляецца ўладальнікам Чорнага Паяса Intel.

Цяпер крыху аб самім дакладзе. У мове Go прысутнічае натыўная падтрымка шматструменнасці ў форме гаруцін (лёгкіх трэдаў) і каналаў (чэргаў FIFO). Дзякуючы гэтым механізмам карыстальнікам вельмі лёгка і прыемна пісаць сучасныя шматструменныя прыкладанні, і гэта выглядае як магія. Як мы разумеем, ніякай магіі тут няма. У гэтым дакладзе Зміцер паглыбіцца ў тонкасці працы планавальніка Go і пакажа сакрэты рэалізацыі гэтай "магіі". Спачатку ён дасць агляд асноўных кампанентаў планавальніка, раскажа, як яно працуе. Далей мы бліжэй пазнаёмімся з асобнымі аспектамі накшталт стратэгіі паркоўкі/распаркоўкі і апрацоўкі блакавальных сістэмных выклікаў. Нарэшце, Дзмітрый крыху раскажа пра магчымыя паляпшэнні ў планавальніку.

Дзмітрый Бугайчанка Паскараем размеркаваны аналіз графаў з дапамогай імавернасных скетчаў і не толькі

19 галоў гідры. Вялікі агляд праграмы Зміцер амаль 9 гадоў прапрацаваў у аўтсорсінгу, не губляючы кантакту з універсітэтам і навуковым асяроддзем. Аналіз вялікіх дадзеных у Аднакласніках стаў для яго ўнікальным шанцам сумясціць тэарэтычную падрыхтоўку і навуковы падмурак з распрацоўкай рэальных, запатрабаваных прадуктаў.

Размеркаваны аналіз графаў быў і застаецца складанай задачай: калі ўзнікае неабходнасць атрымаць інфармацыю аб сувязях суседняй вяршыні, дадзеныя часта даводзіцца пераганяць паміж машынамі, што прыводзіць да павелічэння часу выканання і нагрузцы на сеткавую інфраструктуру. У гэтым дакладзе мы ўбачым, як можна атрымаць істотнае паскарэнне апрацоўкі, выкарыстоўваючы імавернасныя структуры дадзеных або факты накшталт сіметрычнасці графа сяброўстваў у сацыяльнай сетцы. Усё гэта ілюструецца прыкладамі кода на Apache Spark.

Дзяніс Рысьцоў Reduce vaše storage costs s Transient Replication and Cheap Quorums

19 галоў гідры. Вялікі агляд праграмы Дзяніс - распрацоўшчык БД Космас, эксперт у галіне праверкі мадэляў кансістэнтнасці, у алгарытмах кансэнсусу і ў размеркаваных транзакцыях. Цяпер ён працуе ў Microsoft, а да гэтага займаўся размеркаванымі сістэмамі ў Amazon і Yandex.

У гэтым дакладзе мы пазнаёмімся з пратаколамі размеркаваных транзакцый, прыдуманымі за апошнія некалькі гадоў, якія магчыма рэалізаваць на кліенцкім баку па-над любым сховішчы дадзеных, які падтрымлівае ўмоўнае абнаўленне (compare and set). Сутнасць у тым, што жыццё не сканчаецца двухфазным коммітам, транзакцыі можна дадаць па-над любымі базамі дадзеных — на ўзроўні прыкладання, але розныя пратаколы (2PC, Percolator, RAMP) маюць розныя трэйдафы і не даюцца нам бясплатна.

Аляксей Зіноўеў Не ўсе ML-алгарытмы пападаюць у размеркаваны рай

19 галоў гідры. Вялікі агляд праграмы Аляксей (zaleslaw) - наш даўні спікер і член праграмных камітэтаў на іншых канферэнцыях. Практыкуючы трэнер у кампаніі EPAM Systems, і з Hadoop / Spark і іншай бігдатай сябруе з 2012 года.

У гэтым дакладзе Аляксей раскажа аб праблемах адаптацыі класічных алгарытмаў машыннага навучання для выканання ў размеркаваным рэжыме на аснове свайго досведу працы з Apache Spark ML, Apache Mahout, Apache Flink ML і досведу стварэння Apache Ignite ML. Таксама Аляксей раскажа аб рэалізацыі размеркаваных ML-алгарытмаў у гэтых фрэймворкі.

І ў завяршэнне – два даклады ад кампаніі Yandex пра Yandex Database.

Уладзіслаў Кузняцоў Yandex Database – як мы забяспечваем адмоваўстойлівасць

19 галоў гідры. Вялікі агляд праграмы Уладзіслаў - распрацоўшчык у Яндэксе ў групе размеркаванай платформы. Yandex Database - гарызантальна якая маштабуецца геаразмеркаваная адмоваўстойлівая СКБД, якая вытрымлівае адмову дыскаў, сервераў, стоек і датацэнтраў без парушэння кансістэнтнасці. Для забеспячэння адмоваўстойлівасці прымяняецца ўласны алгарытм дасягнення размеркаванага кансенсусу, а таксама шэраг тэхнічных рашэнняў, якія дэталёва разгледжаны ў дакладзе. Даклад можа быць цікавы як распрацоўшчыкам СКБД, так і распрацоўшчыкам прыкладных рашэнняў на базе СКБД.

Сямён Чачарында Размеркаваныя транзакцыі ў YDB

19 галоў гідры. Вялікі агляд праграмы Сямён - распрацоўшчык у групе размеркаванай платформы ў Яндэксе, працуе над магчымасцю мультыарэнднага выкарыстання інсталяцыі YDB.

Yandex Database разлічана на OLTP-запыты і адпавядае патрабаванням ACID да транзакцыйнай сістэмы. У дакладзе разгледзім алгарытм планавання транзакцый, які ляжыць у аснове транзакцыйнай сістэмы YDB. Разбяром, якія сутнасці ўдзельнічаюць у транзакцыях, хто прызначае транзакцыям глабальны парадак, як дасягаецца атамарнасць транзакцый, надзейнасць і строгі ўзровень ізаляцыі. На прыкладзе распаўсюджанай задачы разгледзім рэалізацыі транзакцый з ужываннем двухфазнага комміта і дэтэрміністычных транзакцый. Абмяркуем іх адрозненні.

Што далей?

Праграма канферэнцыі працягвае напаўняцца новымі дакладамі. У прыватнасці, мы чакаем даклад ад Мікіты Коваля (ndkoval) з JetBrains і Алега Анастасьева (m0nstermind) з кампаніі Аднакласнікі. Мікіта займаецца алгарытмамі для каруцін у камандзе Kotlin, а Алег распрацоўвае архітэктуру і рашэнні для высоканагружаных сістэм у платформе кампаніі Аднакласнікі. Акрамя таго, ёсць яшчэ 1 умоўна пусты слот, з кандыдатамі на які зараз працуе праграмны камітэт.

Канферэнцыя Hydra адбудзецца ў 11-12 ліпеня ў Санкт-Пецярбургу. Білеты можна набыць на афіцыйным сайце. Зважаем на наяўнасць Online-білетаў — калі вы чамусьці не можаце ўжывую дабрацца да Піцера ў гэтыя дні.

Сустрэнемся на Hydra!

Крыніца: habr.com

Дадаць каментар