Installing and Configuring a ColumnStore System using the Amazon AMI

You are viewing an old version of this article. View the current version here.

The MariaDB ColumnStore AMI is CentOS 7 based with MariaDB ColumnStore 1.0.5-1 installed. It also has the Amazon EC2 API Tools installed, which allows MariaDB ColumnStore to create EC2 Instances and EBS storages. EC2 Instance/node failover is supported, meaning if an EC2 Instance goes down or stops communicating, MariaDB ColumnStore will handle that problem keeping the system functional. This might consist of moving an EBS storage device from the problemed EC2 Performance Module to an another Performance Module in the system. Also if a EC2 Instance was to terminate, MariaDB ColumnStore will launch another EC2 Instance in its place.

MariaDB ColumnStore can be used a Single Node or a Multi-Node system. And it supports using both local storage and EBS storage's.

You will need to have an AWS account setup to access and use the MariaDB ColumnStore AMI, plus some basic knowledge of accessing and launching AMI's and Instances.

These are the support configuration options: 1. Single-Node install with or without EBS Storages 2. Multi-Node Install with or without EBS Storages a. Setup with User Module and Performance Module functionality on the same Instance(s) b. Setup with User Module and Performance Module functionality on different Instance(s) c. MariaDB ColumnStore install script (postConfigure) can create the additional Instances and EBS storage's that are used in the system. d. MariaDB ColumnStore install script (postConfigure) supports using EC2 instances and/or EBS storage that the user has created.

AWS Security - Access and Secret Keys

If you are doing a Multi-Node install and you want the ColumnStore processes to utilize the Amazon API Tool, you will need these 2 keys and have them in 2 files, which will be installed on the AMI Instance. These keys aren't required for a single-node install.


Cut-and-Paste those 2 keys into files, example:

  • access-key.pem
  • secret-key.pem

AWS Management Console page

1. Create and download a Key-Pair, this is used to log into the AMI Instance 2. Create a VPC Security Group with the following Inbound Rules:

  • SSH - Source = Your Public IP address
  • SSH - AMI subnet
  • All ICMP
  • Custom TCP rule - port range 8600-8800, subnet
  • MYSQL TCP (port 3306) - subnet
  • MYSQL TCP (port 3306) - Any other Public IP where you what to access the console 3. Select and Launch the MariaDB ColumnStore AMI:
  • Recommend using a minimum Instance type of "m4.2xlarge" type to get optimal performance.
  • Number of Instances = 1
  • Storage size = default is 100 gb, can be increased if using local storage
  • Value = Name of Instance, which is systemName-pm1. I.E. columnstore-1-pm1
  • Security Group = Select the one that was setup for Columnstore
  • Select you Key Pair name and Launch Instance

Amazon AMI EC2 Instance user and password setup

The MariaDB ColumnStore AMI is setup to be accessed and run from the user 'mariadb-user'. It comes with ssh-keys setup and these used during the install process.

MariaDB ColumnStore Amazon environment installation and setup

Access to Launched AMI Instance

Log into the instance as user 'mariadb-user'. If the connection link has 'root' user, you will need to change that to 'mariadb-user'. Here is an example:

Link from the AWS Console:

ssh -i "xxxxx.pem" [email protected]

Change to:

ssh -i "xxxxx.pem" [email protected]

Follow the instructions from the README file to setup and install MariaDB Columnstore

  • This will consist of scp'ing the access file and a secret key file onto the instance, if you plan to do a multi-node install.
  • Running the post-install script, then launching the postConfigure script

Setup and Install MariaDB ColumnStore

The Instance that was launched is ColumnStore Performance Module #1. This is the primary "pm" where the install process will always start. The install and configuration script, postConfigure is run to initiate the install process.

If you are installing as a Single-Node system, you can follow install instructions on how to run postConfigure in the follow document for root user:


The following is a transcript of a typical run of the MariaDB ColumnStore configuration script. Plain-text formatting indicates output from the script and bold text indicates responses to questions. After each question there is a short discussion of what the question is asking and what some typical answers might be. You will not see these discussions the running the actual configuration script.

Common Installation Examples During postConfigure, there are 2 questions that are asked where the answer given determines the path that postConfigure takes in configuring the system. Those 2 questions are as follows:

Select the type of server install [1=single, 2=multi] (2) >


Select the Type of Module Install being performed:
1. Separate - User and Performance functionalities on separate servers
2. Combined - User and Performance functionalities on the same server
Enter Server Type ID [1-2] (1) >

The following examples illustrates some common configurations and helps to provide answers to the above questions:

  • Single Node - User and Performance running on 1 server - single / combined
  • Mutli-Node #1 - User and Performance running on some server - multi / combined
  • Mutli-Node #2 - User and Performance running on separate servers - multi / separate

MariaDB Columnstore Memory Configuration

During the installation process, postConfigure will set the 2 main Memory configuration settings based on the size of memory detected on the local node.

The 2 settings are in the MariaDB Columnstore Configuration file, /usr/local/mariadb/columnstore/etc Columnstore.xml. These 2 settings are:

'NumBlocksPct'   - Performance Module Data cache memory setting

TotalUmMemory  - User Module memory setting, used as temporary memory for joins

On a system that has the Performance Module and User Module functionality combined on the same server, this is the default settings:

NumBlocksPct    - 50% of total memory

TotalUmMemory - 25% of total memory, default maximum the percentage equal to 16G

On a system that has the Performance Module and User Module functionality on different servers, this is the default settings:

NumBlocksPct    - This setting is NOT configured, and the default that the applications will then use is 70%

TotalUmMemory - 50% of total memory 

The user can choose to change these settings after the install is completed, if for instance they want to setup more memory for Joins to utilize. On a single server or combined UM/PM server, it is recommended to not have the combination of these 2 settings over 75% of total memory


Comments loading...
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.