19 سر هیدرا. نمای کلی برنامه

کنفرانسی در 11 تا 12 ژوئیه در سن پترزبورگ برگزار خواهد شد مار ابیاختصاص داده شده به توسعه سیستم های موازی و توزیع شده. ترفند Hydra این است که دانشمندان باحال (که معمولاً فقط در کنفرانس های علمی خارجی یافت می شوند) و مهندسان معروف تمرین کننده را در یک برنامه بزرگ در تقاطع علم و عمل متحد می کند.

Hydra یکی از مهم ترین کنفرانس های ما در چند سال اخیر است. مقدمات آن آماده سازی بسیار جدی، انتخاب سخنرانان و گزارش ها بود. هفته گذشته در این مورد مصاحبه habro منتشر شد با مدیر گروه JUG.ru، الکسی فدوروف (23derevo).

ما قبلا گفته شده است در مورد سه شرکت کننده مهم، بنیانگذاران نظریه سیستم های توزیع شده - لزلی لامپورت، موریس هرلیهی و مایکل اسکات. وقت آن است که در مورد کل برنامه با جزئیات بیشتری صحبت کنیم!

19 سر هیدرا. نمای کلی برنامه

انگیزه

اگر درگیر برنامه نویسی هستید، پس به هر طریقی با محاسبات چند رشته ای و توزیع شده سروکار دارید. کارشناسان در زمینه های مربوطه مستقیماً با آنها کار می کنند، اما به طور ضمنی، توزیع از همه جا به ما نگاه می کند: در هر رایانه چند هسته ای یا سرویس توزیع شده چیزی وجود دارد که محاسبات را به صورت موازی انجام می دهد.

کنفرانس های زیادی وجود دارند که جنبه های مختلف برنامه نویسی کاربردی را پوشش می دهند. در طرف دیگر این طیف، ما مدارس علمی تخصصی داریم که مقادیر زیادی از نظریه های پیچیده را در قالب سخنرانی نشان می دهند. به عنوان مثال، به موازات هیدرا در سن پترزبورگ وجود دارد مدرسه SPTDC. در کنفرانس Hydra، ما سعی کردیم تمرین سخت، علم و همه چیز را در تقاطع آنها گرد هم بیاوریم.

به این فکر کنید: ما در دوران شگفت انگیزی زندگی می کنیم که می توانید شخصاً با بنیانگذاران رشته علوم و مهندسی که ما مطالعه می کنیم ملاقات کنید. فیزیکدانان نه نیوتن و نه انیشتین را ملاقات نخواهند کرد - قطار رفت. اما در کنار ما هنوز کسانی زندگی می کنند که پایه های تئوری سیستم های توزیع شده را ایجاد کردند، زبان های برنامه نویسی محبوب را اختراع کردند و برای اولین بار همه اینها را در نمونه های اولیه تجسم دادند. این افراد شغل خود را نیمه کاره رها نکردند، آنها در حال حاضر روی مسائل مبرم در دانشگاه ها و شرکت های معتبر جهانی کار می کنند و امروز بزرگترین منبع دانش و تجربه هستند.

از سوی دیگر، فرصت ملاقات با آنها معمولاً صرفاً نظری باقی می‌ماند: تعداد کمی از ما می‌توانیم دائماً رویدادهای عمومی را در برخی از دانشگاه روچستر زیر نظر داشته باشیم و سپس به ایالات متحده آمریکا بشتابیم و برای سخنرانی با مایکل اسکات برگردیم. بازدید از همه اعضای Hydra هزینه کمی دارد، بدون احتساب ورطه زمان تلف شده (اگرچه به نظر یک تلاش جالب می رسد).

از سوی دیگر، ما مهندسان برتر زیادی داریم که در حال حاضر روی مشکلات فوری در سیستم های توزیع شده کار می کنند و قطعاً حرف های زیادی برای گفتن دارند. اما مشکل اینجاست - آنها کار می کنند، و وقت آنها ارزشمند است. بله، اگر کارمند مایکروسافت، گوگل یا جت برین هستید، احتمال ملاقات با یکی از سخنرانان معروف در یک رویداد داخلی به شدت افزایش می یابد، اما به طور کلی، خیر، هر روز این اتفاق نمی افتد.

