MariaDB

Support forum for the ViciBox ISO Server Install and ISO LiveCD Demo

Moderators: enjay, williamconley, Staydog, mflorell, MJCoate, mcargile, Kumba

MariaDB

Postby kimhoogenberg » Thu Mar 27, 2014 1:55 am

Just a quick question. Why did was chosen for MariaDB in Vicibox clustered setup, but were not prepared all tables to use the InnoDB engine, making it possible to use Galera Cluster?

What is the proven approach for database clustering with the newest version 5?
kimhoogenberg
 
Posts: 60
Joined: Wed Jul 01, 2009 3:33 pm

Re: MariaDB

Postby Vince-0 » Thu Mar 27, 2014 3:15 am

Maria still has MyISAM table engine. This is the only table engine compatible with Vicidial so clustered table engines are not possible.

Vin.
Vince-0
 
Posts: 272
Joined: Fri Mar 02, 2012 4:27 pm
Location: South Africa

Re: MariaDB

Postby kimhoogenberg » Thu Mar 27, 2014 4:58 am

Hi Vince,

That's what I concluded too. There's no answer to why?

Is converting to innodb an option? Any plans on this topic or even help needed?
kimhoogenberg
 
Posts: 60
Joined: Wed Jul 01, 2009 3:33 pm

Re: MariaDB

Postby Vince-0 » Thu Mar 27, 2014 5:10 am

The topic of table locks has been posted numerous times EG:
http://www.vicidial.org/VICIDIALforum/v ... hp?p=84266
http://www.vicidial.org/VICIDIALforum/v ... hp?p=76327

I think there needs to be a table lock to prevent race conditions on data access since there is no query queuing in the Vicidial software itself.
Converting tables to InnoDB is not an option because there will definitely be data inconsistency/contention issues especially at load.
Converting some tables to memory engine is possible but not practically possible on large tables and certainly not possible on call_log, agent_log etc because of data contention.

Interestingly, I have just taken a look at OSDial's Vicidial fork, which they have recently updated. Their MariaDB tables are all InnoDB but I am yet to investigate scalability, usability etc.

Vin.
Vince-0
 
Posts: 272
Joined: Fri Mar 02, 2012 4:27 pm
Location: South Africa

Re: MariaDB

Postby 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.
mflorell
Site Admin
 
Posts: 18406
Joined: Wed Jun 07, 2006 2:45 pm
Location: Florida

Re: MariaDB

Postby Acidshock » Fri Apr 11, 2014 9:59 am

Out of curiosity is there any DOC that exists of a slaving example? Something along the lines how VICI interacts, is configured for it, limitations, etc? Sounds like it would be a interesting read.
VERSION: 2.14-698a | BUILD: 190207-2301 | Asterisk:13.24.1-vici | Vicibox 8.1.2
Acidshock
 
Posts: 430
Joined: Wed Mar 03, 2010 3:19 pm

Re: MariaDB

Postby Vince-0 » Fri Apr 11, 2014 10:32 am

The slave database configuration is just as a standard MySQL slave. The Vicidial my.cnf file has examples commented out.

The only Vicidial configuration required is to have the same user account on the slave and in system settings page input the slave database IP and select which reports come from it. I don't use real time reports via the slave.

Vin.
Vince-0
 
Posts: 272
Joined: Fri Mar 02, 2012 4:27 pm
Location: South Africa


Return to ViciBox Server Install and Demo

Who is online

Users browsing this forum: No registered users and 85 guests