Когда-то разбирался с этим вопросом, понял эту теорему совсем по-другому: 1) partitioning tolerance - это свойство переживать разрыв сети. Разрыв сети - это когда все узлы работают, но между ними возник split brain, который потом полечился. Да, сеть имеет свойство пропадать, поэтому распрелеленные системы не способные пережить разрыв сети нам не интересны. 2) availability - это способность сохранять работоспособность пока работает хотя бы один узел 3) consistency - это когда система возвращает одинаковый ответ на одинаковый запрос, независимо от узла, к которому обращаются. И раз P нужна всегда, то речь может идти о CP системах и AP системах. CP - это когда запись в одну ноду сразу дублируется во все ноды. Она не может быть available, т. к. если часть нод временно не ответит, то система должна прекратить обслуживать запросы (иначе с неответившей ноды могут прилететь неконсистентные данные) AP - это большая часть nosql субд: система будет отвечать "до последнего", но иногда данные могут быть устаревшими т. к. мы не синхронизируемся в момент записи и допускаем чтение когда часть нод лежит. На самом деле CA систему тоже можно представить: это зеркало их 2-х реляционных субд с двумя мастерами и синхронной репликацией. Все будет консистентно, умершая нода потом сможет накатить лог транзакций с живой и восстановиться, но вот split brain (когда ноды потеряли связь и продолжили работать не зная что вторая нода жива и тоже что-то пишет) эта схема не переживет.
@sukhoa7 күн бұрын
Split brain это как раз таки не описание состояния partitioning tolerance, а описание partitioning tolerance и точно неконсистентных систем. Если кластер, скажем, поделился на две части и при этом смог выбрать лидера с обеих сторон и решить, что теперь он будет работать, как два независимых кластера. Availability - это не просто способность сохранять работоспособность пока работает хотя бы один узел, а обслуживать любые запросы на любой из нод кластера. Суть в том, что большинство статей описывают вообще не CAP теорему, а просто "в какую стороную больше склоняется система", быть доступной или быть консистентной в присутствии разрыва сети. Я прикладывал в описании конкретные работы, где вводилось понятие CAP теоремы, это академические работы, можете ознакомиться с ними, как с первоисточником.
@user-hi7yk5iv7j23 күн бұрын
Очень познавательно, спасибо!
@user-hi7yk5iv7jАй бұрын
Очень понятное объяснение, спасибо)
@Denis-sdsАй бұрын
СОМНИТЕЛЬНО, но окэй
@levaryazanАй бұрын
Отличное видео! Сейчас разбираюсь с метриками, очень такого не хватало.
@user-qv3hd5nq1lАй бұрын
Крутая лекция, спасибо! Из слайда, объясняющего работу WAL, осталось не очень понятно, что произойдёт, если отключится питание в момент, когда мы записали файл-сегмент с отсортированными данными из in-memory structure, но не успели подать команду discard offer flush. Получается WAL у нас останется заполненным после восстановления? Не произойдёт ли дублирования сегмента?
@YuriySamorodovАй бұрын
Отличный разбор. Спасибо! А разве репликация и наличие нескольких нод не подразумевает наличия сети, и соответственно, не допускает ее разделения (сегментации)?
@sukhoa7 күн бұрын
спасибо) Да, конечно, любая система, где между узлами пролегает сеть является распределенной и, конечно, предполагает ситуация разрыва сети.
@HideDJekerАй бұрын
100 партиций на топик это конечно сильно и универсально, такое количество вероятно в любом кластере сделает меньший перформанс - каждая партиция файловый дескриптор, каждая партиция это усложнение этапа ребаланса, увеличивать партиции - норма, и да кафка ничего не сделает, обычно просто предупреждают и потом убеждаются что консюмер группы дошли до конца, а кто нет - его проблемы. К универсальному запасу в 100 и возможному экспоненциальному приросту нагрузки заранее невозможно подготовиться, в теории и со 100 партиций может придется апскейлится, если так страшно - то вы можете перелить данные в новый топик с новым количеством партиций.
@sukhoaАй бұрын
Забыл поместить ссылку на курс :) Вот она - it-es-course.getcourse.ru/main. Мои мини-курсы можно увидеть на степике stepik.org/a/202085 и udemy - www.udemy.com/user/andrei-sukhovitskii/
@timurbaburin86682 ай бұрын
Где комментарий
@user-xz6mo6wn4d2 ай бұрын
34:17 "Разобраться с Кибаной - это, наверное, минут 20 составит". Такой смешной лектор. Такие шутки отпускает - ухохочешься. Пусть идет за 20 минут KQL изучит. Приду - проверю.
@user-xz6mo6wn4d2 ай бұрын
Это студенты первого-второго курсов?
@cbrnt41573 ай бұрын
Кто писал кафку, с вики: Kafka was originally developed at LinkedIn, and was subsequently open sourced in early 2011. Jay Kreps, Neha Narkhede and Jun Rao helped co-create Kafka.
@user-ik4xd8fs8f3 ай бұрын
Огонь. Пошел смотреть новую версию по метрикам.
@alext60835 ай бұрын
Вы забыли упомянуть, что: 1 нужно решать вопрос консистентности, пока финалтная маленькая транзакция не закомичена, система находится в неконсистентном состоянии, и нужно уметь с зтим жить. 2 процесс отката маленьких транзакций иакде может обломаться, это собственно коррелирует с первыми вопросом. И с жтим также нужно уметь жить.
@alexshavlovsky79225 ай бұрын
Распространенные бизнес ошибки - ошибка десериализации или валидации. распространеные технические ошибки - ошибки ввода/вывода при коммуникации с низлежащими сервисами, недоступность низлежащих сервисов, сетевые ошибки типа 502/503/504
@user-ur7bn1kd1p5 ай бұрын
Размазали видео почти на час, много воды (верю, что это препод из универа). Лучше идти по сценарию интервью и придерживаться ему.
@mamonov015 ай бұрын
Андрей, можете сказать пожалуйста название и модель вашего планшета?)
@sukhoa5 ай бұрын
Да, конечно. Это Huion GT-133. Не могу его сильно рекомендовать, основная претензия в том, что у него довольно странный адаптер, который после нескольких месяцев использования разболтался, что приводит к отключению питания планшета переодически. В остальном неплох.
@jukovb1115 ай бұрын
блиии максимально просто максимально кратко но максимально непонятно :) может на курсе расскажете?
@sukhoa5 ай бұрын
:) расскажу, конечно!
@applemodus6 ай бұрын
Спасибо за лекцию
@applemodus6 ай бұрын
Спасибо за лекцию
@applemodus6 ай бұрын
Спасибо за лекцию
@applemodus6 ай бұрын
Спасибо за лекцию
@1apaladin6 ай бұрын
29:36 В графане есть версионирование бордов! Вкладка Versions в настройках самой борды
@applemodus6 ай бұрын
Спасибо за лекцию
@applemodus6 ай бұрын
Спасибо за лекцию
@applemodus6 ай бұрын
Спасибо за лекцию
@a.krugliak6 ай бұрын
я бы добавил ребятам redpanda еще как аналог кроля когда еще как не в студенчестве делать тесты и сравнения)
@applemodus6 ай бұрын
Спасибо за лекцию
@applemodus6 ай бұрын
Спасибо за лекцию
@applemodus6 ай бұрын
Спасибо за лекцию
@applemodus6 ай бұрын
Спасибо за лекцию
@applemodus6 ай бұрын
Спасибо за лекцию
@applemodus6 ай бұрын
Спасибо за лекцию
@alexricher25546 ай бұрын
Посмотрел на одном дыхании) Будучи джуном, пытался залететь на сеньора и мне задавали аналогичные вопросы. Теперь я более опытен, но все равно не знаю как подать некоторые вещи на собеседовании. А тут все довольно круто изложено и аргументировано: Андрей - вы очень крутой преподаватель и разработчик)
@yevhendatsenko99897 ай бұрын
первый вопрос дичь. Деньги хранятся в виде дебита и кредита
@user-td6vu1hh3y7 ай бұрын
Очень много воды, отвечал бы по сути уважаемый
@cleverscript7 ай бұрын
Подскажите а как получить количество запросов в секунду т.е RPS верный ли такой запрос? sum by(vhost)(rate(allnginx_http_response_count_total{}[60s])) / 60
@sukhoa7 ай бұрын
На самом деле вижу, что в вашем запросе используется функция rate и одновременно вы производите деление на 60, видимо, чтобы получить per second. prometheus.io/docs/prometheus/latest/querying/functions/#rate функция rate уже делает за вас по сути increate{..}[60s] / 60. Так что точно либо rate, либо 60 лишнее :)
@a1dwow8 ай бұрын
Андрей, а как вы рисуете, можете подробнее рассказать, у вас открыта программа Sketchbook на Mac, но рисуете как будто на другом устройстве
@sukhoa7 ай бұрын
Добрый день! Да, все верно, я рисую в Sketchbook, но на графическом планшете
@manOfPlanetEarth5 ай бұрын
@@sukhoa графический планшет? айпад что ли?
@user-hn3wk8wh9h8 ай бұрын
Классные лекции, очень много интересной информации, рассказывается живо. Но вот студенты совсем какие-то деревянные. Но, возможно, они просто ещё не понимают, что происходит
@AB-ku1su8 ай бұрын
Где микросервисы , что за вода
@user-fq4pc7fm2z8 ай бұрын
а можно не на белом фоне слайды?
@victorpanchuk18248 ай бұрын
ну и муть
@smilesrg7 ай бұрын
та чего, в банковских системах такое используется
@user-jx3gu1nn7s8 ай бұрын
Спасибо
@user-jx3gu1nn7s8 ай бұрын
Спасибо
@user-jx3gu1nn7s8 ай бұрын
Спасибо
@user-jx3gu1nn7s8 ай бұрын
Спасибо
@dylanweinholt49789 ай бұрын
*Promo sm*
@user-fh4fc9om3k9 ай бұрын
10:05 нам не важна реализация метода println(), потому что ему передается один аргумент, то что получится в результате выполнения выражения "123" + s. Если метод вызывается, то всегда сначала будут вычислены аргументы. Из за этого например когда мы передаем в метод Optional.orElse() выражение или вызов другого метода, то это выражение или метод будут выполнены в любом случае. Строка: String s = "123" + null; не является ошибочной, потому что так устроена конкатенация