Skip to main content
Loading

Microsoft Azure Capacity Planning

info

For details on disk and memory sizing, see the main capacity planning docs.

The two most common use-cases for Aerospike are:

  • An in-memory cache with no persistence
  • A fast persistent data store
We will look at how to implement these cases on the Azure platform. For information on more choices to organize your storage, please see the storage engines documentation.

Aerospike as a Hybrid-Memory Store

Aerospike has developed a simple to run Cloud Qualification Process that demonstrates the capabilities of untuned instances. By default it tests our hybrid-memory configuration. This can be used to differentiate what each instance family is more suited towards.

Instance TypeClient Transactions/s+95th Percentile (ms)99th Percentile (ms)Object Size (bytes)Object CountDisk SizeCost++
Standard_Gs131,0003.59.113+++240,000,00056GB$0.61/hr
Standard_L4s41,0001.25.81500240,000,000678GB$0.344/hr
+ As measured from the client, 50/50 read/update averaging under 1ms.
++ Price in West US, at time of writing.
+++ Low object size is due to fitting 240m objects into a mere 56GB disk. Larger object sizes can be used with the following optimizations:
  • shorten set name from 9 characters
  • Enable single-bin for the namespace. This will make 28 additional bytes available.
  • 3 additional bytes are available for Integer or Float types.
This results in up to an additional 39 bytes for data per record without impacting storage space (using a single character set name).


Your numbers may not necessarily match these exactly, due to variance within Azure's environment.

Aerospike as In-Memory with no Persistence

The Data In-Memory without Persistence storage engine is ideal for a cache based use-case.

Aerospike as a Fast Persistent Data Store

The storage engine suited for this use case is the SSD Storage Engine.

Azure provides SSD storage in the form of Premium Storage. These are network attached to virtual machine instances.

Local SSDs Backed by Premium Storage Persistence

This is the recommended storage engine in cloud environments.

Pros:

  • RAM requirement is same as persistence model only.
  • Provides persistence offered by Storage Disks while surpassing the performance bottleneck by making use of local SSDs performance as caching layer.
  • Provides the best of performance and persistence possible by using local SSD as RAM alternative along with Storage Disks for persistence storage.

Cons:

  • More operational overhead than any other storage models.
  • Need to use instances supporting the required amount of local SSD instance storage volumes.

Instance Types

Presently, we suggest using the Lsv2 instances. These support Premium Storage, which are SSD based network storage, as well as having local SSDs. See Certifying Flash Devices.

Instance families with 'S' in their designation have Premium Storage (SSD) support. If no persistence is required, non-'s' families can be used.

Disk Caching

Azure provides a unique disk caching feature. This will accelerate your disk access for both local and persisted disks.

If your access pattern is predominately read based, it would be advisable to configure the Disk Caching to ReadOnly. ReadOnly caching also benefits access patterns that are less random or uniform and more concentrated (eg: zipfian, last-access, hotspot distributions)

caution

Aerospike recommends testing your personal workload for any potential benefits of ReadOnly disk caching.

Aerospike does not recommend ReadWrite disk based caching.