به این ترتیب، کنفرانس Hydra وظیفه مهمی را انجام می دهد که اکثر ما نمی توانیم به تنهایی انجام دهیم - در یک مکان و در یک زمان، افرادی را گرد هم می آورد که ایده ها یا تعامل با آنها می تواند زندگی شما را تغییر دهد. اعتراف می کنم که همه به سیستم های توزیع شده یا چیزهای بنیادی پیچیده نیاز ندارند. شما می توانید CRUD ها را در PHP تا آخر عمر برنامه ریزی کنید و کاملاً خوشحال بمانید. اما هر کسی که به آن نیاز دارد، این شانس شماست.

زمان زیادی از اولین اعلام کنفرانس Hydra در Habré می گذرد. در این مدت، کارهای زیادی انجام شده است - و اکنون ما لیستی از تقریباً همه گزارش ها را داریم. بدون الگوریتم های تک رشته ای کند، فقط هاردکور خالص توزیع شده! بیایید با کلمات کلی تمام کنیم و ببینیم الان چه چیزی در دست داریم.

نکات کلیدی

سخنرانی های کلیدی در روزهای کنفرانس آغاز و پایان می یابد. معمولاً هدف یک سخنرانی افتتاحیه تنظیم روحیه و جهت کلی کنفرانس است. سخنرانی پایانی خطی را ترسیم می‌کند و توضیح می‌دهد که چگونه می‌توانیم با دانش و مهارت‌های به‌دست‌آمده در طول کنفرانس زندگی کنیم. آغاز و پایان: آنچه به بهترین وجه به یادگار مانده و به طور کلی اهمیت بیشتری یافته است.

کلیف کلیک کنید الگوریتم K/V توزیع شده H2O

19 سر هیدرا. نمای کلی برنامه کلیف یک افسانه در دنیای جاوا است. در اواخر دهه 90 برای پایان نامه دکتری خود مقاله ای با عنوان نوشت "ترکیب تحلیل ها، ترکیب بهینه سازی ها"که مدتی بعد مبنایی برای کامپایلر سرور HotSpot JVM شد. دو سال بعد، او قبلاً در Sun Microsystems روی JVM کار می کرد و به تمام دنیا نشان داد که JIT حق وجود دارد. کل این داستان در مورد اینکه چگونه جاوا یکی از سریع‌ترین زمان‌های اجرا مدرن با هوشمندترین و سریع‌ترین بهینه‌سازی‌ها است، از Cliff Click آمده است. در همان ابتدا، اعتقاد بر این بود که اگر چیزی برای یک کامپایلر ایستا قابل دسترسی است، حتی نیازی به تلاش برای جیت کردن آن نیست. به لطف کار کلیف و تیم، تمام زبان های جدید با ایده کامپایل JIT به طور پیش فرض شروع به ایجاد کردند. البته این کار تک نفره نبود، اما کلیف نقش بسیار مهمی در آن داشت.

در سخنرانی افتتاحیه، کلیف در مورد تلاش دیگر خود صحبت خواهد کرد - H20، یک پلت فرم درون حافظه برای یادگیری ماشینی توزیع شده و مقیاس پذیر برای کاربردهای صنعتی. یا به طور دقیق تر، در مورد ذخیره سازی توزیع شده جفت های کلید-مقدار در داخل آن. این یک ذخیره سازی بسیار سریع با بسیاری از ویژگی های جالب است (لیست دقیق موجود است شرح) که امکان استفاده از راه حل های مشابه را در ریاضیات جریان داده های بزرگ فراهم می کند.

