{"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\/es\/blog\/administrirovanie\/19-golov-gidry-bolshoj-obzor-programmy","title":{"rendered":"19 cabezas de hidra. Gran revisi\u00f3n del programa","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>La conferencia se llevar\u00e1 a cabo en San Petersburgo del 11 al 12 de julio <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/?utm_source=habr&amp;utm_medium=453832\">Hydra<\/a><\/noindex>, dedicada al desarrollo de sistemas paralelos y distribuidos. La caracter\u00edstica de Hydra es que re\u00fane a grandes cient\u00edficos (que generalmente solo se pueden encontrar en conferencias cient\u00edficas en el extranjero) y a destacados ingenieros pr\u00e1cticos en un mismo programa que mezcla ciencia y pr\u00e1ctica.<\/p>\n<p><\/p>\n<p>Hydra es una de nuestras conferencias m\u00e1s importantes de los \u00faltimos a\u00f1os. Su preparaci\u00f3n fue muy seria, con la selecci\u00f3n de ponentes y presentaciones. La semana pasada se public\u00f3 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/jugru\/blog\/453952\/\">una entrevista en Habr<\/a><\/noindex> con el director de 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>Nosotros <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/jugru\/blog\/445730\/\">ya hemos hablado<\/a><\/noindex> ) sobre tres importantes participantes, fundadores de la teor\u00eda de sistemas distribuidos: Leslie Lamport, Maurice Herlihy y Michael Scott. \u00a1Es hora de hablar en detalle sobre todo el programa!<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 cabezas de hidra. Gran revisi\u00f3n del 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\">Motivaci\u00f3n<\/h2>\n<p><\/p>\n<p>Si te dedicas a la programaci\u00f3n, de una forma u otra te enfrentas a la multiprocesaci\u00f3n y al c\u00f3mputo distribuido. Los especialistas en los campos correspondientes trabajan directamente con ellos, pero la distribuci\u00f3n se asoma indirectamente en todas partes: en cualquier computadora multin\u00facleo o servicio distribuido siempre hay algo que ejecuta c\u00e1lculos en paralelo.<\/p>\n<p><\/p>\n<p>Existen muchas conferencias que abordan diferentes aspectos de la programaci\u00f3n aplicada. Al otro lado del espectro, tenemos escuelas cient\u00edficas especializadas que, en forma de conferencias, desvelan grandes vol\u00famenes de teor\u00eda compleja. Por ejemplo, simult\u00e1neamente con Hydra, en San Petersburgo se lleva a cabo <noindex><a rel=\"nofollow\" href=\"https:\/\/sptdc.ru\/?utm_source=habr&amp;utm_medium=453832\">la escuela SPTDC.<\/a><\/noindex>. <strong>En la conferencia Hydra nos esforzamos por combinar tanto la dura pr\u00e1ctica como la ciencia, y todo lo que se encuentra en su intersecci\u00f3n.<\/strong> <\/p>\n<p><\/p>\n<p>Reflexiona sobre esto: vivimos en un tiempo extraordinario en el que es posible conocer en persona a los fundadores del campo de la ciencia y la ingenier\u00eda en el que trabajamos. Los f\u00edsicos no conocer\u00e1n a Newton ni a Einstein; el tren ya parti\u00f3. Pero a\u00fan hay quienes establecieron las bases de la teor\u00eda de los sistemas distribuidos, inventaron lenguajes de programaci\u00f3n populares y llevaron todo esto a prototipos funcionales. Estas personas no abandonaron su trabajo a medias, est\u00e1n trabajando actualmente en problemas relevantes en universidades y compa\u00f1\u00edas de renombre mundial, y son las mayores fuentes de conocimiento y experiencia en la actualidad. <\/p>\n<p><\/p>\n<p>Por otro lado, la posibilidad de encontrarse con ellos generalmente queda en el terreno de lo te\u00f3rico: pocos de nosotros podemos monitorear constantemente eventos p\u00fablicos en alguna universidad de Rochester y luego hacer un viaje r\u00e1pido a EE. UU. y volver a la conferencia de Michael Scott. Visitar a todos los participantes de Hydra costar\u00eda una peque\u00f1a fortuna, sin contar la gran cantidad de tiempo perdido (aunque suena como una aventura interesante).<\/p>\n<p><\/p>\n<p>Por otro lado, tenemos muchos ingenieros destacados que est\u00e1n trabajando en problemas actuales de sistemas distribuidos, y definitivamente tienen mucho que contar. Pero el problema es que ellos, <em>operan<\/em>, y su tiempo es valioso. S\u00ed, si eres empleado de Microsoft, Google o JetBrains, la probabilidad de encontrarte a uno de los ponentes conocidos en un evento interno aumenta dr\u00e1sticamente, pero en general, no es algo que suceda a diario.<\/p>\n<p><\/p>\n<p>As\u00ed, la conferencia Hydra cumple una importante funci\u00f3n que la mayor\u00eda de nosotros no podemos hacer por nuestra cuenta: re\u00fane en un solo lugar y momento a personas cuyas ideas o cuyas interacciones pueden cambiar tu vida. Admito que no todos necesitan sistemas distribuidos ni conceptos fundamentales complejos. Se puede pasar toda la vida programando CRUD en PHP y ser completamente feliz. Pero para aquellos que lo necesitan, esta es su oportunidad.<\/p>\n<p><\/p>\n<p>Desde el primer anuncio de la conferencia Hydra en Habr, ha pasado bastante tiempo. Durante este per\u00edodo, se ha realizado un gran trabajo, y ahora tenemos una lista de casi todas las presentaciones. \u00a1Nada de algoritmos monohilo aburridos, solo puro hardcore distribuido! Terminemos con las palabras generales y veamos qu\u00e9 tenemos ahora en nuestras manos.<\/p>\n<p><\/p>\n<h2 id=\"keynouty\">Keynotes<\/h2>\n<p><\/p>\n<p>Los keynotes inician y cierran los d\u00edas de la conferencia. Normalmente, el prop\u00f3sito del keynote inaugural es establecer el ambiente general y la direcci\u00f3n de la conferencia. El keynote de clausura hace un resumen y explica c\u00f3mo debemos vivir con los conocimientos y habilidades adquiridos durante los d\u00edas de la conferencia. Inicio y final: lo que recordaremos mejor y, en general, tiene una importancia especial.<\/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\">El algoritmo K\/V distribuido H2O<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 cabezas de hidra. Gran revisi\u00f3n del programa\" src=\"\/wp-content\/uploads\/2019\/06\/2a1b4f1e305a3c4f32dc88e84cfe504f.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Cliff es una leyenda en el mundo de Java. A fines de la d\u00e9cada de 1990, escribi\u00f3 una tesis para su doctorado titulada <noindex>\u00abCombinando An\u00e1lisis, Combinando Optimizaciones\u00bb<\/noindex>, que se convirti\u00f3 en la base para HotSpot JVM Server Compiler despu\u00e9s de un tiempo. Dos a\u00f1os m\u00e1s tarde, ya estaba trabajando en Sun Microsystems en la JVM y demostr\u00f3 al mundo que JIT ten\u00eda un lugar. Toda esta historia sobre c\u00f3mo Java es uno de los tiempos de ejecuci\u00f3n modernos m\u00e1s r\u00e1pidos con las optimizaciones m\u00e1s inteligentes y r\u00e1pidas proviene de Cliff Click. Al principio, se pensaba que si algo estaba disponible para el compilador est\u00e1tico, no hab\u00eda necesidad de intentar jit. Gracias al trabajo de Cliff y su equipo, todos los nuevos lenguajes comenzaron a crearse con la idea de la compilaci\u00f3n JIT por defecto. Sin duda, no fue un trabajo de una sola persona, pero Cliff tuvo un papel muy importante en ello.<\/p>\n<p><\/p>\n<p>En la keynote de apertura, Cliff hablar\u00e1 sobre otro de sus proyectos \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/h2oai\/h2o-3\">H20<\/a><\/noindex>, una plataforma en memoria para el aprendizaje autom\u00e1tico distribuido y escalable para aplicaciones industriales. M\u00e1s espec\u00edficamente, sobre el almacenamiento distribuido de pares \u00abclave-valor\u00bb dentro de ella. Es un almacenamiento muy r\u00e1pido con muchas propiedades interesantes (la lista exacta est\u00e1 en <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/1urihjc39wzahcg3lbxbtq\/?utm_source=habr&amp;utm_medium=453832\">la descripci\u00f3n<\/a><\/noindex>), que permiten usar soluciones similares en matem\u00e1ticas de transmisi\u00f3n de grandes datos.<\/p>\n<p><\/p>\n<p>Otra charla que dar\u00e1 Cliff es \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/2jix5mst7iduyp9linqhfj\/?utm_source=habr&amp;utm_medium=453832\">La experiencia de la memoria transaccional hardware de Azul<\/a><\/noindex>. Otra parte de su biograf\u00eda es una d\u00e9cada <noindex>de trabajo en Azul<\/noindex>, donde actualiz\u00f3 y mejor\u00f3 muchas cosas en el hardware y el stack de tecnolog\u00edas de Azul: compiladores JIT, tiempo de ejecuci\u00f3n, modelo de hilos, manejo de errores, trabajo con la pila, interrupciones hardware, carga de clases, y as\u00ed sucesivamente \u2014 ya entendieron.<\/p>\n<p><\/p>\n<p>La parte m\u00e1s interesante comenz\u00f3 cuando hicieron hardware para grandes empresas \u2014 un superordenador para ejecutar Java. Era algo bastante innovador, dise\u00f1ado espec\u00edficamente para Java, que tiene requisitos especiales \u2014 barreras de memoria para lectura para la recolecci\u00f3n de basura de baja latencia, arreglos con comprobaci\u00f3n de l\u00edmites, llamados virtuales\u2026 Una de las tecnolog\u00edas m\u00e1s impresionantes fue la memoria transaccional hardware. Todo el L1 de cualquiera de los 864 n\u00facleos pod\u00eda participar en una escritura transaccional, lo cual es especialmente importante para trabajar con bloqueos en Java (los bloques synchronized pueden funcionar en paralelo, siempre que no haya conflicto real en la memoria). Sin embargo, una buena idea se enfrent\u00f3 a una dura realidad \u2014 y en esta charla, Cliff explicar\u00e1 por qu\u00e9 HTM y STM no son muy adecuadas para las necesidades pr\u00e1cticas de la computaci\u00f3n multihilo.<\/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\">Estructuras de datos duales<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 cabezas de hidra. Gran revisi\u00f3n del 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 profesor de Ciencias de la Computaci\u00f3n en la Universidad de Rochester, con la que el destino lo ha vinculado <noindex>desde hace 34 a\u00f1os<\/noindex>, y en su universidad natal Wisconsin\u2013Madison, fue decano durante cinco a\u00f1os. Se dedica a la investigaci\u00f3n en programaci\u00f3n paralela y distribuida, as\u00ed como en el dise\u00f1o de lenguajes y ense\u00f1a estos temas a los estudiantes.<\/p>\n<p><\/p>\n<p>El mundo entero conoce a Michael gracias a su manual <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>, cuya \u00faltima edici\u00f3n se public\u00f3 relativamente hace poco \u2014 en 2015. Su trabajo <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> reciba <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\">gan\u00f3 el premio Dijkstra<\/a><\/noindex> como uno de los m\u00e1s reconocidos en el \u00e1mbito de los c\u00e1lculos distribuidos y <noindex><a rel=\"nofollow\" href=\"https:\/\/www.cs.rochester.edu\/u\/scott\/papers\/1991_TOCS_synch.pdf\">est\u00e1 disponible<\/a><\/noindex> en la biblioteca en l\u00ednea de la Universidad de Rochester. Tambi\u00e9n podr\u00eda conocerlo como el autor del famoso algoritmo de Michael-Scott de <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>En cuanto al mundo de Java, hay un caso especial: junto con Doug Lea, desarroll\u00f3 esos algoritmos no bloqueantes y las colas sincronizadas que utilizan las bibliotecas de Java. De esto tratar\u00e1 la keynote \u00abEstructuras de datos duales\u00bb \u2014 la implementaci\u00f3n de estas estructuras en Java SE 6 permiti\u00f3 mejorar el rendimiento <code>java.util.concurrent.ThreadPoolExecutor<\/code>. Si le interesa saber de antemano qu\u00e9 son estas \u00abEstructuras de datos duales\u00bb, hay <noindex><a rel=\"nofollow\" href=\"https:\/\/www.cs.rochester.edu\/research\/synchronization\/pseudocode\/duals.html\">un trabajo correspondiente<\/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\">Blockchain y el futuro de la computaci\u00f3n distribuida<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 cabezas de hidra. Gran revisi\u00f3n del 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 Herlihy<\/a><\/noindex> \u2014 ganador de dos premios Dijkstra. El primero \u2014 por su trabajo en <noindex><a rel=\"nofollow\" href=\"https:\/\/cs.brown.edu\/~mph\/Herlihy91\/p124-herlihy.pdf\">\u00abWait-Free Synchronization\u00bb<\/a><\/noindex> (Universidad de Brown), y el segundo, m\u00e1s reciente \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> (Universidad de Virginia Tech). El premio Dijkstra se otorga por trabajos cuyas contribuciones y su impacto han sido notables durante al menos diez a\u00f1os, y es claro que Maurice es uno de los especialistas m\u00e1s reconocidos en el \u00e1rea. Actualmente, trabaja como profesor en la Universidad de Brown y tiene muchos logros que podr\u00edan llenar un p\u00e1rrafo.<\/p>\n<p><\/p>\n<p>En esta keynote de cierre, Maurice hablar\u00e1 sobre la teor\u00eda y pr\u00e1ctica de los sistemas distribuidos basados en blockchain desde la perspectiva de la teor\u00eda cl\u00e1sica de c\u00e1lculos distribuidos y c\u00f3mo esto simplifica muchos problemas relacionados. Esta es una charla estrictamente tem\u00e1tica de la conferencia \u2014 no trata sobre el bombo del minado, sino sobre c\u00f3mo nuestro conocimiento puede ser sorprendentemente efectivo y relevante para una variedad de tareas.<\/p>\n<p><\/p>\n<p>En julio de 2017, Maurice ya estuvo en Rusia para la escuela SPTDC, particip\u00f3 en un meetup de JUG.ru y la grabaci\u00f3n est\u00e1 disponible en 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=\"Reproducir video\" 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 continuaci\u00f3n, habr\u00e1 una breve revisi\u00f3n de las charlas incluidas en el programa. Algunas de las charlas se describen aqu\u00ed en detalle, mientras que otras son m\u00e1s breves. Las descripciones largas, principalmente, fueron asignadas a las charlas en ingl\u00e9s que requieren referencias a trabajos cient\u00edficos, t\u00e9rminos de Wikipedia, etc. La lista completa se puede <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/#schedule\">ver en el sitio web de la conferencia<\/a><\/noindex>. La lista en el sitio web se actualizar\u00e1 y complementar\u00e1. <\/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\">Q &amp; A<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 cabezas de hidra. Gran revisi\u00f3n del programa\" src=\"\/wp-content\/uploads\/2019\/06\/4c6d5928be31af95cd3e2a7812e86854.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Leslie Lamport es autor de trabajos fundamentales en computaci\u00f3n distribuida. <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/LaTeX\">\u00abLaTeX\u00bb<\/a><\/noindex> se traduce como \u00abLamport TeX\u00bb. Fue \u00e9l quien por primera vez, en 1979, introdujo el concepto <noindex><a rel=\"nofollow\" href=\"http:\/\/lamport.azurewebsites.net\/pubs\/multi.pdf\">consistencia secuencial<\/a><\/noindex>, y su art\u00edculo <noindex><a rel=\"nofollow\" href=\"http:\/\/lamport.azurewebsites.net\/pubs\/time-clocks.pdf\">\u00abHow to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs\u00bb<\/a><\/noindex> recibi\u00f3 el premio Dijkstra.<\/p>\n<p><\/p>\n<p>Esta es la parte m\u00e1s inusual del programa, porque no es ni siquiera una charla, sino una sesi\u00f3n de preguntas y respuestas. Cuando una parte significativa de la audiencia ya est\u00e1 familiarizada (o puede familiarizarse) con los numerosos trabajos basados en \u00abla teor\u00eda de Lamport\u00bb, as\u00ed como con sus propios art\u00edculos y charlas, es crucial dedicar todo el tiempo disponible a la comunicaci\u00f3n directa.<\/p>\n<p><\/p>\n<p>La idea es sencilla: ves dos charlas en YouTube: <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/6QsTfL-uXd8\">\u00abProgramming Should Be More Than Coding\u00bb<\/a><\/noindex> y <noindex><a rel=\"nofollow\" href=\"https:\/\/www.heidelberg-laureate-forum.org\/blog\/video\/lecture-monday-september-24-2018-leslie-lamport\/\">\u00abSi No Est\u00e1s Escribiendo un Programa, No Use un Lenguaje de Programaci\u00f3n\u00bb<\/a><\/noindex> y preparas al menos una pregunta, a lo que Leslie responde.<\/p>\n<p><\/p>\n<p>La primera de estos dos videos ya hemos <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/jugru\/blog\/454898\/\">convertido en un art\u00edculo tipo hub<\/a><\/noindex>. Si no tienes una hora para ver el video, puedes leer todo esto r\u00e1pidamente en formato de texto.<\/p>\n<p><\/p>\n<p>Nota: hay muchos m\u00e1s videos de Leslie Lamport en YouTube. Por ejemplo, hay uno excelente <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=p54W-XOIEF8&amp;list=PLWAv2Etpa7AOAwkreYImYt0gIpOdWQevD\">curso sobre TLA+<\/a><\/noindex>. La versi\u00f3n offline de todo este curso est\u00e1 en <noindex><a rel=\"nofollow\" href=\"http:\/\/lamport.azurewebsites.net\/video\/videos.html\">la p\u00e1gina de inicio del autor<\/a><\/noindex>, y en YouTube la ha subido para una visualizaci\u00f3n m\u00e1s c\u00f3moda en dispositivos m\u00f3viles.<\/p>\n<p><\/p>\n<h3 id=\"martin-kleppmann--syncing-data-across-user-devices-for-distributed-collaborationhttpshydraconfru2019talks6i4lkw8pwjnadgff5ylr11utm_sourcehabrutm_medium453832\">Martin Kleppmann \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/6i4lkw8pwjnadgff5ylr11\/?utm_source=habr&amp;utm_medium=453832\">Sincronizando datos entre dispositivos de usuarios para colaboraci\u00f3n distribuida<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 cabezas de hidra. Gran revisi\u00f3n del programa\" src=\"\/wp-content\/uploads\/2019\/06\/09af25ab1ce915ba13ec6ee1013878f6.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Martin Kleppmann es investigador en la Universidad de Cambridge, trabajando en CRDT y verificaci\u00f3n formal de algoritmos. El libro de Martin <noindex>\u00abDesigning Data-Intensive Applications\u00bb<\/noindex>, publicado en 2017, ha sido muy exitoso y ha llegado a las listas de bestsellers en el \u00e1rea de almacenamiento y procesamiento de datos. Kevin Scott, CTO de Microsoft, <noindex><a rel=\"nofollow\" href=\"https:\/\/martin.kleppmann.com\/2017\/03\/27\/designing-data-intensive-applications.html\">una vez dijo<\/a><\/noindex>: \u00abEste libro deber\u00eda ser obligatorio para ingenieros desarrolladores. Es un recurso raro que une teor\u00eda y pr\u00e1ctica, ayudando a los desarrolladores a dise\u00f1ar e implementar de manera m\u00e1s inteligente la infraestructura y sistemas de procesamiento de datos\u00bb. Algo similar dijo el creador de Kafka y CTO de Confluent, Jay Kreps.<\/p>\n<p><\/p>\n<p>Antes de dedicarse a la investigaci\u00f3n acad\u00e9mica, Mart\u00edn trabaj\u00f3 en la industria y fue cofundador de dos startups exitosas:<\/p>\n<p><\/p>\n<ul>\n<li>Rapportive, que se dedicaba a mostrar el perfil social de los contactos de tu correo electr\u00f3nico, fue adquirida por LinkedIn en 2012;<\/li>\n<li>Go Test It, un servicio para la prueba autom\u00e1tica de sitios web en diferentes navegadores, fue adquirido por RedGate en 2009.<\/li>\n<\/ul>\n<p><\/p>\n<p>En general, aunque Mart\u00edn es menos conocido que nuestros oradores principales, ya ha podido contribuir al desarrollo de la computaci\u00f3n distribuida y a la industria.<\/p>\n<p><\/p>\n<p>En esta presentaci\u00f3n, Mart\u00edn hablar\u00e1 sobre un tema m\u00e1s cercano a su investigaci\u00f3n acad\u00e9mica. En Google Docs y software similar para la edici\u00f3n colaborativa de documentos, la \"edici\u00f3n colaborativa\" implica la tarea de replicaci\u00f3n: cada usuario tiene su propia r\u00e9plica del documento compartido, que luego modifica, y todos los cambios se env\u00edan a la red a los dem\u00e1s participantes. Los cambios en los documentos sin conexi\u00f3n conducen a una inconsistencia temporal del documento en relaci\u00f3n con los dem\u00e1s participantes, y la re-sincronizaci\u00f3n requiere la gesti\u00f3n de conflictos. Para esto existen <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Conflict-free_replicated_data_type\">Tipos de Datos Replicados sin Conflictos<\/a><\/noindex> (CRDT), que en esencia es algo relativamente nuevo, cuya esencia fue formulada apenas en 2011. En esta charla se discutir\u00e1 qu\u00e9 ha sucedido desde entonces en el mundo de CRDT, cu\u00e1les son los logros m\u00e1s recientes, y se abordar\u00e1 el enfoque para crear aplicaciones de primera en local y el uso de la biblioteca de c\u00f3digo abierto <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/automerge\/automerge\">Automerge<\/a><\/noindex> en particular.<\/p>\n<p><\/p>\n<blockquote><p>La pr\u00f3xima semana publicaremos en Habr una gran entrevista con Mart\u00edn, ser\u00e1 interesante.<\/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\">Estructuras de datos sin bloqueos y transacciones sin bloqueos<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 cabezas de hidra. Gran revisi\u00f3n del programa\" src=\"\/wp-content\/uploads\/2019\/06\/be9b98f5ab95d0f6646dfcb4cee38978.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Pedro trabaja en Cisco y ha estado desarrollando algoritmos paralelos durante unos diez a\u00f1os, incluyendo mecanismos de sincronizaci\u00f3n, estructuras de datos sin bloqueos y sin bloqueos, y todo lo que puedas imaginar sobre este tema. Sus intereses cient\u00edficos y de ingenier\u00eda actuales se centran en Construcciones Universales, Memoria Transaccional de Software, Memoria Persistente y tecnolog\u00edas similares que permiten implementar aplicaciones correctas, escalables y resilientes. Adem\u00e1s, es autor de un blog ampliamente conocido en c\u00edrculos especializados llamado <noindex><a rel=\"nofollow\" href=\"http:\/\/concurrencyfreaks.blogspot.com\/\">Concurrency Freaks<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>En las estructuras de datos paralelas es donde actualmente opera la mayor\u00eda de las aplicaciones multihilo, desde el uso de colas de mensajes entre actores hasta estructuras de datos indexadas en almacenes de clave-valor. En Java JDK han funcionado con \u00e9xito durante muchos a\u00f1os, y en C++ se van a\u00f1adiendo gradualmente.<\/p>\n<p><\/p>\n<p>La forma m\u00e1s sencilla de implementar una estructura de datos paralela es mediante una implementaci\u00f3n secuencial (monohilo), en la que los m\u00e9todos est\u00e1n protegidos por mutexes. Esto est\u00e1 al alcance de cualquier principiante, pero tiene problemas evidentes de escalabilidad y rendimiento. Al mismo tiempo, las estructuras de datos lock-free y wait-free no solo manejan mejor los errores, sino que tambi\u00e9n tienen un perfil de rendimiento m\u00e1s favorable; sin embargo, su desarrollo requiere una profunda experiencia y adaptaci\u00f3n a un uso espec\u00edfico. Una l\u00ednea de c\u00f3digo incorrecta puede ser suficiente para romperlo todo.<\/p>\n<p><\/p>\n<p>\u00bfC\u00f3mo hacer que incluso un no experto pueda dise\u00f1ar e implementar tales estructuras de datos? Se sabe que cualquier algoritmo secuencial se puede hacer seguro para hilos mediante o bien <noindex><a rel=\"nofollow\" href=\"https:\/\/hal.inria.fr\/hal-01397265v1\/document\">una construcci\u00f3n universal<\/a><\/noindex>, o memoria transaccional. Ambos pueden bajar el umbral de entrada para resolver esta tarea. Sin embargo, ambos enfoques suelen llevar a una implementaci\u00f3n ineficiente. Pedro hablar\u00e1 sobre c\u00f3mo lograron hacer estas construcciones m\u00e1s eficientes y c\u00f3mo se pueden usar para sus 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 distribuido<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 cabezas de hidra. Gran revisi\u00f3n del programa\" src=\"\/wp-content\/uploads\/2019\/06\/09dd05684fde1015a87818f0b6804680.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Heidi Howard, al igual que Martin, es investigadora de sistemas distribuidos en la Universidad de Cambridge. Su especializaci\u00f3n es la consistencia, alta disponibilidad, rendimiento y consenso distribuido. Es m\u00e1s conocida por la generalizaci\u00f3n del algoritmo Paxos llamado <noindex><a rel=\"nofollow\" href=\"https:\/\/fpaxos.github.io\/\">Paxos Flexible<\/a><\/noindex>. <\/p>\n<p><\/p>\n<p>Recordemos que <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Paxos_(computer_science)\">Paxos<\/a><\/noindex> \u2014 un conjunto de protocolos para resolver el problema del consenso en una red de computadoras poco fiables, basado en los trabajos de Leslie Lamport. As\u00ed, algunos de nuestros ponentes trabajan en problemas inicialmente propuestos por otros de nuestros ponentes, y eso es maravilloso.<\/p>\n<p><\/p>\n<p>La posibilidad de encontrar un consenso entre varios hosts \u2014 para direccionamiento, elecci\u00f3n de l\u00edder, bloqueo o coordinaci\u00f3n \u2014 es una cuesti\u00f3n fundamental de los sistemas distribuidos modernos. Paxos es actualmente el m\u00e9todo principal para resolver problemas de consenso, y a su alrededor se llevan a cabo numerosas investigaciones para ampliar y optimizar el algoritmo para diversas necesidades pr\u00e1cticas. <\/p>\n<p><\/p>\n<p>En este informe revisaremos la base te\u00f3rica de Paxos, suavizando los requisitos originales y generalizando el algoritmo. Veremos que Paxos, en esencia, es solo una de las m\u00faltiples variantes dentro de un amplio espectro de enfoques para el consenso, y que otros puntos en este espectro tambi\u00e9n son muy \u00fatiles para construir buenos sistemas distribuidos.<\/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\">Reduce tus costos de almacenamiento con Replicaci\u00f3n Transitoria y Quorums Econ\u00f3micos<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 cabezas de hidra. Gran revisi\u00f3n del programa\" src=\"\/wp-content\/uploads\/2019\/06\/178a1db3cf49b5ff73a0c9101ab3845c.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Alex es un especialista en bases de datos y sistemas de almacenamiento, y lo que es m\u00e1s importante para nosotros, es committer en <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Apache_Cassandra\">Cassandra<\/a><\/noindex>. Junto con O'Reilly, actualmente est\u00e1 trabajando en el libro Database Internals.<\/p>\n<p><\/p>\n<p>Para sistemas con <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Eventual_consistency\">consistencia eventual<\/a><\/noindex> (en la terminolog\u00eda en espa\u00f1ol \u2014 'consistencia eventual'), tras la ca\u00edda de un nodo o partici\u00f3n de red, se debe resolver la siguiente disyuntiva: continuar atendiendo solicitudes a costa de la consistencia, o bien, negarse a hacerlo sacrificando la disponibilidad. En tal sistema, los quorums, subconjuntos de nodos que garantizan que al menos uno contendr\u00e1 el \u00faltimo valor, pueden ser una buena soluci\u00f3n l\u00edmite. Se pueden sobrevivir fallos y p\u00e9rdida de conexi\u00f3n con algunos nodos, continuando respondiendo con los valores m\u00e1s recientes.<\/p>\n<p><\/p>\n<p>Sin embargo, todo tiene su precio. Un esquema de replicaci\u00f3n con quorums significa un aumento en el costo de almacenamiento: es necesario almacenar datos redundantes en varios nodos al mismo tiempo para garantizar un n\u00famero suficiente de copias disponibles en el momento de la falla. Resulta que no es necesario almacenar todos los datos en todas las r\u00e9plicas. Se puede aliviar la carga en el almacenamiento si se mantiene la informaci\u00f3n solo en parte de los nodos, utilizando nodos especiales (Replica Transitoria) para los escenarios de manejo de fallos.<\/p>\n<p><\/p>\n<p>A lo largo del informe, abordaremos <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 Testigos<\/a><\/noindex>, un esquema de replicaci\u00f3n utilizado en <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Spanner_(database)\">Spanner<\/a><\/noindex> y <noindex><a rel=\"nofollow\" href=\"http:\/\/cidrdb.org\/cidr2011\/Papers\/CIDR11_Paper32.pdf\">Megastore<\/a><\/noindex>, y la implementaci\u00f3n de este concepto en Apache Cassandra bajo los nombres <noindex><a rel=\"nofollow\" href=\"https:\/\/jira.apache.org\/jira\/browse\/CASSANDRA-14404?subTaskView=all\">Replicaci\u00f3n Transitoria &amp; Quorums Econ\u00f3micos<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h3 id=\"dmitriy-vyukov---goroutines-exposedhttpshydraconfru2019talks7336ginp0kke7n4yxxjvldutm_sourcehabrutm_medium453832\">Dmitry V'yukov \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/7336ginp0kke7n4yxxjvld\/?utm_source=habr&amp;utm_medium=453832\">Goroutines expuestas<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 cabezas de hidra. Gran revisi\u00f3n del programa\" src=\"\/wp-content\/uploads\/2019\/06\/94ce38f8cc366bbd2ee53b9636e4650d.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Dmitri es un desarrollador en Google, trabajando en pruebas din\u00e1micas de C\/C++ y Go, as\u00ed como en Address\/Memory\/ThreadSanitizer y herramientas similares para el n\u00facleo de Linux. Ha contribuido en Go con un planificador escalable de goroutines, un encuestador de red y un recolector de basura paralelo. Es experto en programaci\u00f3n concurrente, autor de una docena de nuevos algoritmos no bloqueantes y es poseedor de <noindex><a rel=\"nofollow\" href=\"https:\/\/software.intel.com\/en-us\/blackbelt\">Cintur\u00f3n Negro<\/a><\/noindex> Intel.<\/p>\n<p><\/p>\n<p>Ahora un poco sobre la presentaci\u00f3n. En el lenguaje Go hay soporte nativo para la programaci\u00f3n concurrente en forma de goroutines (hilos ligeros) y canales (colas FIFO). Gracias a estos mecanismos, a los usuarios les resulta muy f\u00e1cil y agradable escribir aplicaciones modernas de m\u00faltiples hilos, y se siente como magia. Como entendemos, no hay magia aqu\u00ed. En esta presentaci\u00f3n, Dmitri profundizar\u00e1 en las complejidades del funcionamiento del planificador de Go y mostrar\u00e1 los secretos detr\u00e1s de esta 'magia'. Al principio, ofrecer\u00e1 una visi\u00f3n general de los componentes clave del planificador y explicar\u00e1 c\u00f3mo funciona. Luego nos familiarizaremos m\u00e1s con aspectos individuales, como la estrategia de aparcamiento\/desaparcar y el manejo de llamadas de sistema bloqueantes. Finalmente, Dmitri hablar\u00e1 un poco sobre las posibles mejoras en el planificador.<\/p>\n<p><\/p>\n<h3 id=\"dmitriy-bugaychenko---uskoryaem-raspredelennyy-analiz-grafov-s-pomoschyu-veroyatnostnyh-sketchey-i-ne-tolkohttpshydraconfru2019talks1po7b00j6m4vst3df7aqtoutm_sourcehabrutm_medium453832\">Dmitri Bugaychenko es <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/1po7b00j6m4vst3df7aqto\/?utm_source=habr&amp;utm_medium=453832\">Acelerando el an\u00e1lisis distribuido de grafos con bocetos probabil\u00edsticos y m\u00e1s<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 cabezas de hidra. Gran revisi\u00f3n del programa\" src=\"\/wp-content\/uploads\/2019\/06\/f963ef8ac1a37011aa387016dc938b3c.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Dmitri ha trabajado casi 9 a\u00f1os en la subcontrataci\u00f3n, sin perder contacto con la universidad y el entorno acad\u00e9mico. El an\u00e1lisis de grandes datos en Odnoklassniki fue para \u00e9l una oportunidad \u00fanica de combinar la preparaci\u00f3n te\u00f3rica y la base cient\u00edfica con el desarrollo de productos reales y demandados.<\/p>\n<p><\/p>\n<p>El an\u00e1lisis distribuido de grafos ha sido y sigue siendo un desaf\u00edo complejo: cuando surge la necesidad de obtener informaci\u00f3n sobre las conexiones de un v\u00e9rtice vecino, a menudo es necesario transferir datos entre m\u00e1quinas, lo que lleva a un aumento en el tiempo de ejecuci\u00f3n y la carga en la infraestructura de red. En esta presentaci\u00f3n, veremos c\u00f3mo se puede lograr una aceleraci\u00f3n significativa en el procesamiento utilizando estructuras de datos probabil\u00edsticas o hechos como la simetr\u00eda del grafo de amistades en la red social. Todo esto se ilustra con ejemplos de c\u00f3digo en 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 es <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/5e3yibth8vha0jbyoywpm6\/?utm_source=habr&amp;utm_medium=453832\">Reduce tus costos de almacenamiento con Replicaci\u00f3n Transitoria y Quorums Econ\u00f3micos<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 cabezas de hidra. Gran revisi\u00f3n del programa\" src=\"\/wp-content\/uploads\/2019\/06\/700bfb1a35280932f654a9c34413e2d4.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Denis es desarrollador. <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Cosmos_DB\">Cosmos DB<\/a><\/noindex>, experto en la verificaci\u00f3n de modelos de consistencia, en algoritmos de consenso y en transacciones distribuidas. Actualmente trabaja en Microsoft y anteriormente estuvo involucrado en sistemas distribuidos en Amazon y Yandex.<\/p>\n<p><\/p>\n<p>En esta presentaci\u00f3n, conoceremos los protocolos de transacciones distribuidas que se han propuesto en los \u00faltimos a\u00f1os, los cuales pueden implementarse del lado del cliente sobre cualquier almacenamiento de datos que soporte actualizaci\u00f3n condicional (compare and set). La esencia es que la vida no termina con el compromiso en dos fases; las transacciones se pueden agregar sobre cualquier base de datos \u2014 a nivel de aplicaci\u00f3n, pero diferentes protocolos (2PC, Percolator, RAMP) tienen diferentes compensaciones y no se obtienen sin costo.<\/p>\n<p><\/p>\n<h3 id=\"aleksey-zinovev--ne-vse-ml-algoritmy-popadayut-v-raspredelennyy-rayhttpshydraconfru2019talks3jd0bgsoa0qtcijgblidjsutm_sourcehabrutm_medium453832\">Aleksey Zinovyev \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/3jd0bgsoa0qtcijgblidjs\/?utm_source=habr&amp;utm_medium=453832\">No todos los algoritmos de ML llegan al para\u00edso distribuido<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 cabezas de hidra. Gran revisi\u00f3n del programa\" src=\"\/wp-content\/uploads\/2019\/06\/eb412d59dec5dcc4a04f603b32d12575.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Aleksey (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/zaleslaw\/\" class=\"user_link\">zaleslaw<\/a><\/noindex>) \u2014 es nuestro veterano ponente y miembro de comit\u00e9s de programas en otras conferencias. Practicante y formador en EPAM Systems, ha trabajado con Hadoop\/Spark y otras tecnolog\u00edas de big data desde 2012.<\/p>\n<p><\/p>\n<p>En esta presentaci\u00f3n, Aleksey abordar\u00e1 los problemas de adaptaci\u00f3n de los algoritmos cl\u00e1sicos de aprendizaje autom\u00e1tico para su ejecuci\u00f3n en modo distribuido basado en su experiencia con Apache Spark ML, Apache Mahout, Apache Flink ML y su experiencia en la creaci\u00f3n de Apache Ignite ML. Tambi\u00e9n discutir\u00e1 la implementaci\u00f3n de algoritmos de ML distribuidos en estos marcos.<\/p>\n<p><\/p>\n<p>Y para terminar, dos ponencias de Yandex sobre 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 c\u00f3mo aseguramos la resiliencia<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 cabezas de hidra. Gran revisi\u00f3n del programa\" src=\"\/wp-content\/uploads\/2019\/06\/3bdb3bec0ec0eb71db373e85afad6260.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Vladislav es desarrollador en Yandex en el grupo de plataforma distribuida. Yandex Database es un sistema de gesti\u00f3n de bases de datos (SGBD) geogr\u00e1ficamente distribuido y escalable horizontalmente, que tolera fallos de discos, servidores, racks y centros de datos sin violar la consistencia. Para asegurar la resiliencia se utiliza un algoritmo propietario para alcanzar consenso distribuido, as\u00ed como una serie de soluciones t\u00e9cnicas que se discutir\u00e1n en la presentaci\u00f3n. Esta charla puede ser interesante tanto para desarrolladores de SGBD como para aquellos que desarrollan soluciones aplicativas basadas en el SGBD.<br clear=\"all\">\n<\/p>\n<p><\/p>\n<h3 id=\"semen-checherinda--raspredelennye-tranzakcii-v-ydbhttpshydraconfru2019talks3ubxfwi4ikpxdjcdqswjihutm_sourcehabrutm_medium453832\">Semyon Chechirin \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.ru\/2019\/talks\/3ubxfwi4ikpxdjcdqswjih\/?utm_source=habr&amp;utm_medium=453832\">Transacciones distribuidas en YDB<\/a><\/noindex><\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"19 cabezas de hidra. Gran revisi\u00f3n del programa\" src=\"\/wp-content\/uploads\/2019\/06\/0cf2b40fcabfba1a774f00c9f245b8f1.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Semyon es desarrollador en el grupo de plataforma distribuida de Yandex, trabajando en la posibilidad de uso multitenancy de la instalaci\u00f3n de YDB.<\/p>\n<p><\/p>\n<p>Yandex Database est\u00e1 dise\u00f1ada para consultas OLTP y cumple con los requisitos ACID para sistemas transaccionales. En este informe, exploraremos el algoritmo de planificaci\u00f3n de transacciones que subyace en el sistema transaccional YDB. Analizaremos qu\u00e9 entidades participan en las transacciones, qui\u00e9n asigna un orden global a las transacciones, c\u00f3mo se logra la atomicidad de las transacciones, la fiabilidad y un nivel de aislamiento estricto. Tomaremos un ejemplo com\u00fan para discutir las implementaciones de transacciones utilizando el compromiso en dos fases y transacciones deterministas. Compararemos sus diferencias.<\/p>\n<p><\/p>\n<h2 id=\"chto-dalshe\">\u00bfQu\u00e9 sigue?<\/h2>\n<p><\/p>\n<p>El programa de la conferencia sigue enriqueci\u00e9ndose con nuevos informes. En particular, esperamos un informe de <strong>Nikita Koval<\/strong> (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/ndkoval\/\" class=\"user_link\">ndkoval<\/a><\/noindex>) de JetBrains y <strong>Oleg Anastasyev<\/strong> (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/m0nstermind\/\" class=\"user_link\">m0nstermind<\/a><\/noindex>) de la compa\u00f1\u00eda Odnoklassniki. Nikita trabaja en algoritmos para corrutinas en el equipo de Kotlin, mientras que Oleg desarrolla la arquitectura y soluciones para sistemas de alta carga en la plataforma de Odnoklassniki. Adem\u00e1s, hay 1 slot condicionalmente vac\u00edo, con candidatos en los que el comit\u00e9 del programa est\u00e1 trabajando en este momento.<\/p>\n<p><\/p>\n<p>La conferencia Hydra se llevar\u00e1 a cabo del 11 al 12 de julio en San Petersburgo. Las entradas se pueden <noindex>comprar boletos en el sitio web oficial<\/noindex>. Tenga en cuenta la disponibilidad de entradas en l\u00ednea: si por alguna raz\u00f3n no puede llegar a San Petersburgo en esos d\u00edas.<\/p>\n<p><\/p>\n<p>\u00a1Nos vemos en Hydra!<\/p>\n<p>Fuente: <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.2 - 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\/es\/blog\/administrirovanie\/19-golov-gidry-bolshoj-obzor-programmy\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\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\/es\/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\udd4719 cabezas de la hidra. Gran resumen del programa | ProHoster","description":"La conferencia Hydra se celebrar\u00e1 del 11 al 12 de julio en San Petersburgo, dedicada al desarrollo de sistemas paralelos y distribuidos.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/19-golov-gidry-bolshoj-obzor-programmy","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","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\/es\/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\/es\/wp-json\/wp\/v2\/posts\/35091","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=35091"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/35091\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/26388"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=35091"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=35091"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=35091"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}