If you can't read please download the document
Upload
edward-capriolo
View
1.282
Download
0
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