گزارش دیگری که کلیف ارائه خواهد کرد این است که - تجربه حافظه تراکنش سخت افزاری Azul. بخش دیگری از زندگی نامه او - ده سال کار در آزول، جایی که او چیزهای زیادی را در پشته سخت افزار و فناوری Azul به روز کرد و بهبود داد: کامپایلرهای JIT، زمان اجرا، مدل رشته، مدیریت خطا، مدیریت پشته، وقفه های سخت افزاری، بارگذاری کلاس، و غیره و غیره - خوب، شما به اندیشه.

جالب‌ترین بخش زمانی شروع شد که آنها سخت‌افزاری را برای یک تجارت بزرگ ساختند - یک ابر رایانه برای اجرای جاوا. این یک چیز نسبتاً مبتکرانه بود که به طور خاص برای جاوا طراحی شده بود، که الزامات خاصی دارد - خواندن موانع حافظه برای جمع‌آوری زباله با مکث کم، آرایه‌هایی با بررسی کرانه‌ها، تماس‌های مجازی... یکی از جالب‌ترین فناوری‌ها حافظه تراکنشی سخت‌افزاری است. کل L1 هر یک از 864 هسته می تواند در نوشتن تراکنشی شرکت کند، که به ویژه برای کار با قفل ها در جاوا مهم است (بلوک های همگام می توانند به صورت موازی کار کنند تا زمانی که تضاد حافظه واقعی وجود نداشته باشد). اما این ایده زیبا توسط واقعیت خشن درهم شکسته شد - و در این سخنرانی کلیف به شما خواهد گفت که چرا HTM و STM برای نیازهای عملی محاسبات چند رشته ای مناسب نیستند.

مایکل اسکات - ساختارهای داده دوگانه

19 سر هیدرا. نمای کلی برنامه مایکل اسکات - استاد علوم کامپیوتر در دانشگاه روچستر، که سرنوشت او را با او پیوند داد قبلا 34 سالهو در دانشگاه ویسکانسین-مدیسون زادگاهش به مدت پنج سال رئیس بود. او در مورد برنامه نویسی موازی و توزیع شده و طراحی زبان تحقیق می کند و به دانش آموزان آموزش می دهد.

تمام دنیا مایکل را به لطف کتاب درسی می شناسند "عمل شناسی زبان برنامه نویسی"، که آخرین ویرایش آن نسبتاً اخیراً - در سال 2015 منتشر شد. شغل او «الگوریتم‌های همگام‌سازی مقیاس‌پذیر در چند پردازنده‌های حافظه مشترک» اخذ شده جایزه دایکسترا به عنوان یکی از معروف ترین ها در زمینه محاسبات توزیع شده و آشکارا دروغ می گوید در کتابخانه آنلاین دانشگاه روچستر. شما همچنین ممکن است او را به عنوان نویسنده الگوریتم مایکل اسکات از آن بشناسید "الگوریتم های صف همزمان غیر مسدود و مسدود کننده ساده، سریع و کاربردی".

در مورد دنیای جاوا، این یک مورد خاص است: او همراه با داگ لی، الگوریتم‌های غیر مسدود کننده و صف‌های همزمانی را که کتابخانه‌های جاوا روی آن کار می‌کنند، توسعه دادند. این دقیقاً همان چیزی است که در مورد "ساختارهای داده دوگانه" در مورد آن خواهد بود - معرفی این ساختارها در Java SE 6 عملکرد را 10 برابر بهبود بخشیده است. java.util.concurrent.ThreadPoolExecutor. اگر از قبل تعجب می کنید که این "ساختارهای داده دوگانه" چیست، اطلاعاتی در مورد آن وجود دارد کار مرتبط.

موریس هرلیهی - بلاک چین و آینده محاسبات توزیع شده

19 سر هیدرا. نمای کلی برنامه موریس هرلیهی - برنده دو جایزه Dijkstra. اولین مورد برای کار است "همگام سازی بدون انتظار" (دانشگاه براون)، و دوم، جدیدتر - "حافظه تراکنشی: پشتیبانی معماری برای ساختارهای داده بدون قفل" (دانشگاه فناوری ویرجینیا). جایزه Dijkstra آثاری را که اهمیت و تأثیر آنها برای حداقل ده سال قابل مشاهده بوده است، قدردانی می کند و موریس به وضوح یکی از مشهورترین متخصصان در این زمینه است. او در حال حاضر به عنوان استاد در دانشگاه براون کار می کند و فهرستی طولانی از دستاوردها دارد.

