Держу снимок таблицы (полученной из БД через node.js) в памяти. Каждый раз после внесения изменений в БД требуется обновлять и сам снимок. Как это можно реализовать не опрашивая базу? Есть ли возможность, чтобы база сама сообщала в Node о том, что есть изменения - и я уже только тогда подключаюсь и обновляю данные? Например база может записывать что-то в какой-то буфер или переменные окружения.
Есть ли такая возможность? По каким словам гуглить?
VicTHOR, хм, вариант. В моем случае это сработает, т.к. сервер который работает со снимком тот же самый, который вносит изменения в БД.
Но если бы в базу вносил изменения кто-то другой, то такой вариант бы не сработал.
ivandao, странновато держать базу и поду на одной машие.
И вообще, я не телепат.
Я исхожу из обычной практики, что база данных находится на другой машине. Поэтому представить базу на той же машине для меня не совсем обычно.
И если это у вас боевой сервер, на котором одновременно и бэкенд, и БД (если только это не Redis), то у меня для вас плохие новости.
ivandao, А это что, такой маленький минус - общие вычислительные ресурсы?
Это, блять, МИНУСИЩЕ!
Второе, как ты будешь делать шардинг, который по определению предполагает много серверов?
Потом, БД сжирает всё место на диске, засерает логами. Бэк стал раком. К админке доступа нет. Сайт, даже там, где статика и нет обращений к БД, не работает. Здравствуй, жопа, Новый год!
И, как правильно сказал, abberati , большая вероятность всё похерить
ivandao, верно.
Поэтому, чтобы "поделить ресурсы", используют разные сервера для бэка (бэков, на самом деле) и базы данных (множества баз данных, на самом деле). И у всех свои ресурсы, все довольны.
С вопроса не понятно что за база, но в целом у некоторых вендоров такая возможность есть.
например NOTIFY в постгресе. по сути клиенты подключаются на именованный канал, а с скля в этот канал можно отправить сообщение которое получает все клиенты. в данном случае это может быть уведомление что надо обновить данные (либо просто апдейт что какая-то запись изменилась). А дальше читать документацию на базу которую используете, можете много полезного узнать