Your AI powered learning assistant

TFTDS / Семинар 1 / Среда исполнения распределённой системы

Разные временные оси

00:00:00

Понятие времени Для записи событий используются различные временные шкалы. У нас несколько часовых поясов, и существуют различные способы измерения времени. Атомные часы обеспечивают наиболее точное измерение международного атомного времени, основанное на астрономических наблюдениях.

Проблемы с измерением времени "Время" измеряется интервалами и исторически определялось с помощью природных явлений, таких как положение солнца или астрономические наблюдения. Однако вращение Земли неравномерно из-за внешних факторов, таких как лунные волны, что делает его ненадежным для точных измерений. Чтобы установить стандартизированную секунду, привязанную к солнечным событиям, было рассчитано среднее значение на основе колебаний атомов цезия-133.

Високосные секунды

00:04:45

Уникальная природа високосных секунд Високосные секунды добавляются в нашу систему хронометража для того, чтобы учесть незначительные колебания вращения Земли. Эти секунды гарантируют, что наши атомные часы и астрономические наблюдения остаются синхронизированными с вращением Земли. Однако високосные секунды могут вызвать технические проблемы и расхождения между различными временными шкалами.

Влияние високосных секунд на координацию во времени "Координация на високосную секунду" относится к процессу корректировки систем времени, когда возникает расхождение между атомным временем и солнечным временем из-за изменений скорости вращения Земли. Эта координация включает в себя добавление или вычитание високосной секунды из Всемирного координированного времени (UTC) таким образом, чтобы оно совпадало с Международным атомным временем (TAI). Принятие решений, связанных с високосными секундами, имеет как технические соображения, так и последствия для различных отраслей промышленности.

Монотонные часы

00:09:30

Природа времени Иногда кажется естественным ожидать, что время пойдет вспять, но на самом деле время движется только вперед. Однако на часах вашего компьютера время может идти вспять из-за скачкообразных секунд и корректировок, вносимых поставщиками услуг, такими как NTP. Такое немонотонное поведение часов может вызвать проблемы в определенных приложениях.

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

Устройство датацентра

00:15:20

Проектирование центра обработки данных Центр обработки данных - это необходимая инфраструктура для хранения и обработки больших объемов данных. Для обеспечения бесперебойной работы требуются надежные источники питания, системы резервного копирования и отказоустойчивая архитектура. Кроме того, он должен быть соединен с другими центрами и отдельными лицами с помощью кабелей, проложенных под землей или под водой. Глобальная сеть Google охватывает разные уголки планеты, включая подводные соединения.

Инфраструктура внутри Центра обработки данных "Стойки" используются в центрах обработки данных для размещения серверов, которые подключаются как извне, так и изнутри через коммутаторы. Если коммутатор выходит из строя в стойке, это может затронуть несколько компьютеров одновременно, что приведет к значительным сбоям в работе кластера. Чтобы снизить этот риск, реализуются меры избыточности, такие как сбои domino в работе файлов или доменов, когда критически важные компоненты, такие как жесткие диски, реплицируются на нескольких компьютерах.

Создание отказоустойчивого центра обработки данных Центры обработки данных подвержены сбоям, поэтому важно учитывать избыточность. Различные системы хранения и резервные копии в нескольких местах могут помочь обеспечить доступность данных. Также крайне важно иметь резервные сетевые коммутаторы разных производителей для повышения надежности.

Проблемы интеграции серверных стоек Коммутаторы "Top of rack" соединяют все серверные стойки в кластер, обеспечивая связь между ними. Однако существуют такие проблемы, как отказ оборудования и ограниченная масштабируемость из-за количества портов, доступных на этих коммутаторах. Кроме того, полагаться на одну компанию в отношении критически важных компонентов, таких как межсоединения, может быть рискованно.

Устройство сети

00:25:32

Построение распределенной системы Цель состоит в том, чтобы создать большой кластер машин, которые соединены между собой для достижения высокой производительности и масштабируемости. Система должна обладать резервированием и быть способна легко справляться с добавлением новых машин.

Сетевая организация "Коды" используются в качестве единиц измерения для расширения сети, соединения нескольких компьютеров вместе. Эти коды создают пути между различными плоскостями, обеспечивая связь между серверами, расположенными на разных плоскостях.

TCP

00:33:30

Понимание протокола TCP TCP - это надежный протокол, который скрывает сложность сетевого взаимодействия. Это обеспечивает распределенную систему, в которой машины могут безопасно взаимодействовать друг с другом. Абстракция прямого подключения обеспечивает эффективную и прозрачную передачу данных.

Взаимодействие с сервером и клиентом "Kang" - это сервер, "kodos" - клиент в этом примере. Перехватывая системные вызовы с обеих сторон, мы наблюдаем, как они ведут себя во время установления и прерывания соединения. При перезапуске серверного процесса он теряет все сведения о текущих подключениях, в то время как клиенты остаются в ожидании ответов.

Понимание протокола TCP Отправка по протоколу TCP не гарантирует доставку сообщения, так как оно может быть потеряно при передаче. Принимающая сторона распаковывает сегменты и проверяет заголовок, чтобы определить, куда должны направляться данные. Если сервер не знает о нас, он выдаст сообщение об ошибке. Чтобы смягчить это, нам нужно написать код, учитывающий потенциальные задержки и тайм-ауты.

Проблемы сетевой коммуникации Механизм "Keep-alive" помогает поддерживать длительные соединения, но для правильной работы может потребоваться много времени из-за больших таймеров. Компьютерам в рамках одной сетевой конфигурации трудно понять, что происходит в глобальном масштабе, что приводит к неточным знаниям и потенциальным проблемам с подключением между клиентами.

Инфраструктура курса: await, whirl

00:46:57

Инфраструктура курса Курс будет охватывать широкий спектр тем, включая асинхронность / ожидание и обещания. Мы будем постепенно изучать эти концепции и использовать их для написания наших алгоритмов. Лекции познакомят нас с концепцией узлов как простых конечных автоматов, в то время как семинары будут посвящены написанию кода с использованием promises и других инструментов.

Библиотека "Fitch" для написания алгоритмов "Fitch" - это библиотека, которая предоставляет полезные абстракции для написания алгоритмов, использующих синтаксис async/await вместо обратных вызовов или волокон. Это упрощает программирование распределенных систем, предоставляя удобные функции, такие как операции ввода-вывода файлов. Кроме того, это позволяет нам организовать наш код структурированным образом.

Разработка симулятора Мы разрабатываем симулятор, который может выполнять реалистичный распределенный код, написанный с помощью "Fitch". Этот симулятор обеспечивает отладку, позволяя выполнять несколько запусков с согласованными результатами и подробными журналами. Он точно моделирует сетевые задержки, паузы и даже дрейф часов.