در این سخنرانی پایانی، موریس در مورد تئوری و عمل سیستم های توزیع شده بلاک چین از دیدگاه کلاسیک های محاسبات توزیع شده و اینکه چگونه بسیاری از مشکلات مرتبط را ساده می کند صحبت خواهد کرد. این یک گزارش منحصراً در مورد موضوع کنفرانس است - نه در مورد تبلیغات ماینینگ، بلکه در مورد اینکه چگونه دانش ما می تواند به طور شگفت انگیزی به طور موثر و مناسب در رابطه با انواع وظایف استفاده شود.

در جولای 2017، موریس قبلاً برای شرکت در مدرسه SPTDC به روسیه آمده بود، در جلسه JUG.ru شرکت کرد و ضبط را می توان در YouTube مشاهده کرد:

برنامه اصلی

در ادامه مروری کوتاه بر گزارش های موجود در برنامه ارائه خواهد شد. برخی از گزارش ها در اینجا به تفصیل توضیح داده شده اند، برخی دیگر به طور خلاصه. توضیحات طولانی عمدتاً به گزارش‌های انگلیسی زبان می‌رفت که نیاز به پیوند به مقالات علمی، اصطلاحات موجود در ویکی‌پدیا و غیره داشتند. لیست کامل موجود است در سایت کنفرانس ببینید. لیست موجود در وب سایت به روز و تکمیل خواهد شد.

لزلی لمپورت - پرسش و پاسخ

19 سر هیدرا. نمای کلی برنامه لزلی لمپورت نویسنده آثار اساسی در محاسبات توزیع شده است. "لاتک" مخفف "Lamport TeX" است. این او بود که اولین بار در سال 1979 این مفهوم را معرفی کرد ثبات سازگار، و مقاله او "چگونه یک کامپیوتر چند پردازنده بسازیم که برنامه های چند پردازشی را به درستی اجرا کند" جایزه Dijkstra را دریافت کرد.

این غیرعادی ترین قسمت برنامه از نظر قالب است، زیرا حتی یک گزارش هم نیست، بلکه یک جلسه پرسش و پاسخ است. وقتی بخش قابل توجهی از مخاطبان از قبل با انواع آثار مبتنی بر «نظریه لامپورت»، مقالات و گزارش‌های خودش آشنا هستند (یا می‌توانند آشنا شوند)، مهم‌تر است که تمام وقت در دسترس را صرف ارتباط مستقیم کنیم.

ایده ساده است - شما دو گزارش را در YouTube تماشا می کنید: "برنامه نویسی باید بیشتر از کدنویسی باشد" и "اگر برنامه ای نمی نویسید، از زبان برنامه نویسی استفاده نکنید" و حداقل یک سوال را آماده کنید و لزلی پاسخ دهد.

اولین مورد از این دو ویدیو را قبلاً داریم به یک مقاله هابرو تبدیل شد. اگر یک ساعت زمان برای تماشای ویدیو ندارید، می توانید به سرعت همه آن را به صورت متنی بخوانید.

توجه: بسیاری از ویدیوهای لزلی لامپورت در یوتیوب وجود دارد. به عنوان مثال، یک عالی وجود دارد دوره TLA+. نسخه آفلاین کل این دوره در دسترس است صفحه اصلی نویسنده، و برای مشاهده آسان تر در دستگاه های تلفن همراه آن را در YouTube آپلود کرد.

مارتین کلپمن - همگام سازی داده ها در دستگاه های کاربر برای همکاری توزیع شده

