{"id":35091,"date":"2019-10-31T22:02:18","date_gmt":"2019-10-31T19:02:18","guid":{"rendered":"https:\/\/prohoster.info\/blog\/19-golov-gidry-bolshoj-obzor-programmy\/"},"modified":"2019-10-31T22:02:18","modified_gmt":"2019-10-31T19:02:18","slug":"19-golov-gidry-bolshoj-obzor-programmy","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/19-golov-gidry-bolshoj-obzor-programmy","title":{"rendered":"19 cabe\u00e7as da hidra. Grande vis\u00e3o geral do programa","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Nos dias 11 e 12 de julho, ocorrer\u00e1 uma confer\u00eancia em S\u00e3o Petersburgo <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/?utm_source=habr&amp;utm_medium=453832\">Hydra<\/a><\/noindex>, dedicada ao desenvolvimento de sistemas paralelos e distribu\u00eddos. A proposta da Hydra \u00e9 reunir grandes cientistas (que geralmente s\u00f3 podem ser encontrados em confer\u00eancias cient\u00edficas internacionais) e engenheiros renomados em uma grande programa\u00e7\u00e3o na interse\u00e7\u00e3o entre ci\u00eancia e pr\u00e1tica.<\/p>\n<p><\/p>\n<p>A Hydra \u00e9 uma das nossas confer\u00eancias mais importantes nos \u00faltimos anos. Ela foi precedida por uma prepara\u00e7\u00e3o muito s\u00e9ria, sele\u00e7\u00e3o de palestrantes e apresenta\u00e7\u00f5es. Na semana passada, sobre isso <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/jugru\/blog\/453952\/\">saiu uma entrevista no Habrahabr<\/a><\/noindex> com o diretor da JUG.ru Group, Alexey Fedorov (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/23derevo\/\" class=\"user_link\">23derevo<\/a><\/noindex>). <\/p>\n<p><\/p>\n<p>N\u00f3s <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/jugru\/blog\/445730\/\">j\u00e1 comentamos<\/a><\/noindex> ) sobre tr\u00eas importantes participantes, fundadores da teoria dos sistemas distribu\u00eddos \u2014 Leslie Lamport, Maurice Herlihy e Michael Scott. \u00c9 hora de falarmos mais detalhadamente sobre toda a programa\u00e7\u00e3o!<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 cabe\u00e7as da hidra. Grande vis\u00e3o geral do programa\" src=\"\/wp-content\/uploads\/2019\/06\/55b262908f46159cbd3638f00772215c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"motivaciya\">Motiva\u00e7\u00e3o<\/h2>\n<p><\/p>\n<p>Se voc\u00ea trabalha com programa\u00e7\u00e3o, certamente lida com concorr\u00eancia e computa\u00e7\u00e3o distribu\u00edda. Especialistas nas \u00e1reas pertinentes trabalham com isso diretamente, mas a distribui\u00e7\u00e3o nos observa em toda parte: em qualquer computador multi-core ou servi\u00e7o distribu\u00eddo, encontrar\u00e1 algo que realiza c\u00e1lculos em paralelo.<\/p>\n<p><\/p>\n<p>Existem muitas confer\u00eancias que exploram aspectos diferentes da programa\u00e7\u00e3o aplicada. Do outro lado do espectro, temos escolas cient\u00edficas especiais que, no formato de palestras, exploram enormes volumes de teorias complexas. Por exemplo, paralelamente \u00e0 Hydra, em S\u00e3o Petersburgo, est\u00e1 ocorrendo <noindex><a rel=\"nofollow\" href=\"https:\/\/sptdc.ru\/?utm_source=habr&amp;utm_medium=453832\">a escola SPTDC<\/a><\/noindex>. <strong>Na confer\u00eancia Hydra, procuramos reunir tanto a pr\u00e1tica rigorosa quanto a ci\u00eancia, e tudo o que est\u00e1 na interse\u00e7\u00e3o delas.<\/strong> <\/p>\n<p><\/p>\n<p>Pense bem: vivemos em uma \u00e9poca surpreendente, onde podemos encontrar ao vivo os fundadores da ci\u00eancia e engenharia com as quais trabalhamos. F\u00edsicos n\u00e3o encontrar\u00e3o Newton ou Einstein \u2014 isso j\u00e1 passou. Mas ao nosso lado ainda vivem aqueles que criaram as bases da teoria dos sistemas distribu\u00eddos, inventaram linguagens de programa\u00e7\u00e3o populares e trouxeram tudo isso \u00e0 vida em prot\u00f3tipos funcionais. Essas pessoas n\u00e3o abandonaram seu trabalho no meio do caminho, est\u00e3o atualmente lidando com quest\u00f5es relevantes em universidades e empresas de renome mundial, e s\u00e3o as maiores fontes de conhecimento e experi\u00eancia hoje. <\/p>\n<p><\/p>\n<p>Por outro lado, a possibilidade de encontr\u00e1-los geralmente permanece puramente te\u00f3rica: poucos de n\u00f3s podem monitorar constantemente eventos p\u00fablicos em alguma universidade de Rochester para depois correr para os EUA e voltar a tempo para a aula com Michael Scott. Visitar todos os participantes da Hydra custaria uma pequena fortuna, sem contar a enorme quantidade de tempo desperdi\u00e7ado (embora isso pare\u00e7a uma miss\u00e3o interessante).<\/p>\n<p><\/p>\n<p>Por outro lado, temos v\u00e1rios engenheiros de ponta que est\u00e3o trabalhando ativamente em problemas relevantes de sistemas distribu\u00eddos e eles com certeza t\u00eam muito a compartilhar. Mas aqui est\u00e1 o problema \u2014 eles <em>trabalham<\/em>, e o tempo deles \u00e9 precioso. Sim, se voc\u00ea trabalha na Microsoft, Google ou JetBrains, a probabilidade de encontrar um dos conhecidos palestrantes em um evento interno aumenta drasticamente, mas, na verdade \u2014 n\u00e3o acontece todo dia.<\/p>\n<p><\/p>\n<p>Assim, a confer\u00eancia Hydra desempenha uma fun\u00e7\u00e3o importante que a maioria de n\u00f3s n\u00e3o consegue realizar sozinha \u2014 re\u00fane em um s\u00f3 lugar e ao mesmo tempo pessoas cujas ideias ou cujo contato pode mudar a sua vida. Admito que nem todos precisam de sistemas distribu\u00eddos, ou de algumas coisas fundamentais complexas. Voc\u00ea pode programar CRUDs em PHP durante toda a vida e ser perfeitamente feliz. Mas para quem precisa \u2014 esta \u00e9 a sua chance.<\/p>\n<p><\/p>\n<p>Desde o primeiro an\u00fancio da confer\u00eancia Hydra no Habr, j\u00e1 se passou bastante tempo. Durante esse per\u00edodo, um enorme trabalho foi realizado \u2014 e aqui estamos, com uma lista de quase todas as palestras. Nada de algoritmos de thread \u00fanica mornos, apenas pura dureza distribu\u00edda! Vamos parar com as palavras gen\u00e9ricas e ver o que temos agora em m\u00e3os.<\/p>\n<p><\/p>\n<h2 id=\"keynouty\">Palestras principais<\/h2>\n<p><\/p>\n<p>As palestras principais come\u00e7am e encerram os dias da confer\u00eancia. Normalmente, o objetivo da palestra de abertura \u00e9 definir o esp\u00edrito e a dire\u00e7\u00e3o da confer\u00eancia. A palestra de encerramento resume tudo e explica como devemos viver com o conhecimento e as habilidades adquiridas durante os dias da confer\u00eancia. O come\u00e7o e o fim: o que ser\u00e1 mais lembrado e, de fato, tem uma import\u00e2ncia maior.<\/p>\n<p><\/p>\n<h3 id=\"cliff-click--the-h2o-distributed-kv-algorithmhttpshydraconfru2019talks1urihjc39wzahcg3lbxbtqutm_sourcehabrutm_medium453832\">Cliff Click \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/1urihjc39wzahcg3lbxbtq\/?utm_source=habr&amp;utm_medium=453832\">O algoritmo H2O K\/V distribu\u00eddo<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 cabe\u00e7as da hidra. Grande vis\u00e3o geral do programa\" src=\"\/wp-content\/uploads\/2019\/06\/2a1b4f1e305a3c4f32dc88e84cfe504f.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Cliff \u00e9 uma lenda no mundo Java. No final dos anos 90, para sua tese de doutorado, ele escreveu um trabalho intitulado <noindex>\u00abCombining Analyses, Combining Optimizations\u00bb<\/noindex>, que ap\u00f3s algum tempo se tornou a base para o HotSpot JVM Server Compiler. Dois anos depois, ele j\u00e1 trabalhava na Sun Microsystems com a JVM e mostrava ao mundo que o JIT tinha raz\u00e3o de existir. Toda essa hist\u00f3ria de que Java \u00e9 um dos ambientes de execu\u00e7\u00e3o mais r\u00e1pidos da atualidade com as otimiza\u00e7\u00f5es mais inteligentes e r\u00e1pidas come\u00e7ou exatamente com Cliff Click. No in\u00edcio, acreditava-se que se algo estava dispon\u00edvel para um compilador est\u00e1tico, n\u00e3o havia nem motivo para tentar jit\u00e1-lo. Gra\u00e7as ao trabalho de Cliff e sua equipe, todas as novas linguagens come\u00e7aram a ser criadas com a ideia de JIT-compila\u00e7\u00e3o por padr\u00e3o. Com certeza, foi um trabalho que n\u00e3o poderia ser realizado por uma \u00fanica pessoa, mas Cliff desempenhou um papel muito importante nisso.<\/p>\n<p><\/p>\n<p>Na palestra de abertura, Cliff falar\u00e1 sobre outro de seus projetos \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/h2oai\/h2o-3\">H20<\/a><\/noindex>, uma plataforma em mem\u00f3ria para aprendizado de m\u00e1quina distribu\u00eddo e escal\u00e1vel para aplica\u00e7\u00f5es industriais. Mais especificamente \u2014 sobre o armazenamento distribu\u00eddo de pares \"chave-valor\" dentro dele. Este \u00e9 um armazenamento muito r\u00e1pido com uma s\u00e9rie de propriedades interessantes (a lista completa est\u00e1 em <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/1urihjc39wzahcg3lbxbtq\/?utm_source=habr&amp;utm_medium=453832\">descri\u00e7\u00e3o<\/a><\/noindex>), que permitem a utiliza\u00e7\u00e3o de solu\u00e7\u00f5es semelhantes na matem\u00e1tica do streaming de grandes dados.<\/p>\n<p><\/p>\n<p>Outra apresenta\u00e7\u00e3o com a qual Cliff ir\u00e1 contribuir \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/2jix5mst7iduyp9linqhfj\/?utm_source=habr&amp;utm_medium=453832\">A experi\u00eancia de mem\u00f3ria transacional de hardware da Azul<\/a><\/noindex>. Outra parte de sua biografia \u2014 dez anos <noindex>de trabalho na Azul<\/noindex>, onde ele atualizou e melhorou muitas coisas no hardware e na pilha tecnol\u00f3gica da Azul: compiladores JIT, ambiente de execu\u00e7\u00e3o, modelo de threads, tratamento de erros, manipula\u00e7\u00e3o de pilhas, interrup\u00e7\u00f5es de hardware, carregamento de classes e assim por diante \u2014 bem, voc\u00ea entendeu.<\/p>\n<p><\/p>\n<p>A parte mais interessante come\u00e7ou quando eles fizeram hardware para grandes empresas \u2014 um supercomputador para executar Java. Foi uma coisa bastante inovadora, feita especialmente para Java, que tem requisitos especiais \u2014 barreiras de mem\u00f3ria para leitura para coleta de lixo de baixa pausa, arrays com verifica\u00e7\u00e3o de limites, chamadas virtuais... Uma das tecnologias mais impressionantes \u2014 mem\u00f3ria transacional de hardware. Todo o L1 de cada um dos 864 n\u00facleos podia participar de uma grava\u00e7\u00e3o transacional, o que \u00e9 especialmente importante para lidar com bloqueios em Java (blocos synchronized podem operar em paralelo, at\u00e9 que haja um verdadeiro conflito de mem\u00f3ria). Mas a solu\u00e7\u00e3o bela se chocou com a dura realidade \u2014 e nesta palestra Cliff ir\u00e1 explicar por que HTM e STM n\u00e3o se adequam muito bem \u00e0s necessidades pr\u00e1ticas de computa\u00e7\u00e3o multithread.<\/p>\n<p><\/p>\n<h3 id=\"michael-scott--dual-data-structureshttpshydraconfru2019talkslnhqpq8cz5kzgjmhlqpicutm_sourcehabrutm_medium453832\">Michael Scott \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/lnhqpq8cz5kzgjmhlqpic\/?utm_source=habr&amp;utm_medium=453832\">Estruturas de dados duais<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 cabe\u00e7as da hidra. Grande vis\u00e3o geral do programa\" src=\"\/wp-content\/uploads\/2019\/06\/5270050098dc1230d469e60362b6930a.jpeg\" style=\"display:block;margin: 0 auto;\" \/> <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Michael_L._Scott\">Michael Scott<\/a><\/noindex> \u2014 professor de Ci\u00eancia da Computa\u00e7\u00e3o na Universidade de Rochester, que est\u00e1 ligado ao seu destino <noindex>h\u00e1 34 anos<\/noindex>, e em sua universidade natal, Wisconsin\u2013Madison, foi reitor durante cinco anos. Ele realiza pesquisas na \u00e1rea de programa\u00e7\u00e3o paralela e distribu\u00edda, bem como na design de linguagens, treinando estudantes nessa \u00e1rea.<\/p>\n<p><\/p>\n<p>O mundo inteiro conhece Michael por seu livro did\u00e1tico <noindex><a rel=\"nofollow\" href=\"https:\/\/www.amazon.com\/Programming-Language-Pragmatics-Michael-Scott\/dp\/0124104096\/ref=sr_1_1?crid=265ZYWXFSUF4&amp;keywords=programming+language+pragmatics&amp;qid=1558916067&amp;s=gateway&amp;sprefix=Programming+Language+Pragmatics%2Caps%2C324&amp;sr=8-1\">\u00abProgramming Language Pragmatics\u00bb<\/a><\/noindex>, cuja \u00faltima edi\u00e7\u00e3o foi publicada relativamente recentemente \u2014 em 2015. Seu trabalho <noindex><a rel=\"nofollow\" href=\"http:\/\/web.mit.edu\/6.173\/www\/currentsemester\/readings\/R06-scalable-synchronization-1991.pdf\">\u00abAlgorithms for scalable synchronization on shared-memory multiprocessors\u00bb<\/a><\/noindex> recebeu <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D1%80%D0%B5%D0%BC%D0%B8%D1%8F_%D0%94%D0%B5%D0%B9%D0%BA%D1%81%D1%82%D1%80%D1%8B\">recebeu o pr\u00eamio Dijkstra<\/a><\/noindex> como um dos mais renomados na \u00e1rea de computa\u00e7\u00e3o distribu\u00edda e <noindex><a rel=\"nofollow\" href=\"https:\/\/www.cs.rochester.edu\/u\/scott\/papers\/1991_TOCS_synch.pdf\">est\u00e1 dispon\u00edvel<\/a><\/noindex> na biblioteca online da Universidade de Rochester. Voc\u00ea tamb\u00e9m pode conhec\u00ea-lo como o autor do famoso algoritmo de Michael-Scott em <noindex><a rel=\"nofollow\" href=\"https:\/\/www.cs.rochester.edu\/u\/scott\/papers\/1996_PODC_queues.pdf\">\u00abSimple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms\u00bb<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>No mundo Java, a situa\u00e7\u00e3o \u00e9 especial: junto com Doug Lea, ele desenvolveu aqueles algoritmos n\u00e3o bloqueantes e filas s\u00edncronas, que s\u00e3o a base das bibliotecas Java. Isso \u00e9 o que abordar\u00e1 a apresenta\u00e7\u00e3o principal \u00abDual data structures\u00bb \u2014 a implementa\u00e7\u00e3o dessas estruturas no Java SE 6 permitiu melhorar a performance em 10 vezes <code>java.util.concurrent.ThreadPoolExecutor<\/code>. Se voc\u00ea j\u00e1 est\u00e1 curioso sobre o que s\u00e3o essas \u00abDual data structures\u00bb, existe um <noindex><a rel=\"nofollow\" href=\"https:\/\/www.cs.rochester.edu\/research\/synchronization\/pseudocode\/duals.html\">trabalho correspondente<\/a><\/noindex>. <\/p>\n<p><\/p>\n<h3 id=\"maurice-herlihy--blockchains-and-the-future-of-distributed-computinghttpshydraconfru2019talks6ayncxk5m9q7g6dn80b7bcutm_sourcehabrutm_medium453832\">Maurice Herlihy \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/6ayncxk5m9q7g6dn80b7bc\/?utm_source=habr&amp;utm_medium=453832\">Blockchains and the future of distributed computing<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 cabe\u00e7as da hidra. Grande vis\u00e3o geral do programa\" src=\"\/wp-content\/uploads\/2019\/06\/807a70783be0a9825a85eca0e73b6a70.jpeg\" style=\"display:block;margin: 0 auto;\" \/> <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Maurice_Herlihy\">Maurice H\u00e9rlihy<\/a><\/noindex> \u2014 detentor de dois pr\u00eamios Dijkstra. O primeiro \u2014 por seu trabalho em <noindex><a rel=\"nofollow\" href=\"https:\/\/cs.brown.edu\/~mph\/Herlihy91\/p124-herlihy.pdf\">\u00abWait-Free Synchronization\u00bb<\/a><\/noindex> (Universidade Brown), e o segundo, mais recente \u2014 <noindex><a rel=\"nofollow\" href=\"http:\/\/courses.cs.vt.edu\/cs5204\/fall09-kafura\/Papers\/TransactionalMemory\/Architecture-Support.pdf\">\u00abTransactional Memory: Architectural Support for Lock-Free Data Structures\u00bb<\/a><\/noindex> (Universidade Virginia Tech). O Pr\u00eamio Dijkstra \u00e9 concedido por trabalhos cuja import\u00e2ncia e impacto foram not\u00e1veis por pelo menos dez anos, e \u00e9 evidente que Maurice \u00e9 um dos especialistas mais reconhecidos na \u00e1rea. Atualmente, ele \u00e9 professor na Universidade Brown e possui muitos feitos que dariam um par\u00e1grafo extenso.<\/p>\n<p><\/p>\n<p>Na apresenta\u00e7\u00e3o principal de encerramento, Maurice falar\u00e1 sobre a teoria e a pr\u00e1tica de sistemas distribu\u00eddos em blockchain do ponto de vista dos cl\u00e1ssicos da computa\u00e7\u00e3o distribu\u00edda e como isso simplifica muitos problemas relacionados. Este \u00e9 um discurso estritamente sobre o tema da confer\u00eancia \u2014 nada sobre o hype da minera\u00e7\u00e3o, mas sim sobre como nosso conhecimento pode ser incrivelmente eficiente e pertinente em v\u00e1rias tarefas.<\/p>\n<p><\/p>\n<p>Em julho de 2017, Maurice j\u00e1 esteve na R\u00fassia para a escola SPTDC, participou de um meetup JUG.ru, e a grava\u00e7\u00e3o pode ser vista no YouTube:<\/p>\n<p>\n<center><div class=\"youtube-placeholder\" data-id=\"S3Fx-7avfs4\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/S3Fx-7avfs4\/hqdefault.jpg\" alt=\"Por que no hosting comum a administra\u00e7\u00e3o do PrestaShop \u00e9 lenta, e no seu n\u00e3o \u00e9?\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><\/p>\n<h2 id=\"osnovnaya-programma\">Programa principal<\/h2>\n<p><\/p>\n<p>A seguir, uma breve vis\u00e3o geral das palestras que fazem parte do programa. Algumas palestras est\u00e3o descritas detalhadamente, enquanto outras \u2014 de forma mais concisa. As descri\u00e7\u00f5es mais longas ficaram, principalmente, para as palestras em ingl\u00eas, que requerem refer\u00eancias a trabalhos cient\u00edficos, termos na Wikip\u00e9dia, e assim por diante. A lista completa pode <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/#schedule\">ser vista no site da confer\u00eancia<\/a><\/noindex>. A lista no site ser\u00e1 atualizada e complementada. <\/p>\n<p><\/p>\n<h3 id=\"leslie-lamport--q--ahttpshydraconfru2019talks6evatt1mvwvpnwfxxveivwutm_sourcehabrutm_medium453832\">Leslie Lamport \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/6evatt1mvwvpnwfxxveivw\/?utm_source=habr&amp;utm_medium=453832\">Perguntas e Respostas<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 cabe\u00e7as da hidra. Grande vis\u00e3o geral do programa\" src=\"\/wp-content\/uploads\/2019\/06\/4c6d5928be31af95cd3e2a7812e86854.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Leslie Lamport \u00e9 autor de obras fundamentais em computa\u00e7\u00e3o distribu\u00edda. <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/LaTeX\">\u00abLaTeX\u00bb<\/a><\/noindex> significa \u00abLamport TeX\u00bb. Foi ele quem, pela primeira vez em 1979, introduziu o conceito <noindex><a rel=\"nofollow\" href=\"http:\/\/lamport.azurewebsites.net\/pubs\/multi.pdf\">consist\u00eancia sequencial<\/a><\/noindex>, e seu artigo <noindex><a rel=\"nofollow\" href=\"http:\/\/lamport.azurewebsites.net\/pubs\/time-clocks.pdf\">\"How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs\"<\/a><\/noindex> recebeu o pr\u00eamio Dijkstra.<\/p>\n<p><\/p>\n<p>Esta \u00e9 a parte mais incomum do programa, pois n\u00e3o se trata nem mesmo de uma palestra, mas de uma sess\u00e3o de perguntas e respostas. Quando uma parte significativa da audi\u00eancia j\u00e1 est\u00e1 familiarizada (ou pode se familiarizar) com os v\u00e1rios trabalhos baseados na \"teoria de Lamport\", seus pr\u00f3prios artigos e palestras, \u00e9 crucial gastar todo o tempo dispon\u00edvel em comunica\u00e7\u00e3o direta.<\/p>\n<p><\/p>\n<p>A ideia \u00e9 simples \u2014 voc\u00ea assiste a dois v\u00eddeos no YouTube: <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/6QsTfL-uXd8\">\u00abA Programa\u00e7\u00e3o Deve Ser Mais Que Codifica\u00e7\u00e3o\u00bb<\/a><\/noindex> e <noindex><a rel=\"nofollow\" href=\"https:\/\/www.heidelberg-laureate-forum.org\/blog\/video\/lecture-monday-september-24-2018-leslie-lamport\/\">\u00abSe Voc\u00ea N\u00e3o Est\u00e1 Escrevendo um Programa, N\u00e3o Use uma Linguagem de Programa\u00e7\u00e3o\u00bb<\/a><\/noindex> e prepara pelo menos uma pergunta, enquanto Leslie responde.<\/p>\n<p><\/p>\n<p>J\u00e1 transformamos o primeiro desses dois v\u00eddeos em um artigo para o hub <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/jugru\/blog\/454898\/\">. Se voc\u00ea n\u00e3o tem uma hora para assistir ao v\u00eddeo, pode rapidamente ler tudo isso em forma de texto.<\/a><\/noindex>Nota: No YouTube h\u00e1 muito mais v\u00eddeos com Leslie Lamport. Por exemplo, h\u00e1 um excelente<\/p>\n<p><\/p>\n<p>. A vers\u00e3o off-line de todo esse curso est\u00e1 na <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=p54W-XOIEF8&amp;list=PLWAv2Etpa7AOAwkreYImYt0gIpOdWQevD\">curso sobre TLA+<\/a><\/noindex>p\u00e1gina inicial do autor <noindex><a rel=\"nofollow\" href=\"http:\/\/lamport.azurewebsites.net\/video\/videos.html\">, e no YouTube ele disponibilizou para uma visualiza\u00e7\u00e3o mais conveniente em dispositivos m\u00f3veis.<\/a><\/noindex>Martin Kleppmann \u2014<\/p>\n<p><\/p>\n<h3 id=\"martin-kleppmann--syncing-data-across-user-devices-for-distributed-collaborationhttpshydraconfru2019talks6i4lkw8pwjnadgff5ylr11utm_sourcehabrutm_medium453832\">Sincronizando dados entre dispositivos dos usu\u00e1rios para colabora\u00e7\u00e3o distribu\u00edda <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/6i4lkw8pwjnadgff5ylr11\/?utm_source=habr&amp;utm_medium=453832\">Martin Kleppmann \u00e9 pesquisador na Universidade de Cambridge, trabalhando em CRDT e verifica\u00e7\u00e3o formal de algoritmos. O livro de Martin<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 cabe\u00e7as da hidra. Grande vis\u00e3o geral do programa\" src=\"\/wp-content\/uploads\/2019\/06\/09af25ab1ce915ba13ec6ee1013878f6.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u00abDesigning Data-Intensive Applications\u00bb <noindex>, publicado em 2017, foi muito sucessoso e entrou nas listas de bestsellers na \u00e1rea de armazenamento e processamento de dados. Kevin Scott, CTO na Microsoft,<\/noindex>disse uma vez <noindex><a rel=\"nofollow\" href=\"https:\/\/martin.kleppmann.com\/2017\/03\/27\/designing-data-intensive-applications.html\">: \u00abEste livro deve ser obrigat\u00f3rio para engenheiros desenvolvedores. \u00c9 um recurso raro que une teoria e pr\u00e1tica, ajudando desenvolvedores a projetar e implementar de forma mais inteligente a infraestrutura e os sistemas de processamento de dados\u00bb. Algo semelhante foi dito tamb\u00e9m pelo criador do Kafka e CTO da Confluent, Jay Kreps.<\/a><\/noindex>: \u00abEste livro deve ser obrigat\u00f3rio para engenheiros de desenvolvimento. \u00c9 um recurso raro que une teoria e pr\u00e1tica, ajudando os desenvolvedores a projetar e implementar de forma mais inteligente a infraestrutura e os sistemas de processamento de dados\u00bb. Algo semelhante foi dito pelo criador do Kafka e CTO da Confluent, Jay Kreps.<\/p>\n<p><\/p>\n<p>Antes de se dedicar \u00e0 pesquisa acad\u00eamica, Martin trabalhou na ind\u00fastria e co-fundou duas startups de sucesso:<\/p>\n<p><\/p>\n<ul>\n<li>Rapportive, que se dedicava a exibir o perfil social de contatos a partir do seu e-mail, foi adquirida pelo LinkedIn em 2012;<\/li>\n<li>Go Test It, um servi\u00e7o para teste autom\u00e1tico de websites em diferentes navegadores, que foi adquirido pela RedGate em 2009.<\/li>\n<\/ul>\n<p><\/p>\n<p>Em geral, Martin, embora menos conhecido que nossos palestrantes principais, j\u00e1 conseguiu contribuir para o desenvolvimento da computa\u00e7\u00e3o distribu\u00edda e da ind\u00fastria.<\/p>\n<p><\/p>\n<p>Nesta palestra, Martin falar\u00e1 sobre um tema mais pr\u00f3ximo de suas pesquisas acad\u00eamicas. No Google Docs e em softwares semelhantes para edi\u00e7\u00e3o colaborativa de documentos, 'edi\u00e7\u00e3o colaborativa' se refere \u00e0 tarefa de replica\u00e7\u00e3o: cada usu\u00e1rio possui sua pr\u00f3pria r\u00e9plica do documento compartilhado, que depois \u00e9 modificada, e todas as altera\u00e7\u00f5es s\u00e3o disseminadas pela rede para os outros participantes. Mudan\u00e7as em documentos offline levam a uma inconsist\u00eancia tempor\u00e1ria do documento em rela\u00e7\u00e3o aos outros participantes, e a re-sincroniza\u00e7\u00e3o requer tratamento de conflitos. \u00c9 justamente para isso que existem <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Conflict-free_replicated_data_type\">Tipos de Dados Replicados Sem Conflito<\/a><\/noindex> (CRDT), que \u00e9, em ess\u00eancia, uma coisa relativamente nova, cuja ess\u00eancia foi formulada apenas em 2011. Esta palestra discute o que aconteceu desde ent\u00e3o no mundo dos CRDT, quais s\u00e3o as conquistas mais recentes, o enfoque na cria\u00e7\u00e3o de aplicativos com prioridade para o local e o uso da biblioteca de c\u00f3digo aberto <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/automerge\/automerge\">Automerge<\/a><\/noindex> em particular.<\/p>\n<p><\/p>\n<blockquote><p>Na pr\u00f3xima semana, publicaremos uma grande entrevista com Martin no Habr, ser\u00e1 interessante.<\/p><\/blockquote>\n<p><\/p>\n<h3 id=\"pedro-ramalhete--wait-free-data-structures-and-wait-free-transactionshttpshydraconfru2019talks1jwmdzkmjcalsclwavttxkutm_sourcehabrutm_medium453832\">Pedro Ramalhete \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/1jwmdzkmjcalsclwavttxk\/?utm_source=habr&amp;utm_medium=453832\">Estruturas de Dados Sem Espera e Transa\u00e7\u00f5es Sem Espera<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 cabe\u00e7as da hidra. Grande vis\u00e3o geral do programa\" src=\"\/wp-content\/uploads\/2019\/06\/be9b98f5ab95d0f6646dfcb4cee38978.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Pedro trabalha na Cisco e desenvolve algoritmos paralelos h\u00e1 cerca de dez anos, incluindo mecanismos de sincroniza\u00e7\u00e3o, estruturas de dados sem bloqueio e sem espera, e tudo que voc\u00ea pode imaginar sobre o tema. Seus interesses acad\u00eamicos e de engenharia atuais est\u00e3o focados em Constru\u00e7\u00f5es Universais, Mem\u00f3ria Transacional de Software, Mem\u00f3ria Persistente e tecnologias semelhantes que permitem a implementa\u00e7\u00e3o de aplica\u00e7\u00f5es corretas, escal\u00e1veis e tolerantes a falhas. Al\u00e9m disso, ele \u00e9 autor de um blog amplamente conhecido em c\u00edrculos restritos <noindex><a rel=\"nofollow\" href=\"http:\/\/concurrencyfreaks.blogspot.com\/\">Concurrency Freaks<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Nas estruturas de dados paralelas, a maioria das aplica\u00e7\u00f5es multithread atualmente opera, desde o uso de filas de mensagens entre atores at\u00e9 estruturas de dados indexadas em armazenamentos de chave-valor. No Java JDK, elas funcionam com sucesso h\u00e1 muitos anos, e no C++ est\u00e3o sendo incorporadas gradualmente.<\/p>\n<p><\/p>\n<p>A maneira mais simples de implementar uma estrutura de dados paralela \u00e9 por meio de uma implementa\u00e7\u00e3o sequencial (monothread), onde os m\u00e9todos s\u00e3o protegidos por mutexes. Isso est\u00e1 ao alcance de qualquer iniciante, mas apresenta problemas evidentes de escalabilidade e desempenho. Ao mesmo tempo, estruturas de dados lock-free e wait-free n\u00e3o apenas lidam melhor com erros, mas tamb\u00e9m t\u00eam um perfil de desempenho mais favor\u00e1vel \u2014 no entanto, o desenvolvimento delas requer uma profunda especializa\u00e7\u00e3o e adapta\u00e7\u00e3o ao uso espec\u00edfico. Uma \u00fanica linha de c\u00f3digo incorreta pode quebrar tudo.<\/p>\n<p><\/p>\n<p>Como garantir que mesmo um n\u00e3o especialista consiga projetar e implementar essas estruturas de dados? Sabe-se que qualquer algoritmo sequencial pode ser tornado seguro para threads atrav\u00e9s de <noindex><a rel=\"nofollow\" href=\"https:\/\/hal.inria.fr\/hal-01397265v1\/document\">uma constru\u00e7\u00e3o universal<\/a><\/noindex>, ou mem\u00f3ria transacional. Ambos podem reduzir a barreira de entrada para resolver essa tarefa. Contudo, as duas solu\u00e7\u00f5es geralmente levam a implementa\u00e7\u00f5es ineficazes. Pedro falar\u00e1 sobre como conseguiram tornar essas constru\u00e7\u00f5es mais eficientes e como podem ser utilizadas em seus algoritmos.<\/p>\n<p><\/p>\n<h3 id=\"heidi-howard---liberating-distributed-consensushttpshydraconfru2019talks5z2xknkq9mozvqzhhgfoeiutm_sourcehabrutm_medium453832\">Heidi Howard \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/5z2xknkq9mozvqzhhgfoei\/?utm_source=habr&amp;utm_medium=453832\">Liberando consenso distribu\u00eddo<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 cabe\u00e7as da hidra. Grande vis\u00e3o geral do programa\" src=\"\/wp-content\/uploads\/2019\/06\/09dd05684fde1015a87818f0b6804680.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Heidi Howard \u2014 assim como Martin, \u00e9 pesquisadora em sistemas distribu\u00eddos na Universidade de Cambridge. Sua especializa\u00e7\u00e3o abrange consist\u00eancia, toler\u00e2ncia a falhas, desempenho e consenso distribu\u00eddo. Ela \u00e9 mais conhecida por generalizar o algoritmo Paxos chamado <noindex><a rel=\"nofollow\" href=\"https:\/\/fpaxos.github.io\/\">Paxos Flex\u00edvel<\/a><\/noindex>. <\/p>\n<p><\/p>\n<p>Lembramos que <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Paxos_(computer_science)\">Paxos<\/a><\/noindex> \u2014 uma fam\u00edlia de protocolos para resolver o problema de consenso em redes de computadores n\u00e3o confi\u00e1veis, baseando-se no trabalho de Leslie Lamport. Assim, alguns de nossos palestrantes est\u00e3o trabalhando em problemas inicialmente propostos por outros de nossos palestrantes \u2014 e isso \u00e9 maravilhoso.<\/p>\n<p><\/p>\n<p>A capacidade de encontrar consenso entre v\u00e1rios hosts \u2014 para endere\u00e7amento, escolha de l\u00edder, bloqueio ou coordena\u00e7\u00e3o \u2014 \u00e9 uma quest\u00e3o fundamental dos sistemas distribu\u00eddos modernos. Atualmente, o Paxos \u00e9 o principal m\u00e9todo para resolver problemas de consenso, e muitas pesquisas s\u00e3o realizadas em torno dele para expandir e otimizar o algoritmo para diferentes necessidades pr\u00e1ticas. <\/p>\n<p><\/p>\n<p>Neste artigo, revisaremos a base te\u00f3rica do Paxos, suavizando os requisitos iniciais e generalizando o algoritmo. Veremos que o Paxos \u00e9, na verdade, apenas uma das op\u00e7\u00f5es em um vasto espectro de abordagens para o consenso, e que outros pontos do espectro tamb\u00e9m s\u00e3o bastante \u00fateis para construir bons sistemas distribu\u00eddos.<\/p>\n<p><\/p>\n<h3 id=\"alex-petrov--reduce-your-storage-costs-with-transient-replication-and-cheap-quorumshttpshydraconfru2019talks6eb39udg8bxsgmimkexd6jutm_sourcehabrutm_medium453832\">Alex Petrov \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/6eb39udg8bxsgmimkexd6j\/?utm_source=habr&amp;utm_medium=453832\">Reduza seus custos de armazenamento com Replica\u00e7\u00e3o Transit\u00f3ria e Quorum Barato<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 cabe\u00e7as da hidra. Grande vis\u00e3o geral do programa\" src=\"\/wp-content\/uploads\/2019\/06\/178a1db3cf49b5ff73a0c9101ab3845c.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Alex \u00e9 especialista em bancos de dados e sistemas de armazenamento, e o que \u00e9 mais importante para n\u00f3s \u2014 comitente em <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Apache_Cassandra\">Cassandra<\/a><\/noindex>. Juntamente com O'Reilly, ele est\u00e1 trabalhando atualmente no livro Database Internals.<\/p>\n<p><\/p>\n<p>Para sistemas com <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Eventual_consistency\">consist\u00eancia eventual<\/a><\/noindex> (em terminologia de l\u00edngua russa \u2014 \"consist\u00eancia em \u00faltima inst\u00e2ncia\"), ap\u00f3s a falha de um n\u00f3 ou separa\u00e7\u00e3o de rede, \u00e9 necess\u00e1rio resolver o seguinte dilema: continuar processando requisi\u00e7\u00f5es, sacrificando a consist\u00eancia, ou recusar seu processamento e sacrificar a disponibilidade. Em tal sistema, quoruns, subconjuntos sobrepostos de n\u00f3s que garantem que pelo menos um n\u00f3 conter\u00e1 o valor mais recente, podem se tornar uma boa solu\u00e7\u00e3o de limite. \u00c9 poss\u00edvel suportar falhas e perda de conex\u00e3o com certos n\u00f3s, continuando a responder com os valores mais recentes.<\/p>\n<p><\/p>\n<p>No entanto, tudo tem seu pre\u00e7o. O esquema de replica\u00e7\u00e3o baseado em quorum implica um aumento nos custos de armazenamento: \u00e9 necess\u00e1rio manter dados redundantes em v\u00e1rios n\u00f3s simultaneamente para garantir uma quantidade suficiente de c\u00f3pias dispon\u00edveis no momento em que o problema ocorrer. Descobre-se que n\u00e3o \u00e9 necess\u00e1rio armazenar todos os dados em todas as r\u00e9plicas. \u00c9 poss\u00edvel reduzir a carga no armazenamento, mantendo dados apenas em parte dos n\u00f3s e utilizando n\u00f3s especiais (Replica Transit\u00f3ria) para cen\u00e1rios de tratamento de falhas.<\/p>\n<p><\/p>\n<p>Ao longo do artigo, examinaremos <noindex><a rel=\"nofollow\" href=\"http:\/\/citeseerx.ist.psu.edu\/viewdoc\/download?doi=10.1.1.146.3429&amp;rep=rep1&amp;type=pdf\">R\u00e9plicas Testemunhas<\/a><\/noindex>, um esquema de replica\u00e7\u00e3o utilizado em <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Spanner_(database)\">Spanner<\/a><\/noindex> e <noindex><a rel=\"nofollow\" href=\"http:\/\/cidrdb.org\/cidr2011\/Papers\/CIDR11_Paper32.pdf\">Megastore<\/a><\/noindex>, e a implementa\u00e7\u00e3o deste conceito no Apache Cassandra sob os nomes de <noindex><a rel=\"nofollow\" href=\"https:\/\/jira.apache.org\/jira\/browse\/CASSANDRA-14404?subTaskView=all\">Replica\u00e7\u00e3o Transit\u00f3ria &amp; Quoruns Baratos<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h3 id=\"dmitriy-vyukov---goroutines-exposedhttpshydraconfru2019talks7336ginp0kke7n4yxxjvldutm_sourcehabrutm_medium453832\">Dmitry Vyukov \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/7336ginp0kke7n4yxxjvld\/?utm_source=habr&amp;utm_medium=453832\">Goroutines expostas<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 cabe\u00e7as da hidra. Grande vis\u00e3o geral do programa\" src=\"\/wp-content\/uploads\/2019\/06\/94ce38f8cc366bbd2ee53b9636e4650d.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Dmitri \u00e9 um desenvolvedor no Google, trabalhando com testes din\u00e2micos em C\/C++ e Go \u2014 Address\/Memory\/ThreadSanitizer, e em ferramentas semelhantes para o n\u00facleo do Linux. Contribuiu para o Go com um planejador escal\u00e1vel de goroutines, um poller de rede e um coletor de lixo paralelo. \u00c9 especialista em multithreading, autor de uma d\u00fazia de novos algoritmos n\u00e3o bloqueantes e detentor. <noindex><a rel=\"nofollow\" href=\"https:\/\/software.intel.com\/en-us\/blackbelt\">Cintur\u00e3o Preto<\/a><\/noindex> Intel.<\/p>\n<p><\/p>\n<p>Agora um pouco sobre a palestra. A linguagem Go possui suporte nativo para multithreading na forma de goroutines (threads leves) e canais (filas FIFO). Gra\u00e7as a esses mecanismos, \u00e9 muito f\u00e1cil e agrad\u00e1vel para os usu\u00e1rios escrever aplicativos multithread modernos, e isso parece m\u00e1gica. Como sabemos, n\u00e3o h\u00e1 m\u00e1gica aqui. Nesta palestra, Dmitri se aprofundar\u00e1 nas nuances do funcionamento do planejador do Go e mostrar\u00e1 os segredos da implementa\u00e7\u00e3o dessa \"m\u00e1gica\". Primeiro, ele dar\u00e1 uma vis\u00e3o geral dos principais componentes do planejador e explicar\u00e1 como funciona. Em seguida, nos familiarizaremos mais com aspectos individuais, como estrat\u00e9gias de estacionamento\/desestacionamento e o tratamento de chamadas de sistema bloqueantes. Por fim, Dmitri falar\u00e1 um pouco sobre poss\u00edveis melhorias no planejador.<\/p>\n<p><\/p>\n<h3 id=\"dmitriy-bugaychenko---uskoryaem-raspredelennyy-analiz-grafov-s-pomoschyu-veroyatnostnyh-sketchey-i-ne-tolkohttpshydraconfru2019talks1po7b00j6m4vst3df7aqtoutm_sourcehabrutm_medium453832\">Dmitri Bugaychenko \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/1po7b00j6m4vst3df7aqto\/?utm_source=habr&amp;utm_medium=453832\">Acelerando a an\u00e1lise distribu\u00edda de grafos com esbo\u00e7os probabil\u00edsticos e n\u00e3o s\u00f3<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 cabe\u00e7as da hidra. Grande vis\u00e3o geral do programa\" src=\"\/wp-content\/uploads\/2019\/06\/f963ef8ac1a37011aa387016dc938b3c.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Dmitri trabalhou quase 9 anos em outsourcing, mantendo contato com a universidade e o meio acad\u00eamico. A an\u00e1lise de grandes dados na Odnoklassniki proporcionou a ele uma oportunidade \u00fanica de unir forma\u00e7\u00e3o te\u00f3rica e base cient\u00edfica com o desenvolvimento de produtos reais e demandados.<\/p>\n<p><\/p>\n<p>A an\u00e1lise distribu\u00edda de grafos tem sido e continua sendo um desafio complexo: quando h\u00e1 necessidade de obter informa\u00e7\u00f5es sobre as rela\u00e7\u00f5es de um v\u00e9rtice vizinho, os dados frequentemente precisam ser transferidos entre m\u00e1quinas, o que leva ao aumento do tempo de execu\u00e7\u00e3o e \u00e0 carga na infraestrutura de rede. Nesta palestra, veremos como \u00e9 poss\u00edvel obter um aumento significativo na efici\u00eancia do processamento, utilizando estruturas de dados probabil\u00edsticas ou fatos como a simetria do grafo de amizade em redes sociais. Tudo isso \u00e9 ilustrado com exemplos de c\u00f3digo em Apache Spark.<\/p>\n<p><\/p>\n<h3 id=\"denis-ryscov--reduce-your-storage-costs-with-transient-replication-and-cheap-quorumshttpshydraconfru2019talks5e3yibth8vha0jbyoywpm6utm_sourcehabrutm_medium453832\">Denis Ryscov \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/5e3yibth8vha0jbyoywpm6\/?utm_source=habr&amp;utm_medium=453832\">Reduza seus custos de armazenamento com Replica\u00e7\u00e3o Transit\u00f3ria e Quorum Barato<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 cabe\u00e7as da hidra. Grande vis\u00e3o geral do programa\" src=\"\/wp-content\/uploads\/2019\/06\/700bfb1a35280932f654a9c34413e2d4.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Denis \u00e9 um desenvolvedor <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Cosmos_DB\">Cosmos DB<\/a><\/noindex>, especialista em verifica\u00e7\u00e3o de modelos de consist\u00eancia, em algoritmos de consenso e em transa\u00e7\u00f5es distribu\u00eddas. Atualmente, trabalha na Microsoft, tendo antes atuado em sistemas distribu\u00eddos na Amazon e no Yandex.<\/p>\n<p><\/p>\n<p>Nesta apresenta\u00e7\u00e3o, vamos explorar os protocolos de transa\u00e7\u00f5es distribu\u00eddas desenvolvidos nos \u00faltimos anos, que podem ser implementados no lado do cliente sobre qualquer armazenamento de dados que suporte atualiza\u00e7\u00e3o condicional (compare and set). O ponto \u00e9 que a vida n\u00e3o termina com o commit de duas fases; transa\u00e7\u00f5es podem ser adicionadas sobre quaisquer bancos de dados \u2014 no n\u00edvel do aplicativo, mas diferentes protocolos (2PC, Percolator, RAMP) t\u00eam diferentes trade-offs e n\u00e3o s\u00e3o proporcionados gratuitamente.<\/p>\n<p><\/p>\n<h3 id=\"aleksey-zinovev--ne-vse-ml-algoritmy-popadayut-v-raspredelennyy-rayhttpshydraconfru2019talks3jd0bgsoa0qtcijgblidjsutm_sourcehabrutm_medium453832\">Aleksei Zinovyev \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/3jd0bgsoa0qtcijgblidjs\/?utm_source=habr&amp;utm_medium=453832\">Nem todos os algoritmos de ML chegam ao para\u00edso distribu\u00eddo<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 cabe\u00e7as da hidra. Grande vis\u00e3o geral do programa\" src=\"\/wp-content\/uploads\/2019\/06\/eb412d59dec5dcc4a04f603b32d12575.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Aleksei (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/zaleslaw\/\" class=\"user_link\">zaleslaw<\/a><\/noindex>) \u2014 nosso antigo palestrante e membro de comit\u00eas de programa em outras confer\u00eancias. Treinador ativo na EPAM Systems, e trabalha com Hadoop\/Spark e outras tecnologias de big data desde 2012.<\/p>\n<p><\/p>\n<p>Nesta apresenta\u00e7\u00e3o, Aleksei discutir\u00e1 os problemas de adapta\u00e7\u00e3o de algoritmos cl\u00e1ssicos de aprendizado de m\u00e1quina para execu\u00e7\u00e3o em modo distribu\u00eddo com base em sua experi\u00eancia com Apache Spark ML, Apache Mahout, Apache Flink ML e na cria\u00e7\u00e3o do Apache Ignite ML. Aleksei tamb\u00e9m falar\u00e1 sobre a implementa\u00e7\u00e3o de algoritmos de ML distribu\u00eddos nesses frameworks.<\/p>\n<p><\/p>\n<p>E para concluir \u2014 duas palestras da Yandex sobre o Yandex Database.<\/p>\n<p><\/p>\n<h3 id=\"vladislav-kuznecov--yandex-database--kak-my-obespechivaem-otkazoustoychivosthttpshydraconfru2019talksmuxomfgqembsb3st7i3ciutm_sourcehabrutm_medium453832\">Vladislav Kuznetsov \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/muxomfgqembsb3st7i3ci\/?utm_source=habr&amp;utm_medium=453832\">Yandex Database \u2014 como garantimos a resist\u00eancia a falhas<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 cabe\u00e7as da hidra. Grande vis\u00e3o geral do programa\" src=\"\/wp-content\/uploads\/2019\/06\/3bdb3bec0ec0eb71db373e85afad6260.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Vladislav \u00e9 desenvolvedor no Yandex no grupo de plataforma distribu\u00edda. O Yandex Database \u00e9 um SGBD geograficamente distribu\u00eddo e escal\u00e1vel horizontalmente, resistente a falhas de discos, servidores, racks e datacenters sem violar a consist\u00eancia. Para garantir a resist\u00eancia a falhas, \u00e9 aplicado um algoritmo pr\u00f3prio para alcan\u00e7ar consenso distribu\u00eddo, al\u00e9m de v\u00e1rias solu\u00e7\u00f5es t\u00e9cnicas que s\u00e3o detalhadas na apresenta\u00e7\u00e3o. Esta apresenta\u00e7\u00e3o pode ser interessante tanto para desenvolvedores de SGBDs quanto para desenvolvedores de solu\u00e7\u00f5es aplicacionais baseadas em SGBDs.<br clear=\"all\">\n<\/p>\n<p><\/p>\n<h3 id=\"semen-checherinda--raspredelennye-tranzakcii-v-ydbhttpshydraconfru2019talks3ubxfwi4ikpxdjcdqswjihutm_sourcehabrutm_medium453832\">Semyon Checherynda \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/3ubxfwi4ikpxdjcdqswjih\/?utm_source=habr&amp;utm_medium=453832\">Transa\u00e7\u00f5es distribu\u00eddas no YDB<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 cabe\u00e7as da hidra. Grande vis\u00e3o geral do programa\" src=\"\/wp-content\/uploads\/2019\/06\/0cf2b40fcabfba1a774f00c9f245b8f1.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Semyon \u00e9 desenvolvedor no grupo de plataforma distribu\u00edda no Yandex, e trabalha na possibilidade de uso multi-inquilino da instala\u00e7\u00e3o do YDB.<\/p>\n<p><\/p>\n<p>O Yandex Database \u00e9 projetado para consultas OLTP e atende aos requisitos ACID de sistemas transacionais. Este relat\u00f3rio abordar\u00e1 o algoritmo de planejamento de transa\u00e7\u00f5es que est\u00e1 na base do sistema de transa\u00e7\u00f5es YDB. Analisaremos quais entidades est\u00e3o envolvidas nas transa\u00e7\u00f5es, quem atribui a ordem global \u00e0s transa\u00e7\u00f5es, como a atomicidade, confiabilidade e um n\u00edvel rigoroso de isolamento s\u00e3o alcan\u00e7ados. Por meio de um exemplo comum, discutiremos implementa\u00e7\u00f5es de transa\u00e7\u00f5es utilizando commit em duas fases e transa\u00e7\u00f5es determin\u00edsticas. Abordaremos suas diferen\u00e7as.<\/p>\n<p><\/p>\n<h2 id=\"chto-dalshe\">E agora?<\/h2>\n<p><\/p>\n<p>O programa da confer\u00eancia continua a ser preenchido com novas apresenta\u00e7\u00f5es. Especificamente, aguardamos uma apresenta\u00e7\u00e3o de <strong>Nikita Koval<\/strong> (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/ndkoval\/\" class=\"user_link\">ndkoval<\/a><\/noindex>) da JetBrains e <strong>Oleg Anastasyev<\/strong> (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/m0nstermind\/\" class=\"user_link\">m0nstermind<\/a><\/noindex>) da empresa Odnoklassniki. Nikita trabalha com algoritmos para corrotinas na equipe Kotlin, enquanto Oleg desenvolve a arquitetura e solu\u00e7\u00f5es para sistemas de alta carga na plataforma da Odnoklassniki. Al\u00e9m disso, h\u00e1 mais 1 slot condicionalmente vazio, com candidatos com os quais o comit\u00ea programador est\u00e1 trabalhando agora.<\/p>\n<p><\/p>\n<p>A confer\u00eancia Hydra ocorrer\u00e1 nos dias 11 e 12 de julho em S\u00e3o Petersburgo. Os ingressos podem ser <noindex>para compra no site oficial<\/noindex>. Ressaltamos a disponibilidade de ingressos online \u2014 caso voc\u00ea, por algum motivo, n\u00e3o possa chegar a S\u00e3o Petersburgo pessoalmente nesses dias.<\/p>\n<p><\/p>\n<p>Nos encontramos na Hydra!<\/p>\n<p>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/jugru\/blog\/453832\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>11-12 \u0438\u044e\u043b\u044f \u0432 \u0421\u0430\u043d\u043a\u0442-\u041f\u0435\u0442\u0435\u0440\u0431\u0443\u0440\u0433\u0435 \u0441\u043e\u0441\u0442\u043e\u0438\u0442\u0441\u044f \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f Hydra, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u0430\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0445 \u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c. \u0424\u0438\u0448\u043a\u0430 \u0413\u0438\u0434\u0440\u044b \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d\u0430 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u043a\u0440\u0443\u0442\u044b\u0445 \u0443\u0447\u0451\u043d\u044b\u0445 (\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u0431\u044b\u0447\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0437\u0430\u0440\u0443\u0431\u0435\u0436\u043d\u044b\u0445 \u043d\u0430\u0443\u0447\u043d\u044b\u0445 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f\u0445) \u0438 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0445 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0443\u044e\u0449\u0438\u0445 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432, \u0432 \u043e\u0434\u043d\u0443 \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u043d\u0430 \u0441\u0442\u044b\u043a\u0435 \u043d\u0430\u0443\u043a\u0438 \u0438 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438. Hydra \u2014 \u043e\u0434\u043d\u0430 \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0432\u0430\u0436\u043d\u044b\u0445 \u043d\u0430\u0448\u0438\u0445 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0439 \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":26388,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-35091","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"11-12 \u0438\u044e\u043b\u044f \u0432 \u0421\u0430\u043d\u043a\u0442-\u041f\u0435\u0442\u0435\u0440\u0431\u0443\u0440\u0433\u0435 \u0441\u043e\u0441\u0442\u043e\u0438\u0442\u0441\u044f \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f Hydra, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u0430\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0445 \u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/19-golov-gidry-bolshoj-obzor-programmy\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd4719 \u0433\u043e\u043b\u043e\u0432 \u0433\u0438\u0434\u0440\u044b. \u0411\u043e\u043b\u044c\u0448\u043e\u0439 \u043e\u0431\u0437\u043e\u0440 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"11-12 \u0438\u044e\u043b\u044f \u0432 \u0421\u0430\u043d\u043a\u0442-\u041f\u0435\u0442\u0435\u0440\u0431\u0443\u0440\u0433\u0435 \u0441\u043e\u0441\u0442\u043e\u0438\u0442\u0441\u044f \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f Hydra, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u0430\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0445 \u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/19-golov-gidry-bolshoj-obzor-programmy\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:02:18+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:02:18+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47 19 cabe\u00e7as da hidra. Uma vis\u00e3o geral abrangente do programa | ProHoster","description":"Nos dias 11 e 12 de julho, ocorrer\u00e1 a confer\u00eancia Hydra em S\u00e3o Petersburgo, dedicada ao desenvolvimento de paralelismo e sistemas distribu\u00eddos.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/19-golov-gidry-bolshoj-obzor-programmy","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd4719 \u0433\u043e\u043b\u043e\u0432 \u0433\u0438\u0434\u0440\u044b. \u0411\u043e\u043b\u044c\u0448\u043e\u0439 \u043e\u0431\u0437\u043e\u0440 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b | ProHoster","og:description":"11-12 \u0438\u044e\u043b\u044f \u0432 \u0421\u0430\u043d\u043a\u0442-\u041f\u0435\u0442\u0435\u0440\u0431\u0443\u0440\u0433\u0435 \u0441\u043e\u0441\u0442\u043e\u0438\u0442\u0441\u044f \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f Hydra, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u0430\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0445 \u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445.","og:url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/19-golov-gidry-bolshoj-obzor-programmy","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:02:18+00:00","article:modified_time":"2019-10-31T19:02:18+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35091","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 21:48:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:10:27","updated":"2026-01-21 21:48:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/35091","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=35091"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/35091\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/26388"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=35091"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=35091"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=35091"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}