We at Tessell talk about NVMe storage all the time, but why not? After all, what we want is a highly performant database for your most mission-critical workloads.
So, let’s dig a little deeper today and talk about what this NVMe storage is all about and how Tessell creates a highly performant database service with it.
What is NVMe?
We all have used SSD (Solid State Drives) in our public cloud landscape and across the enterprise. SSDs are storage options in the mainstream, from storage in our own computers to storage options in thePublic cloud - SSDs are everywhere.
Historically, Winchester, or spinning disk drives, communicated to a motherboard host controller using SCSI(Serial Attached SCSI) or SATA (Serial Advanced Technology Attachment)protocols. Eventually, the parallelism, asynchronous data access, and low latency of SSDs outstripped the capacity of these communication channels. This challenge gave rise to a new advancement in Protocol technology for SSDs which is known as NVMe( Non-Volatile Memory Express).
NVMe (Non-Volatile Memory Express) is a communications interface &driver that defines a command set & feature set for PCIe-based SSDs with the goals of increased and efficient performance and interoperability on abroad range of enterprise and client systems.
NVMe was designed for SSD, so it’s not a retrofit, such as extending existing protocols which were defined natively for HDD.
NVMe communicates between the storage interface and the System CPU using high-speed PCIe sockets, independent of storage form factor.
Input/Output tasks performed using NVMe drivers begin faster, transfer more data, and finish faster than older storage models using older drivers, such as AHCI (Advanced Host Controller Interface) a feature of SATA SSDs. Because it was designed specifically for SSDs, NVMe is becoming the new industry standard for both servers in the data centre and in client devices like laptop, desktop PCs and even next-gen gaming consoles.
NVMe is a big leap forward in maximising the performance of flash storages and capitalising on the feature-rich, low-cost, high-bandwidth and future-proof expansion bus standard, PCI express.
In the datacentre, network topologies are undergoing changes to accommodate for NVMe; network interfaces, switches and transport protocols have changed and continue to improve to support the increased bandwidth while maintaining QoS and lossless packet transport.
All this aside, but for an application developer or may be a Database Administrator how does the introduction of NVMe impact application performance?
Can you reduce your storage footprint while improving transaction throughput and reducing transaction response times?
Or can you significantly reduce the database backup times to mitigate the noisy neighbour problem and minimise its impact in a production environment?
How is Storage organised in Managed database offerings of Public clouds?
Current Managed database services like AWS RDS or Azure managed databases uses SAN storage over the network to connect EBS to the compute server, which uses existing SATA or SCSI communication protocols limiting the throughout you can get out of the SSD disks.
This design is pretty much similar across all public clouds. Any need of additional IOPS provisioning is managed through EBS volumes layer which get additionally charged and hence the overshoot in cost.
Beyond the Numbers
How Tessell Uses NVMe & solves for Data Durability?
With all the great things about NVMe one of the challenges that it has is about being transient or ephemeral in nature. So data durability is always a concern when using NVMe storage for databases.
NVMe is a very high performance, but instance store volumes are (by design) not fault-tolerant and not intended for use with data that can't be replaced. So data durability is always a concern when using NVMe storage for databases.
It’s actually not that NVMe is ephemeral in nature but how they are used in Public cloud setup which makes it ephemeral or at least makes it look like. Remember NVMe is called “Non-Volatile”
Ephemeral disks, also called Instance Store volumes, whether NVMe or SATA SSD or HDD don't persist across an instance stop/start because that action deallocates the hardware associated with the instance on stop and reallocates it on start.
The instance store is also wiped, so that the next instance to receive that hardware can't access what you stored. For example, In EC2, content on NVMe drives is also transparently encrypted, with service-managed keys, and the encryption keys are wiped when the instance is stopped.
These volumes do persist across a normal reboot, just not a stop/start. When you "stop" an EC2 instance, the billing for the instance also stops, because a stopped instance exists only logically& not physically. A stopped EC2 instance is assigned to no physical equipment &this is the problem we at Tessell wanted to solve and provide a high performant, durable database with NVMe storage.
Here, Tessell with HPC comes in with its deep expertise in database and storage management to provide data durability & guaranteed SLA’s while getting the best performance out of NVMe storage.
Our patented technology enable snapshots & continuous backup of transaction logs through our Tessell Availability Machine which is provisioned by default when you create any Tessell database service making High performance NVMe based storage to be used for databases in a managed services way.
Tessell Availability Machine does much more than just this, more about it here.
Database are deployed as per best practices on storage optimised instances via Tessell control plane. Data deployed on NVMe drives consists of data as well as log files. Data blocks fromNVMe storage are continuously synced to AWS EBS/Azure Disks using Tessell Engine for availability.
Transactional logs (Committed Transactions but not archived) are configured with one copy on NVMe storage and other on persistent storage like AWS EBS/Azure Disks.
To provide better durability, Transactions logs are copied from AWS EBS/ Azure Disks to S3/Blob storage at regular intervals.
Every 24 Hrs, Transaction logs are deleted from AWS EBS/ Azure Disks to control storage cost (one copy of data already exists on S3/Blob).
Tessell disrupts the cloudDBaaS space by internally segregating primary storage, which is the NVMe local storage, from the secondary storage, which is the EBS cloud volume. While theNVMe-based primary storage is used to handle application workloads, the EBS volume-based secondary storage can be provisioned only on-demand to take backups, and snapshots and manage other secondary needs.
Leveraging all mentioned data components, Tessell can restore your critical database up to the last committed transaction post any failure (stop/crash) for you mission critical workloads which would like to have multi-HA deployment but if you have a single instance database like Tier-2 or Tier-3 databases, then RPO is still less than 5 min (on par with RDS) and RTO will be proportional to the database size.
By bringing durability and persistence to the ephemeral, high-performance NVMe storage, Tessell offers upto 10x cloud database performance at 3-6x lower costs.
Tessell Performance Benchmarks
Over a period of time we& our customers have benchmarked our High Performance database offerings and it has always outperformed existing managed database service by a considerablemargin while giving you additional benefits with cost.
Our benchmarks are repeatable, verifiable & consistent.
In this blog, we learned about the basics of NVMe and how consolidating your database workloads to NVMe can help maximise existing hardware, due to its incredible efficiency and near-zero IO wait times, which allows you to use fewer CPU cores to achieve the same transactional throughput.
Tessell packages all the best in class features of High Performance Compute and a superior storage in a managed service while delivering on SLA’s, RPO & RTO with reduced infrastructure costs.
Say goodbye to a tight coupling of performance & cost with Tessell High performance database service.
To try out Tessell’s High Performance database service please sign up here.