19 سر هیدرا. نمای کلی برنامه مارتین کلپمن محققی در دانشگاه کمبریج است که بر روی CRDT و تأیید رسمی الگوریتم ها کار می کند. کتاب مارتین "طراحی برنامه های کاربردی داده فشرده"که در سال 2017 منتشر شد، بسیار موفق بود و در فهرست پرفروش‌ترین‌ها در زمینه ذخیره‌سازی و پردازش داده‌ها قرار گرفت. کوین اسکات، مدیر ارشد فناوری مایکروسافت، یک بار گفت: «این کتاب باید برای مهندسان نرم افزار ضروری باشد. این منبع نادری است که تئوری و عمل را با هم ترکیب می‌کند تا به توسعه‌دهندگان در طراحی و اجرای زیرساخت‌ها و سیستم‌های داده هوشمندتر کمک کند.» خالق Kafka و CTO Confluent، Jay Kreps، چیزی مشابه گفت.

مارتین قبل از اینکه وارد تحقیقات دانشگاهی شود، در صنعت کار می کرد و دو استارت آپ موفق را تأسیس کرد:

  • Rapportive، اختصاص داده شده به نمایش مشخصات اجتماعی مخاطبین از ایمیل شما، که LinkedIn در سال 2012 خریداری کرد.
  • Go Test It، سرویسی برای تست خودکار وب سایت ها در مرورگرهای مختلف که RedGate در سال 2009 خریداری کرد.

به طور کلی، مارتین، اگرچه کمتر از سخنان اصلی ما مشهور است، اما قبلاً توانسته است سهمی در توسعه محاسبات توزیع شده و صنعت داشته باشد.

در این سخنرانی، مارتین در مورد موضوعی نزدیکتر به تحقیقات دانشگاهی خود صحبت خواهد کرد. در Google Docs و مبل‌های ویرایش مشترک اسناد مشابه، «ویرایش مشترک» به یک کار تکراری اشاره دارد: هر کاربر نسخه مشابه خود را از سند مشترک دارد که سپس آن را تغییر می‌دهد و همه تغییرات در سراسر شبکه به بقیه قسمت‌ها ارسال می‌شود. شركت كنندگان. تغییرات اسناد آفلاین منجر به ناسازگاری موقت سند در رابطه با سایر شرکت‌کنندگان می‌شود و همگام‌سازی مجدد نیاز به رسیدگی به تضاد دارد. دقیقاً برای همین وجود دارند انواع داده های تکراری بدون درگیری (CRDT)، در واقع، یک چیز نسبتاً جدید است که ماهیت آن فقط در سال 2011 فرموله شد. این سخنرانی در مورد آنچه که از آن زمان تاکنون در دنیای CRDT رخ داده است، آخرین پیشرفت‌ها، رویکرد ایجاد برنامه‌های محلی اول به طور کلی و استفاده از یک کتابخانه منبع باز بحث می‌کند. ادغام خودکار به خصوص.

هفته آینده یک مصاحبه طولانی با مارتین در هابره منتشر خواهیم کرد، جالب خواهد بود.

پدرو رامالهته - ساختارهای داده بدون انتظار و تراکنش‌های بدون انتظار

19 سر هیدرا. نمای کلی برنامه پدرو در سیسکو کار می کند و در ده سال گذشته الگوریتم های موازی را توسعه داده است، از جمله مکانیسم های همگام سازی، ساختارهای داده بدون قفل و بدون انتظار و هر آنچه که در این موضوع می توانید تصور کنید. تحقیقات و علایق مهندسی فعلی او بر روی ساختارهای جهانی، حافظه تراکنشی نرم افزار، حافظه پایدار و فناوری های مشابه تمرکز دارد که برنامه های کاربردی صحیح، مقیاس پذیر و مقاوم در برابر خطا را امکان پذیر می کند. او همچنین نویسنده وبلاگی است که به طور گسترده در محافل باریک شناخته شده است Concurrency Freaks.

