Hi all,

I've been kicking this around the scary place that is my head for quite a while and thought I'd throw this over to the mailing list for any better ideas. Apologies for the length of the email, the brain dump got a bit out of control.

What I'm trying to achieve is a way of continuing with on air play out in the case of a network failure. In this particular case its planned failure (my UPS has seen better days).

Temporarily I can rsync the /var/snd from the server to the studio file system and then mysql dump (or slave replication) from the server to the studio. Edit the rd.conf file and kick airplay during a live link and nobody will notice.

However it got me thinking about a more permanent solution by trying to make the default situation be that Rivendell plays locally at all times.

*MySQL:

*In theory I could set up a multi-master MySQL between the server and critical studios. You can offset auto-numbers to alleviate race conditions on record inserts however I don't know enough about MySQL to know how it handles updates/deletes and how well/badly it recovers from a network loss.

I had a custom program made for call handling (really basic) a few years ago and when I set up a simple slave replicator I found that I couldn't do things like ordered SQL selects with limits e.g. ORDER BY id DESC LIMIT 1 as it broke the replication.

Problems like this make me think multi master is a bad idea for Riv.

*/var/snd:

*Being lazy you'd want something like a continuous rsync. I looked into things like DBRD and Gluster FS but they all seem to have big warnings about shooting the other node in the head and I gave up at that point. Then I thought I would do something more intelligent.

Have a "drop box" share on the server that is nothing to do with Riv. When this share receives files a daemon script copies it into the server /var/snd via rdimport. The output of this gives you the cart number (and as such the file name the cart has). After the import has finished the script then copies the file to each critical clients /var/snd.

This has downsides, the time between the import and the copy (assuming MySQL replication happens right away) could potentially mean this would happen:

"Hi presenter, I've imported the news for 12, please shove it into the play list" "OK" <presenter sees a nice big red cart with an audio problem as its still copying across>

Would it be easier to just do snapshot updates once an hour (rsync and MySQL) and have some sort of script that tweaked rd.conf and kicked airplay whenever it noticed there was a network outage? Any DB activity during the outage would kill the slave replication so I'd probably have to script/manually repair the damage before replication continued.

I could probably even script in a 30 second Station ID stored locally while the change was taking place so that Riv wasn't strictly needed.

Just wondering if this is something anyone has seriously thought about?

--
Wayne Merricks
The Voice Asia
0121 522 6080


#######################
Scanned by MailMarshal
#######################

############

Attention: The information contained in this message is confidential and intended for the addressee(s) only. If you have received this message in error or there are any problems, please notify the originator immediately.
The unauthorised use, disclosure, copying or alteration of this message
is strictly forbidden. Christian Vision or any of its subsidiaries will
not be liable for direct, special, indirect or consequential damages arising from alteration of the contents of this message by a third party
or as a result of any virus being passed on. Please note that we reserve
the right to monitor and read any e-mails sent or received by the company under the Telecommunications (Lawful Business Practice) (Interception of Communications) Regulation 2000. Christian Vision is registered in England as a limited company 2842414 and as a charity 1031031
############
_______________________________________________
Rivendell-dev mailing list
[email protected]
http://lists.rivendellaudio.org/mailman/listinfo/rivendell-dev

Reply via email to