Skip directly to content

SQL

Announcing VoltDB v3.0 – Preview Release

Thursday, September 27, 2012 - 12:00am

written by John Piekos on September 27, 2012

Announcing VoltDB v3.0 – Preview Release

The next major release of VoltDB, version 3.0, is right around the corner.  In anticipation of this release, we’re announcing a preview release of the v3.0 offering, available immediately.  A brief overview and details on how you can preview this exciting release is found below.
What is VoltDB v3.0?

The VoltDB v3.0 release includes a set of user-visible features, including new SQL (specifically column functions), ad hoc SQL execution performance, Export enhancements, online schema changes, and a more

Announcing VoltDB Version 2.5

Tuesday, April 10, 2012 - 2:30pm

written by John Piekos on April 10, 2012 

I’m very happy to announce the release of VoltDB 2.5.  Consistent with prior releases, 2.5 includes one major new feature, Database Replication, combined with other significant work in and around the VoltDB core engine.  I’d summarize our 2.5 engineering investments as follows:

  • Database Replication.  As I’d previously described here, Database Replication is the headline feature of 2.5 (until recently, we referred to the feature as WAN replication).  It allows VoltDB databases to be automatically replicated within and across data centers.

Best Practices for Index Optimization in VoltDB

Thursday, November 6, 2014 - 7:00pm

Indexes provide a classic “space for speed” trade-off. They add to the persistent memory footprint of your application data but they make query filtering significantly faster. They also represent a trade-off that sacrifices write performance for read performance, on the assumption that indexed data will be filtered by queries more frequently than it is modified.

Introducing VoltDB 3.0

Tuesday, January 22, 2013 - 12:00am

written by John Piekos on January 22, 2013

The VoltDB engineering team is thrilled to announce that VoltDB 3.0 is now available!  Over the past six months we’ve added a ton of features to VoltDB 3.0. This blog post lists the highlights, but that just scratches the surface. Look for future blog posts to dive into specific areas of version 3 functionality.

So let’s jump into what’s new in VoltDB 3.0…

Even Faster

VoltDB 3.0 has lower latency and more throughput than the VoltDB v2.x release.

JSON in VoltDB

Tuesday, February 5, 2013 - 12:00am

written by John Piekos on February 5, 2013

VoltDB 3.0 introduces the use of JSON-encoded columns to allow more flexibility in how you structure and interact with your data. New SQL functions and index capabilities let you work more naturally with JSON data while maintaining the efficiency and transactional consistency of a relational database.

How?  A VoltDB JSON Example

Let’s assume that you want to implement a single sign-on (SSO) application using VoltDB.  You wish to store the login session for a set of different online sites under a common username.

Making an Impact: VoltDB Engineering Interns

Friday, September 21, 2012 - 12:00am

written by John Piekos on September 21, 2012

Making an Impact: VoltDB Engineering Interns

Summer went by too fast in New England!  We are already missing our two engineering internship students, Xin Jia from Brown University and Zheng li from University of Massachusetts, Lowell.

During their internship, Xin and Zheng worked on numerous projects, explored new ideas, and helped accelerate the launch of product features. In short, they were big contributors to VoltDB.

New powerful way to do upserts in VoltDB

Thursday, November 20, 2014 - 11:15am

