Heroku Key-Value Store Technical Characterization
Last updated October 11, 2024
All the information in this document is subject to change as Heroku adapts the service to better handle customer workloads.
The Heroku Key-Value Store plans offer different performance characteristics based on their multitenancy, CPU, RAM, and I/O architectures. This article provides a technical description of the implementation of these plans, and some of the performance characteristics of each.
Performance Characteristics
The following table outlines Heroku plans including relevant specifications for the underlying hardware.
Plan | vCPU | RAM | PIOPs | Multitenant | Connection Limit |
---|---|---|---|---|---|
mini | 2 | 25 MB | 200 | yes | 20 |
premium-0 | 2 | 50 MB | 500 | yes | 40 |
premium-1 | 2 | 100 MB | 500 | yes | 80 |
premium-2 | 2 | 250 MB | 500 | yes | 200 |
premium-3 | 2 | 500 MB | 500 | yes | 400 |
premium-4 | 2 | 750 MB | 500 | yes | 700 |
premium-5 | 2 | 1 GB | 500 | yes | 1000 |
premium-7 private-7 shield-7 | 2 | 7 GB | 500 | no | 10000 |
premium-9 private-9 shield-9 | 4 | 10 GB | 500 | no | 25000 |
premium-10 private-10 shield-10 | 8 | 25 GB | 500 | no | 40000 |
premium-12 private-12 shield-12 | 16 | 50 GB | 500 | no | 65000 |
premium-14 private-14 shield-14 | 32 | 100 GB | 1000 | no | 65000 |
Premium, Private, and Shield plans are encrypted at rest by using AES-256, block-level storage encryption.
Multitenancy
Heroku Key-Value Store instances currently run on virtualized infrastructure provided by AWS EC2. Higher-level Heroku Key-Value Store plans benefit from higher levels of resource isolation than lower-level plans.
There are two main variants of deployment architectures on Heroku Key-Value Store: multi-tenant and single-tenant.
For multi-tenant plans, several LXC containers are created within a single large instance. Each LXC container holds a single Redis service and provides security and resource isolation within the instance.
Resource isolation and sharing on multi-tenant plans is imperfect and absolutely fair resource distribution between tenants can’t be guaranteed under this architecture.
For single-tenant plans, a customer’s KVS instance and related management software are the sole residents of resources on the instance, offering more predictable and less variable performance. However, virtualized infrastructure is still subject to some resource contention and minor performance variations are expected.
Architecture, vCPU, RAM, and I/O
All Heroku Key-Value Store plans run on 64-bit architectures, ensuring best performance for Redis operations.
vCPUs are the number of virtual processors on the underlying instance. Having a larger number of vCPUs provides better performance on the virtual server or instance.
All instances are backed by EBS optimized instances where EBS disks with provisioned IOPs (PIOPs) are attached. PIOPs are a measure of how many I/O operations the underlying disks can perform per second. The number of IOPs provisioned for each plan determines its I/O throughput.