Базы данных

Брокеры и стриминг: транзакции в очереди и логе — RabbitMQ и Kafka

Брокеры и стриминг: транзакции в очереди и логе — RabbitMQ и Kafka

Что значит «транзакция» в брокере: AMQP-транзакции RabbitMQ против publisher confirms, транзакционный producer и exactly-once в Kafka, consume-process-produce и read_committed, границы EOS и outbox-паттерн как мост к БД. Примеры на Go и Java

Как выбирать и использовать индексы

Как выбирать и использовать индексы

Практика индексов: селективность и кардинальность, покрывающие индексы и index-only scan, составные индексы и порядок колонок, частичные и функциональные, и главное — почему индекс НЕ используется и как это увидеть

KV и документные: «транзакций» почти нет — Redis, MongoDB, ScyllaDB

KV и документные: «транзакций» почти нет — Redis, MongoDB, ScyllaDB

Что означает «транзакция» там, где нет классического ACID-движка: Redis MULTI/EXEC без rollback и WATCH-CAS, multi-document транзакции MongoDB поверх snapshot, LWT на Paxos в ScyllaDB и почему BATCH — это не транзакция. Примеры на Go и Java

Транзакции в реляционных БД на практике: PostgreSQL, изоляция и нагрузочный стенд

Транзакции в реляционных БД на практике: PostgreSQL, изоляция и нагрузочный стенд

PostgreSQL как эталон управляемой изоляции: уровни в деле, SELECT FOR UPDATE, SERIALIZABLE с retry на 40001, advisory locks. Примеры на Go (pgx) и Java (JDBC) плюс нагрузочный стенд, воспроизводящий lost update и write skew под конкуренцией

Полнотекстовый поиск в OpenSearch: запросы, анализаторы и подсветка результатов

Полнотекстовый поиск в OpenSearch: запросы, анализаторы и подсветка результатов

Как устроен полнотекстовый поиск в OpenSearch: типы запросов, анализаторы для русского и английского языков, подсветка результатов, оптимизация релевантности и сравнение с полнотекстовым поиском в PostgreSQL и MongoDB

В работе

Ближайшие материалы, которые продолжают этот раздел.

Базы данных

Redis: где он помогает, где создаёт проблемы и почему "просто поставим кэш" — плохой план

Вводный материал про Redis как класс решений: паттерны, анти-паттерны, ограничения и подходы к надёжности.

Базы данных

PostgreSQL в Docker: что можно, что нельзя и как не потерять данные

Практический baseline для PostgreSQL в контейнерах: volume, backup, healthcheck и границы допустимого production.

Базы данных

ClickHouse в контейнерах: когда это удобно, а когда лучше не надо

Разбор dev- и lab-сценариев для ClickHouse и того, где контейнеризация уже начинает мешать эксплуатации.