اکثر برنامه های کاربردی چند رشته ای اکنون بر روی ساختارهای داده موازی اجرا می شوند، از استفاده از صف های پیام بین بازیگران گرفته تا ساختارهای داده نمایه شده در فروشگاه های ارزش کلیدی. آنها سال هاست که با موفقیت در Java JDK کار می کنند و کم کم به C++ اضافه می شوند.

ساده ترین راه برای پیاده سازی ساختار داده موازی، پیاده سازی متوالی (تک رشته ای) است که در آن روش ها توسط mutexes محافظت می شوند. این برای هر ماه ژوئن قابل دسترسی است، اما مشکلات آشکاری در مقیاس بندی و عملکرد دارد. در عین حال، ساختارهای داده بدون قفل و بدون انتظار نه تنها با خطاها بهتر کنار می آیند، بلکه نمایه عملکرد بهتری نیز دارند - با این حال، توسعه آنها به تخصص عمیق و سازگاری با یک برنامه خاص نیاز دارد. یک خط کد اشتباه برای شکستن همه چیز کافی است.

چگونه می توانیم آن را طوری بسازیم که حتی یک فرد غیر متخصص نیز بتواند چنین ساختارهای داده ای را طراحی و پیاده سازی کند؟ مشخص است که هر الگوریتم متوالی را می توان با استفاده از هر یک از آنها به عنوان نخ ایمن کرد طراحی جهانی، یا حافظه تراکنشی. برای یک چیز، آنها می توانند مانع ورود به حل این مشکل را کاهش دهند. با این حال، هر دو راه حل معمولاً منجر به اجرای ناکارآمد می شوند. پدرو در مورد اینکه چگونه آنها توانستند این طرح ها را کارآمدتر کنند و چگونه می توانید از آنها برای الگوریتم های خود استفاده کنید صحبت خواهد کرد.

هایدی هاوارد - آزادسازی اجماع توزیع شده

19 سر هیدرا. نمای کلی برنامه هایدی هاوارد مانند مارتین، محقق سیستم های توزیع شده در دانشگاه کمبریج است. تخصص او ثبات، تحمل خطا، عملکرد و اجماع توزیع شده است. او بیشتر به دلیل تعمیم الگوریتم Paxos به نام شناخته شده است Paxos انعطاف پذیر.

به یاد بیاورید Paxos خانواده ای از پروتکل ها برای حل مشکل اجماع در شبکه ای از رایانه های غیرقابل اعتماد است که بر اساس کار لزلی لامپورت است. بنابراین، برخی از سخنرانان ما در حال کار بر روی مشکلاتی هستند که در ابتدا توسط سخنرانان دیگر ما پیشنهاد شده بود - و این فوق العاده است.

توانایی یافتن اجماع بین چندین میزبان - برای آدرس دهی، انتخاب رهبر، مسدود کردن یا هماهنگی - یک مسئله اساسی در سیستم های توزیع شده مدرن است. Paxos در حال حاضر راه اصلی برای حل مشکلات اجماع است و تحقیقات زیادی در اطراف آن برای گسترش و بهینه سازی الگوریتم برای نیازهای عملی مختلف در حال انجام است.

در این گفتگو، ما به بررسی مجدد مبانی نظری Paxos خواهیم پرداخت، الزامات اصلی را کاهش داده و الگوریتم را تعمیم خواهیم داد. خواهیم دید که Paxos اساساً تنها یک گزینه در میان طیف وسیعی از رویکردهای اجماع است، و سایر نقاط در این طیف نیز برای ساختن سیستم های توزیع شده خوب بسیار مفید هستند.

الکس پتروف - هزینه های ذخیره سازی خود را با تکرار گذرا و Quorums ارزان کاهش دهید

19 سر هیدرا. نمای کلی برنامه الکس یک متخصص پایگاه داده و سیستم های ذخیره سازی، و مهمتر از آن برای ما، یک committer است کاساندرا. او در حال حاضر روی کتابی به نام پایگاه داده داخلی با اوریلی کار می کند.

