19 гидра толгой. Хөтөлбөрийн гайхалтай тойм

Долдугаар сарын 11-12-нд Санкт-Петербургт бага хурал болно Hydra, зэрэгцээ болон тархсан системийг хөгжүүлэхэд зориулагдсан. Гидрагийн заль мэх нь дажгүй эрдэмтэд (зөвхөн гадаадын эрдэм шинжилгээний хурал дээр л олддог) болон алдартай практик инженерүүдийг шинжлэх ухаан, практикийн огтлолцол дээр нэг том хөтөлбөрт нэгтгэдэгт оршино.

Hydra бол сүүлийн хэдэн жилийн хамгийн чухал чуулгануудын нэг юм. Үүний өмнө маш нухацтай бэлтгэл хийж, илтгэгч, илтгэлүүдийг сонгон шалгаруулсан. Энэ талаар өнгөрсөн долоо хоногт habro ярилцлага гарчээ JUG.ru группын захирал Алексей Федоровтой хамт (23дерево).

Бид аль хэдийн хэлсэн тархсан системийн онолыг үндэслэгч гурван чухал оролцогч - Лесли Лампорт, Морис Херлихи, Майкл Скотт нар. Бүх хөтөлбөрийн талаар илүү дэлгэрэнгүй ярих цаг болжээ!

19 гидра толгой. Хөтөлбөрийн гайхалтай тойм

Хүсэл тэмүүлэл

Хэрэв та програмчлалын ажилд оролцож байгаа бол ямар нэг байдлаар та олон урсгалтай, тархсан тооцоололтой харьцаж байна гэсэн үг. Холбогдох салбарын мэргэжилтнүүд тэдэнтэй шууд ажилладаг боловч далд байдлаар түгээлт нь биднийг хаанаас ч харж байна: аливаа олон цөмт компьютер эсвэл түгээлтийн үйлчилгээнд тооцооллыг зэрэгцээ хийдэг зүйл байдаг.

Хэрэглээний програмчлалын янз бүрийн талыг хамарсан олон хурал байдаг. Спектрийн нөгөө талд бид асар их хэмжээний нарийн төвөгтэй онолыг лекцийн хэлбэрээр илчилдэг тусгай шинжлэх ухааны сургуулиудтай. Жишээлбэл, Санкт-Петербургт Гидратай зэрэгцэн оршдог SPTDC сургууль. Гидрагийн бага хурал дээр бид хатуу ширүүн практик, шинжлэх ухаан, тэдгээрийн уулзвар дахь бүх зүйлийг нэгтгэхийг хичээсэн.

Үүнийг бодоод үзээрэй: бидний судалж буй шинжлэх ухаан, инженерчлэлийн салбарыг үндэслэгч нартай биечлэн уулзаж болох гайхалтай цаг үед бид амьдарч байна. Физикчид Ньютон эсвэл Эйнштейнтэй уулзахгүй - галт тэрэг явлаа. Гэвч бидний хажууд тархсан системийн онолын үндсийг бий болгож, алдартай програмчлалын хэлийг зохион бүтээж, энэ бүхнийг анх удаа ажлын прототипт тусгаж чадсан хүмүүс амьдарсаар байна. Эдгээр хүмүүс ажлаа хагас дутуу орхиогүй, яг одоо дэлхийн нэр хүндтэй их дээд сургууль, компаниудад тулгамдсан асуудлууд дээр ажиллаж байгаа бөгөөд өнөөдөр мэдлэг, туршлагын хамгийн том эх сурвалж болж байна.

Нөгөөтэйгүүр, тэдэнтэй уулзах боломж ихэвчлэн онолын хувьд хэвээр үлддэг: бидний цөөхөн нь Рочестерийн зарим их сургуулийн олон нийтийн арга хэмжээг байнга хянаж, дараа нь АНУ руу яаран очиж Майкл Скотттой лекц уншдаг. Гидрагийн бүх гишүүдэд зочлох нь дэмий хоосон цаг хугацааг тооцохгүй бол багахан хэмжээний зардал гарах болно (хэдийгээр энэ нь сонирхолтой эрэл хайгуул мэт санагдаж байна).

Нөгөөтэйгүүр, манайд одоо тархсан систем дэх тулгамдсан асуудлууд дээр ажиллаж байгаа олон шилдэг инженерүүд байгаа бөгөөд тэдэнд хэлэх зүйл их байгаа нь гарцаагүй. Гэхдээ энд асуудал байна - тэд ажил, мөн тэдний цаг хугацаа үнэ цэнэтэй юм. Тийм ээ, хэрэв та Microsoft, Google эсвэл JetBrains-ийн ажилтан бол дотоод арга хэмжээний үеэр алдартай илтгэгчдийн нэгтэй уулзах магадлал эрс нэмэгддэг, гэхдээ ерөнхийдөө үгүй, энэ нь өдөр бүр тохиолддоггүй.

