BufWriter<Master<'_>> – Telegram
BufWriter<Master<'_>>
105 subscribers
451 photos
28 videos
34 files
1.7K links
https://www.patreon.com/alxe_master

Видео/статьи. Конспект и мои вольные комментарии по инженерии. тут только то, что считаю полезным для себя или других =)

#os, #cloud, #rust, #golang, #python, #javaScript, #cpp, etc
Download Telegram
АААА. замечательная статья. все понятия достаточно хорошо разьяснены... где ты была раньше блиН ?!?!

== Консистентно о Консенсусе
https://habr.com/ru/company/timeweb/blog/575136/

консистентности или согласованности— логическая непротиворечивость хранимых данных.

Консенсус — это согласие группы участников касательно значения некоторого состояния.

Пессимистичная блокировка — сначала участник запирает ресурс, затем производит его обновление, по завершении которого ресурс отпирается. Это если ему повезло прийти первым. Если же он пришёл, а ресурс уже кем-то заперт, то он сидит, ничего не делает, и ждёт его отпирания.

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

Оптимистичная блокировка — участник сначала готовит новое состояние, а потом атомарно применяет его к источнику истины. Если повезёт. А если не повезёт, и кто-то успеет раньше него, то вся проделанная работа выкидывается, и начинается заново. Висеть в таком цикле участник может неограниченно долго.

Упорядоченная сходимость = Operational Transformation — после слияния всех изменений каждым участником, любой из них должен получить одну и ту же цепочку изменений, что даст им одно и то же финальное состояние. То есть конвергенцию.

Полу-упорядоченная сходимость = CmRDT: Conflict-free Commutative Replicated Data Type — изменения от одного участника применяются лишь в том же порядке, в котором этот участник их вносил. А вот изменения разных участников можно переставлять друг относительно друга как угодно, но результат будет одинаковым.

Беспорядочная сходимость = CvRDT: Conflict-free Convergent Replicated Data Type — изменения могут приходить в произвольном порядке, могут дублироваться, а могут и вообще потеряться, но последующие изменения всё же обеспечат конвергенцию.

CROWD — CvRDT нового поколения
== архитектура ИТ-решений
https://youtu.be/VJrj5pcdPYI
== толковый плейлист по Rabbitmq
https://youtube.com/playlist?list=PLprvDkBQwz6ZC1iwd4y80Qqi43sswECdX
- общая инфа
- установка/настройка кластера
- принципы работы работы кролика на практике
- назначение прав доступа в Rabbitmq на практике
- Тесты HA кластера и метод балансировки

есть очереди типа КВОРУМ для кластера

пермишны можно настроить вплоть до конкретного эксченжа и топика

один балансер это одна точка отказа

можно делать балансировку на уровне L3

можно физический интерфейс хоста обьединить в бридж с ВМ

пока не будет всех нод Реббит не стартует !!!
== небольшой плейлист по Network
https://youtube.com/playlist?list=PLprvDkBQwz6bOaO1N0vDaHX-jqlvlKIhp
- Routing VS Nat
- Построение отказоустойчивой сети (Bonding, LAG, LACP)
- Построение отказоустойчивой сети VPC
- Обеспечение бесперебойного интернета (VRRP)
- настройка DNS балансировки и failover
- Тесты на боевой системе

NAT - это медленно
Ip Tables - Это медленно
при NAT нагрузка на ЦПУ выше
при использовании Kubernates/swarm и пр сеть нельзя обьединить с физическим интерфейсом хоста (а при использовании ВМ это сделать МОЖНО)
== DNS Best Practices, Network Protections, and Attack Identification

https://tools.cisco.com/security/center/resources/dns_best_practices

шикарное чтиво если сложно заснуть
== Представление о структуре отказоустойчивого кластера
https://youtu.be/hBrc-jJFbAw

CEPH как кластерная система хранения файлов . ВАРИАНТОВ НЕТ

каждый сервак должен иметь МИНИМУМ две раздельнче сетевые карты с оптикой. настроен бондинг

два физических роутера

два узла nginx
== Установка кластера кафки на 3 ноды.
https://youtu.be/OTxnQ289pvg
проперти, кластер, настройка
- кафка
- зукипер

== Понимание принципов работы kafka на практике
https://youtu.be/Ep9ZQjrn1Rs
- продюссер всегда пишет в лидера. остальные партиции на одной ноде только для чтения
все время хотелось понять как оно работает. шикаааарная статья. лайк

== Знакомство с хранилищем Ceph в картинках
https://habr.com/ru/post/313644/