Over a year ago, we published a blog post to explain how to do an upsert transaction using a stored procedure in VoltDB (http://voltdb.com/blog/upserts-voltdb). Since then, we have received useful feedback and made some significant improvements. Today we would like to introduce a new, simpler and faster way to do UPSERT.

 

Introduced in VoltDB V4.8, UPSERT is a SQL statement used to insert new records or update existing records (depending on whether or not a primary key value exists in the current table). Its SQL syntax is the same as the INSERT statement; the detailed documentation page can

Picture it: Three Nodes, Highly Available Cluster, ~1 Million Transactions/second – with VoltDB

Tuesday, June 4, 2013 - 12:00am

written by Philip Rosegay on June 4, 2013

You’ve probably heard about the VoltDB, the super fast distributed ACID SQL RDBMS for OLTP, but you might not be aware of its throughput capabilities in detail. VoltDB achieves its high throughput by eliminating the locking and latching of conventional databases. It’s also distributed and can automatically shard your data, and it has a bunch of other really cool features that make transaction processing a snap.

We took a key­-value application and implemented it in VoltDB (the app is available with the distribution if you want to try it). We set the

Presto! Facebook Embraces SQL, Everyone at VoltDB Nods Their Head.

Thursday, November 7, 2013 - 12:00am

written by Ryan Betts on November 7, 2013 

Yesterday, Facebook announced open-source access to Presto, “a distributed SQL query engine optimized for ad-hoc analysis at interactive speed.” You can read more in this blog post by Martin Traverso, a member of Facebook’s Presto team.

At VoltDB, we’ve always believed that data is only valuable when you can interact with it. Data you can’t interact with — well, that’s just overhead. We put access and interactivity first. And that means we put SQL first. Five years ago this wasn’t a popular choice but we stuck to our guns.

Simplify Your Stored Procedure Logic with Expectations

Monday, December 3, 2012 - 12:00am

written by Andrew Wilson on December 3, 2012

John Hugg was talking with me today about a way to reduce the complexity of error checking in a stored procedure and how rarely it is used. VoltDB’s stored procedures let you set “expectations” on each SQL statement. Those expectations can eliminate several lines of code leading to shorter, readable and more reliable stored procedures.

Consider the following sample:

Example.DDL

CREATE TABLE user_table (

user_name        varchar(200)        UNIQUE NOT NULL,

  password         varchar(100)        NOT NULL,

  CONSTRAINT user_name_idx PRIMARY KEY

 

Strangeloop Conference Recap

Wednesday, October 3, 2012 - 12:00am

written by Ben Ballard on October 3, 2012 

Last week in St. Louis, Dr. Michael Stonebraker gave the keynote address at the Strangeloop conference. His topic was In-Memory Databases – the Future is Now! Strangeloop is a fantastic multi-disciplinary tech conference run by Alex Miller (@puredanger) that may be the closest thing to geek heaven this side of graduate school. Alex and his crack staff, especially the ever-present Nick Cowan, kept things running very smoothly. The Peabody Opera House and its efficient staff provided an unusually opulent setting for discussions of concurrency, emerging

Thoughts on NoSQL Now! 2012

Tuesday, August 28, 2012 - 12:00am

written by Ryan Betts on August 28, 2012

One of the best parts about working for a growing start-up is the chance to leave keyboard and office behind and escape to meet users. I spent last week in San Jose at NoSQLNow – a conference designed to bring together users and vendors of “Not Only SQL” products.

VoltDB is, quite proudly, a SQL system and some passers-by raise an eyebrow as we explain this. But our modern OLTP database shares some of the
same design vocabulary as many NoSQL systems: we shard data; we run on commodity and cloud hardware; we scale horizontally; we design for update and

VoltDB client for the Go Language

Monday, October 29, 2012 - 12:00am

written by Ryan Betts on October 29, 2012 

A while ago I published my Go VoltDB driver to github (https://github.com/rbetts/voltdbgo).  I wrote the driver for three reasons: to learn and write a little go; to be able to test and script against VoltDB using go; and to experiment with some different VoltDB client patterns.

We, and the community, have written several production quality drivers for VoltDB (available at https://www.voltdb.com/download). The go driver, however, has not been tested for production use.

With caveats complete, what’s up with voltdbgo?

Firstly, it only supports

VoltDB Explain Plan Command and Planner Testing Tool

Wednesday, September 12, 2012 - 12:00am

written by Douglas Patten on September 12, 2012

My name is Zheng Li, a UMass Lowell graduate student. I spent the summer as an internship at VoltDB. Over the summer, I primarily worked on two VoltDB features, both related to query plans. The features are:

  1. Explain plan command
  2. Planner testing tool

query plan is an ordered set of steps used to access or modify information in a SQL relational database management system (see http://en.wikipedia.org/wiki/Query_plan).  Understanding query plans is important because the first plan chosen to execute will directly affect the query execution

VoltDB’s End of Summer Engineering Update

Tuesday, August 28, 2012 - 12:00am

written by John Piekos on August 28, 2012

It’s been a busy summer here at VoltDB! Since spring the VoltDB Engineering team has released VoltDB four times (we’re operating on 3 week sprints) and delivered numerous product and performance enhancements.

Some of the major features we’ve recently released include:

  • Pause-less rejoin of failed nodes. Failed nodes can now be rejoined to the k-safe cluster without significant impact to the operational throughput of the cluster. This feature is available in the Enterprise edition of VoltDB.

What’s the plan?

Tuesday, May 7, 2013 - 12:00am

written by Ruth Morgenstein on May 7, 2013

“Why is this so slow?” Have you put your application into testing (you did this before going to production, right?) and wondered why you’re not getting VoltDB’s world-class performance? The problem might be with the SQL execution plan.

This article shows you how to look at the SQL execution plans and use the information to tune your application.

Getting the plans at compile time

In VoltDB, you can get execution plan information when you compile your stored procedures or later, when the database is up and running. When you build the application