SARTrack Admin <info@sartrack.co.nz> writes:
I develop a Windows application for Search and Rescue (using Delphi and MyDAC components), which gets a stream of "APRS" data packets, up to 10 per second. These are saved in the SQL database, but all Clients which are connected to the database MUST be notified when a Table change has occured, so that they then can update their internal tables. Which in turn update their Maps (GPS location of moving items) and other data, which MUST be up-to-date.
Currently I am having all Clients polling the database every 5 seconds, which really sucks, and causes all kinds of other problems.
Is there any chance that MariaDB will have some kind of Client Notification system when a Table has changed, as some other SQL databases seem to have?
While I can't speak for the MariaDB team, in Drizzle we're in the process of merging event_notify functions that let you do exactly what you describe, it uses the same hooks as our replication, so it's based on a solid foundation. Basically, you go SELECT WAIT_FOR(table, event, timeout, eventnr) and it'll block for up to timeout waiting for events. One way you could do it with MySQL/MariaDB is using the binlog api to monitor what's going on - although this is a *lot* more involved. -- Stewart Smith