برای سیستم های با ثبات نهایی (در اصطلاح روسی - "ثبات نهایی")، پس از خرابی یک گره یا تقسیم شبکه، باید معضل زیر را حل کنید: یا به اجرای درخواست ها ادامه دهید، سازگاری را قربانی کنید، یا از اجرای آنها خودداری کنید و در دسترس بودن را قربانی کنید. در چنین سیستمی، حد نصاب ها، همپوشانی زیر مجموعه های گره ها و حصول اطمینان از اینکه حداقل یک گره حاوی جدیدترین مقدار است، می تواند راه حل لبه خوبی باشد. شما می توانید از خرابی ها و از دست دادن اتصال به برخی گره ها جان سالم به در ببرید و در عین حال با آخرین مقادیر پاسخ دهید.

با این حال، هر چیزی قیمت خود را دارد. طرح تکرار حد نصاب به معنای افزایش هزینه های ذخیره سازی است: داده های اضافی باید در چندین گره به طور همزمان ذخیره شوند تا اطمینان حاصل شود که هنگام بروز مشکل، نسخه های کافی در دسترس هستند. معلوم می شود که لازم نیست تمام داده ها را روی همه کپی ها ذخیره کنید. اگر داده‌ها را فقط در بخشی از گره‌ها ذخیره کنید و از گره‌های ویژه (Transient Replica) برای سناریوهای مدیریت خرابی استفاده کنید، می‌توانید بار روی حافظه را کاهش دهید.

در طول گزارش ما بررسی خواهیم کرد ماکت شاهد، طرح تکرار مورد استفاده در گیره и مگاستور، و اجرای این مفهوم در آپاچی کاساندرا نامیده می شود تکرار گذرا و حد نصاب های ارزان.

دیمیتری ویوکوف - گوروتین ها در معرض دید قرار گرفتند

19 سر هیدرا. نمای کلی برنامه دیمیتری یک توسعه دهنده در گوگل است که روی آزمایش پویا برای C/C++ و Go - Address/Memory/ThreadSanitizer و ابزارهای مشابه برای هسته لینوکس کار می کند. در Go یک برنامه‌ریز گوروتین مقیاس‌پذیر، یک نظرسنجی شبکه، و یک جمع‌آوری زباله موازی مشارکت داشت. او متخصص در چند رشته ای، نویسنده ده ها الگوریتم غیر مسدود کننده جدید و صاحب کمربند سیاه اینتل

حالا کمی در مورد خود گزارش. زبان Go دارای پشتیبانی بومی برای multithreading در قالب گوروتین ها (رشته های نور) و کانال ها (صف های FIFO) است. این مکانیسم ها نوشتن برنامه های چند رشته ای مدرن را برای کاربران بسیار آسان و لذت بخش می کند و به نظر جادویی می رسد. همانطور که فهمیدیم، اینجا جادویی وجود ندارد. در این گفتگو ، دیمیتری به پیچیدگی های زمانبندی Go می پردازد و اسرار اجرای این "جادو" را نشان می دهد. ابتدا، او یک نمای کلی از اجزای اصلی زمانبندی ارائه می دهد و به شما می گوید که چگونه کار می کند. در مرحله بعد، نگاه دقیق‌تری به جنبه‌های فردی مانند استراتژی پارک/پارک کردن و رسیدگی به تماس‌های سیستم مسدود کردن خواهیم داشت. در نهایت، دیمیتری کمی در مورد بهبودهای احتمالی در زمانبندی صحبت خواهد کرد.

دیمیتری بوگایچنکو - سرعت بخشیدن به تجزیه و تحلیل نمودارهای توزیع شده با طرح های احتمالی و موارد دیگر

19 سر هیدرا. نمای کلی برنامه دیمیتری تقریباً 9 سال بدون از دست دادن ارتباط با دانشگاه و جامعه علمی در برون سپاری کار کرد. تجزیه و تحلیل کلان داده در Odnoklassniki برای او فرصتی منحصر به فرد برای ترکیب آموزش نظری و پایه علمی با توسعه محصولات واقعی و مورد تقاضا شد.

