cql, then and now

14
NOW’ Cassandra London Feb, 20 th 2012 Courtney Robinson [email protected] @zcourts http://crlog.info github.com/ zcourts

Upload: courtney-robinson

Post on 28-Jun-2015

1.119 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: CQL, then and now

CQL, ‘THEN AND NOW’

Cassandra London Feb, 20th 2012

Courtney [email protected]

@zcourtshttp://crlog.infogithub.com/zcourts

Page 2: CQL, then and now

IN THE BEGINNING ...horrible thrift code here

Page 3: CQL, then and now

AND THEN THERE WAS... ...better looking hector code here

Page 4: CQL, then and now

NOT QUITE ...slightly better (my hector wrapper)

Still not excellent, but better (I think) Remember, not all languages have clients as good as

hector. Usability varied* vastly between the supported

languages So much so I chose Play! Framework over PHP for a

small admin front end.

Page 5: CQL, then and now

YAY! CQL TO SAVE THE DAY!

...because not everyone has an Ops team to torture.

Upgrading wasn’t such a pain, little or no code breaking

CQL offered stability (ish)...

Page 6: CQL, then and now

BRIEF INTRO – WHAT IS IT? Simple, structured query language for Cassandra

Very much SQL (except where it can’t be)

Alternative to the Thrift RPC API.

Available since Cassandra version 0.8.0

In keeping with Eric Evan’s attempts, just pronounce it ‘siːkwəl’

Isn’t much* to say about CQL, its does what it says on the tin

Page 7: CQL, then and now

CONTROVERSY, POLITICS AND OUT RIGHT BI***ING

Always been an outspoken(some more than others)

few against it

Never been much in the way of facts to backup their claims such as:

SQL like syntax is a very idiomatic RDMS thing.

Parsing a string will be slow, just because its parsing a string and for no other reason

The aforementioned will make Cassandra ‘as vulnerable’ to injection

...etc (all speculation mind you)

Page 8: CQL, then and now

SO WHAT, CAN I USE THIS THING?

CQL is very much production ready.

If anyone tells you otherwise, ask them to prove its not before you decide.

My tiny 5 Node cluster is nothing to boast about, but it handles a good 150+ GB of data a day

Every* query is done with CQL

Except on a single CF which uses super columns.

CQL does not and most likely will not ever support super columns.

Compound column (CASSANDRA-2474 monster ticket) resolved (ish).

Page 9: CQL, then and now

CQL V1.0.0 - DEBUT KEYWORDS

USE SELECT UPDATE DELETE TRUNCATE DROP BATCH

CREATE KEYSPACE CREATE COLUMNFAMILY CREATE INDEX

SPECIAL STATEMENTS

That’s right!No INSERT...?

10 total

Page 10: CQL, then and now

TIME TELLS NO LIES, CQL V2 ALTER COLUMNFAMILY BATCH CREATE INDEX CREATE KEYSPACE CREATE COLUMNFAMILY CREATE TABLE (CASSANDRA-2743) DELETE DROP COLUMNFAMILY DROP INDEX DROP KEYSPACE INSERT SELECT TRUNCATE UPDATE USE

15 total

Create table is nothing more than an alias to create columnfamily

Rational: ‘create an alias to be friendlier to

existing tools’

Page 11: CQL, then and now

CQL V3, AKA CASSANDRA-3761

About 13 sub-tickets

Most unresolved

It’d be unwise to list features

Any of these could be dropped/altered before V3 is finalized (C* V1.1.1 is the roadmap release for V3)

Backwards incompatibility (hence major version jump)

Not the little project it used to be, would take all night to cover each feature with enough details

Page 12: CQL, then and now

TERMINOLOGY WAR... CQL’s changing fast (maybe too fast?)

Terminology looks to be changing

Creating over lap in some places

May become, or already is confusing

Not sure those in charge are seeing it

At a stage where its probably as confusing as other, more complicated C* features

Progress is great, but so is usability & simplicity...

Page 13: CQL, then and now