Take the 2-minute tour ×
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

Has anyone had any experience using ScaleArc?

My CTO has asked my thoughts on it, and I have seen no information out there regarding real-world experiences.

share|improve this question
    
Potto I just came across this and I'm not sure if you had success testing, but if you need any help, let me know. I'm the product specialist for the Western US at ScaleArc and we can get on a tech call to answer any questions you have. The key value for ScaleArc is: Read/Write split Replication lag aware load balancing Transparent in-line query analytics for all SQL traffic (no sampling, no overhead on MySQL) Transparent query caching Query routing .... doing all of this with no changes to the app code. Let me know if you have any questions. Sam –  user23448 May 6 '13 at 17:56

1 Answer 1

up vote 6 down vote accepted

HA HA HA HA What a coincidence. I was asked to evaluate it myself.

Here is what has been done so far...

  • My supervisor installed it
  • I created two EC2 instances
  • I have created Master/Slave status between them
  • I create the Cluster on ScaleArc EC2
    • I submitted the Master EC2 as a ScaleArc Master
    • I submitted the Slave EC2 as a ScaleArc Slave
  • I adjusted the Security Options for port 3306 on the Cluster

Here is what the rudimentary test I performed: I decided to connect to MySQL, not using the Master EC2, and not using the Slave EC2, but using only the ScaleArc EC2. Here is a script to wrote up to test connectivity:

[redwards@lw-lts-155 ec2]$ cat master_select
EC2_DNS=<ScaleArc-EC2-DNS Hidden>
MYSQL_USER=<<Username Hidden>
MYSQL_PASS=<Password Hidden>
MYSQL_CONN="-u${MYSQL_USER} -p${MYSQL_PASS}"
mysql -h${EC2_DNS} ${MYSQL_CONN} -ANe"show variables like 'hostname'"

Here is the result:

[redwards@lw-lts-155 ec2]$ ./master_select
+----------+------------------+
| hostname | ip-10-242-47-176 |
+----------+------------------+
[redwards@lw-lts-155 ec2]$ ./master_select
+----------+------------------+
| hostname | ip-10-205-21-233 |
+----------+------------------+
[redwards@lw-lts-155 ec2]$ ./master_select
+----------+------------------+
| hostname | ip-10-242-47-176 |
+----------+------------------+
[redwards@lw-lts-155 ec2]$ ./master_select
+----------+------------------+
| hostname | ip-10-242-47-176 |
+----------+------------------+
[redwards@lw-lts-155 ec2]$ ./master_select
+----------+------------------+
| hostname | ip-10-242-47-176 |
+----------+------------------+
[redwards@lw-lts-155 ec2]$ ./master_select
+----------+------------------+
| hostname | ip-10-242-47-176 |
+----------+------------------+
[redwards@lw-lts-155 ec2]$ ./master_select
+----------+------------------+
| hostname | ip-10-205-21-233 |
+----------+------------------+
[redwards@lw-lts-155 ec2]$ ./master_select
+----------+------------------+
| hostname | ip-10-242-47-176 |
+----------+------------------+
[redwards@lw-lts-155 ec2]$ ./master_select
+----------+------------------+
| hostname | ip-10-205-21-233 |
+----------+------------------+
[redwards@lw-lts-155 ec2]$ ./master_select
+----------+------------------+
| hostname | ip-10-242-47-176 |
+----------+------------------+

Hey, not bad. Slave was reached 7 out of 10 times.

At the very least, that is what one would want: Using just one address, connect to MySQL and have some roving intelligence decide which DB Server to connect to. This has been the pipe dream of all avid prognosticators of MySQL Proxy:

Whether they implemented MySQL Proxy using LUA or scripted it in some proprietary way, the bottom line is this : ScaleArc has achieved this and has done the heavy lifting for us all (at least in the AWS Universe).

I would say : Go ahead and play with it as follows:

  • Setup one Master and three Slaves
  • Register the Master and Slaves in ScaleArc
  • Write up some benchmark against the Cluster
  • Use the charts provided and see if it intelligently does the load balancing

Sorry, I am no expert with ScaleArc and this not a full answer for you. Test drive it and kick the tires some.

UPDATE 2013-01-14 16:32 EDT

I downloaded the sakila database and loaded it into the Cluster.

wget http://downloads.mysql.com/docs/sakila-db.tar.gz

Then, I ran this query

SELECT actor_id FROM sakila.actor
ORDER BY MD5(CONCAT(last_name,first_name))

and stored the results in actor_id.txt

Next, I constructed the following script to launch mysql many, many times, in testbeds..

EC2_DNS=<ScaleArc-EC2-DNS Hidden>
MYSQL_USER=<Username Hidden>
MYSQL_PASS=<Password Hidden>
MYSQL_CONN="-h${EC2_DNS} -u${MYSQL_USER} -p${MYSQL_PASS} -Dsakila"
NUMBER_OF_TESTBEDS=${1}
PARALLEL_TESTS=${2}
if [ "${1}" == "" ] ; then NUMBER_OF_TESTBEDS=1 ; fi
if [ "${2}" == "" ] ; then PARALLEL_TESTS=1     ; fi
ACTOR_LIST=""
for ACTOR_ID in `cat actor_id.txt`
do
        ACTOR_LIST="${ACTOR_LIST} ${ACTOR_ID}"
done
SQLPREFIX="SELECT F.film_id,F.title FROM actor A"
SQLPREFIX="${SQLPREFIX} INNER JOIN film_actor FA USING (actor_id)"
SQLPREFIX="${SQLPREFIX} INNER JOIN film F USING (film_id) WHERE A.actor_id="
for (( X = 1 ; X <= NUMBER_OF_TESTBEDS ; X++ ))
do
        echo -n "Launching TestBed #${X} ("
        for (( Y = 1 ; Y <= PARALLEL_TESTS ; Y++ ))
        do
                echo -n " ${Y}"
                for ACTOR_ID in `echo "${ACTOR_LIST}"`
                do
                        SQLSTMT="${SQLPREFIX}${ACTOR_ID}"
                        mysql ${MYSQL_CONN} -ANe"${SQLSTMT}" /dev/null 2>/dev/null &
                done
        done
        echo -n ")"
        wait
        echo
done

Hope This Helps !!!

share|improve this answer
    
I do wonder how easy it would be to write a load balancing script to achieve something similar? –  Phil Jan 14 '13 at 18:17
    
@Phil You are right. I believe TrafficScript has paradigms / mechanisms to do this as part of the Zeus Load Balancer. –  RolandoMySQLDBA Jan 14 '13 at 18:28
    
Thanks for taking the time to post the details of your present findings. Do you see this as something different than what [Galera](www.codership.com) has already done with Galera Load Balancer / Galera Cluster? I am presently evaluating Percona XtraDB Cluster, which uses Galera's libraries. –  potto Jan 14 '13 at 23:05
    
According to the Docs I have seen thus far, Percona XtraDB Cluster can easily be slipped in. You just have to choose one or more EC2 servers to play Master and the remainding EC2 servers as Slaves and let ScaleArc take it from there. –  RolandoMySQLDBA Jan 14 '13 at 23:17

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.