Július 11-12-én konferenciát tartanak Szentpéterváron párhuzamos és elosztott rendszerek fejlesztésének szentelt. A Hydra az a helyzet, hogy a legjobb tudósokat (akik általában csak külföldi tudományos konferenciákon találkoznak) és a jól ismert gyakorló mérnököket egy nagy programba egyesíti a tudomány és a gyakorlat metszéspontjában.
A Hydra az elmúlt évek egyik legfontosabb konferenciája. Nagyon komoly felkészülés, előadók és beszámolók kiválasztása előzte meg. erről a múlt héten a JUG.ru csoport igazgatójával, Alekszej Fedorovval ().
Mi három fontos résztvevőről, az elosztott rendszerek elméletének megalapítóiról - Leslie Lamportról, Maurice Herlihyről és Michael Scottról. Itt az ideje, hogy többet beszéljünk az egész programról!

motiváció
Ha programoz, akkor így vagy úgy többszálú és elosztott számítástechnikával van dolgunk. Közvetlenül dolgoznak velük az érintett területek szakemberei, de implicit módon mindenhonnan ránk néz a disztribúció: bármelyik többmagos számítógépben vagy elosztott szolgáltatásban van, ami párhuzamosan végez számításokat.
Számos konferencia foglalkozik az alkalmazásprogramozás bizonyos aspektusaival. A spektrum másik oldalán speciális tudományos iskoláink vannak, előadások formájában, amelyek hatalmas mennyiségű összetett elméletet tárnak fel. Például a szentpétervári Hydrával párhuzamosan . A Hydra konferencián megpróbáltuk összehozni a kemény gyakorlatot, a tudományt és mindent, ami a metszéspontjukban van.
Gondolj csak bele: csodálatos időket élünk, ahol élőben találkozhatsz az általunk foglalkoztatott tudomány és mérnöki terület alapítóival. A fizikusok sem Newtonnal, sem Einsteinnel nem találkoznak – a vonat elment. De még mindig mellettünk élnek azok, akik megalkották az elosztott rendszerek elméletének alapjait, feltalálták a népszerű programozási nyelveket, és először testesítették meg mindezt működő prototípusokká. Ezek az emberek nem adták fel félúton a munkájukat, jelenleg világhírű egyetemeken és cégeknél látnak el valós feladatokat, és napjaink legnagyobb tudás- és tapasztalatforrásai.
Másrészt a velük való találkozás lehetősége általában pusztán elméleti marad: kevesen tudjuk folyamatosan figyelemmel kísérni valamelyik Rochesteri Egyetem nyilvános eseményeit, hogy aztán rohanjunk az USA-ba és vissza Michael Scott előadására. A Hydra összes tagjának meglátogatása általában egy kis vagyont jelent, eltekintve az eltöltött idő szakadékától (bár érdekes küldetésnek tűnik).
Másrészt viszont nagyon sok csúcsmérnökünk dolgozik jelenleg az elosztott rendszerek aktuális problémáin, és biztosan van mit mesélniük. De itt van a probléma – ők dolgoznakés az idejük drága. Igen, ha Ön a Microsoft, a Google vagy a JetBrains alkalmazottja, drámaian megnő annak a valószínűsége, hogy egy belső eseményen találkozik az egyik jól ismert előadóval, de általában - nem, ez nem történik meg minden nap.
Ily módon a Hydra konferencia olyan fontos feladatot valósít meg, amelyet legtöbbünk egyedül nem tud megtenni - egy helyen és egy időben, összehozza azokat az embereket, akiknek ötletei vagy kommunikációja megváltoztathatja az életét. Elismerem, hogy nem mindenkinek van szüksége elosztott rendszerekre, néhány összetett alapvető dologra. Életed végéig programozhatod a CRUD-okat PHP-ben, és teljesen boldog lehetsz. De akinek szüksége van rá - ez a lehetőség.
Elég sok idő telt el a Habré-ról szóló Hydra konferencia első bejelentése óta. Ezalatt az idő alatt rengeteg munka történt – és most már szinte az összes jelentést tartalmazó listánk van. Nincsenek lomha egyszálú algoritmusok, csak tiszta elosztott hardcore! Fejezzük be általános szavakkal, és nézzük meg, mi áll rendelkezésünkre.
Keynotes
A vitaindító előadások kezdik és zárják a konferencia napjait. A nyitó vitaindító célja általában a konferencia általános szellemének és irányának meghatározása. A záró vitaindító vonalat húz, és elmagyarázza, hogyan élhetünk a konferencia napjai alatt megszerzett tudással és készségekkel. Kezdet és vége: amire a legjobban emlékeznek, és általában, annak megnövekedett értéke van.
Cliff Click-
Cliff legenda a Java világban. A 90-es évek végén doktori disszertációja céljából írt egy dolgozatot a címmel , amely egy idő után a HotSpot JVM Server Compiler alapja lett. Két évvel később már a Sun Microsystemsnél dolgozott a JVM-en, és megmutatta az egész világnak, hogy a JIT-nek joga van létezni. Ez az egész történet, miszerint a Java az egyik leggyorsabb modern futtatókörnyezet a legokosabb és leggyorsabb optimalizálással, a Cliff Click-től származik. Kezdetben úgy gondolták, hogy ha valami elérhető egy statikus fordító számára, akkor meg sem próbálhatja megdobni. Cliff és a csapat munkájának köszönhetően minden új nyelvet alapértelmezés szerint a JIT összeállítás ötletével kezdtek létrehozni. Természetesen ez nem egy ember munkája volt, de Cliff nagyon fontos szerepet játszott benne.
A nyitó vitaindítóban Cliff a másik vállalkozásáról fog beszélni - , egy memórián belüli platform elosztott és méretezhető gépi tanuláshoz ipari alkalmazásokhoz. Pontosabban a benne lévő kulcs-érték párok elosztott tárolásáról. Ez egy nagyon gyors tároló sok érdekes tulajdonsággal (a pontos lista itt található ), amelyek lehetővé teszik hasonló megoldások használatát a big data streaming matematikájában.
Egy másik beszéd, amit Cliff fog tartani . Életrajzának másik része - tíz év , ahol sok mindent frissített és javított az Azul hardver- és technológiai veremében: JIT fordítók, futtatókörnyezet, szálmodell, hibakezelés, veremkezelés, hardvermegszakítások, osztálybetöltés, és így tovább, és így tovább ötlet.
A legérdekesebb rész akkor kezdődött, amikor hardvert készítettek a nagyvállalatok számára – egy szuperszámítógépet a Java futtatására. Egészen innovatív dolog volt, kifejezetten a Java-ra szabva, aminek speciális követelményei vannak - memóriakorlátok az alacsony szünetű szemétgyűjtéshez, tömbök határellenőrzéssel, virtuális hívások... Az egyik legmenőbb technológia a hardveres tranzakciós memória. A 1 mag bármelyikének teljes L864-e részt vehetne egy tranzakciós írásban, ami különösen fontos a Java-ban lévő zárolások esetén (a szinkronizált blokkok párhuzamosan működhetnek, amíg nincs valódi memóriaütközés). A gyönyörű ötlet azonban összeomlott a rideg valósággal – és ebben a jelentésben Cliff elmondja, hogy a HTM és az STM miért nem alkalmasak a többszálú számítástechnika gyakorlati igényeire.
Michael Scott-
- A Rochesteri Egyetem számítástechnika professzora, akivel a sors összekötötte , és szülőhelyén, a Wisconsin-Madison Egyetemen öt évig volt dékán. Kutatásokkal foglalkozik a párhuzamos és elosztott programozás, valamint a nyelvi tervezés területén, és ezt tanítja a hallgatóknak.
Az egész világ ismeri Michaelt a tankönyvnek köszönhetően , amelynek legújabb kiadása viszonylag nemrégiben - 2015-ben - jelent meg. Az ő munkája kaptam mint az egyik leghíresebb az elosztott számítástechnika és a Rochesteri Egyetem Online Könyvtárában. Ugyanannak a Michael-Scott-algoritmusnak a szerzőjeként is ismerheti .
Ami a Java világot illeti, ez egy speciális eset: Doug Leával együtt kifejlesztette azokat a nem blokkoló algoritmusokat és szinkron sorokat, amelyeken a Java könyvtárak futnak. Erről fog szólni a „Kettős adatszerkezetek” vitaindító – ezeknek a struktúráknak a Java SE 6-ban való bevezetése tízszeresére tette lehetővé a teljesítmény javítását. java.util.concurrent.ThreadPoolExecutor. Ha előre érdekel, mik ezek a „kettős adatstruktúrák”, akkor igen .
Maurice Herlihy-
- Két Dijkstra-díj nyertese. Az első a munkára vonatkozik (Brown University), és a második, újabb - (Virginia Műszaki Egyetem). A Dijkstra-díjat olyan alkotásokért ítélik oda, amelyek jelentősége és hatása már legalább tíz éve érzékelhető, és nyilvánvaló, hogy Maurice a terület egyik leghíresebb specialistája. Jelenleg a Brown Egyetem professzora, és egy bekezdésig tartó feljegyzése van az eredményekről.
Ebben a záró vitaindítóban Maurice a blokklánc elosztott rendszerek elméletéről és gyakorlatáról fog beszélni az elosztott számítástechnika klasszikusainak szemszögéből, és arról, hogyan egyszerűsíti le számos kapcsolódó problémát. Ez a beszámoló kizárólag a konferencia témájával foglalkozik - egyáltalán nem a bányászati felhajtásról, hanem arról, hogy tudásunkat hogyan lehet elképesztően hatékonyan és megfelelően hasznosítani különféle feladatokhoz.
2017 júliusában Maurice már eljött Oroszországba az SPTDC iskolába, részt vett a JUG.ru találkozón, a felvétel pedig megtekinthető a YouTube-on:

