{"id":36205,"date":"2019-10-31T22:10:16","date_gmt":"2019-10-31T19:10:16","guid":{"rendered":"https:\/\/prohoster.info\/blog\/razbor-zadach-s-konferentsii-hydra-balansirovka-nagruzki-i-in-memory-hranilishha\/"},"modified":"2019-10-31T22:10:16","modified_gmt":"2019-10-31T19:10:16","slug":"razbor-zadach-s-konferentsii-hydra-balansirovka-nagruzki-i-in-memory-hranilishha","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/razbor-zadach-s-konferentsii-hydra-balansirovka-nagruzki-i-in-memory-hranilishha","title":{"rendered":"Analyse der Aufgaben von der Hydra-Konferenz \u2013 Lastenverteilung und In-Memory-Speicher","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Vor einigen Tagen fand die <noindex><a rel=\"nofollow\" href=\"https:\/\/hydraconf.com\">Hydra-Konferenz<\/a><\/noindex>statt. Die Leute von JUG.ru Group hatten Traumsprecher eingeladen (Leslie Lamport! Cliff Click! Martin Kleppmann!) und widmeten zwei Tage den Themen verteilte Systeme und Berechnungen. Kontur war einer der drei Partner der Konferenz. Wir hatten am Stand Gespr\u00e4che, erz\u00e4hlten von unseren verteilten Speicherl\u00f6sungen, spielten Bingo und l\u00f6sten Aufgaben.<\/p>\n<p><\/p>\n<p>Dieser Beitrag ist eine Analyse der Aufgaben am Kontur-Stand, verfasst von einem der Autoren. Wer bei Hydra war, hat einen Grund, sch\u00f6ne Erinnerungen wachzurufen. Wer nicht da war, hat die Chance, seine grauen Zellen zu aktivieren. <em>big O<\/em>-Notation. <\/p>\n<p><\/p>\n<p>Es gab sogar Teilnehmer, die das Flipchart in Folien zerlegten, um ihre L\u00f6sung aufzuschreiben. Ich mache keinen Scherz \u2014 sie haben ein solches Stapel Papier zur \u00dcberpr\u00fcfung abgegeben:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Analyse der Aufgaben von der Hydra-Konferenz \u2013 Lastenverteilung und In-Memory-Speicher\" src=\"\/wp-content\/uploads\/2019\/07\/4b74e8bc33e390d1f4c4523f9941ed0a.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Es gab insgesamt drei Aufgaben:<\/p>\n<p><\/p>\n<ul>\n<li>zum W\u00e4hlen von Replikaten nach Gewicht zur Lastenverteilung<\/li>\n<li>zur Sortierung der Ergebnisse einer Abfrage an einer In-Memory-Datenbank<\/li>\n<li>zur \u00dcbertragung des Zustands in einem verteilten System mit Ringtopologie<\/li>\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h1 id=\"zadacha-1-clusterclient\">Aufgabe 1. ClusterClient<\/h1>\n<p><\/p>\n<p>Es war erforderlich, einen Algorithmus f\u00fcr die effektive Auswahl von K aus N gewichteten Replikaten eines verteilten Systems vorzuschlagen:<\/p>\n<p><\/p>\n<blockquote><p>Ihr Team hat die Aufgabe, eine Client-Bibliothek f\u00fcr einen massiv verteilten Cluster von N Knoten zu entwickeln. Diese Bibliothek verfolgt verschiedene Metadaten, die mit den Knoten verbunden sind (z. B. deren Latenzen, 4xx\/5xx-Antwortraten usw.) und weist ihnen Flie\u00dfkomma-Gewichte W1..WN zu. Um die gleichzeitige Ausf\u00fchrungsstrategie zu unterst\u00fctzen, sollte die Bibliothek in der Lage sein, K von N Knoten zuf\u00e4llig auszuw\u00e4hlen \u2013 die Auswahlchance sollte proportional zum Gewicht eines Knotens sein.<\/p>\n<p>Schlagen Sie einen Algorithmus vor, um Knoten effizient auszuw\u00e4hlen. Sch\u00e4tzen Sie die rechnerische Komplexit\u00e4t mit der Big-O-Notation.<\/p><\/blockquote>\n<p>\n<b class=\"spoiler_title\">Warum ist alles auf Englisch?<\/b><\/p>\n<p>Weil in dieser Form die Teilnehmer der Konferenz damit konfrontiert wurden und weil Englisch die offizielle Sprache von Hydra war. So sahen die Aufgabenstellungen aus:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Analyse der Aufgaben von der Hydra-Konferenz \u2013 Lastenverteilung und In-Memory-Speicher\" src=\"\/wp-content\/uploads\/2019\/07\/4bdf7031c82eea4340a5cdef9ad8df0f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Nehmen Sie Papier und Stift, denken Sie nach, eilen Sie nicht sofort zu den Spoilern \ud83d\ude42<\/p>\n<p>\n<b class=\"spoiler_title\">L\u00f6sungsanalyse (Video)<\/b><\/p>\n<p>Beginn um 5:53, insgesamt 4 Minuten:<\/p>\n<p>\n<center><div class=\"youtube-placeholder\" data-id=\"HAiQ2llS0bE\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/HAiQ2llS0bE\/hqdefault.jpg\" alt=\"Video abspielen\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><\/p>\n<p>So haben die Jungs mit dem Flipchart ihre L\u00f6sung pr\u00e4sentiert:<\/p>\n<p>\n<center><div class=\"youtube-placeholder\" data-id=\"U_yfKDwXppg\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/U_yfKDwXppg\/hqdefault.jpg\" alt=\"Video abspielen\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><br \/>\n<b class=\"spoiler_title\">L\u00f6sungsanalyse (Text)<\/b><\/p>\n<p>Eine m\u00f6gliche L\u00f6sung besteht darin, die Gewichte aller Replikate zu summieren, eine Zufallszahl zwischen 0 und der Summe aller Gewichte zu generieren und dann das i-te Replikat auszuw\u00e4hlen, sodass die Summe der Gewichte der Replikate von 0 bis (i-1) kleiner ist als die Zufallszahl, w\u00e4hrend die Summe der Gewichte von 0 bis i gr\u00f6\u00dfer ist. Auf diese Weise kann ein Replikat ausgew\u00e4hlt werden. Um das n\u00e4chste auszuw\u00e4hlen, muss das gesamte Verfahren wiederholt werden, ohne das gew\u00e4hlte Replikat zu ber\u00fccksichtigen. Bei diesem Algorithmus betr\u00e4gt die Komplexit\u00e4t der Auswahl eines Replikats O(N), w\u00e4hrend die Komplexit\u00e4t f\u00fcr die Auswahl von K Replikaten O(N\u00b7K) ~ O(N\u00b2) betr\u00e4gt.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Analyse der Aufgaben von der Hydra-Konferenz \u2013 Lastenverteilung und In-Memory-Speicher\" src=\"\/wp-content\/uploads\/2019\/07\/0d869f10421f9cf36e501faefc76f209.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Eine quadratische Komplexit\u00e4t ist problematisch, doch sie l\u00e4sst sich verbessern. Daf\u00fcr bauen wir <noindex><a rel=\"nofollow\" href=\"http:\/\/brestprog.by\/topics\/segmenttree\/\">ein Segmentbaum<\/a><\/noindex> f\u00fcr die Gewichtsummen. Es entsteht ein Baum mit einer Tiefe von lg N, dessen Bl\u00e4tter die Gewichte der Replikate darstellen, w\u00e4hrend die anderen Knoten die Teilsummen bis zur Gesamtsumme aller Gewichte im Wurzelknoten enthalten. Anschlie\u00dfend generieren wir eine Zufallszahl von 0 bis zur Gesamtsumme der Gewichte, finden das i-te Replikat, entfernen es aus dem Baum und wiederholen das Verfahren, um die verbleibenden Replikate zu suchen. Mit diesem Algorithmus wird die Komplexit\u00e4t zum Erstellen des Baums O(N), die Komplexit\u00e4t zum Finden des i-ten Replikats und dessen Entfernung aus dem Baum O(lg N), und die Komplexit\u00e4t zur Auswahl von K Replikaten betr\u00e4gt O(N + K lg N) ~ O(N lg N).<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Analyse der Aufgaben von der Hydra-Konferenz \u2013 Lastenverteilung und In-Memory-Speicher\" src=\"\/wp-content\/uploads\/2019\/07\/458c897c3b70c3870a3510f76ec2992f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Die linear-logarithmische Komplexit\u00e4t ist angenehmer als die quadratische, insbesondere f\u00fcr gro\u00dfe K.<\/p>\n<p><\/p>\n<p>Genau dieser Algorithmus <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/vostok\/clusterclient.core\/blob\/master\/Vostok.ClusterClient.Core\/Ordering\/Weighed\/WeighedReplicaOrdering.cs\">ist im Code<\/a><\/noindex> der ClusterClient-Bibliothek aus dem Projekt \u201e<noindex><a rel=\"nofollow\" href=\"https:\/\/tech.kontur.ru\/vostok\">Osten<\/a><\/noindex>\u201c. (Dort wird der Baum in O(N lg N) aufgebaut, aber dies hat keinen Einfluss auf die endg\u00fcltige Komplexit\u00e4t des Algorithmus.)<\/p>\n<p><\/p>\n<h1 id=\"zadacha-2-zebra\">Aufgabe 2. Zebra<\/h1>\n<p><\/p>\n<p>Es sollte ein Algorithmus zur effizienten Sortierung von Dokumenten im Speicher nach einem beliebigen, nicht indizierten Feld vorgeschlagen werden:<\/p>\n<p><\/p>\n<blockquote><p>Ihr Team hat die Aufgabe, eine partitionierte, im Speicher befindliche Dokumentendatenbank zu entwickeln. Eine h\u00e4ufige Arbeitslast w\u00e4re die Auswahl der besten N Dokumente, die nach einem beliebigen (nicht indizierten) numerischen Feld aus einer Sammlung der Gr\u00f6\u00dfe M (normalerweise N &lt; 100 &lt;&lt; M) sortiert sind. Eine etwas weniger h\u00e4ufige Arbeitslast w\u00e4re die Auswahl der besten N, nachdem die obersten S Dokumente \u00fcbersprungen wurden (S ~ N).<\/p>\n<p>Schlagen Sie einen Algorithmus vor, um solche Anfragen effizient auszuf\u00fchren. Sch\u00e4tzen Sie die Berechnungskomplexit\u00e4t mithilfe der gro\u00dfen O-Notation f\u00fcr den Durchschnitts- und den schlimmsten Fall.<\/p><\/blockquote>\n<p>\n<b class=\"spoiler_title\">L\u00f6sungsanalyse (Video)<\/b><\/p>\n<p>Beginn bei 34:50, insgesamt 6 Minuten:<\/p>\n<p>\n<center><div class=\"youtube-placeholder\" data-id=\"HAiQ2llS0bE\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/HAiQ2llS0bE\/hqdefault.jpg\" alt=\"Video abspielen\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><br \/>\n<b class=\"spoiler_title\">L\u00f6sungsanalyse (Text)<\/b><\/p>\n<p>Die L\u00f6sung liegt auf der Hand: Alle Dokumente sortieren (zum Beispiel mit <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%91%D1%8B%D1%81%D1%82%D1%80%D0%B0%D1%8F_%D1%81%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0\">quicksort<\/a><\/noindex>), dann N+S Dokumente nehmen. In diesem Fall betr\u00e4gt die durchschnittliche Sortierkomplexit\u00e4t O(M lg M), im schlimmsten Fall O(M\u00b2).<\/p>\n<p><\/p>\n<p>Offensichtlich ist es ineffizient, alle M Dokumente zu sortieren, nur um dann einen kleinen Teil davon zu entnehmen. Um nicht alle Dokumente zu sortieren, eignet sich der Algorithmus <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Quickselect\">quickselect<\/a><\/noindex>, der N+S ben\u00f6tigte Dokumente ausw\u00e4hlt (diese k\u00f6nnen mit jedem Algorithmus sortiert werden). In diesem Fall wird die Komplexit\u00e4t im Durchschnitt auf O(M) reduziert, w\u00e4hrend der schlimmste Fall gleich bleibt.<\/p>\n<p><\/p>\n<p>Es kann jedoch noch effizienter sein \u2013 nutzen Sie den Algorithmus <noindex><a rel=\"nofollow\" href=\"https:\/\/stackoverflow.com\/questions\/30914801\/optimal-algorithm-to-return-largest-k-elements-from-an-array-of-infinite-number\">binary heap streaming<\/a><\/noindex>. In diesem Fall werden die ersten N+S Dokumente in einem Min- oder Max-Heap (je nach Sortierrichtung) abgelegt, und jedes nachfolgende Dokument wird mit der Wurzel des Baumes verglichen, wo das aktuell minimale oder maximale Dokument enthalten ist, und wird bei Bedarf in den Baum hinzugef\u00fcgt. In diesem Fall ist die Komplexit\u00e4t im schlimmsten Fall, wenn der Baum st\u00e4ndig neu aufgebaut werden muss \u2013 O(M lg M), die durchschnittliche Komplexit\u00e4t bleibt bei O(M), wie beim Einsatz von Quickselect.<\/p>\n<p><\/p>\n<p>Heap Streaming erweist sich jedoch als effizienter, da in der Praxis die meisten Dokumente verworfen werden k\u00f6nnen, ohne den Heap neu zu strukturieren, nach einem einzigen Vergleich mit dessen Wurzelelement. Diese Sortierung ist in der dokumentenbasierten In-Memory-Datenbank Zebra implementiert, die von Kontur entwickelt und genutzt wird.<\/p>\n<p><\/p>\n<h1 id=\"zadacha-3-state-swaps\">Aufgabe 3. Zustandswechsel<\/h1>\n<p><\/p>\n<p>Es sollte der effizienteste Algorithmus f\u00fcr Zustandsverschiebungen vorgeschlagen werden:<\/p>\n<p><\/p>\n<blockquote><p>Ihr Team hat die Aufgabe, einen eleganten Zustands\u00fcbergmechanismus f\u00fcr ein verteiltes Cluster von N Knoten zu entwickeln. Der Zustand des i-ten Knotens sollte an den (i+1)-ten Knoten \u00fcbertragen werden, w\u00e4hrend der Zustand des N-ten Knotens an den ersten Knoten \u00fcbergeben werden soll. Die einzige unterst\u00fctzte Operation ist der Zustandswechsel, bei dem zwei Knoten ihre Zust\u00e4nde atomar austauschen. Es ist bekannt, dass ein Zustandswechsel M Millisekunden dauert. Jeder Knoten kann zu jedem Zeitpunkt an einem einzigen Zustandswechsel teilnehmen.<\/p>\n<p>Wie lange dauert es, die Zust\u00e4nde aller Knoten in einem Cluster zu \u00fcbertragen?<\/p><\/blockquote>\n<p>\n<b class=\"spoiler_title\">L\u00f6sungsanalyse (Text)<\/b><\/p>\n<p>Die L\u00f6sung auf der Oberfl\u00e4che: den Zustand des ersten und zweiten Elements tauschen, dann den ersten mit dem dritten, dann mit dem vierten und so weiter. Nach jedem Tausch wird der Zustand eines Elements an der richtigen Position landen. Es m\u00fcssen O(N) Vertauschungen vorgenommen werden, was O(N\u00b7M) Zeit in Anspruch nehmen wird.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Analyse der Aufgaben von der Hydra-Konferenz \u2013 Lastenverteilung und In-Memory-Speicher\" src=\"\/wp-content\/uploads\/2019\/07\/c0bbdf680f565d790bd64ebcd90bf985.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Lineare Zeit ist zu lang, daher kann man die Zust\u00e4nde der Elemente paarweise tauschen: den ersten mit dem zweiten, den dritten mit dem vierten und so weiter. Nach jedem Tausch wird der Zustand jedes zweiten Elements an der richtigen Position landen. Es m\u00fcssen O(lg N) Vertauschungen vorgenommen werden, was O(M lg N) Zeit in Anspruch nehmen wird.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Analyse der Aufgaben von der Hydra-Konferenz \u2013 Lastenverteilung und In-Memory-Speicher\" src=\"\/wp-content\/uploads\/2019\/07\/7d55d4f8b63bf63763e93b5780e02c48.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Es ist jedoch m\u00f6glich, den Shift noch effizienter zu gestalten \u2013 nicht in linearer, sondern in konstanter Zeit. Daf\u00fcr muss im ersten Schritt der Zustand des ersten Elements mit dem letzten, des zweiten mit dem vorletzten und so weiter getauscht werden. Der Zustand des letzten Elements befindet sich dann an der gew\u00fcnschten Position. Jetzt muss der Zustand des zweiten Elements mit dem letzten, des dritten mit dem vorletzten und so weiter getauscht werden. Nach dieser Runde des Tauschens befinden sich alle Elemente an den richtigen Positionen. Insgesamt werden O(2M) ~ O(1) Tauschvorg\u00e4nge durchgef\u00fchrt.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Analyse der Aufgaben von der Hydra-Konferenz \u2013 Lastenverteilung und In-Memory-Speicher\" src=\"\/wp-content\/uploads\/2019\/07\/ad5fe5325985af3b280d2dc75c6a1077.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Eine solche L\u00f6sung wird einen Mathematiker, der sich noch erinnert, dass eine Drehung die Komposition zweier Achsenspiegelungen ist, nicht \u00fcberraschen. \u00dcbrigens l\u00e4sst sie sich trivial f\u00fcr einen Shift nicht nur um eine, sondern um K &lt; N Positionen verallgemeinern. (Schreiben Sie in die Kommentare, wie genau.)<\/p>\n<p><\/p>\n<p>Hat Ihnen diese Aufgaben gefallen? Kennen Sie andere L\u00f6sungen? Teilen Sie sie in den Kommentaren.<\/p>\n<p><\/p>\n<p>Hier sind einige n\u00fctzliche Links zum Schluss:<\/p>\n<p><\/p>\n<ul>\n<li>erfahren Sie mehr \u00fcber <noindex><a rel=\"nofollow\" href=\"https:\/\/tech.kontur.ru\/infra\">Infrastrukturentwicklung<\/a><\/noindex> bei Kontur<\/li>\n<li>sehen Sie sich die Aufzeichnungen interner <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/playlist?list=PLc82OEDeni8TxAybSoENHU-hJ4mRbVQG2\">Besprechungen mit Vortr\u00e4gen an<\/a><\/noindex> \u00fcber verteilte Systeme<\/li>\n<li>sehen Sie sich die Videovortragsreihe \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/tech.kontur.ru\/algorithms-for-everyone\">Ungew\u00f6hnliche Algorithmen f\u00fcr gew\u00f6hnliche Menschen<\/a><\/noindex>\u00bb<\/li>\n<li>abonnieren Sie unseren <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/KonturTech\">Kanal auf Telegram<\/a><\/noindex><\/li>\n<\/ul>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skbkontur\/blog\/459958\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u043d\u0435\u0439 \u043d\u0430\u0437\u0430\u0434 \u0441\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f Hydra. \u0420\u0435\u0431\u044f\u0442\u0430 \u0438\u0437 JUG.ru Group \u043f\u0440\u0438\u0433\u043b\u0430\u0441\u0438\u043b\u0438 \u0441\u043f\u0438\u043a\u0435\u0440\u043e\u0432 \u043c\u0435\u0447\u0442\u044b (\u041b\u0435\u0441\u043b\u0438 \u041b\u044d\u043c\u043f\u043e\u0440\u0442! \u041a\u043b\u0438\u0444\u0444 \u041a\u043b\u0438\u043a! \u041c\u0430\u0440\u0442\u0438\u043d \u041a\u043b\u0435\u043f\u043f\u043c\u0430\u043d\u043d!) \u0438 \u043f\u043e\u0441\u0432\u044f\u0442\u0438\u043b\u0438 \u0434\u0432\u0430 \u0434\u043d\u044f \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f\u043c. \u041a\u043e\u043d\u0442\u0443\u0440 \u0431\u044b\u043b \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0442\u0440\u0451\u0445 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u043e\u0432 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438. \u041c\u044b \u043e\u0431\u0449\u0430\u043b\u0438\u0441\u044c \u043d\u0430 \u0441\u0442\u0435\u043d\u0434\u0435, \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0438 \u043f\u0440\u043e \u043d\u0430\u0448\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u043a\u0438, \u0438\u0433\u0440\u0430\u043b\u0438 \u0432 \u0431\u0438\u043d\u0433\u043e, \u0440\u0435\u0448\u0430\u043b\u0438 \u0437\u0430\u0434\u0430\u0447\u043a\u0438. \u042d\u0442\u043e \u043f\u043e\u0441\u0442 \u0441 \u0440\u0430\u0437\u0431\u043e\u0440\u043e\u043c \u0437\u0430\u0434\u0430\u0447 \u043d\u0430 \u0441\u0442\u0435\u043d\u0434\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27083,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-36205","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u043d\u0435\u0439 \u043d\u0430\u0437\u0430\u0434 \u0441\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f Hydra. \u0420\u0435\u0431\u044f\u0442\u0430 \u0438\u0437 JUG.ru Group \u043f\u0440\u0438\u0433\u043b\u0430\u0441\u0438\u043b\u0438 \u0441\u043f\u0438\u043a\u0435\u0440\u043e\u0432 \u043c\u0435\u0447\u0442\u044b (\u041b\u0435\u0441\u043b\u0438 \u041b\u044d\u043c\u043f\u043e\u0440\u0442! \u041a\u043b\u0438\u0444\u0444 \u041a\u043b\u0438\u043a! \u041c\u0430\u0440\u0442\u0438\u043d \u041a\u043b\u0435\u043f\u043f\u043c\u0430\u043d\u043d!) \u0438 \u043f\u043e\u0441\u0432\u044f\u0442\u0438\u043b\u0438 \u0434\u0432\u0430 \u0434\u043d\u044f \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f\u043c. \u041a\u043e\u043d\u0442\u0443\u0440 \u0431\u044b\u043b \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0442\u0440\u0451\u0445 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u043e\u0432 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438. \u041c\u044b \u043e\u0431\u0449\u0430\u043b\u0438\u0441\u044c \u043d\u0430 \u0441\u0442\u0435\u043d\u0434\u0435, \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0438 \u043f\u0440\u043e \u043d\u0430\u0448\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u043a\u0438, \u0438\u0433\u0440\u0430\u043b\u0438 \u0432 \u0431\u0438\u043d\u0433\u043e, \u0440\u0435\u0448\u0430\u043b\u0438 \u0437\u0430\u0434\u0430\u0447\u043a\u0438. \u042d\u0442\u043e \u043f\u043e\u0441\u0442 \u0441 \u0440\u0430\u0437\u0431\u043e\u0440\u043e\u043c \u0437\u0430\u0434\u0430\u0447 \u043d\u0430 \u0441\u0442\u0435\u043d\u0434\u0435\" \/>\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\/de\/blog\/administrirovanie\/razbor-zadach-s-konferentsii-hydra-balansirovka-nagruzki-i-in-memory-hranilishha\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\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\udd47\u0420\u0430\u0437\u0431\u043e\u0440 \u0437\u0430\u0434\u0430\u0447 \u0441 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 Hydra \u2014 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0430 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438 in-memory \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u043d\u0435\u0439 \u043d\u0430\u0437\u0430\u0434 \u0441\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f Hydra. \u0420\u0435\u0431\u044f\u0442\u0430 \u0438\u0437 JUG.ru Group \u043f\u0440\u0438\u0433\u043b\u0430\u0441\u0438\u043b\u0438 \u0441\u043f\u0438\u043a\u0435\u0440\u043e\u0432 \u043c\u0435\u0447\u0442\u044b (\u041b\u0435\u0441\u043b\u0438 \u041b\u044d\u043c\u043f\u043e\u0440\u0442! \u041a\u043b\u0438\u0444\u0444 \u041a\u043b\u0438\u043a! \u041c\u0430\u0440\u0442\u0438\u043d \u041a\u043b\u0435\u043f\u043f\u043c\u0430\u043d\u043d!) \u0438 \u043f\u043e\u0441\u0432\u044f\u0442\u0438\u043b\u0438 \u0434\u0432\u0430 \u0434\u043d\u044f \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f\u043c. \u041a\u043e\u043d\u0442\u0443\u0440 \u0431\u044b\u043b \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0442\u0440\u0451\u0445 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u043e\u0432 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438. \u041c\u044b \u043e\u0431\u0449\u0430\u043b\u0438\u0441\u044c \u043d\u0430 \u0441\u0442\u0435\u043d\u0434\u0435, \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0438 \u043f\u0440\u043e \u043d\u0430\u0448\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u043a\u0438, \u0438\u0433\u0440\u0430\u043b\u0438 \u0432 \u0431\u0438\u043d\u0433\u043e, \u0440\u0435\u0448\u0430\u043b\u0438 \u0437\u0430\u0434\u0430\u0447\u043a\u0438. \u042d\u0442\u043e \u043f\u043e\u0441\u0442 \u0441 \u0440\u0430\u0437\u0431\u043e\u0440\u043e\u043c \u0437\u0430\u0434\u0430\u0447 \u043d\u0430 \u0441\u0442\u0435\u043d\u0434\u0435\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/razbor-zadach-s-konferentsii-hydra-balansirovka-nagruzki-i-in-memory-hranilishha\" \/>\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:10:16+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:10:16+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\udd47Analyse der Aufgaben von der Hydra-Konferenz \u2013 Lastenverteilung und In-Memory-Speicher | ProHoster","description":"Vor ein paar Tagen fand die Hydra-Konferenz statt. Die Kollegen von JUG.ru Group luden Traumsprecher ein (Leslie Lamport! Cliff Click! Martin Kleppmann!) und widmeten zwei Tage den Themen verteilte Systeme und Berechnungen. Contour war einer von drei Partnern der Konferenz. Wir hatten interessante Gespr\u00e4che am Stand, informierten \u00fcber unsere verteilten Speicherl\u00f6sungen, spielten Bingo und l\u00f6sten Aufgaben. Dies ist ein Beitrag zur Analyse der Aufgaben am Stand.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/razbor-zadach-s-konferentsii-hydra-balansirovka-nagruzki-i-in-memory-hranilishha","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","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\udd47\u0420\u0430\u0437\u0431\u043e\u0440 \u0437\u0430\u0434\u0430\u0447 \u0441 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 Hydra \u2014 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0430 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438 in-memory \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 | ProHoster","og:description":"\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u043d\u0435\u0439 \u043d\u0430\u0437\u0430\u0434 \u0441\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f Hydra. \u0420\u0435\u0431\u044f\u0442\u0430 \u0438\u0437 JUG.ru Group \u043f\u0440\u0438\u0433\u043b\u0430\u0441\u0438\u043b\u0438 \u0441\u043f\u0438\u043a\u0435\u0440\u043e\u0432 \u043c\u0435\u0447\u0442\u044b (\u041b\u0435\u0441\u043b\u0438 \u041b\u044d\u043c\u043f\u043e\u0440\u0442! \u041a\u043b\u0438\u0444\u0444 \u041a\u043b\u0438\u043a! \u041c\u0430\u0440\u0442\u0438\u043d \u041a\u043b\u0435\u043f\u043f\u043c\u0430\u043d\u043d!) \u0438 \u043f\u043e\u0441\u0432\u044f\u0442\u0438\u043b\u0438 \u0434\u0432\u0430 \u0434\u043d\u044f \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f\u043c. \u041a\u043e\u043d\u0442\u0443\u0440 \u0431\u044b\u043b \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0442\u0440\u0451\u0445 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u043e\u0432 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438. \u041c\u044b \u043e\u0431\u0449\u0430\u043b\u0438\u0441\u044c \u043d\u0430 \u0441\u0442\u0435\u043d\u0434\u0435, \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0438 \u043f\u0440\u043e \u043d\u0430\u0448\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u043a\u0438, \u0438\u0433\u0440\u0430\u043b\u0438 \u0432 \u0431\u0438\u043d\u0433\u043e, \u0440\u0435\u0448\u0430\u043b\u0438 \u0437\u0430\u0434\u0430\u0447\u043a\u0438. \u042d\u0442\u043e \u043f\u043e\u0441\u0442 \u0441 \u0440\u0430\u0437\u0431\u043e\u0440\u043e\u043c \u0437\u0430\u0434\u0430\u0447 \u043d\u0430 \u0441\u0442\u0435\u043d\u0434\u0435","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/razbor-zadach-s-konferentsii-hydra-balansirovka-nagruzki-i-in-memory-hranilishha","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:10:16+00:00","article:modified_time":"2019-10-31T19:10:16+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36205","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-22 02:25:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 16:50:57","updated":"2026-01-22 02:25:19"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/36205","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=36205"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/36205\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/27083"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=36205"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=36205"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=36205"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}