About Kelley Reynolds

The CTO of RubyScale, and an experienced software engineer. If Kelley isn't working on a project, you can probably find him hacking on a huge dataset, swimming a marathon, or spending time with his family and small menagerie.

The Cassandra Data Model – Another Gratuitous Introduction

I recently had a conversation in #cassandra about the Data Model that I thought might be useful to try to distill into a few lines. These few lines ignore all of the implementation details to make it work in practice but it gives you the starting point. It looks a little something like this …

Leave a comment Continue Reading →

Cassandra-cql ruby gem for Cassandra 1.0

Cassandra-cql has been updated for the latest version of cassandra. It supports all of the datatypes and has proper encoding support for ruby 1.9. It is also now published as a gem so a simple ‘gem install cassandra-cql’ should get you ready to roll with Ruby and Cassandra. The official location for the code is [...]

Leave a comment Continue Reading →

Cassandra-CQL, a Ruby CQL client for Cassandra

Cassandra Query Language (CQL) Cassandra originally went with a Thrift RPC-based API as a way to provide a common denominator that more idiomatic clients could build upon independently. However, this worked poorly in practice: raw Thrift is too low-level to use productively, and keeping pace with new API methods to support (for example) indexes in [...]

Leave a comment Continue Reading →

FFI Ruby Bindings for Phidget Library

While working with completely virtualized systems and architectures is fun, for me it’s never been quite as much fun as doing things in the Real World™. A few years ago I found Phidgets Inc. Phidgets are a set of “plug and play” building blocks for low cost USB sensing and control from your PC. From [...]

Leave a comment Continue Reading →

Basic Time Series with Cassandra

editors note: as of 7 Mar 2012, this info is still current and correct. One of the most common use cases for Cassandra is tracking time-series data. Server log files, usage, sensor data, SIP packets, stuff that changes over time. For the most part this is a straight forward process but given that Cassandra has [...]

3 Comments Continue Reading →

Beware the supercolumn, its a trap for the unwary!

Since most developers who have used databases are familiar with traditional RDBMS systems, I’ll explain Cassandra SuperColumns as succinctly as possible using some tables.

3 Comments Continue Reading →

Embedding arbitrary HTML into RaphaelJS

RaphaelJS is a fantastic vector library, but as it is a vector library, its not meant for general markup. Trying to include dynamic text wrapping or videos or any HTML really can be a pain and the only real method for doing that is to position a div in the right spot and account for [...]

Leave a comment Continue Reading →

Facebook and HBase versus Cassandra

I’m sure you were expecting another post with a brief topical analysis of why Facebook chose HBase instead of Cassandra with some similarly topical and mostly incorrect summary of how those two systems work and why one is better than the other one. Sorry to disappoint, but rather than pour more fuel on what is [...]

Leave a comment Continue Reading →

Cassandra Data Model from an SQL Perspective – Consistency Level and Replication Factor

If you read the last post, Understanding the Cassandra Data Model from a SQL Perspective, then you already have a decent handle on what a column-oriented key/value store is. The next thing that tends to confuse new users of Cassandra is the notion of Consistency Level and Replication Factor. This post doesn’t really have a [...]

1 Comment Continue Reading →

Understanding the Cassandra Data Model from a SQL Perspective

If you come from the SQL world, sometimes it can be difficult to understand the Cassandra Data Model and all that it implies in terms of management and scalability. For this post, we’re going to go backwards. Instead of writing an example application using Cassandra to understand it, I’ll describe implementing Cassandra on a traditional [...]

3 Comments Continue Reading →