Fő program
Ezután következik a programban szereplő beszámolók rövid áttekintése. Néhány jelentést itt részletesen ismertetünk, néhányat rövidebben. A hosszú leírások főként az angol nyelvű jelentésekhez mentek, amelyekhez tudományos közleményekre, a Wikipédián található kifejezésekre stb. A teljes lista lehet . Az oldalon található lista frissítésre és kiegészítésre kerül.
Leslie Lamport-
Leslie Lamport az elosztott számítástechnika úttörő szerzője. a "Lamport TeX" rövidítése. Ő volt az, aki először, még 1979-ben vezette be a koncepciót , és a cikkét megkapta a Dijkstra-díjat.
Formátumát tekintve ez a legszokatlanabb része a programnak, mert ez nem is riport, hanem kérdezz-felelet. Amikor a hallgatóság jelentős része már ismeri (vagy megismerheti) mindenféle Lamport elméletére épülő művet, saját cikkeit, riportjait, fontosabb, hogy minden rendelkezésre álló időt a közvetlen kommunikációra fordítsanak.
Az ötlet egyszerű – két riportot nézhet meg a YouTube-on: и és készítsen elő legalább egy kérdést, és Leslie válaszol.
A két videó közül az első már megvan . Ha nincs egy órája a videó megtekintéséhez, gyorsan elolvashatja az egészet szöveges formában.
Megjegyzés: A YouTube-on sokkal több videó található Leslie Lamporttal. Például van egy kiváló . A teljes kurzus offline verziója elérhető a következő címen: , a YouTube-on pedig a mobileszközökön való kényelmesebb megtekintés érdekében öntötte ki.
Martin Kleppman -
Martin Kleppmann a Cambridge-i Egyetem kutatója, aki CRDT-vel és formális algoritmus-ellenőrzéssel foglalkozik. Martin könyve A 2017-ben megjelent, nagyon sikeresnek bizonyult és a bestseller listákra került az adattárolás és -feldolgozás terén. Kevin Scott, a Microsoft műszaki igazgatója : „Ez a könyv kötelező a tervezőmérnökök számára. Ez egy ritka erőforrás, amely áthidalja az elméletet és a gyakorlatot, hogy segítse a fejlesztőket az adatinfrastruktúra és -rendszerek intelligensebb tervezésében és megvalósításában.” Valami hasonlót mondott a Kafka és a CTO Confluent alkotója, Jay Kreps.
Mielőtt tudományos kutatásba kezdett, Martin az iparágban dolgozott, és társalapítója volt két sikeres startupnak:
- Rapportive, amely az Ön e-mailes kapcsolatai közösségi profiljának megjelenítésére szolgál, amelyet a LinkedIn vásárolt meg 2012-ben;
- Go Test It, egy többböngészős, automatizált webhely-ellenőrző, amelyet a RedGate 2009-ben vásárolt.
Általánosságban elmondható, hogy bár Martin kevésbé ismert, mint előadóink, máris hozzá tudott járulni mind az elosztott számítástechnika fejlesztéséhez, mind az iparhoz.
Ebben az előadásban Martin egy tudományos kutatásához közelebb álló témáról fog beszélni. A Google Dokumentumokban és egy hasonló, a dokumentumok társszerzői számára szolgáló kanapéban a "társszerző" egy replikációs feladatot jelent: minden felhasználónak megvan a saját másolata egy megosztott dokumentumról, amelyet aztán módosít, és minden módosítás a hálózaton keresztül kerül elküldésre a többieknek. a résztvevők közül. A dokumentumok offline módosulásai a dokumentum ideiglenes inkonzisztenciáját eredményezik a többi résztvevőhöz képest, és az újraszinkronizálás konfliktuskezelést igényel. Csak erre vannak (CRDT) valójában egy meglehetősen új dolog, aminek a lényege csak 2011-ben fogalmazódott meg. Ez az előadás megvitatja, hogy mi történt azóta a CRDT világában, mik a legújabb fejlesztések, általánosságban tárgyalja a helyi alkalmazások létrehozásának megközelítését, valamint a nyílt forráskódú könyvtár használatát. különösen.
Jövő héten a Habrén jelentetünk meg egy nagyinterjút Martinnal, érdekes lesz.
Pedro Ramalhete -
Pedro a Ciscónál dolgozik, és az elmúlt tíz évben párhuzamos algoritmusokat fejleszt, beleértve a szinkronizálási mechanizmusokat, a zárolás- és várakozásmentes adatstruktúrákat, és mindent, ami ebben a témában elképzelhető. Jelenlegi kutatási és mérnöki érdeklődési köre az univerzális konstrukciókra, a szoftvertranzakciós memóriára, a perzisztens memóriára és hasonló technológiákra irányul, amelyek lehetővé teszik a helyes, méretezhető és hibatűrő alkalmazásokat. És egy szűk körben széles körben ismert blog szerzője is .
A legtöbb többszálas alkalmazás párhuzamos adatstruktúrákon fut, a szereplők közötti üzenetsorok használatától a kulcsérték-tárolókban található indexelt adatstruktúrákig. Hosszú évek óta sikeresen dolgoznak a Java JDK-ban, és lassan hozzáadják a C ++-hoz.
A párhuzamos adatstruktúra megvalósításának legegyszerűbb módja a soros (egyszálú) megvalósítás, amelyben a metódusokat mutexek védik. Ez bármely jun számára elérhető, de nyilvánvaló méretezési és teljesítményproblémái vannak. A zárolásmentes és várakozásmentes adatstruktúrák ugyanakkor nem csak a hibákat jobban kezelik, hanem jobb teljesítményprofillal is rendelkeznek - fejlesztésük azonban mély szakértelmet és konkrét használati esethez való alkalmazkodást igényel. Egy rossz kódsor elég ahhoz, hogy mindent feltörjön.
Hogyan biztosítható, hogy még egy nem szakértő is tudjon ilyen adatstruktúrákat tervezni és megvalósítani? Ismeretes, hogy bármelyik szekvenciális algoritmus szálbiztossá tehető vagy tranzakciós memória. Egyrészt csökkenthetik a belépési küszöböt a probléma megoldásához. Mindkét megoldás azonban általában nem hatékony megvalósításhoz vezet. Pedro arról fog beszélni, hogyan sikerült ezeket a konstrukciókat hatékonyabbá tenni, és hogyan használhatók fel az algoritmusaikhoz.
Heidi Howard-
Heidi Howard Martinhoz hasonlóan elosztott rendszerek kutatója a Cambridge-i Egyetemen. Szakterülete a következetesség, a hibatűrés, a teljesítmény és az elosztott konszenzus. Leginkább a Paxos-algoritmus általánosításáról ismert .
Emlékezzünk vissza, hogy - Protokollcsalád a konszenzus problémájának megoldására megbízhatatlan számítógépek hálózatában, amelyek Leslie Lamport munkáján alapultak. Így néhány előadónk olyan feladatokon dolgozik, amelyeket eredetileg a többi előadónk javasolt – és ez csodálatos.
A több gazdagép közötti konszenzus megtalálásának képessége – megszólítás, vezetőválasztás, blokkolás vagy koordináció tekintetében – alapvető kérdés a mai elosztott rendszerekben. Manapság a Paxos a konszenzusos problémák megoldásának fő módja, és rengeteg kutatás folyik körülötte annak érdekében, hogy az algoritmust különféle gyakorlati igényekre bővítsék és optimalizálják.
Ebben a jelentésben újra megvizsgáljuk a Paxos elméleti alapjait, enyhítve a kezdeti követelményeket és általánosítva az algoritmust. Látni fogjuk, hogy a Paxos valójában csak az egyik lehetőség a konszenzus megközelítésének széles skálája közül, és a spektrum más pontjai is igen hasznosak a jó elosztott rendszerek felépítéséhez.
Alex Petrov -
Alex adatbázis- és tárhely-specialista, és ami még fontosabb, elkötelezett a területen . Jelenleg O'Reillyvel dolgozik a Database Internals könyvön.
A rendszerekhez (orosz terminológiával - „végső soron konzisztens”), csomópont-összeomlás vagy hálózati felosztás után a következő dilemmát kell megoldani: vagy továbbra is teljesíteni kell a kéréseket, feláldozva a konzisztenciát, vagy megtagadni azok végrehajtását és feláldozni a rendelkezésre állást. Egy ilyen rendszerben jó élmegoldás lehet a kvórumok, a csomópontok részhalmazainak átfedése és annak biztosítása, hogy legalább egy csomópont tartalmazza a legfrissebb értéket. Lehetőség van túlélni a hibákat és a kapcsolat elvesztését egyes csomópontokkal, miközben továbbra is a legfrissebb értékekkel válaszol.
Azonban mindennek megvan az ára. A kvórum replikációs séma megnövekedett tárolási költséget jelent: a redundáns adatokat egyszerre több csomóponton kell tárolnia, hogy probléma esetén elegendő másolat álljon rendelkezésre. Kiderült, hogy nem tárolhatja az összes adatot az összes replikán. Csökkentheti a tárhely terhelését, ha csak a csomópontok egy részén tárol adatokat, és speciális csomópontokat (Transient Replica) használ a hibakezelési forgatókönyvekhez.
A jelentés során megvizsgáljuk -ban használt replikációs séma и , és ennek a koncepciónak az Apache Cassandra-ban való megvalósítása a nevek alatt .
Dmitrij Vyukov -
Дмитрий — разработчик в Google, работающий над динамическим тестированием C/C++ и Go — Address/Memory/ThreadSanitizer, и над похожими инструментами для ядра Linux. Законтрибьютил в Go масштабируемый планировщик горутин, network poller и параллельный сборщик мусора. Является экспертом в многопоточности, автором дюжины новых неблокирующих алгоритмов и является обладателем Intel.
Most egy kicsit magáról a jelentésről. A Go nyelv natív támogatással rendelkezik a többszálú feldolgozáshoz gorutinok (könnyű szálak) és csatornák (FIFO-sorok) formájában. Ezeknek a mechanizmusoknak köszönhetően a felhasználók számára nagyon egyszerű és kellemes modern többszálú alkalmazásokat írni, és varázslatosnak tűnik. Mint tudjuk, itt nincs varázslat. Ebben a jelentésben Dmitrij belemerül a Go ütemező bonyolultságába, és bemutatja e „varázslat” megvalósításának titkait. Először is áttekintést ad az ütemező fő összetevőiről, működéséről. Ezután közelebbről megvizsgálunk bizonyos szempontokat, mint például a parkolási/leparkolási stratégiát és a blokkoló rendszerhívások kezelését. Végül Dmitrij beszél egy kicsit az ütemező lehetséges fejlesztéseiről.
Dmitrij Bugaicsenko -
Dmitrij közel 9 évig dolgozott az outsourcing területén, anélkül, hogy elvesztette volna a kapcsolatot az egyetemmel és a tudományos közösséggel. Az Odnoklassnikiben végzett nagy adatelemzés egyedülálló lehetőség volt számára, hogy az elméleti képzést és a tudományos megalapozást valódi, igényes termékek fejlesztésével ötvözze.
Az elosztott gráfelemzés nehéz feladat volt és az is marad: amikor szükségessé válik egy szomszédos csúcs kapcsolatairól információt szerezni, gyakran az adatokat gépek között kell átvinni, ami a végrehajtási idő növekedéséhez és a hálózat terheléséhez vezet. infrastruktúra. Ebben az előadásban azt fogjuk látni, hogyan gyorsíthatja fel jelentős mértékben a feldolgozást valószínűségi adatstruktúrák vagy tények, például a barátsági gráf szimmetriája segítségével egy közösségi hálózatban. Mindezt Apache Spark kódpéldákkal illusztráljuk.
Denis Rystsov -
Denis - fejlesztő , a konzisztenciamodell-ellenőrzés, a konszenzusos algoritmusok és az elosztott tranzakciók szakértője. Most a Microsoftnál dolgozik, előtte pedig elosztott rendszerekkel foglalkozott az Amazonnál és a Yandexnél.
Ebben a riportban megismerkedünk az elmúlt években kitalált elosztott tranzakciós protokollokkal, amelyek kliens oldalon is implementálhatók bármely feltételes frissítést (hasonlítás és beállítás) támogató adattár tetején. A lényeg az, hogy az élet nem ér véget egy kétfázisú véglegesítéssel, tranzakciók hozzáadhatók bármilyen adatbázishoz - alkalmazásszinten, de a különböző protokollok (2PC, Percolator, RAMP) eltérő kompromisszumokkal rendelkeznek, és nem kapjuk meg őket. ingyen.
Alekszej Zinovjev -
Alekszej () régi előadónk és más konferenciák programbizottsági tagja. Gyakorló tréner az EPAM Systemsnél, és 2012 óta barátja a Hadoop / Spark és más bigdata.
Ebben az előadásban Alexey a klasszikus gépi tanulási algoritmusok elosztott végrehajtáshoz való adaptálásának problémáiról fog beszélni az Apache Spark ML, Apache Mahout, Apache Flink ML és az Apache Ignite ML létrehozása során szerzett tapasztalatai alapján. Alexey beszélni fog az elosztott ML algoritmusok megvalósításáról is ezekben a keretrendszerekben.
És végül két jelentés a Yandextől a Yandex adatbázisról.
Vlagyiszlav Kuznyecov –
Vladislav a Yandex fejlesztője az elosztott platformcsoportban. A Yandex Database egy vízszintesen méretezhető, földrajzilag elosztott, hibatűrő DBMS, amely a konzisztencia veszélyeztetése nélkül képes ellenállni a lemezek, szerverek, rackek és adatközpontok meghibásodásának. A hibatűrés biztosítására egy szabadalmaztatott elosztott konszenzus algoritmust, valamint számos műszaki megoldást alkalmaznak, amelyeket a jelentés részletesen tárgyal. A jelentés mind a DBMS-fejlesztők, mind a DBMS-en alapuló alkalmazott megoldások fejlesztői számára érdekes lehet.
Semyon Checherinda -
Semyon a Yandex elosztott platformcsoportjának fejlesztője, aki az YDB-telepítés több bérlős használatának lehetőségén dolgozik.
A Yandex Database OLTP-lekérdezésekhez készült, és megfelel a tranzakciós rendszerek ACID-követelményeinek. A jelentésben figyelembe vesszük az YDB tranzakciós rendszer alapjául szolgáló tranzakcióütemezési algoritmust. Vizsgáljuk meg, mely entitások vesznek részt a tranzakciókban, ki ad globális sorrendet a tranzakciókhoz, hogyan érhető el a tranzakció atomitása, megbízhatósága és szigorú elkülönítési szintje. Egy általános feladat példáján tekintsük meg a tranzakciók megvalósítását kétfázisú véglegesítéssel és determinisztikus tranzakciókkal. Beszéljük meg a különbségeiket.
Mi a következő lépés?
A konferencia programja továbbra is tele van új beszámolókkal. Elsősorban jelentést várunk tőle Nikita Koval () a JetBrains és Oleg Anastasiev () az Odnoklassnikitől. Nikita a Kotlin csapatában dolgozik a korutinokhoz szükséges algoritmusokon, Oleg pedig az Odnoklassniki platform nagy terhelésű rendszereihez fejleszt architektúrát és megoldásokat. Ezen kívül van még 1 feltételesen üres hely, olyan jelöltekkel, amelyekért a programbizottság jelenleg is dolgozik.
A Hydra konferenciára július 11-12-én kerül sor Szentpéterváron. Jegyek lehetnek . Ügyeljen az Online jegyek elérhetőségére – ha valamilyen oknál fogva nem tud mostanában élőben eljutni Szentpétervárra.
Találkozunk a Hydrában!
Forrás: will.com
