MemSQL is a cool distributed In-Memory Database which offers high performance, sharded horizontal scale-out design, High Availability (with Enterprise edition), and the familiar SQL syntax. It also ships with a great looking GUI that displays most of information you need to know about your cluster.

However, some things are better dealt with in the cli, this page is for my reference:

Listing status

# List Nodes
memsql-ops memsql-list                          
 ID       Agent Id  Process State  Cluster State  Role        Host         Port
 0669D57  A116b09   RUNNING        CONNECTED      MASTER      10.1.10.51  3306
 B98DA2F  Abefe6b   RUNNING        CONNECTED      AGGREGATOR  10.1.10.52  3306
 32BA03D  A116b09   RUNNING        CONNECTED      LEAF        10.1.10.51  3307
 9472F86  Abefe6b   RUNNING        CONNECTED      LEAF        10.1.10.52  3307
 B1776D6  Abefe6b   RUNNING        CONNECTED      LEAF        10.1.10.52  3308
 B97142B  A116b09   RUNNING        CONNECTED      LEAF        10.1.10.51  3308


# Show leaves (connect via mysql)
mysql> SHOW LEAVES;
+-------------+------+--------------------+-------------+-----------+--------+--------------------+------------------------------+
| Host        | Port | Availability_Group | Pair_Host   | Pair_Port | State  | Opened_Connections | Average_Roundtrip_Latency_ms |
+-------------+------+--------------------+-------------+-----------+--------+--------------------+------------------------------+
| 10.1.10.51 | 3307 |                  1 | 10.1.10.52 |      3308 | online |                 18 |                        0.262 |
| 10.1.10.52 | 3307 |                  1 | 10.1.10.51 |      3308 | online |                 18 |                        0.561 |
| 10.1.10.52 | 3308 |                  2 | 10.1.10.51 |      3307 | online |                 17 |                        0.465 |
| 10.1.10.51 | 3308 |                  2 | 10.1.10.52 |      3307 | online |                 17 |                        0.189 |
+-------------+------+--------------------+-------------+-----------+--------+--------------------+------------------------------+
4 rows in set (0.00 sec)

# Show partitions (select db)
mysql> SHOW PARTITIONS;                     
+---------+-------------+------+--------+--------+
| Ordinal | Host        | Port | Role   | Locked |
+---------+-------------+------+--------+--------+
|       0 | 10.1.10.52 | 3308 | Master |      0 |
|       0 | 10.1.10.51 | 3307 | Slave  |      0 |
|       1 | 10.1.10.51 | 3308 | Master |      0 |
|       1 | 10.1.10.52 | 3307 | Slave  |      0 |
|       2 | 10.1.10.52 | 3308 | Master |      0 |
|       2 | 10.1.10.51 | 3307 | Slave  |      0 |
|       3 | 10.1.10.51 | 3308 | Master |      0 |
|       3 | 10.1.10.52 | 3307 | Slave  |      0 |
|       4 | 10.1.10.52 | 3308 | Master |      0 |
|       4 | 10.1.10.51 | 3307 | Slave  |      0 |
|       5 | 10.1.10.51 | 3308 | Master |      0 |
|       5 | 10.1.10.52 | 3307 | Slave  |      0 |
|       6 | 10.1.10.52 | 3308 | Master |      0 |
|       6 | 10.1.10.51 | 3307 | Slave  |      0 |
... TRUNCATED

Upgrading memsql

# Download the latest ops and bin from: http://download.memsql.com/releases/latest/memsqlbin_amd64.tar.gz http://www.memsql.com/download/thanks/

# Upgrade memsql
root@memsql-1 ~ $ memsql-ops memsql-upgrade --file-path /home/skroot/memsqlbin_amd64_5.0.8.tar.gz
Adding a MemSQL file
Unpacking archive to determine its version
Copying file into MemSQL Ops data directory
Registering file with MemSQL Ops
Successfully added a MemSQL file with version 5.0.8
Are you sure you want to upgrade your cluster to MemSQL version 5.0.8? This will temporarily shut down your cluster. [y/N] y
Do you want to back up the data directories in your cluster before the upgrade? If you choose no, we will use less disk space during the upgrade, but the risk of data loss will be greater. [Y/n] y
Starting MemSQL Upgrade
Currently on state OfflineClusterUpgrade.OfflineClusterUpgradeInit
Currently on state OfflineClusterUpgrade.SnapshottingDatabases
0/6 MemSQL nodes have snapshotted their databases
1/6 MemSQL nodes have snapshotted their databases
2/6 MemSQL nodes have snapshotted their databases
4/6 MemSQL nodes have snapshotted their databases
6/6 MemSQL nodes have snapshotted their databases
Currently on state OfflineClusterUpgrade.StoppingCluster
0/6 MemSQL nodes stopped
1/6 MemSQL nodes stopped
2/6 MemSQL nodes stopped
6/6 MemSQL nodes stopped
Currently on state OfflineClusterUpgrade.UpgradingCluster
0/6 MemSQL nodes have upgraded
1/6 MemSQL nodes have upgraded
3/6 MemSQL nodes have upgraded
4/6 MemSQL nodes have upgraded
5/6 MemSQL nodes have upgraded
6/6 MemSQL nodes have upgraded
Currently on state OfflineClusterUpgrade.StartingCluster
0/6 MemSQL nodes started
1/6 MemSQL nodes started
3/6 MemSQL nodes started
5/6 MemSQL nodes started
6/6 MemSQL nodes started
Currently on state OfflineClusterUpgrade.DeletingOldInstalls
0/6 MemSQL nodes have cleaned up their old installs
3/6 MemSQL nodes have cleaned up their old installs
6/6 MemSQL nodes have cleaned up their old installs
Currently on state OfflineClusterUpgrade.OfflineClusterUpgradeSuccess
Successfully upgraded cluster to MemSQL version 5.0.8

# Upgrade memsql ops
root@memsql-1 ~ $ memsql-ops agent-upgrade --file-path /home/skroot/memsql-ops-5.0.3.tar.gz              
Adding a MemSQL Ops file
Unpacking archive to determine its version
Copying file into MemSQL Ops data directory
Registering file with MemSQL Ops
Successfully added a MemSQL Ops file with version 5.0.3
Starting upgrade
Upgrading followers
Upgrading primary agent
Successfully upgraded all agents