Ийм байдлаар Hydra бага хурал нь бидний ихэнх нь бие даан хийж чадахгүй чухал ажлыг нэг дор, нэгэн зэрэг биелүүлдэг бөгөөд таны санаа бодол, харьцах харьцаа нь таны амьдралыг өөрчилж чадах хүмүүсийг нэг дор цуглуулдаг. Хүн бүрт тархсан систем эсвэл зарим нарийн төвөгтэй үндсэн зүйл хэрэггүй гэдгийг би хүлээн зөвшөөрч байна. Та насан туршдаа PHP дээр CRUD програмчлаад бүрэн аз жаргалтай байж чадна. Гэхдээ хэнд хэрэгтэй байсан, энэ бол таны боломж.

Хабрегийн тухай Hydra бага хурлын анхны мэдэгдлээс хойш нэлээд удаан хугацаа өнгөрчээ. Энэ хугацаанд маш их ажил хийгдсэн - одоо бид бараг бүх тайлангийн жагсаалттай байна. Ганц урсгалт алгоритмууд байхгүй, зүгээр л цэвэр тархсан хатуу! Ерөнхий үгсээр дуусгаж, одоо бидний гарт юу байгааг харцгаая.

Гол тэмдэглэлүүд

Үндсэн илтгэлүүд чуулганы өдрүүдээр эхэлж, дуусдаг. Ихэвчлэн чуулганы нээлтийн үндсэн илтгэлийн гол санаа нь хурлын ерөнхий санаа, чиглэлийг тодорхойлох явдал юм. Төгсгөлийн гол илтгэл нь бага хурлын үеэр олж авсан мэдлэг, ур чадвараараа хэрхэн амьдрах талаар нэг шугам зурж тайлбарлав. Эхлэл ба төгсгөл: хамгийн сайн санаж байгаа зүйл, ерөнхийдөө ач холбогдол нь нэмэгдсэн.

Cliff Click H2O хуваарилагдсан K/V алгоритм

19 гидра толгой. Хөтөлбөрийн гайхалтай тойм Cliff бол Java ертөнцийн домог юм. 90-ээд оны сүүлчээр тэрээр докторын зэрэг хамгаалахын тулд гэсэн нэртэй илтгэл бичсэн "Шинжилгээг нэгтгэх, оновчтой болгох", хэсэг хугацааны дараа HotSpot JVM Server Compiler-ийн үндэс болсон. Хоёр жилийн дараа тэрээр Sun Microsystems-д JVM дээр ажиллаж байсан бөгөөд JIT оршин тогтнох эрхтэй гэдгийг дэлхий нийтэд харуулсан. Java нь хамгийн ухаалаг бөгөөд хамгийн хурдан оновчлол бүхий орчин үеийн хамгийн хурдан ажиллах цагуудын нэг болох тухай энэхүү түүхийг бүхэлд нь Cliff Click-ээс авсан болно. Эхний үед статик хөрвүүлэгчид ямар нэгэн зүйл хандах боломжтой бол та үүнийг оролдох шаардлагагүй гэж үздэг байсан. Клифф ба багийн ажлын ачаар бүх шинэ хэлүүд анхдагчаар JIT эмхэтгэлийн санаагаар бүтээгдэж эхэлсэн. Мэдээжийн хэрэг, энэ нь нэг хүний ​​ажил биш байсан ч Клифф үүнд маш чухал үүрэг гүйцэтгэсэн.

Нээлтийн үндсэн илтгэл дээр Клифф өөр оролдлогынхоо талаар ярих болно. H20, аж үйлдвэрийн хэрэглээнд зориулж түгээх болон өргөтгөх боломжтой машин сургалтын санах ойн платформ. Бүр тодруулбал, түүний доторх түлхүүр-утга хосуудын тархсан хадгалалтын тухай. Энэ бол маш олон сонирхолтой шинж чанартай маш хурдан хадгалалт юм (яг жагсаалтыг энд оруулав тайлбар), том өгөгдлийн урсгалын математикт ижил төстэй шийдлүүдийг ашиглах боломжийг олгодог.

Клифийн өгөх өөр нэг тайлан бол - Azul Hardware Transactional Memory туршлага. Түүний намтарын өөр нэг хэсэг - арван жил Azul-д ажиллах, тэр Azul техник хангамж, технологийн стек дэх олон зүйлийг шинэчилж, сайжруулсан: JIT хөрвүүлэгч, ажиллах хугацаа, урсгалын загвар, алдаатай харьцах, стек боловсруулах, техник хангамжийн тасалдал, анги ачаалах гэх мэт. санаа.

