Database-as-IPC
From Wikipedia, the free encyclopedia
From Wikipedia, the free encyclopedia
In computer programming, Database-as-IPC may be considered an anti-pattern where a disk persisted table in a database is used as the message queue store for routine interprocess communication or subscribed data processing. If database performance is of concern, alternatives include sockets, network socket, or message queue.
This article needs additional citations for verification. (September 2011) |
British computer scientist, Junade Ali, defined the Database-as-IPC Anti-Pattern as using a database to "schedule jobs or queue up tasks to be completed", noting that this anti-pattern centres around using a database for temporary messages instead of persistent data.[1]
The issue arises if there is a performance issue, and if additional systems (and servers) can be justified. In terms of performance, recent advancements in database systems provide more efficient mechanisms for signaling and messaging, and database systems also support memory (non-persisted) tables.
There are databases with built-in notification mechanisms, such as Postgres,[2][3] SQL Server,[4] and Oracle.[5] These mechanisms and future improvements of database systems can make queuing much more efficient and avoid the need to set up a separate signaling or messaging queue system along with the server and management overhead.
While MySQL doesn't have direct support for notifications,[6] some workarounds are possible. However, they would be seen as non-standard and therefore more difficult to maintain.[7]