21. AWS RE:Boot 2014. 218
Cassandra nodes rebooted.
22 nodes didn’t come back
and got replaced. Zero
Netflix downtime.
Christos Kalantzis
Director of Engineering
“
”
31. [I]t seems like HBase is very
buggy where 50% of sampled
failures are catastrophic, and
Cassandra is well engineered.
“
”Murat Demirbas
SUNY Buffalo
45. Role-based Authorization
CREATE ROLE accounting;
GRANT all ON invoices TO accounting;
GRANT select ON expenses TO accounting;
GRANT select ON payroll TO accounting;
GRANT accounting TO josie;
GRANT accounting TO jay;
46. User-defined Functions (UDF)
CREATE FUNCTION my_sin (input double)
RETURNS double LANGUAGE java
AS ’
return input == null
? null
: Double.valueOf(Math.sin(input.doubleValue()));
’;
SELECT key, my_sin(value) FROM my_table WHERE key IN (1, 2, 3);
47. UDF Aggregation
CREATE AGGREGATE avg (int)
SFUNC avgState
STYPE tuple<long, int>
FINALFUNC avgFinal;
CREATE FUNCTION avgState (state frozen<tuple<bigint, int>>, i int)
RETURNS frozen<tuple<bigint, int>>, int
LANGUAGE JAVA AS ’
// (state[0] + i, state[1] + 1)
state.setLong(0, state.getLong(0) + i.intValue());
state.setInt(1, state.getInt(1) + 1);
return state;
’;
CREATE FUNCTION avgFinal (state frozen<tuple<bigint, int>>)
RETURNS double
LANGUAGE JAVA AS ’
double r = state.getLong(0) / state.getInt(1);
return Double.valueOf(r);
’;
60. Materialized Views
CREATE TABLE songs (
id uuid PRIMARY KEY,
title text,
album text,
artist text
);
CREATE MATERIALIZED VIEW songs_by_album AS
SELECT * FROM songs
WHERE album IS NOT NULL
PRIMARY KEY (album, id);
SELECT * FROM songs_by_album
WHERE album = ‘Tres Hombres’;
61. Indexes
CREATE TABLE songs (
id uuid PRIMARY KEY,
title text,
album text,
artist text
);
CREATE INDEX songs_by_album on songs(album);
SELECT * FROM songs
WHERE album = ‘Tres Hombres’;
62. Local Indexes
client
title artist album
La
Grange
ZZ Top
Tres
Hombre
s
title artist album
Outside...
Back Door
Slam
Roll Away
title artist album
Waitin... ZZ Top
Tres
Hombres