Defining an Elastic SQL Database

elastic SQL: From Oxymoron to NEW reality
 

“We were ‘just’ looking for a SQL database that could scale horizontally. But that’s not an easy combination to find.”
- Walid Darwish, CTO,
CauseSquare

When it comes to database management systems (DBMSs), it can seem like we don’t lack for choices. Analytical. Operational. Specialized. SQL. NewSQL. NoSQL (including key-value, document, graph, and column-based). Cloud / Database as a service. Open source.

And yet despite all these options, many organizations are still struggling to find the right database for their application.

WHY?

Traditional relational SQL

Traditional relational SQL databases

 like Oracle and Microsoft SQL Server are great for on-premises, single data center environments, but quickly lose value as needs become more distributed, less predictable, and higher in volume

NoSQL

 NoSQL
solutions

like MongoDB, Couchbase, and DataStax satisfy scale-out and continuous availability needs but compromise strict transactional consistency, guaranteed durability, and the familiarity of a SQL interface

NewSQL

 NewSQL
products

such as VoltDB, Clustrix, and MemSQL maintain SQL as they scale but are often limited to highly specialized use cases such as streaming or batch analytic applications

SACRIFICE SQL FOR AN ELASTIC DATABASE?
OR SACRIFICE ELASTICITY FOR A SQL DATABASE?

As organizations seek to gain the benefits of the cloud - on-demand scaling, pay-as-you-go pricing, continuous availability, etc. - they often have to make a choice:

cost of moving to cloud

Migrate their existing SQL database to the cloud, while recognizing that they’ll still need to pre-provision (and pre-pay), as well as add costly and complex add-ons to accommodate performance, scaling, or active-active requirements


Abandon SQL DatabaseAbandon their SQL database - along with its ACID guarantees, familiar development interface, and (if migrating an existing application) much of the application code while complicating the application logic with data management logic typically handled by the database

NuoDB was the best database to support our need to scale up to meet demand while maintaining transactional consistency and integrity.

— Bruce Lawler, Co-founder, Kodiak

Is an elastic SQL database right for you?

When selecting the right database, there are four vectors to consider.

elastic SQL flow chart

  1. Do you need a general purpose operational database, an analytical database, or a highly specialized database like an object database or a geospatial database?
     
  2. Is a single-server or even clustered database sufficient for your needs or are you moving to the cloud, and therefore could benefit from a distributed database? And if you need a distributed database, do you need elastic scale-out and scale-in capabilities?
     
  3. How important are transactional guarantees to your application? Strict consistency? Eventual consistency? Or no need for guarantees at all? If you’re running an application with valuable information in it - customer and business data for instance - you probably want strict consistency. If you’re running an Internet of Things application, you may not need any guarantees.
     
  4. Do you want an ANSI SQL database, or are “SQL-like” capabilities sufficient? If you have a skilled staff accustomed to SQL or a SQL application you’re migrating, you probably want pretty robust SQL capabilities. If you’re building a new application and don’t mind either buying specialized skills or paying to educate your team, then that may not be as critical.

As you move your way down any given path, you can quickly determine based on your application requirements whether an elastic SQL database meets your needs. In short, if you are looking to retain your traditional SQL database benefits and gain new cloud efficiencies, then an elastic SQL database is the right option to consider.

elastic sql craneCan a SQL database really be elastic?

So now that we’ve established the need for an elastic SQL database, the question becomes whether such a thing is even possible.

For those familiar with traditional SQL databases, adjusting for increasing volume has typically been a balance between pre-provisioning and scaling up with new monolithic hardware. As more applications began to require scale-out capabilities, add-on solutions that fit the “distributed but not elastic” database category - such as Oracle Real Application Clusters (RAC) - became available. Yet such solutions added both cost and complexity to the SQL database architecture without providing true elasticity.

While workarounds such as these exist, it has become clear that retrofitting single-server technology for a distributed, cloud-based world often fails to solve the actual problem while adding significant expense and complexity to the architecture.

More recently a new class of SQL databases have emerged that are purpose-built to deliver elasticity, strict transactional consistency, rich ANSI-SQL support, and continuous availability.

These innovative elastic SQL databases enable enterprise application on cloud-style infrastructures and can combine the power, ecosystems, skillsets, and best practices of the traditional SQL database with the benefits of next-generation commodity-based infrastructures.

It’s time for an elastic SQL database. It’s time for NuoDB.

Learn more about NuoDB’s elastic SQL database

 

Read the Product Overview