by mflorell » Fri Mar 28, 2014 7:23 am
The queueing engine within MyISAM is the reason we use it. InnoDB just isn't able to handle the load of a large system without deadlocking, and that creates all kinds of problems for a real-time system like Vicidial. It is important to understand that Vicidial is not transaction-based like 95% of web/database systems out there, it needs to preserve execution order of queries, and that's something that can't be done efficiently with InnoDB. I have actually spent quite a lot of time trying to get InnoDB to work with Vicidial. All of the mysql detailed logging code in the agent interface and the AGI scripts were added for this purpose. I was never able to get InnoDB to function at the level of transactions per second and the size of tables that MyISAM can function at. Because of that, we strongly recommend NOT using InnoDB.
If you want to cluster MySQL, you can set up the master to have multiple slaves(one of our clients has had up to 4 slave DB servers without any issues).
As for scalability, we have clients using Vicidial for over 500 agents and placing over 1.5 million phone calls a day on a single system, so scalability using MyISAM has not been a problem on a properly built set of hardware.
As for OS-Dial, that is a very old fork of Vicidial that is missing many of the bug fixes and security enhancements that we've made in the last 6 years. We actually have replaced several OS-Dial systems with standard Vicidial for clients due to OS-Dial's issues.