Алгоритм CRUSH (Controlled Replicated Under Scalable Hashing)
- позволяет однозначно определить местоположение объекта на основе хеша имени объекта и определенной карты, которая формируется исходя из физической и логической структур кластера (датацентры, залы, ряды, стойки, узлы, диски)

== Как мы отказоустойчивый кластер запускали
https://habr.com/ru/company/first/blog/314106/
🔥1
== толковый плейлист по кластеру Postgres & Patroni
https://youtube.com/playlist?list=PLprvDkBQwz6YQLJQ_qlm3-gkk-BXYuuR0

== Что такое кластер Postgres, как он работает и для чего нужен Patroni
https://youtu.be/GtHtRyPcmIM

кластер постгреса работает из коробки

split-brain = разделение двух мастеров

постгрес не поддерживает мастер-мастер !

демон патрони занимается синхронизацием знанием о том кто мастер а кто реплика.

база etcd используется как транспорт и состояние для patroni

haproxy просто разруливает трафик на запись и на чтение. его мутирует patroni напрямую

НО хапрокси это единственная точка отказа

pgbouncer множественный коннект к постгресу . АБСОЛЮТНО БЕСПОЛЕЗЕН ЕСЛИ ИСПОЛЬЗУЮТСЯ ПЕРСИСТЕНТНЫЕ КОННЕКШНЫ
нужен только что бы использовать много частых коннекшнов, не создавая их часто физически

НИКОГДА НЕ ПОДНИМАЙТЕСЬ ПО СЕТЕВОМУ УРОВНЮ ЕСЛИ В ЭТОМ НЕТ НЕОБХОДИМОСТИ
container-ecosystem.drawio.png
181.7 KB
📝 Docker, Kubernetes, OCI, CRI-O, containerd & runc: How do they work together?

Взял вот в этой статье - An attempt to understand container runtime.

#containers #runc #containerd
postgresql_internals-14.pdf
7.5 MB
Это точно сохраню тут

Оглавление книги:

Введение
Часть I. Изоляция и многоверсионность
Изоляция
Страницы и версии строк
Снимки данных
Внутристраничная очистка и hot-обновления
Очистка и автоочистка
Заморозка
Перестроение таблиц и индексов
Часть II. Буферный кеш и журнал
Буферный кеш
Журнал предзаписи
Режимы журнала
Часть III. Блокировки
Блокировки отношений
Блокировки строк
Блокировки разных объектов
Блокировки в памяти
Часть IV. Выполнение запросов
Этапы выполнения запросов
Статистика
Табличные методы доступа
Индексные методы доступа
Индексное сканирование
Вложенный цикл
Хеширование
Сортировка и слияние
Часть V. Типы индексов
Хеш-индекс
B-дерево
Индекс GiST
Индекс SP-GiST
Индекс GIN
Индекс BRIN
== 3 Things You Might Not Know About Numbers in Python
https://davidamos.dev/three-things-you-might-not-know-about-numbers-in-python/

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

плейлист по производным https://youtube.com/playlist?list=PLGtfmJuN1mTA_vI3eLT8jMTEeJ0YDIh-z

== Задачи, приводящие к понятию производной
https://youtu.be/CQpX5f7iIvM

== Определение производной. Геометрический и физический смысл производной.
https://youtu.be/kJE2lqMJe5Q

== Геометрический смысл производной. Уравнение касательной и нормали.
https://youtu.be/KLzq2TTZN34

== Вычисление производных примеры. Самое начало.
https://youtu.be/gIk3EkrYkTg

== Производная сложной функции пример
https://youtu.be/muwAE0Fjlec

== Производная неявной функции примеры
https://youtu.be/7YpyHLHBCw4
== Scale Kubernetes to support 50000 services
https://www.slideshare.net/LCChina/scale-kubernetes-to-support-50000-services

Where is the latency generated (IPTables)?
- not incremental
- copy all rules
- make changes
- save all rules back
- IPTables locked during rule update

Time spent to add once rule when there are 5k services (40k rules) = 11min

20k services (160k rules) = 5 hours
Forwarded from Технотренды
[Перевод] Embedded Linux. Отладка ядра

Придя в embedded linux из мира микроконтроллеров, такого привычного инструмента отладки кода, как пошаговая отладка кода на целевой железке с помощью аппаратного программатора, - очень не хватало. В предыдущих статьях описано, как мы учились дебажить загрузчик u-boot: 1, 2. С ядром все оказалось сложнее. Например, выяснилось, что ядро Linux в принципе невозможно скомпилировать с отключенной оптимизацией (-O0). В статье описывается как нам все таки удалось запустить ядро на микропроцессоре ARM в режиме пошаговой отладки.

#linux #guide