CHOOSE YOUR CATEGORY:

Scaling: 700,000 Simultaneous Connections to VoltDB

One of the original design goals for VoltDB was to support large numbers of connections per server. This kind of came for free with Volt’s event based design. The event based design was driven by a desire to keep the number of active software threads 1:1 with available hardware threads and this basically proscribed any kind of thread per client network IO implementation.… Read more

 

What’s the plan? (continued)

In May I wrote ‘What’s the plan?’ showing how to look at your SQL plans. We’ve now made it even simpler using our new, browsable Catalog Report.

The Catalog Report is generated when you compile the catalog.… Read more

 

What’s the plan?

“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.… Read more

 

JSON in VoltDB

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.… Read more

 

Scaling with VoltDB: The Clustered Database

This is part 2 (of 2) of my Programming VoltDB – Easy, Flexible and Ultra-fast series. Blog post, part 1, showed how to build a VoltDB application using ad hoc queries and achieving thousands of transactions a second.… Read more

 

Simplify Your Stored Procedure Logic with Expectations

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.… Read more

 

Upserts in VoltDB

Upserts in VoltDB

The idea behind an upsert is that you try an update or an insert query first and if it fails, you then do the other query.
Why do an upsert?… 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.  … Read more

 

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.… 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.… 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.… 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.… 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.… Read more

 

OLTP and Decision Support

The purpose of this blog posting is to discuss strategies for handling decision support queries in Online Transaction Processing (OLTP) applications.  First, I want to talk about the two classes of OLTP applications that I see in the marketplace.… Read more

 

Integrating VoltDB with the Spring Framework

I’ve been writing Spring applications for a few years now and I’ve always been struck by the framework’s flexibility. A developer can write a web application in several distinct ways there is no discernible difference from an end user’s perspective.  … Read more

 

Q&A from March 21 Webinar

Last week I gave a webinar entitled OldSQL vs. NoSQL vs. NewSQL for New OLTP.  If you missed the live webinar and want to view the recorded version, you’ll find it here (you may need to scroll down to find it). … Read more

 

Use Main Memory for OLTP

This is the first in a series of blog posts in which I will explore various aspects of On-Line Transaction Processing (OLTP).   In this post, I’ll examine main memory storage as an alternative to disk for traditional and “New OLTP” systems.… 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.… 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. … 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.… 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.

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).… Read more

 

Visibility

“You cannot manage what you cannot measure”” - Peter Drucker

Most of us have heard this quote many times, though it’s probably more relevant to software development to say:

“You cannot manage what you do not measure”.Read more

 

Documenting Open Source Software

Someone asked what we use to produce the documentation for VoltDB. The simple answer is DocBook.

DocBook is an XML schema for structured documentation. Originally designed for UNIX-based hardware and software documentation, DocBook is generalized enough for most technical documentation purposes.… Read more

 

Building a Cluster on a Limited Budget

In April 2010 we built a “budget cluster” to facilitate additional VoltDB testing (we already had a 12-node Dell R710 cluster). The requirement was to build a complete 6 server VoltDB cluster for less than the cost of a single R710 (much less actually).… Read more

 

Java and Kernal Bugs

Java Concurrency Bug

This is the first bug we found in a system outside VoltDB. We used LinkedBlockingDeque in Java’s concurrent package to maintain concurrent access in VoltDB’s network subsystem. Once in a while, we noticed cluster lockups when the system was under pressure.… Read more

 
Tags: