Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

An Engineering Approach to Database Evaluations

DZone's Guide to

An Engineering Approach to Database Evaluations

Here are the things you need to keep in mind as you shop for your next database — with all the Star Wars references you could ever dream of.

· Database Zone ·
Free Resource

Databases are better when they can run themselves. CockroachDB is a SQL database that automates scaling and recovery. Check it out here.

Whether you're the CTO of the Rebel Alliance or the of the Galactic Empire, it can be very difficult to decide on your next database technology with the distraction of both sides constantly being at war. In 2018, you'll need to make a database choice for an existing or new application. Here are the things you need to keep in mind as you shop for your next database.

1. The Right Language (SQL)

The history of SQL, or Structured Query Language, dates back to 1970, when E.F. Codd, then of IBM Research, published a seminal paper titled, "A Relational Model of Data for Large Shared Data Banks." Since then, SQL has remained the lingua franca of data processing, helping build the relational database market into a $36 billion behemoth.

Modern SQL supports distributed transactions, distributed queries, and distributed algorithm processing. When picking a language, engineers will want to consider:

  • Surface area supported (joins, aggregates, sub-queries, CTEs, window functions)
  • Parallelism (in a single machine, across a cluster of machines)
  • Mature query optimizer
  • Profiling and query tuning support

2. Performance

Businesses want insights from their data and they want it sooner rather than later. For fast-changing data, enterprises must derive immediate value from data changes to stay competitive. Engineers building real-time applications that aim to minimize the time-to-value of data should consider:

  • Modern hardware
    •  AVX2 instructions/SIMD
    • Flash/NVMe
  • Code Generation

3. Database Storage Technology

Today's real-time application architectures require fast data ingest of millions of rows per second and subsecond query response against billions of rows. Key considerations for modern database storage technology includes:

  • In-memory rowstore
  • On-Disk columnstore
  • Skiplist, B-Tree, LSM-Tree, hash table, min-max index types

4. Transactionality

Nothing is more critical than ensuring that there are transactional boundaries for data commits. Database engines function to meet ACID compliance. The degree of transactionality determines business data success. Closely investigate the following:

  • Point-updates
  • Mass updates
  • File systems like HDFS that purport to have transactional consistency

5. Protection and Durability

Protect your data investment. Durability is the cornerstone of ACID compliance. When selecting database technology, take into account:

  • Replication support (synchronous, asynchronous, log-based, statement-based)
  • Built-in transparent high availability or manual setup
  • Backup and restore support

6. User-Defined Functions and Store Procedures

Extensibility is critical for implementing new functionality for modern database applications. For massive parallel processing, database systems require distributed extensibility that includes:

  • Custom table value functions
  • Custom user-defined functions
  • Custom user-defined aggregate functions
  • Custom store procedures

7. Data Ingest

For many organizations, batch processing reflects slow data load times. Examine database technology that reduces extract, transform, and load (ETL) times while combining transactional and analytical workloads. These systems should exhibit:

  • Fast, continuous, streaming ingest
  • Running queries concurrently with ingest

8. Security

Every day, business fall victim to data breaches. When hackers from the dark side gain access to critical data systems, all data becomes compromised. Protect the data of your business by selecting a modern database that supports:

  • Encryption and authentication
  • Role-based access control
  • Audit logging and strict mode

The force works in mysterious ways in the database universe. When considering a new database platform, let the force guide you to a scalable, real-time database and data warehouse platform for high-performance applications that require fast, accurate, secure, and always available data.

This blog post is an unofficial, educational, information resource. It is not linked to Lucasfilm Ltd. or Walt Disney. All images belong to their respective trademark and copyright holders. The Official Star Wars site can be found at www.starwars.com.

Databases should be easy to deploy, easy to use, and easy to scale. If you agree, you should check out CockroachDB, a scalable SQL database built for businesses of every size. Check it out here. 

Topics:
database ,sql ,rdbms ,data processing ,database storage ,database performance ,transactions

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}