I have a system mounted with a central mysql server to store CDR,costs,calls duration, users…and a group of asterisk machines(2) that makes calls and, when a call hangup, executing a DeadAGI that insert data in mysql server ( in the same LAN)
My question is that this architecture is scalable ¿?. Actually I have 1 sqlserver and 1 asterisk.
How many asterisks machines can update data simultaneaous in mysql server?
If I have 3,4 asterisk make 100 calls simultaneauos with 100 DeadAGI… the sqlserver will accept all the conections?
I will degrade asterisk operations??
Some similar experience?
we are running a cluster of 6 predictive dialers connected to a single [HA] database server with no problem.
Thanks for your reply mudslide567, can you tell how many simultaneous conections establish the 6 predictive dialers? They only read data or write too in the database server?
reading and writing to the database. concurrent calls is not really relevant to the database load. the real concern is how many “transactions per second” the database can handle. any database server properly configured can handle at the very least dozens of transactions per second and well tuned robust servers can handle thousands of transactions per second. i am quite confident that i could quadruple the number of predictive dialers without stressing anything.
Thanks for share your experiences mudslide567, so I think that i will implement the system.
We have a customer system with 7 servers writing and retrieving form 1 db server that replicates to a second server . handles in excess of 600 concurrent calls with no issues.
Thanks for share your experience ianplain is so apreciated too.
Only one more question guys. What do you think that is the more eficient way to access a mysql BD from asterisk?
- Using a AGI like phpagi, perl script?
- Using direct access from asterisk like :
exten => X.,1,MYSQL(Connect connid 192.168.X.X userbd passbd database)
exte = X.,2, etc...
- Other way??
Any ideas, experiences to share?¿?¿