2.7Kпросмотров
59.9%от подписчиков
16 января 2026 г.
Score: 3.0K
Пятничное чтиво Буду рад предложениям, вопросам и идеям связанным с каналом или архитектурными/техническими вопросами. Можно написать в личку, а можно анонимно. А ответы на вопросы можно прочитать на сайте. ————————————— Coupling from a big-O perspective Со связями в системе делают что угодно. Так, в balancing coupling автор использует связанность для того, чтобы считать цену изменений, сбалансированность, модульность и другие свойства. В статье выше, автор решил воспользоваться big-O нотацией, но не для того, что бы считать instruction step в алгоритмах, а для того, чтобы рассчитать количество правок, необходимых для изменения системы. В начале идет справка о том, что еще за big-O нотация, что измеряет (кроме instruction step можно считать память и количество вызовов между сервисами). После, на примерах тестов, автор рассуждает как использовать нотацию. При этом, акцент еще делается на расчете значений для тестовых моков. Далее автор переходит к layered architecture, где появляется мысль о том, что смысл DRY подхода в том, чтобы перевести O(n) к O(1). В конце найдете еще один пример связанный с тестами, ограничения подхода и выводы. Причем, в выводах, автор, задается вопрос, а существуют ли O(log n)+ правки или нет (в тексте автор доходит только до O(n)). Важно: автор в самом начале пишет, что идея пока «сырая» и пост нужен только, что бы «подумать». #architecture #big_o #idea ————————————— Postgres Scan Types in EXPLAIN Plans В канале регулярно появляются посты на тему EXPLAIN в постгресе. Сегодня исключения не будет, так как автор статьи объясняет разницу в видах scan, которые использует постгрес для извлечения данных. В тексте описываются шесть видов сканов:
- sequential scan — просмотр таблицы последовательно;
- index scan — сначала проверяется индекс, после достаются данные на которые указывает индекс;
- bitmap index scan — сначала читается индекс, после создается bitmap list с соответствующими строками. Далее данные считываются с использованием bitmap list;
- parallel sequential scan — аналогично sequential scan, только обработка в несколько потоков;
- parallel index scan — аналогично index scan, только обработка в несколько потоков;
- index-only scan — используется информация только из индекса. Для каждого из сканов приводятся примеры, описываются плюсы и минусы. Внутрянки в тексте не найдете, но если не знали как работают сканы — статью лучше прочитать. #psql ————————————— The architecture behind 99.9999% uptime in erlang Когда разговор заходит о высокодоступных системах, я вспоминаю о телефонии. А где телефония, там появляется erlang (и видео с Армстронгом и телефоном). Автор поста решил пойти по похожему пути и написать какие подходы и принципы из эрланга помогают добиться доступности в 4+ девятки. Текст начинается с примера связанного с телефонией, которая работает корректно до тех пор, пока не придется менять базовые станции из-за чего звонок может сброситься. Далее предлагаются первые выводы: изоляция и автоматическое восстановление. Следующий пример связан с звонками в интернете. Реализация в лоб через синхронный цикл приводит к проблемам в обработке нескольких звонков. Параллелизация не поможет из-за проблем с общей памятью, блокировками и так далее. Далее автор переходит к эрлангу и рассказывает о внутреннем устройстве BEAM (виртуальная машина). Далее рассказывается о supervision tree и планировщике BEAM. В конце найдете описание горячего обновления и как «распределенность» встроена в язык. Русский перевод #erlang #sla #availability