Одна база данных на всё: доводы против Redis, Mongo и Pinecone

Новый сайт каталогизирует замену на Postgres почти для каждой специализированной системы данных, от Redis до Neo4j, и называет обращение к ним преждевременной оптимизацией.

Вкратце

Каталог конкретен: UNLOGGED-таблицы вместо Redis, SKIP LOCKED вместо очереди задач, pgvector вместо Pinecone, PostGIS вместо вашего гео-стека — с правилом, что покинуть Postgres можно только после того, как задокументируешь, почему его не хватило.

Разработчик, у которого email-CRM работает на Redis, не покупается на посылку: его тривиально настроить, и он никогда не падает, так о какой сложности вообще говорит этот жанр?

Postgres для кэша, очереди, векторного хранилища и графа

Аргумент прямой: большинство команд тянутся ко второй базе, поисковому кластеру и векторному хранилищу ещё до того, как первая база прогрелась, и всё это преждевременная оптимизация. Сначала выжмите PostgreSQL до предела, а потом платите за что-то специализированное, только если он и правда не тянет. Сайт читается как прямой потомок Choose Boring Technology (2018).

Что заставляет это сработать — карта замен. Почти для каждой специализированной системы сайт называет возможность или расширение Postgres, которое покрывает ту же территорию:

Специализированный инструмент Замена на Postgres
Redis (кэширование) UNLOGGED-таблицы, материализованные представления
Очередь задач SKIP LOCKED, pgmq, pgflow
Elasticsearch / Algolia tsvector, pg_trgm, ParadeDB
MongoDB JSONB, FerretDB
Pinecone / Weaviate pgvector, pgvectorscale
Временные ряды TimescaleDB, pg_partman
Snowflake / BigQuery pg_analytics, DuckDB
Neo4j Apache AGE, рекурсивные CTE
Геоданные PostGIS

Планка ухода намеренно высока: выжать Postgres до предела, задокументировать, почему его не хватило, и принять операционные издержки того, что придёт на замену.

Возразили те, кто реально эксплуатирует всё остальное

Разработчик, строящий email-CRM в carom.io, не покупается на посылку:

«Но я читаю (растущий) жанр статей «используй Postgres для всего», и они подразумевают сложность эксплуатации другого софта, которой я просто не вижу. Я про Redis в частности… его тривиально настроить, и он почти никогда не падает и не требует обслуживания.»

Один комментатор не впечатлился самим слоганом:

«В последнее время я видел несколько постов «Используй Postgres для всего!»… когда я вижу что-то вроде «Всё, что тебе нужно, — это X», я немного закатываю глаза, потому что [идеи «не добавляй зависимостей» и «предпочитай простоту»] имеют очень мало общего с postgres.»

Читатель, ссылающийся на эпизод Oxide and Friends и разбор brandur об очередях в Postgres указал на площадку:

«Учитывая единодушный консенсус на HN, что Postgres — это всё, что вам когда-либо понадобится… Онлайн-форумы вроде Hacker News могут быть слегка эхо-камерными.»

Ещё один голос взял собственный совет статьи про резервные копии и обернул его против неё:

«Причина держать отдельные системы в том, что некоторые из них падают. И под «падают» подразумевается в том числе то, что вы хотите развернуть новую версию. Или восстановиться из резервной копии, как советовала статья.»

Неудобное следствие: одна база данных — это один радиус поражения.

Получайте такие разборы каждый день

Главные истории Hacker News — на email, в Telegram или RSS.

Следующая новость · 14 из 23 Читать дальше
📈Biz

ЕС заставляет Nintendo сделать батареи Switch 2 сменными самим пользователем

У новости о соответствии требованиям есть тихий близнец, зарытый в том же FAQ поддержки: после почти десяти лет продаж Nintendo снимает с производства оригинальный Switch, Switch Lite и Switch OLED.

★ 323 · 💬 192 · nintendo.com · 2 мин