تجزیه و تحلیل گراف توزیع شده یک کار دشوار بوده و باقی می ماند: زمانی که به دست آوردن اطلاعات در مورد اتصالات یک راس همسایه ضروری می شود، داده ها اغلب باید بین ماشین ها منتقل شوند که منجر به افزایش زمان اجرا و بار روی زیرساخت شبکه می شود. در این گفتار، خواهیم دید که چگونه می توانید با استفاده از ساختارهای داده احتمالی یا حقایقی مانند تقارن نمودار دوستی در یک شبکه اجتماعی، سرعت پردازش قابل توجهی داشته باشید. همه اینها با مثال های کد در آپاچی اسپارک نشان داده شده است.

دنیس ریستوف - هزینه های ذخیره سازی خود را با تکرار گذرا و Quorums ارزان کاهش دهید

19 سر هیدرا. نمای کلی برنامه دنیس - توسعه دهنده Cosmos DB، متخصص در بررسی مدل های سازگاری، الگوریتم های اجماع و تراکنش های توزیع شده. او در حال حاضر در مایکروسافت کار می کند و قبل از آن روی سیستم های توزیع شده در آمازون و یاندکس کار می کرد.

در این گفتگو، نگاهی خواهیم داشت به پروتکل‌های تراکنش توزیع‌شده که در چند سال گذشته اختراع شده‌اند، که می‌توانند در سمت کلاینت در بالای هر فروشگاه داده‌ای که به‌روزرسانی شرطی را پشتیبانی می‌کند (مقایسه و تنظیم) پیاده‌سازی شود. نکته اصلی این است که زندگی با یک تعهد دو فازی به پایان نمی رسد، تراکنش ها را می توان در بالای هر پایگاه داده اضافه کرد - در سطح برنامه، اما پروتکل های مختلف (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 سر هیدرا. نمای کلی برنامه Semyon یک توسعه دهنده در گروه پلتفرم توزیع شده در Yandex است که روی امکان استفاده چند مستاجر از نصب YDB کار می کند.

پایگاه داده Yandex برای پرس و جوهای OLTP طراحی شده است و با الزامات ACID برای یک سیستم تراکنش مطابقت دارد. در این گزارش، الگوریتم زمان‌بندی تراکنش را که زیربنای سیستم تراکنش YDB است، در نظر خواهیم گرفت. بیایید ببینیم کدام نهادها در تراکنش ها شرکت می کنند، چه کسی نظم جهانی را به تراکنش ها اختصاص می دهد، چگونه اتمی تراکنش، قابلیت اطمینان، و سطح دقیق ایزوله سازی به دست می آید. با استفاده از یک مشکل رایج به عنوان مثال، اجازه دهید به پیاده سازی تراکنش ها با استفاده از تعهدات دو فازی و تراکنش های قطعی نگاه کنیم. بیایید در مورد تفاوت آنها بحث کنیم.

گام بعدی چیست؟

برنامه کنفرانس همچنان با گزارش های جدید پر می شود. به ویژه، ما انتظار یک گزارش از نیکیتا کووال (ndkoval) از JetBrains و اولگ آناستاسیف (m0nstermind) از شرکت Odnoklassniki. نیکیتا روی الگوریتم‌هایی برای کوروتین‌ها در تیم Kotlin کار می‌کند و اولگ معماری و راه‌حل‌هایی را برای سیستم‌های پر بار در پلتفرم Odnoklassniki توسعه می‌دهد. علاوه بر این، 1 شکاف خالی مشروط دیگر وجود دارد، کمیته برنامه در حال حاضر با نامزدهای آن کار می کند.

کنفرانس Hydra در تاریخ 11-12 جولای در سن پترزبورگ برگزار می شود. بلیط موجود است خرید در وب سایت رسمی. لطفاً به در دسترس بودن بلیط های آنلاین توجه کنید - اگر به دلایلی نمی توانید این روزها به سنت پترزبورگ بروید.

شما را در Hydra می بینیم!

منبع: www.habr.com

اضافه کردن نظر