Home

jacobgroundwater edited this page May 6, 2012 · 6 revisions
Clone this wiki locally

Welcome to HBase for Scala

This project currently has two pieces

  1. Global Transaction Protocol
  2. Scalaization
  3. Indexing

The global transaction protocol defines a way for coprocessors to commit atomic cross-row and cross-table transactions to HBase. The scalaization part defines a bunch of scala data types and implicit conversions to make working with HBase a more scala-like experience.

Goals

I don't want a complete implementation, there are a huge number of features I will never use nor care about. However, if someone wanted a complete implementation, I hope they can build off of this project. This will no doubt impact some of the decisions in designing the API.

I believe that the best decisions are made after lots of playing around, and experimentation. Thus that's what I want this project to enable users to do in HBase. The faster you can get your program working, the better.

I would like the project to be as asynchronous as possible. I don't know how to do this part, nor even where to start. This of course is mostly a performance concern, so implementing it can be delayed, but it's probably a good idea to start returning Future or Promise objects from the start, even if we don't do any asynchronous wiring until later.

Status

The Transaction protocol and Scala API are being developed. I haven't actually implemented anything, other than the implicit conversions (which can be harder than you think). What I would like to do is provide a foundation for the rapid creation and testing of an implementation, then hope some kind souls out there do the real work!