Posts in Blog 

Programming VoltDB – Easy, Flexible and Ultra-fast!

You may believe that the only way to interact with VoltDB is through Java stored procedures.  To achieve maximum throughput, VoltDB stored procedures is the way to go.  You can achieve upwards of 100,000 transactions per second on a single node.  However, you can also achieve significant throughput by interacting with VoltDB conversationally, through ad hoc SQL statements, avoiding the need to pre-compile stored procedures.

This blog will discuss several approaches to interacting with VoltDB programmatically and cover the performance, in terms of transaction throughput, that you should expect with each approach.

Ad Hoc Query

To VoltDB, an ad hoc Read more

 

Recap of VoltDB for SQL Devs Webinar

We had a great turnout for the VoltDB for SQL Developers webinar on July 19th. The audience was engaged and asked many good questions.  We had attendees from all over the US, Canada and Germany.  I’d like to thank all those who attended and asked questions, and those who have contacted us since then with additional questions and feedback.

There were several questions in particular about partitioning and working with stored procedures, which hit upon what I think are the two most important concepts.

Partitioning enables scalability and throughput, by distributing both data storage and transaction processing across the hardware … Read more

 

686K TPS with Spring Framework Web App and VoltDB

We’ve recently put up a series of blog posts describing the components of a Spring-MVC web application, including VoltDB as the database, that saves votes being called in for talent show contestants. Today I’ll talk about what happened when we benchmarked the Voter application on Amazon’s cloud platform.  The short story – running on a suitable EC2 configuration (see details below), we achieved 686,000 TPS for a Spring-enabled application using VoltDB.

The Benchmark Application

I’ll start by summarizing the aforementioned blog posts, but you are welcome to read them:

Using the Spring @Schedule Annotation, Using the Spring Converter API Read more

 

Q&A from My Talk at the Hamburg Javascript Meet-up

On June 18 I gave a talk to the Javascript meet-up group in Hamburg, Germany.  It was a very enjoyable evening.   I’d like to thank Martin Kleppe for organizing the event, and the meet-up group members for investing an evening to learn more about Node.js and VoltDB.

The group asked some interesting questions during the Q&A part of my talk and in the additional discussions afterward.  Below are some of the questions I remember, along with written responses.

Read more

Q: What are the primary differences between VoltDB Community Edition (open source license) and Enterprise Edition (commercial license)?
A: Aside from
 

Building A High Throughput Web App with Spring-MVC and VoltDB

My last few posts have discussed parts of a web application that integrate VoltDB into a Spring web application. Today I will show how all the pieces are put together to build a low latency, high throughput Spring-MVC application. Much of my focus will be on the data layer where VoltDB resides, but I will go all the way up to the browser too.

Spring LogoThe application is simple. It has two main parts. The first is a scheduled process that casts votes into VoltDB. Those votes simulate people calling in and voting for their favorite contestant in a talent show. … Read more

 

Using the Spring Converter API with VoltDB Data Objects

Mapping one type to another is a pretty common task. Hibernate and other ORM’s map a result from a data source’s native representation to an application specific representation. In English, I want to convert a JDBC result set, or data objects, into a collection of POJOs (plain old Java objects) using some kind of data mapping tool or API. Spring exposes a low level service provider interface that makes it very easy to convert one data type to another with either built-in converters or customer converters, allowing a developer to support just about any conversion one can think of. Today … Read more

 

The Big Data Value Continuum – Part 2

This is the second post in a two-part series entitled The Big Data Value ContinuumYou can find Part 1 here.

Recall that in the world of Big Data, our fundamental assumption is that data no longer resides in a static database for its entire life.  Big data demands that we squeak out the most value from the data that we have at every stage of its lifecycle.  And, oh yeah, we’re collecting way more today than we did yesterday, so get ready for that challenge, too.

Part 2: Putting the Pieces Together

Let’s build on the concepts we … Read more

 

To Flash or Not to Flash: That is the Question

I am often asked about the value of flash memory in OLTP database applications.  This blog post discusses flash technology in this context.  First, I discuss the future of flash in general; then I turn to flash (and other future storage technologies) in the context of a main memory DBMS, such as VoltDB.

The Future of Flash

Flash memory is clearly a “moving window”, since its price and performance are changing quickly.  Historically, flash could only be written a few thousand times, before it would “wear out” and have to be replaced.  This drawback seems to have been eliminated … Read more

 

Using the Spring @Schedule Annotation

In a previous life I had a requirement that a web application scanned the expiration date of purchased content and sent one of three emails letting the user know that the item would expire soon, was going to expire very soon and that the item has expired. It fired up at early in the morning when the server had the lowest utilization. Later, I had to write a similar feature that would run every couple of minutes. It wasn’t terribly hard to implement the logic, but the scheduler was an external component that required much more work to configure than … Read more

 

Great Evening with the TriangleJS Meet-up Group

Last night I gave a talk and had an engaging conversation with the TriangleJS meet-up group in Raleigh, NC.  I’d like to thank my hosts at WebAssign for providing such a nice facility, Lucas Myers for managing the logistics of the meet-up and, most of all, the group members who invested an evening to learn more about VoltDB.

Although my talk was somewhat geared toward recent work we’ve done with Node.js, the follow-on discussion covered a wide range of technical topics ranging from database partitioning, single- and multi-part queries, query routing, site execution and database high availability.  It was interesting … Read more