Posts in VoltDB Products 

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

 

Intro to VoltDB Command Logging

VoltDB’s new command logging feature reduces the window of data loss during a cluster wide failure from single digit minutes (the window between snapshots) to zero. Command logging can be tuned to give you the same amazing latency and throughput you get from VoltDB, even on a single 7.2k SATA disk. Our unique approach to log based durability exploits the determinism and replication inherent in VoltDB’s architecture to avoid the overhead and latency of ARIES style logging.<--break->

How We Log

A command log is kept at every node and contains partially ordered stored procedure invocations. As stored procedure invocations arrive … Read more

 

VoltDB’s New Command Logging Feature

We, at VoltDB, are excited to tell you about the command logging feature that we’ve been working on this summer. We’ve built this feature because our customers asked for it, and they’ve given us some great feedback on how it should work. Here’s a heads up to get you thinking about how you can make use of this new functionality.

So what’s command logging and why are we so excited about it? First, let me remind you of VoltDB’s snapshot functionality. A database snapshot is exactly what it sounds like — a point-in-time copy of the database contents written to … 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 Unleashed: Post Webinar Wrap-up and VoltDB Studio Introduction

I thought I’d take a quick opportunity to review some of the key highlights form the .NET Webinar, giving out some of the nicer code snippets, and officially introduce our new development tool: VoltDB Studio.<--break->

VoltDB.NET in a nutshell

The .NET/C# client library for VoltDB is extremely flexible and allows you to develop WinForms, Console and Web applications and services much as you would do leveraging any other back-end data service or database.

  • Connect with a customized connectionstring in your app/web.config.
  • Perform Synchronous or Asynchronous data operations using standard .NET design patterns.
  • Consume and filter data results using LINQ.
  • Leverage
  • Read more

 

VoltDB Export – Connecting VoltDB to Other Systems

VoltDB is an in-memory database that excels at handling massive volumes of read and write operations in real-time.

However, performing high throughput database operations is often only one aspect of the larger business context where data needs to transition from system to system as part of an overall infrastructure. VoltDB provides powerful interoperability features that allow you to select, enrich and distribute data to downstream file systems and databases.

The target for exporting data from VoltDB may be another database, a repository (such as a sequential log file), or a process (such as a system monitor or accounting system). No … Read more

 

Upgrading to VoltDB V1.3

VoltDB V1.3 contains a number of new features, as well as changes and enhancements to existing features. In some cases, these enhancements involve changes to the behavior or the interface that existing users need to be aware of. The purpose of this article is to identify compatibility issues when upgrading from version 1.2 to 1.3 of VoltDB and explain how to plan accordingly.

Summary of New Features

Version 1.3 introduces several important new features and improvements to the VoltDB product, including:

  • Admin Mode — Admin mode allows operators to “pause” a database, stopping client activity, while sensitive administrative tasks are

Read more

 

VoltDB.NET: Synchronous vs. Asynchronous Request Processing

Deciding whether to handle your workload as a sequential set of synchronous operations or an asynchronous batch isn’t just a .NET topic, but a larger design decision with any VoltDB application. This week we review the pros and cons of each choice in a general context and then as it pertains specifically to your .NET implementations.

By now, you probably have a good idea of how VoltDB works: each partition is its own processing engine, and while, within a partition, work is performed sequentially, each partition is essentially autonomous so that all perform work in parallel.

As we discuss below, … 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

 

Introducing VoltDB.NET: C# Library for Your VoltDB Applications

I’m happy to introduce our first .NET C# library for VoltDB, which is available for download (full source with samples & documentation) at: https://github.com/VoltDB/voltdb-client-csharp (Latest build-only with documentation from the downloads page).

Today I would like to go over the basics of how you can leverage the library to create a basic client application to connect to your VoltDB server…

There will be more posts in the future, on general best practices, optimized asynchronous application designs or detailed looks at specific features – here I will simply go over the basics to wet your appetite and get you started!

Basic Read more