Хамгийн сонирхолтой хэсэг нь тэд том бизнест зориулсан техник хэрэгсэл болох Java-г ажиллуулах суперкомпьютер хийх үеэс эхэлсэн. Энэ нь маш шинэлэг зүйл байсан бөгөөд Java-д тусгайлан зориулсан бөгөөд тусгай шаардлага тавьдаг - бага завсарлагатай хог цуглуулахад зориулсан санах ойн саадыг унших, хязгаарыг шалгах массив, виртуал дуудлага... Хамгийн гайхалтай технологиудын нэг бол техник хангамжийн гүйлгээний санах ой юм. 1 цөмийн L864 нь бүхэлдээ гүйлгээ бичихэд оролцох боломжтой бөгөөд энэ нь Java дахь цоожтой ажиллахад онцгой ач холбогдолтой (синхрончлогдсон блокууд нь санах ойн зөрчилдөөн байхгүй тохиолдолд зэрэгцээ ажиллах боломжтой). Гэвч энэ сайхан санаа нь хатуу ширүүн бодит байдалд дарагдсан бөгөөд Cliff энэхүү яриандаа HTM болон STM яагаад олон урсгалт тооцооллын практик хэрэгцээнд тийм ч сайн тохирохгүй байгааг танд хэлэх болно.

Майкл Скотт - Давхар өгөгдлийн бүтэц

19 гидра толгой. Хөтөлбөрийн гайхалтай тойм Майкл Скотт - Хувь тавилан түүнийг холбосон Рочестерийн их сургуулийн компьютерийн шинжлэх ухааны профессор аль хэдийн 34 настай, мөн өөрийн Висконсин-Мэдисоны их сургуульд таван жил деканаар ажилласан. Тэрээр параллель болон тархсан програмчлал, хэлний дизайны талаар судалж, оюутнуудад заадаг.

Сурах бичгийн ачаар Майклыг дэлхий нийт мэддэг "Програмчлалын хэлний прагматик", хамгийн сүүлийн хэвлэл нь харьцангуй саяхан хэвлэгдсэн - 2015 онд. Түүний ажил "Хуваалцсан санах ойн олон процессор дээр өргөтгөх боломжтой синхрончлолын алгоритмууд" хүлээн авсан Дийкстра шагнал тархсан тооцооллын салбарт хамгийн алдартай нэг болох ба ил худлаа Рочестерийн их сургуулийн онлайн номын санд. Та түүнийг Майкл-Скоттын алгоритмын зохиогч гэдгээр нь мэддэг байх "Энгийн, хурдан бөгөөд практик блоклохгүй ба блоклох зэрэгцээ дарааллын алгоритмууд".

Жава ертөнцийн хувьд энэ бол онцгой тохиолдол юм: тэрээр Даг Лиатай хамт Java номын сангууд дээр ажилладаг блоклохгүй алгоритмууд болон синхрон дарааллыг боловсруулсан. “Хос өгөгдлийн бүтэц” сэдэвт үндсэн илтгэл яг энэ тухай байх болно - Java SE 6-д эдгээр бүтцийг нэвтрүүлснээр гүйцэтгэл 10 дахин сайжирсан. java.util.concurrent.ThreadPoolExecutor. Хэрэв та эдгээр "Хос өгөгдлийн бүтэц" гэж юу болохыг урьдчилан сонирхож байгаа бол энэ талаар мэдээлэл байна холбоотой ажил.

Морис Херлихи - Блокчейн ба тархсан тооцооллын ирээдүй

19 гидра толгой. Хөтөлбөрийн гайхалтай тойм Морис Херлихи - Дийкстрагийн хоёр шагналын эзэн. Эхнийх нь ажиллахад зориулагдсан "Хүлээлтгүй синхрончлол" (Браун их сургууль), хоёрдугаарт, хамгийн сүүлийн үеийн - "Гүйлгээний санах ой: Түгжээгүй мэдээллийн бүтцэд зориулсан архитектурын дэмжлэг" (Виржиниа технологийн их сургууль). Дийкстрагийн шагнал нь дор хаяж арван жилийн туршид ач холбогдол, үр нөлөө нь харагдаж байсан ажлыг үнэлдэг бөгөөд Морис бол энэ салбарын хамгийн алдартай мэргэжилтнүүдийн нэг юм. Тэрээр одоо Брауны их сургуулийн профессороор ажилладаг бөгөөд ололт амжилтын жагсаалтад багтсан байдаг.

Энэхүү хаалтын үндсэн илтгэлээр Морис блокчейн тархсан системийн онол, практикийн талаар тархсан тооцооллын сонгодог үзэл бодлоос болон холбогдох олон асуудлыг хэрхэн хялбарчлах талаар ярих болно. Энэ бол уул уурхайн шуугианы талаар огтхон ч биш, харин бидний мэдлэгийг төрөл бүрийн ажлуудад хэрхэн гайхалтай үр дүнтэй, зохистой ашиглаж болох тухай илтгэл юм.

2017 оны XNUMX-р сард Морис аль хэдийн Орос улсад SPTDC сургуульд суралцахаар ирсэн, JUG.ru уулзалтад оролцсон бөгөөд бичлэгийг YouTube дээрээс үзэх боломжтой.

