Performance

Posts Tagged ‘Performance’

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

 

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
 

VoltDB Community Users Share Knowledge

VoltDB adoption and deployments are accelerating.  We’re working hard make our products easy to use in both cloud and privately-racked infrastructures.  We see strong adoption in five application categories – capital markets (mostly around trading systems), digital advertising, online games, network monitoring, and intelligence/surveillance (national security, fraud mitigation, etc.).

With product evaluations on the rise, organizations are increasingly asking about user experiences, particularly for deployed VoltDB applications.  There are some strong user and partner endorsements on our website.  What’s also interesting is that VoltDB community users are now discussing implementation patterns and deployment experiences on blogs and public developer … Read more

 

Using Node.js with VoltDB

We recently released the first supported version of a VoltDB client driver for Node.js applications. It was able to execute over 695K transactions per second. Since then we have been working on building a better driver and sought out help from the Node community and made a series of improvements.

Today I’m going to write about how to access VoltDB from a Node application. A sample application is included with the driver, the latest version of which can be downloaded from http://www.voltdb.com/tao-volt/downloads-home.php.

The integration process is short and straightforward. All VoltDB applications have a set of stored procedures that are … Read more

 

Announcing VoltDB Version 2.5

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.  Available in the VoltDB Enterprise Edition, Database Replication ensures that every database transaction applied to a VoltDB database is
  • 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

 

VoltDB.NET: Optimizing your Connection Settings

The .NET connection object comes with a host of settings to help you control access to your VoltDB database and optimize performance. In this quick review, we detail each available option, as well as how to use a connection string for portable deployment of your application between environments.

While there is no specific “Provider” support in .NET for VoltDB, the connection settings have been built following the standard DbConnectionStringBuilder support, allowing you to manage a connection to a VoltDB cluster just the same way you would manage connection to ODBC or standard databases.

Most importantly, you have the ability to

Read more

 

Is VOLTDB Really as Scalable as they Claim?

Baron Schwartz from Percona has published an analysis of VoltDB’s scaling performance on the MySQL Performance Blog. He has worked with our own Tim Callaghan to apply a mathematical model to the Scalability of VoltDB. The conclusion:

VoltDB is very scalable; it should scale to 120 partitions, 39 servers, and 1.6 million complex transactions per second at over 300 CPU cores…

and

…scaling a synchronously replicated, active-active master, fully ACID, always-consistent database to a 40-server cluster is impressive.

A few notes:

As Baron says, these benchmarks were based on our “Voter” example. We ship this example with our distribution Read more

 

Why is VoltDB So Fast?

First and foremost, VoltDB is focused on specific workloads. Most existing RDBMSs are designed to be general purpose, one-size-fits-all systems. Recently, there have been a lot of new databases introduced that achieve better performance by specializing in areas like analytics, graphs or streaming data. Few of these specialized systems focus OLTP, and when they do, it’s often more about tuning, rather then a rethink. VoltDB was designed to be the most scalable transaction processing system out there, often making compromises unsuitable for other workloads. For non-OLTP workloads, VoltDB is built to work in concert with other specialized systems. We … Read more