LINUX.ORG.RU

Немного отстал от жизни, что за notify?

 ,


0

1

Кусок тз такой: «…Приложение должно отображать данные из таблицы в БД, синхронизация данных с БД осуществляется через механизм notify…» простыми словами или непростыми объясните, и какие бд поддерживают

Ответ на: комментарий от crutch_master

Странно, что под это дело так мало готовых решений в виде каких-нибудь библиотек для синхронизации распределенных хранилищ.

Хочешь раздуплить теорему CAP?

Что значит «раздуплить»? Вся проблема мамкиных бигдатовцев заключается в том, что они пытаются реализовать строгую согласованность там, где она не нужна. И индустрия бьется об эту глухую стену вместо того, чтобы создать инструменты, которые дали бы возможность спокойно жить без строгой согласованности. В принципе, отдельные готовые решение по этому поводу уже есть:

https://github.com/automerge/automerge

Эта либа вообще не парится по поводу того, кто и как будет передавать ее данные, насколько узлы рассинхронизированы, в каком порядке будет происходить синхронизация, и всё такое. И она работает в браузере.

byko3y ★★★★
()
Ответ на: комментарий от byko3y

Или же изменение схемы данных настолько проблематично

Проблематично оно, как правило, только из-за двузвенщиков, которые уже все приварили намертво. Переделка слоя мапинга из бд обычно тривиальна.

Она позволяет параллельно писать в базу, при этом ей не нужен сервер и вся СУБД умещается в либу на 2 МБ

Сервер нужен для всяких жирных запросов и прочего acid'а.

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

В чём проблема пересоздать таблицы? Если таблица для всего, то да, конечно, проблема, ну а так-то?

согласованность не нужна

Согласованность нужна. Бухи тебе весь мозг вынесут за копейку, которая почему-то не туда упала во время какой-то там синхронизации.

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 1)
Ответ на: комментарий от crutch_master

Проблематично оно, как правило, только из-за двузвенщиков, которые уже все приварили намертво. Переделка слоя мапинга из бд обычно тривиальна

Ты забавное слово применил «переделка». А как насчет горячего обновления на работающией системе? А как насчет тестирования этих изменений? То есть, по-хорошему нужно сделать снимок рабочей базы, сэмулировать нагрузку, подобную рабочей, и только после успешного прохождения тестов выкатывать это в прод.

Сервер нужен для всяких жирных запросов и прочего acid'а

А ты уверен, что тебе нужны всякие жирные запросы? Что ты собрался делать? Статистику аля clickhouse? Я боюсь, что твой рядовой ACID этого не вывезет.

В чём проблема пересоздать таблицы? Если таблица для всего, то да, конечно, проблема, ну а так-то?

Даже постгря умеет на работающей базе обновлять таблицу, но только если не меняются индексы.

Согласованность нужна. Бухи тебе весь мозг вынесут за копейку, которая почему-то не туда упала во время какой-то там синхронизации

Вот. Согласованность нужна, грубо говоря, на уровне отдела. Потому что операции все равно происходят не синхронно, они происходят на уровне отдела. Можно из коробки делать глобальную версионность, а можно обновлять данные с разных отделов только по необходимости. И самое смешное, что даже ZooKeeper отходит от этой модели, делая local-only запросы на чтение потенциально несериализуемыми, поскольку для идеальной сериализуемости-согласованности нужно проходить полный круг по кворуму, а это достаточно долго и ресурсоемко.

byko3y ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.