Үндсэн програм

Дараа нь хөтөлбөрт багтсан тайлангийн товч тойм байх болно. Зарим тайланг энд дэлгэрэнгүй, заримыг нь илүү товч тайлбарласан болно. Урт тайлбарууд нь шинжлэх ухааны баримт бичиг, Википедиа дээрх нэр томьёо гэх мэт холбоосыг шаарддаг англи хэл дээрх тайланд голчлон очдог байв. Бүтэн жагсаалтыг үзэх боломжтой хурлын вэбсайтаас үзнэ үү. Вэбсайт дээрх жагсаалтыг шинэчилж, нэмж оруулах болно.

Лесли Лампорт - Асуулт, хариулт

19 гидра толгой. Хөтөлбөрийн гайхалтай тойм Лесли Лампорт бол тархсан тооцооллын чиглэлээр чухал бүтээлүүдийн зохиогч юм. "LaTeX" "Lamport TeX" гэсэн үгийн товчлол. Тэр бол анх 1979 онд уг ойлголтыг нэвтрүүлсэн хүн юм дараалсан тууштай байдал, болон түүний нийтлэл "Олон процессортой программыг зөв гүйцэтгэдэг олон процессортой компьютерийг хэрхэн бүтээх вэ" Дийкстрагийн шагнал хүртжээ.

Энэ бол илтгэл байтугай асуулт хариултын хэсэг учраас форматын хувьд хамгийн ер бусын хэсэг юм. Үзэгчдийн нэлээд хэсэг нь "Лампортын онол" дээр үндэслэсэн бүх төрлийн бүтээлүүд, өөрийн нийтлэл, илтгэлүүдтэй аль хэдийн танил болсон (эсвэл танил болсон) бол бүх цагийг шууд харилцахад зарцуулах нь илүү чухал юм.

Санаа нь энгийн - та YouTube дээр хоёр тайлан үзэх болно: "Програмчлал нь кодчилолоос илүү байх ёстой" и "Хэрэв та програм бичээгүй бол програмчлалын хэл бүү ашигла" дор хаяж нэг асуулт бэлтгэж, Лесли хариулна.

Эдгээр хоёр видеоны эхнийх нь бидэнд аль хэдийн байна хабро нийтлэл болон хувирав. Хэрэв танд видео үзэх цаг байхгүй бол та бүгдийг текст хэлбэрээр хурдан унших боломжтой.

Тэмдэглэл: YouTube дээр Лесли Лампортын олон видео бий. Жишээлбэл, агуу зүйл байдаг TLA+ курс. Энэхүү сургалтын офлайн хувилбарыг эндээс авах боломжтой зохиогчийн нүүр хуудас, мөн тэрээр мобайл төхөөрөмж дээр илүү хялбар үзэхийн тулд YouTube-д байршуулсан.

Мартин Клепманн - Түгээмэл хамтын ажиллагаанд зориулж хэрэглэгчийн төхөөрөмж дээрх өгөгдлийг синк хийх

19 гидра толгой. Хөтөлбөрийн гайхалтай тойм Мартин Клеппманн бол Кембрижийн их сургуулийн судлаач бөгөөд CRDT болон алгоритмын албан ёсны баталгаажуулалтын чиглэлээр ажилладаг. Мартины ном "Өгөгдөл их шаарддаг программ зохиох", 2017 онд хэвлэгдсэн нь маш амжилттай болж, өгөгдөл хадгалах, боловсруулах чиглэлээр бестселлерийн жагсаалтад орсон. Кевин Скотт, Майкрософт компанийн гүйцэтгэх захирал, гэж нэг удаа хэлсэн: “Энэ ном нь программ хангамжийн инженерүүдэд заавал байх ёстой ном байх ёстой. Энэ нь хөгжүүлэгчдэд дэд бүтэц, мэдээллийн системийг зохион бүтээх, хэрэгжүүлэхэд илүү ухаалаг туслах онол, практикийг хослуулсан ховор нөөц юм." Кафкаг бүтээгч, Confluent-ийн ерөнхий захирал Жей Крепс үүнтэй төстэй зүйлийг хэлсэн.

Мартин эрдэм шинжилгээний ажилд шилжихээсээ өмнө салбарт ажиллаж байсан бөгөөд хоёр амжилттай гарааны бизнесийг үүсгэн байгуулжээ.

  • LinkedIn-ээс 2012 онд худалдаж авсан таны цахим шуудангийн харилцагчдын нийгмийн профайлыг харуулахад зориулагдсан;
  • Go Test It нь RedGate-н 2009 онд худалдаж авсан янз бүрийн хөтөч дээр вэбсайтуудыг автоматаар шалгах үйлчилгээ юм.

Ерөнхийдөө Мартин хэдийгээр манай гол илтгэгчдээс бага нэр хүндтэй ч тархсан тооцоолол, үйлдвэрлэлд тодорхой хувь нэмэр оруулж чадсан.

Энэ илтгэлээр Мартин өөрийн эрдэм шинжилгээний судалгаатай ойр сэдвийн талаар ярих болно. Google Docs болон үүнтэй төстэй баримт бичгийг хамтран засварлах буйдан дээрх "хамтран засварлах" нь хуулбарлах ажлыг хэлдэг: хэрэглэгч бүр хуваалцсан баримт бичгийн өөрийн хуулбартай бөгөөд дараа нь үүнийг өөрчилдөг бөгөөд бүх өөрчлөлтийг сүлжээгээр дамжуулан бусад хэсэгт илгээдэг. оролцогчид. Баримт бичгийг офлайнаар өөрчлөх нь бусад оролцогчидтой холбоотой баримт бичгийн түр зуурын зөрчилд хүргэдэг бөгөөд дахин синхрончлох нь зөрчилдөөнийг шийдвэрлэхийг шаарддаг. Тэд яг үүний төлөө оршдог Зөрчилгүй хуулбарласан өгөгдлийн төрлүүд (CRDT) нь үнэндээ нэлээн шинэ зүйл бөгөөд түүний мөн чанарыг зөвхөн 2011 онд боловсруулсан. Энэхүү илтгэлээр түүнээс хойш CRDT-ийн ертөнцөд юу тохиолдсон, хамгийн сүүлийн үеийн дэвшилтүүд юу болсон, ерөнхийдөө локал программуудыг бий болгох арга барил, нээлттэй эхийн номын санг ашиглах талаар ярилцана. Автомат нэгтгэх Тухайлбал.

Ирэх долоо хоногт бид Мартинтай хийсэн урт ярилцлагыг Хабре дээр нийтлэх болно, энэ нь сонирхолтой байх болно.

Педро Рамалхете - Хүлээх шаардлагагүй өгөгдлийн бүтэц, хүлээлтгүй гүйлгээ

19 гидра толгой. Хөтөлбөрийн гайхалтай тойм Педро нь Cisco-д ажилладаг бөгөөд сүүлийн арав гаруй жилийн турш синхрончлолын механизм, түгжээгүй, хүлээхгүй өгөгдлийн бүтэц, энэ сэдвээр таны төсөөлж чадах бүх зүйлийг багтаасан зэрэгцээ алгоритмуудыг боловсруулж байна. Түүний одоогийн судалгаа, инженерчлэлийн сонирхол нь зөв, өргөтгөх боломжтой, гэмтэлд тэсвэртэй програмуудыг идэвхжүүлдэг Universal Constructions, Software Transactional Memory, Persistent Memory болон ижил төстэй технологид төвлөрдөг. Тэрээр мөн л явцуу хүрээнийхэнд танигдсан блогийн зохиогч юм Зэрэгцээ гажигууд.

Ихэнх олон урсгалтай програмууд одоо оролцогчдын хоорондох мессежийн дарааллыг ашиглахаас эхлээд түлхүүр утгын дэлгүүрт индексжүүлсэн өгөгдлийн бүтэц хүртэл зэрэгцээ өгөгдлийн бүтэц дээр ажилладаг. Тэд олон жилийн турш Java JDK дээр амжилттай ажиллаж байгаа бөгөөд C++ хэл дээр аажмаар нэмэгдэж байна.

Зэрэгцээ өгөгдлийн бүтцийг хэрэгжүүлэх хамгийн энгийн арга бол аргуудыг мутексээр хамгаалсан дараалсан (нэг урсгалтай) хэрэгжилт юм. Энэ нь аль ч зургадугаар сард хүртээмжтэй боловч масштаб болон гүйцэтгэлтэй холбоотой тодорхой асуудалтай байдаг. Үүний зэрэгцээ түгжээгүй, хүлээхгүй өгөгдлийн бүтэц нь алдааг илүү сайн даван туулаад зогсохгүй илүү сайн гүйцэтгэлтэй байдаг - гэхдээ тэдгээрийг хөгжүүлэх нь гүн гүнзгий туршлага, тодорхой програмд ​​дасан зохицохыг шаарддаг. Нэг буруу кодын мөр бүх зүйлийг эвдэхэд хангалттай.

Мэргэжилтэн бус хүн хүртэл ийм өгөгдлийн бүтцийг боловсруулж, хэрэгжүүлэх боломжтой болгохын тулд бид яаж үүнийг хийх вэ? Аливаа дараалсан алгоритмыг аль алиныг нь ашиглан аюулгүй болгох боломжтой гэдгийг мэддэг бүх нийтийн дизайн, эсвэл гүйлгээний санах ой. Нэг зүйл бол тэд энэ асуудлыг шийдвэрлэхэд орох саадыг багасгаж чадна. Гэсэн хэдий ч хоёр шийдэл нь ихэвчлэн үр дүнгүй хэрэгжилтэд хүргэдэг. Педро эдгээр дизайныг хэрхэн илүү үр дүнтэй болгож чадсан, та тэдгээрийг алгоритмдаа хэрхэн ашиглаж болох талаар ярих болно.

