Author Archive

Posts by Ning Shi 

VoltDB Command Logging Replay

In the previous blog post (http://newblog.voltdb.com/intro-voltdb-command-logging), Ariel Weisberg described how VoltDB’s command logging feature works. He also briefly mentioned how we replay command logs during the recovery process. In this post, I am going to focus on the replay process and discuss how VoltDB recovers from catastrophic events.<--break->

Goals of Command Logging Replay

The goals of command logging replay are pretty simple:

  1. Ensure that the recovered database is 100% accurate to the last usable transaction in the command log
  2. Complete the recovery process in the shortest possible time

Command logging obviously adds important new functionality to VoltDB’s infrastructure.  … 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. After looking at the stack traces of the VoltDB instances on the servers, it looked like the threads were waiting for the same lock which nothing seemed to own. This caused the whole system to deadlock.

After creating a small program which could successfully reproduce this problem without VoltDB, we were determined that this was a … Read more

 
Tags: