Author Archive

Posts by Ryan Betts 

VoltDB client for the Go Language

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 http://www.voltdb.com/community/downloads.php). The go driver, however, has not been tested for production use.

With caveats complete, what’s up with voltdbgo?

Firstly, it only supports synchronous clients. VoltDB 3.0 has greatly improved response latency for synchronous interactions and the … Read more

 

Thoughts on NoSQL Now! 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 … Read more

 

Optimizing Distributed Read Operations in VoltDB

Many VoltDB applications, such as gaming leader boards and real-time analytics, use multi-partition procedures to compute consistent global aggregates (and other interesting statistics).  It’s challenging to efficiently process distributed reads operations, especially for performance sensitive applications.  Based on feedback from our users, we in VoltDB engineering have been enhancing the VoltDB SQL planner over the last few releases to improve this capability.

Executing global aggregates efficiently requires calculating sub-results at each partition replica and combining the sub-results at a coordinating partition to produce the final result.  For example, to calculate a total sum, the VoltDB planner should produce a sub-total … Read more

 

Understanding VoltDB Data Partitioning

I’ve talked to hundreds of people about VoltDB over the past year. Data partitioning and its consequences are almost always the hardest parts to explain.

VoltDB is a clustered database. Each node of the cluster contains a subset of the data in the database. People seem to understand this quickly. However, explaining how data is distributed, how and when it can be accessed efficiently, and what operations are supported within and across data partitions is harder to describe succinctly. So I thought it might be helpful to explain partitioning in a blog post.

Here’s my current approach. Feedback welcome!

Start Read more

 

Berlin Bettswords

Getting away from the line-by-line details of code is necessary – the big picture matters. Getting away to Berlin, Germany, is a treat.  I’ve spent most of a week at the Berlin Buzzwords Conference http://berlinbuzzwords.de listening and talking about data management.  It’s hard not to feel spoiled.  Kudos to the event organizers; they created a nice environment for like-minded technologists to gather, interact and learn.

Below are a few brief insights and comments from the conference.

Web stacks.  Websites are linked by dynamic services – not simple URLs.  Sites integrate twitter, facebook, distributed authentication, gravatar, google analytics, URL shortners, advertising … Read more

 

What? VoltDB Stored Procedures?

VoltDB is a relational store that uses SQL for its query language and stored procedures for its transactional unit of work. Clients invoke stored procedures to access the database. Stored procedures access data using parametrized SQL statements and can manipulate intermediate results in Java. Each stored procedure invocation is a transaction. A procedure’s data manipulations are atomic and isolated from other concurrently executing procedures.

Here’s a simple example, excerpted from the Voter sample application shipped with the VoltDB distribution kit. The application is meant to support a voting use case in which viewers of a TV show like “American Idol” … Read more