Хайди Ховард - Тархсан зөвшилцлийг чөлөөлөх

19 гидра толгой. Хөтөлбөрийн гайхалтай тойм Хайди Ховард бол Мартин шиг Кембрижийн их сургуулийн тархсан систем судлаач юм. Түүний онцлог нь тууштай байдал, алдааг тэсвэрлэх чадвар, гүйцэтгэл, тархсан зөвшилцөл юм. Тэрээр Paxos хэмээх алгоритмыг ерөнхийд нь хэлдгээрээ алдартай Уян хатан Paxos.

Үүнийг санаарай Paxos нь Лесли Лампортын бүтээл дээр үндэслэсэн найдваргүй компьютеруудын сүлжээнд зөвшилцлийн асуудлыг шийдвэрлэх протоколуудын гэр бүл юм. Тиймээс манай зарим илтгэгчид бусад илтгэгчдийн санал болгосон асуудлууд дээр ажиллаж байгаа бөгөөд энэ бол гайхалтай юм.

Хэлэлцэх, удирдагч сонгох, хаах, зохицуулах зэрэг олон хостуудын дунд зөвшилцлийг олох чадвар нь орчин үеийн тархсан системүүдийн үндсэн асуудал юм. Paxos нь одоо зөвшилцлийн асуудлыг шийдвэрлэх гол арга бөгөөд үүнийг тойрон янз бүрийн практик хэрэгцээнд алгоритмыг өргөжүүлэх, оновчтой болгохын тулд маш их судалгаа хийгдэж байна.

Энэ ярианд бид Paxos-ийн онолын үндэслэлийг дахин авч үзэж, анхны шаардлагыг сулруулж, алгоритмыг ерөнхийд нь тайлбарлах болно. Бид Paxos нь үндсэндээ өргөн хүрээний зөвшилцлийн арга барилын зөвхөн нэг сонголт бөгөөд спектрийн бусад цэгүүд нь сайн тархсан системийг бий болгоход маш хэрэгтэй гэдгийг бид харах болно.

Алекс Петров - Түр зуурын хуулбар болон хямд чуулгын тусламжтайгаар хадгалах зардлаа бууруул

19 гидра толгой. Хөтөлбөрийн гайхалтай тойм Алекс бол өгөгдлийн сан, хадгалах системийн мэргэжилтэн бөгөөд бидний хувьд хамгийн чухал нь үйл ажиллагаа эрхэлдэг хүн юм Кассандра. Тэрээр одоо О'Рейлитэй хамтран "Өгөгдлийн сангийн дотоод" ном дээр ажиллаж байна.

бүхий системүүдийн хувьд эцсийн тууштай байдал (Оросын нэр томъёогоор - "эцсийн тууштай байдал"), зангилаа эвдэрсэн эсвэл сүлжээ хуваагдсаны дараа та дараах бэрхшээлийг шийдэх хэрэгтэй: хүсэлтийг үргэлжлүүлэн гүйцэтгэх, тууштай байдлыг алдагдуулах, эсвэл гүйцэтгэхээс татгалзаж, бэлэн байдлыг золиослох. Ийм системд чуулга, зангилааны дэд олонлогуудыг давхцуулж, ядаж нэг зангилаа нь хамгийн сүүлийн үеийн утгыг агуулсан байх нь сайн захын шийдэл байж болно. Та хамгийн сүүлийн үеийн утгуудаар хариу үйлдэл үзүүлэхийн зэрэгцээ зарим зангилаатай холбоотой бүтэлгүйтэл, холболт алдагдахыг даван туулж чадна.

Гэсэн хэдий ч бүх зүйл өөрийн гэсэн үнэтэй байдаг. Чуулгын хуулбарлах схем нь хадгалах зардлыг нэмэгдүүлнэ гэсэн үг: асуудал гарсан үед хангалттай хуулбар байгаа эсэхийг баталгаажуулахын тулд илүүдэл өгөгдлийг олон цэг дээр нэгэн зэрэг хадгалах ёстой. Бүх хуулбар дээр бүх өгөгдлийг хадгалах шаардлагагүй болж байна. Хэрэв та зөвхөн зангилааны хэсэг дээр өгөгдлийг хадгалах, мөн бүтэлгүйтлийн үед тусгай зангилаа (Transient Replica) ашиглавал хадгалалтын ачааллыг бууруулж болно.

Тайлангийн явцад бид авч үзэх болно Гэрчүүдийн хуулбарууд, ашигласан хуулбарлах схем Спаннер и Мегастор, мөн Apache Кассандра энэ үзэл баримтлалыг хэрэгжүүлэх гэж нэрлэдэг Түр зуурын хуулбар ба хямд чуулга.

