Author Archive

Home » Articles posted by Ariel Weisberg

Cost accounting for SSDs – it’s RAM, not disk

Most discussions I have seen about choosing SSDs vs. spinning disk arrays for databases tend to focus on SSDs as a replacement for disk. SSDs don’t replace disk; they replace the RAM you would be using to cache enough disk pages to make up for the terrible random IO performance of spinning disk arrays.… Read more


Impact of Java Garbage Collection on in-memory databases

Some users of Java, and specifically Java as it is used in in-memory database technology, worry Java’s ‘Garbage Collection’ can impact performance. Garbage Collection is intended to simplify memory management (allocation and de-allocation) and therefore reduce the amount of code written, speed development, and avoid memory management bugs.… Read more


VoltDB, native memory, and you

(Originally published here.)

Target audience

This post targets other VoltDB developers who are going to be dealing with the various unconventional ways Volt now uses native memory in the Java portions of the database.… Read more


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


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



Living the Asynchronous LifeStyle, or how I Learned to Stop Threading and Love the Non-Blocking Call [back]

A 1:1 mapping between software threads and hardware threads is a core part of VoltDB’s approach to performance and also turns out to be the core of the asynchronous lifestyle. By multi-plexing work through a pool of threads appropriately sized for your hardware, you can obtain the maximum parallelism that your hardware can provide and efficiently process many discrete tasks (although parallelism != performance).… Read more