Как в Go реализовать worker pool с ограниченным concurrency? concurrency определяет число одновременно работающих goroutine Для ограничения создают буферизированный канал размером с concurrency Перед запуском worker в…
Транзакция представляет собой последовательность операций, выполняемую как единое целое Атомарность (ACID) означает: либо выполняются все операции, либо не выполняется ни одна При возникновении ошибок используются…
Транзакция представляет собой группу операций, выполняемых как единое целое. Основные команды транзакций: BEGIN TRANSACTION — запускает транзакцию. COMMIT — сохраняет внесённые изменения. ROLLBACK — отменяет изменения…
Конкуренция транзакций, финансовые системы Организовать конкурентный контроль доступа к балансу Использовать атомарные операции либо транзакции с подходящим уровнем изоляции Доступны два подхода: оптимистичная…
Как корректно отменять горутины, выполняющие долгие операции? для управления долгими горутинными операциями в Go используется контекст следует применять context.Context вместе с отменой (CancelFunc) context нужно…
способ горизонтального разделения таблиц в БД данные распределяются по подмножествам (партициям) на основании ключа каждая такая часть отдельно хранится и обрабатывается повышает производительность запросов и операций…
Exactly-once обработка в Kafka: как реализовать и что учесть Тема: обработка сообщений, Kafka, идемпотентность В основе exactly-once находится транзакционная запись в Kafka через Transaction API Применяется…
контроль конкурентного доступа к данным доступные уровни: Read Uncommitted, Read Committed, Repeatable Read, Serializable решение определяется соотношением требований к консистентности и производительности низкие…
Как работает секционирование таблиц (table partitioning) в PostgreSQL? большая таблица разделяется на отдельные части — партиции каждая партиция представляет собой таблицу с собственным условием отбора, например…
Как организовать graceful shutdown HTTP-сервиса с воркерами в Go? Контекст: управление остановкой сервиса, одновременно обрабатывающего HTTP-запросы и выполняющего фоновые задачи Для координации завершения применять…
область: обработка событий, транзакции блокирующая транзакция — гарантирует атомарность и изоляцию использовать механизм блокировок (например, pessimistic locking) для синхронизации применять мьютексы или сходные…
Как устроен сборщик мусора в Python? управление памятью основано на подсчёте ссылок (reference counting) для каждого объекта ведётся счётчик ссылок; когда он становится равен 0, объект удаляется освобождение памяти…