En programación de computadoras , Base de datos como IPC puede considerarse un anti-patrón donde una tabla persistente en disco en una base de datos se usa como el almacén de la cola de mensajes para la comunicación entre procesos de rutina o el procesamiento de datos suscritos. Si le preocupa el rendimiento de la base de datos, las alternativas incluyen sockets , Network Socket o Message Queue .
El científico informático británico , Junade Ali, definió el Anti-Pattern de Database-as-IPC como el uso de una base de datos para "programar trabajos o poner en cola tareas para completar", y señaló que este anti-patrón se centra en el uso de una base de datos para mensajes temporales en lugar de Datos persistentes. [1]
Controversia
El problema surge si hay un problema de rendimiento y si se pueden justificar sistemas (y servidores) adicionales. En términos de rendimiento, los avances recientes en los sistemas de bases de datos proporcionan mecanismos más eficientes para la señalización y la mensajería, y los sistemas de bases de datos también admiten tablas de memoria (no persistentes).
Hay bases de datos con mecanismos de notificación integrados, como Postgres, [2] [3] SQL Server, [4] y Oracle. [5] Estos mecanismos y las mejoras futuras de los sistemas de bases de datos pueden hacer que las colas sean mucho más eficientes y evitar la necesidad de configurar un sistema de cola de mensajería o señalización separado junto con la sobrecarga del servidor y la administración.
Si bien MySQL no tiene soporte directo para notificaciones, [6] son posibles algunas soluciones. Sin embargo, se considerarían no estándar y, por lo tanto, más difíciles de mantener. [7]
En lugar de denominarse antipatrón , esto podría considerarse más adecuadamente como una elección de diseño que se realizará caso por caso.
Referencias
- ^ Ali, Junade (septiembre de 2016). Dominar los patrones de diseño PHP . Birmingham, Inglaterra: Packt Publishing Limited. págs. 45–46. ISBN 978-1-78588-713-0. Consultado el 11 de diciembre de 2017 .
- ^ [1] Postgresql.org 2020 09 de septiembre
- ^ [2] Postgresql.org 2020 09 de septiembre
- ^ [3] Nic Ferrier. 2018 agosto 15
- ^ [4] docs.oracle.com. 2020 Septiembre 09
- ^ [5] MariaDB Jira. 2020 Septiembre 09
- ^ 5 formas sutiles de usar MySQL como cola y por qué te morderá Schwartz, Baron. 2011 14 de septiembre.