Cassandra Java Driver : vers Cassandra 1.2 et au-delà
Upcoming SlideShare
Loading in...5
×
 

Cassandra Java Driver : vers Cassandra 1.2 et au-delà

on

  • 1,429 views

 

Statistics

Views

Total Views
1,429
Views on SlideShare
1,036
Embed Views
393

Actions

Likes
1
Downloads
7
Comments
0

13 Embeds 393

http://blog.ippon.fr 231
http://cloud.feedly.com 60
http://feeds.feedburner.com 51
http://www.newsblur.com 19
http://www.feedly.com 18
http://reader.nunux.org 3
http://localhost 2
http://www.feedspot.com 2
http://feedly.com 2
http://127.0.0.1 2
http://www.nexxea.com 1
http://digg.com 1
http://leed.burgaud.name 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Cassandra Java Driver : vers Cassandra 1.2 et au-delà Cassandra Java Driver : vers Cassandra 1.2 et au-delà Presentation Transcript

  • www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.frCASSANDRA-JAVA-DRIVERVers Cassandra 1.2 et au delà
  • www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.frSommaireCassandraCQL 3Binary ProtocolJava DriverModes de RequêtageMétriquesPolicies
  • www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.frAGILITECASSANDRABase de données NoSQL orientée colonneExtrêmement rapidePas de SPOFÉcrite en Java...2008Facebook20131.22009 2010 2011 20121.11.00.8Apachetop level 0.8Apacheincubator
  • www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.frCASSANDRA JAVA DRIVERDATASTAX CASSANDRA JAVA DRIVERCQL 3 + CQL Binary ProtocolVersion 1.0.0Release Mai 2013Compatible avec Cassandra 1.2+Apache License Version 2.0Développé par les équipes de Datastax
  • www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.frAGILITECQL 3 - CQLCQL : C  assandra Query LanguageCQL 3 ~  = SQLMême syntaxe sans agrégation (JOIN, GROUP BY, …)Changement de philosophie avec CQL 3 :   → Nécessite un schéma ! CREATE TABLE Users (KEY text PRIMARY KEY, NAME text)INSERT INTO Users(KEY, NAME) VALUES (1,Buzz) SELECT * FROM UsersUPDATE Users SET NAME=Woody WHERE KEY=1ALTER TABLE Users ADD AGE text
  • www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.frAGILITECQL 3 - SCHEMAippon@ippon:~$ cqlsh -2 -k ippevent[cqlsh 3.0.2 | Cassandra 0.0.0 | CQL spec 2.0.0 | Thrift protocol 19.36.0]cqlsh:ippevent> CREATE TABLE person (KEY text PRIMARY KEY, NAME text);cqlsh:ippevent> INSERT INTO person(KEY, NAME, AGE) VALUES (1,buzz,30);cqlsh:ippevent> SELECT * FROM person;KEY | AGE | NAME-----+-----+------1 | 30 | buzzippon@ippon:~$ cqlsh -3 -k ippevent[cqlsh 3.0.2 | Cassandra 1.2.5 | CQL spec 3.0.0 | Thrift protocol 19.36.0]cqlsh:ippevent> CREATE TABLE person (KEY text PRIMARY KEY, NAME text);cqlsh:ippevent> INSERT INTO person(KEY, NAME, AGE) VALUES (1,buzz,30);Bad Request: Unknown identifier ageCLQ 2CLQ 3
  • www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.frAGILITECQL 3 - UPSERTCependant lUPSERT reste possiblecqlsh:ippevent> SELECT * FROM Mutations;cqlsh:ippevent> UPDATE Mutations SET A=value from UPDATEWHERE KEY=1;cqlsh:ippevent> SELECT * FROM Mutations;key | a | b-----+-------------------+------1 | value from UPDATE | nullcqlsh:ippevent> INSERT INTO Mutations(KEY,B)VALUES(1,value from INSERT);cqlsh:ippevent> SELECT * FROM Mutations;key | a | b-----+-------------------+-------------------1 | value from UPDATE | value from INSERT
  • www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.frCQL 3 – Super ColumnAbandon des Super ColumnsColonne dont la valeur est des colonnes→ Préférer désormais lutilisation declustering keysbuzz AGE ADRESSE32 NUMERO RUE VILLE90 Baudin Levallois
  • www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.frCQL 3 – Modélisation (Wide Rows)Wide RowsCassandra peut stocker plus de 2M de colonnes parclef.Exemple : → Comment faire avec CQL 3 ? buzz 133829 133950 134022 142109Star command...Vers linfini Où est Zurg ? Spacecommand ...woody 133983 134802Jai unserpent ...Qui aempoisonné ...KEY COLUMNS ...
  • www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.frCQL 3 – Modélisation (Wide Rows)buzz 133829-dialog 133950-dialog 134022-dialog 142109-dialogStar command ... Vers linfini Où est Zurg ? Space command ...woody 133983-dialog 134802-dialogJai un serpent ... Qui a empoisonné ...CREATE TABLE DIALOG (username VARCHAR,said_at TIMESTAMP,dialog VARCHAR,PRIMARY KEY (username, said_at))username said_at dialogbuzz 133829 Star command ...buzz 133950 Vers linfini ......woody 133983 Jai un serpent ......Représentation LogiqueReprésentation PhysiquePartition key Clustering key
  • www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.frAGILITECQL 3 - Performances
  • www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.frAGILITECQL 3 - PerformancesAttention : performance des SELECT * 
  • www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.frAGILITECQL Binary ProtocolCQL Binary Protocol remplaçant de ThriftThrift : rapide et multi-language Pourquoi changer ? RPC seulement. CQL Binary Protocol ouvre la porte austreaming (curseurs), aux notificationstechniques, …Mais Thrift reste maintenu
  • www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.frAGILITECQL Binary ProtocolNouveau port (9042 par défaut)Actif par défaut Cassandra 1.2.5+Peut cohabiter avec linterface Thrift$CASSANDRA_HOME/conf/cassandra.yaml# Whether to start the native transport server.# Please note that the address on which the native transport is bound is the# same as the rpc_address. The port however is different and specified below.start_native_transport: true# port for the CQL native transport to listen for clients onnative_transport_port: 9042# Whether to start the thrift rpc server.start_rpc: true# port for Thrift to listen for clients onrpc_port: 9160
  • www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.frAGILITEJava DriverJava DriverFonctionnalitésQueryQuery BuilderPrepared StatementsExécution asynchroneMétriquesPolitiques
  • www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.frAGILITEJava Driver - QueryBuilderQueryBuilder : Construction de requêtes typéesFluent APIOpérations supportéesSELECTUPDATEINSERTDELETEBATCHPas encore d’opérations de DDL (prévu en 1.1.0)
  • www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.frJava Driver – PoliciesReconnectionPolicyConstantReconnectionPolicy // ré-éssai à intervall régulierExponentialReconnectionPolicyLoadBalancingPolicyDCAwareRoundRobinPolicy // load balance au sein dun DCRoundRobinPolicyTokenAwarePolicy // load balance sur les nœuds qui ont la dataRetryPolicyDowngradingConsistencyPolicyLoggingRetryPolicy
  • www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.frAGILITECONCLUSIONJava Driver utilise un nouveau socle tourné vers lesfutures releases de CassandraCQL 3Adoption par utilisateurs SQL facilitéeReprésentation logique de stockages spécifiquesCQL Binary ProtocolTaillé pour la forte volumétriePermettra daccueillir de nouvelles fonctionnalités (ex : curseurs)1ère implémentation de ces 2 soclesAPI très agréable à utiliserTrès configurable/extensible
  • www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.frLiensC* Summit 2013 : http://planetcassandra.org/Learn/CassandraSummitNYC* 2013 - New Cassandra Drivers in Depth«   »Michael FiguièreDocumentation : http://www.datastax.com/doc-source/developer/java-driver/Benchshttps://github.com/brianfrankcooper/YCSBhttps://github.com/vberetti/YCSB