Дмитрий Вюков - Горутинууд ил гарсан

19 гидра толгой. Хөтөлбөрийн гайхалтай тойм Дмитрий бол Google-ийн хөгжүүлэгч бөгөөд C/C++ болон Go - Address/Memory/ThreadSanitizer болон Линуксийн цөмийн ижил төстэй хэрэгслүүдийн динамик тест дээр ажилладаг. Go-д хувь нэмрээ оруулсан, өргөтгөх боломжтой goroutine төлөвлөгч, сүлжээний санал асуулга, зэрэгцээ хог цуглуулагч. Тэрээр олон урсгалын чиглэлээр мэргэшсэн мэргэжилтэн бөгөөд хэдэн арван шинэ блоклохгүй алгоритмын зохиогч бөгөөд эзэмшигч юм. Хар бүс Интел.

Одоо тайлангийн тухай бага зэрэг. Go хэл нь goroutines (цайвар утас) болон суваг (FIFO дараалал) хэлбэрээр олон урсгалтыг дэмждэг. Эдгээр механизмууд нь хэрэглэгчдэд орчин үеийн олон урсгалтай програмуудыг бичихэд маш хялбар бөгөөд тааламжтай болгодог бөгөөд энэ нь ид шид мэт харагдаж байна. Бидний ойлгож байгаагаар энд ид шид байхгүй. Энэ яриагаар Дмитрий Go цагийн хуваарь гаргагчийн нарийн ширийнийг судалж, энэхүү "ид шид"-ийг хэрэгжүүлэх нууцыг харуулах болно. Эхлээд тэрээр хуваарийн үндсэн бүрэлдэхүүн хэсгүүдийн тоймыг өгч, энэ нь хэрхэн ажилладагийг танд хэлэх болно. Дараа нь бид зогсоол / зогсоолын стратеги, хаах системийн дуудлагыг зохицуулах гэх мэт бие даасан талуудыг нарийвчлан авч үзэх болно. Эцэст нь Дмитрий хуваарь гаргагчийг сайжруулах талаар бага зэрэг ярих болно.

Дмитрий Бугаиченко - Магадлалын ноорог болон бусад зүйлсээр тархсан графикийн шинжилгээг хурдасгах

19 гидра толгой. Хөтөлбөрийн гайхалтай тойм Дмитрий их сургууль, шинжлэх ухааны нийгэмлэгтэй холбоо тасалгүйгээр бараг 9 жил аутсорсинг хийсэн. Одноклассники дахь том өгөгдлийн дүн шинжилгээ нь түүний хувьд онолын сургалт, шинжлэх ухааны үндэслэлийг бодит, эрэлт хэрэгцээтэй бүтээгдэхүүнийг хөгжүүлэхтэй хослуулах онцгой боломж болжээ.

Хуваарилагдсан графикийн шинжилгээ нь хэцүү ажил байсаар ирсэн бөгөөд одоо ч хэвээр байна: хөрш зэргэлдээ оройн холболтын талаар мэдээлэл авах шаардлагатай болсон үед өгөгдлийг машин хооронд шилжүүлэх шаардлагатай болдог бөгөөд энэ нь гүйцэтгэлийн хугацаа, сүлжээний дэд бүтцийн ачаалал нэмэгдэхэд хүргэдэг. Энэ яриагаар бид магадлалын өгөгдлийн бүтэц эсвэл нийгмийн сүлжээн дэх нөхөрлөлийн графикийн тэгш хэм зэрэг баримтуудыг ашиглан хэрхэн боловсруулалтын ихээхэн хурдтай болохыг олж харах болно. Энэ бүгдийг Apache Spark дээр кодын жишээн дээр харуулав.

Денис Рысцов - Түр зуурын хуулбар болон хямд чуулгын тусламжтайгаар хадгалах зардлаа бууруул

19 гидра толгой. Хөтөлбөрийн гайхалтай тойм Денис - хөгжүүлэгч Космос DB, тууштай байдлын загвар, зөвшилцлийн алгоритм, түгээсэн гүйлгээг шалгах мэргэжилтэн. Тэрээр одоо Майкрософт компанид ажилладаг бөгөөд өмнө нь Amazon болон Yandex-ийн түгээлтийн систем дээр ажиллаж байсан.

Энэ ярианд бид сүүлийн хэдэн жилийн турш зохион бүтээсэн, нөхцөлт шинэчлэлтийг дэмждэг аливаа мэдээллийн сан (харьцуулах, тохируулах) дээр үйлчлүүлэгчийн талд хэрэгжиж болох тархсан гүйлгээний протоколуудыг авч үзэх болно. Хамгийн гол нь амьдрал хоёр үе шаттай үйлдлээр дуусдаггүй, гүйлгээг ямар ч мэдээллийн бааз дээр нэмэх боломжтой - програмын түвшинд, гэхдээ өөр өөр протоколууд (2PC, Percolator, RAMP) өөр өөр тохироотой бөгөөд бидэнд өгдөггүй. үнэгүй.

