База данных как IPC - Database-as-IPC - Wikipedia

В компьютерное программирование, База данных как IPC можно считать антипаттерн где постоянная таблица на диске в базе данных используется в качестве хранилища очереди сообщений для процедуры межпроцессного взаимодействия или обработка данных по подписке. Если производительность базы данных вызывает беспокойство, альтернативы включают Розетки, Сетевое гнездо, или же Очередь сообщений.

Британский специалист в области информатики Джунаде Али определил Anti-Pattern Database-as-IPC как использование базы данных для «планирования заданий или постановки задач в очередь на выполнение», отметив, что этот анти-шаблон основан на использовании базы данных для временных сообщений вместо постоянных данных.[1]

Полемика

Проблема возникает, если есть проблема с производительностью, и если дополнительные системы (и серверы) могут быть оправданы. Что касается производительности, последние достижения в системах баз данных обеспечивают более эффективные механизмы для сигнализации и обмена сообщениями, а системы баз данных также поддерживают таблицы памяти (непостоянные).

Существуют базы данных со встроенными механизмами уведомлений, например Postgres,[2][3] SQL Server,[4] и Oracle.[5] Эти механизмы и будущие усовершенствования систем баз данных могут сделать организацию очередей намного более эффективной и избежать необходимости устанавливать отдельную систему очередей сигнализации или обмена сообщениями, а также накладные расходы на сервер и управление.

Хотя MySQL не имеет прямой поддержки уведомлений,[6] возможны некоторые обходные пути. Однако они будут рассматриваться как нестандартные, и поэтому их будет труднее поддерживать.[7]

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

Рекомендации

  1. ^ Али, Джунаде (сентябрь 2016 г.). Освоение шаблонов проектирования PHP. Бирмингем, Англия: Packt Publishing Limited. С. 45–46. ISBN  978-1-78588-713-0. Получено 11 декабря 2017.
  2. ^ [1] Postgresql.org 2020 9 сентября
  3. ^ [2] Postgresql.org 2020 9 сентября
  4. ^ [3] Ник Ферье. 2018 15 августа
  5. ^ [4] docs.oracle.com. 2020 Сентябрь 09
  6. ^ [5] MariaDB Jira. 2020 Сентябрь 09
  7. ^ 5 изощренных способов использования MySQL в качестве очереди, и почему это вас укусит Шварц, барон. 2011 14 сентября.