Skip to main content

Provisioning a Cluster

Provision for a Flash (SSD) Database

Storing data on flash allows you to have a large database that is still very responsive. For example, if you want your database to handle approximately:

  • 125 million objects at 1.5 K bytes/object
  • 16K reads/sec and 8K writes/sec

Then you might install the server on a 2-node cluster where each server has:

  • 1 Quad-core CPU (2.2+ GHz)
  • 16 GB RAM
  • 2 × 256 GB SSD
  • 1 Gb Ethernet Network card

The SSDs that are used for data cannot be used for the operating system, so you would typically have a rotational drive for system files. In addition if you're planning to use SSD devices over 2 TiB, you would need to split them in multiple partitions of sizes less than 2 TiB (or have different files on them with filesize under 2 TiB chunks - if it is fine to use files and the performance downsides for the specific use case) since the maximum allowed value is 2 TiB per filesize or device.

Provision for an In-Memory Database

You can also use Aerospike for an in-memory database. For example, let’s say you want your database to handle approximately:

  • 50 million objects at 500 bytes/object
  • 60K reads/sec and 30K writes/sec

In that case, you’d need to provision enough RAM for both data and index, as described above. So you might provision a 2-node cluster where each server has:

  • 1 Quad-core CPU (2.2+ GHz)
  • 64 GB RAM
  • 1 Gb Ethernet Network card

Provision Persistence for an In-Memory Database

If a namespace configured to store data in memory uses flash (SSD) for persistence, you can use the data sizing guide above, then factor in a multiple of 2 times to account for additional space needed for defragmentation. Alternatively, you can use a simpler rule-of-thumb of provisioning 4 times the size allocated for RAM to determine the flash-based persistence.

In the example above the RAM used on each server is 27 GB. To support persistence on SSD you would also provision:

  • 110 GB SSD

Provision for Amazon EC2 (Cloud-Based)

You can use Aerospike with Amazon EC2 in either flash (SSD) or in-memory configurations.

For flash, if you chose a i3.2xlarge instance and with two servers, you would be able to support approximately:

250 million objects at 1.5 K bytes/object 40K reads/sec and 20K writes/sec For an in-memory database, you would consider instances from the r4, c5, c5d, x1e families.

See the Amazon EC2 Deployment Guide.