Алексей Зиновьев - Бүх ML алгоритмууд үүнийг тархсан диваажинд хүргэдэггүй

19 гидра толгой. Хөтөлбөрийн гайхалтай тойм Алексей (Залеслав) нь бусад бага хурлын хөтөлбөрийн хорооны гишүүн, удаан хугацааны илтгэгч юм. EPAM Systems-д сургагч багшаар ажиллаж байгаа бөгөөд 2012 оноос хойш Hadoop/Spark болон бусад том өгөгдөлтэй найзууд болсон.

Энэ илтгэлээр Алексей Apache Spark ML, Apache Mahout, Apache Flink ML-тэй ажиллаж байсан туршлага, Apache Ignite ML-ийг бүтээх туршлага дээрээ үндэслэн машин сургалтын сонгодог алгоритмуудыг тархсан горимд гүйцэтгэхэд тохируулах асуудлын талаар ярих болно. Алексей мөн эдгээр хүрээн дэх тархсан ML алгоритмуудыг хэрэгжүүлэх талаар ярих болно.

Эцэст нь Yandex мэдээллийн сангийн тухай Yandex-ээс хоёр тайлан.

Владислав Кузнецов - Yandex мэдээллийн сан - бид алдааг тэсвэрлэх чадварыг хэрхэн баталгаажуулдаг

19 гидра толгой. Хөтөлбөрийн гайхалтай тойм Владислав бол Yandex-ийн түгээсэн платформ группын хөгжүүлэгч юм. Yandex мэдээллийн сан нь хэвтээ байдлаар өргөтгөх боломжтой, газарзүйн тархалттай, гэмтэлд тэсвэртэй DBMS бөгөөд диск, сервер, тавиур, дата төвүүдийн эвдрэлийг тэсвэрлэх чадвартай бөгөөд тогтвортой байдлыг алдагдуулахгүй. Алдааг тэсвэрлэхийн тулд тархсан зөвшилцөлд хүрэх өмчийн алгоритм, түүнчлэн тайланд нарийвчлан авч үзсэн техникийн хэд хэдэн шийдлийг ашигладаг. Энэхүү тайлан нь DBMS хөгжүүлэгчид болон DBMS дээр суурилсан хэрэглээний шийдлүүдийг хөгжүүлэгчдэд сонирхолтой байж магадгүй юм.

Семен Чечеринда - YDB дахь тархсан гүйлгээ

19 гидра толгой. Хөтөлбөрийн гайхалтай тойм Семён бол Yandex-ийн түгээсэн платформ группын хөгжүүлэгч бөгөөд YDB суулгацыг олон түрээслэгч ашиглах боломж дээр ажилладаг.

Yandex мэдээллийн сан нь OLTP асуулгад зориулагдсан бөгөөд гүйлгээний системийн ACID шаардлагад нийцдэг. Энэ тайланд бид YDB гүйлгээний системийн үндэс болсон гүйлгээний төлөвлөлтийн алгоритмыг авч үзэх болно. Гүйлгээнд ямар байгууллагууд оролцдог, гүйлгээнд дэлхийн дэг журмыг хэн өгдөг, гүйлгээний атом, найдвартай байдал, тусгаарлах хатуу түвшинд хэрхэн хүрч байгааг харцгаая. Нийтлэг асуудлыг жишээ болгон авч үзвэл, хоёр үе шаттай үүрэг даалгавар болон детерминистик гүйлгээг ашиглан гүйлгээний хэрэгжилтийг харцгаая. Тэдний ялгааг ярилцъя.

Дараа нь юу юм бэ?

Чуулганы хөтөлбөр шинэ илтгэлүүдээр дүүрэн үргэлжилсээр байна. Тодруулбал, бид тайланг хүлээж байна Никита Коваль (ндковал) JetBrains болон Олег Анастасьев (m0nstermind) Одноклассники компаниас. Никита Котлин багийн корутинуудын алгоритм дээр ажилладаг бөгөөд Олег нь Одноклассники платформ дахь өндөр ачаалалтай системүүдийн архитектур, шийдлүүдийг боловсруулдаг. Нэмж дурдахад 1 болзолт хоосон зай байгаа бөгөөд хөтөлбөрийн хороо яг одоо нэр дэвшигчидтэй ажиллаж байна.

Гидрагийн хурал долдугаар сарын 11-12-нд Санкт-Петербургт болно. Тасалбар авах боломжтой албан ёсны вэбсайт дээр худалдан авах. Хэрэв та эдгээр өдрүүдэд ямар нэг шалтгааны улмаас Санкт-Петербург руу очих боломжгүй бол онлайн тасалбар байгаа эсэхийг анхаарна уу.

Hydra-д уулзацгаая!

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх