Casbase presentation

Embed Size (px)

Citation preview

Keyboard

CasBase

Edward Capriolo

What is it?

Do it yourself secondary indexes

Elevator pitch... tabular get Cassandr'ified

Pet project (not production ready...yet)

Semi quixotic quest to make c* work like RDBMS

MySQL vs Cassandra

Row Oriented

Fixed columns

Normalized

Strict schema

Column Family

Ragged Columns

De-normalized *

Schema less *

Q.

Because Cassandra is NoSQL store what is the first step in using it?

A.

Strap relational database
features and frameworks on top until it works like a relational database!*

* Just Kidding / No Seriously

Obligatory Cassandra slides

Obligatory Data Model Slide

Obligatory physical data model

Obligatory Distribution Model

Free with Cassandra data model

Cassandra has three levels of index

Row Key locates server(s) with data

SSTable Sorted by row key

Inside row columns are sorted by nameDifferent sorts are available

Writes do not have to read

CasBase motivation

Psuedo code on how CasBase would like to work

Define a table and indexesnew Table(mystuff).addColumn(a,string).addIndex(aidx,[a]).create();

Insert data client.insert(mystuff, ed, { a=5,b=6 } );

Ask questions List a=client.find(mystuff, a, 5);

Things missing

Primary key enforcement

Unique index enforcement

Indexes of column names i.e. rows with column.name=username (ldap presence) *

Index on value i.e. username ='bob' age>4 age 'rover' AND dogs Ugly ByteBuffer for Cassandra

AnyType.instance.decomposeAny(BB) -> ByteBuffer back to Any

CasBase currently

On github, compiles, all tests pass :)

Pet project but great concrete implementation of index building, composite columns

Now'ish: Efficient map reduce

Future: locking w zookeeper/cages

Far Future: Query engine (right now API only)

Hack at it!

Http://github.com/edwardcapriolo/casbase

http://github.com/edwardcapriolo/Cassandra-AnyType

???????????Questions???????????

Click to edit the title text format