Your SlideShare is downloading. ×
0
Cassandra Ippevent 20 Juin 2013
Cassandra Ippevent 20 Juin 2013
Cassandra Ippevent 20 Juin 2013
Cassandra Ippevent 20 Juin 2013
Cassandra Ippevent 20 Juin 2013
Cassandra Ippevent 20 Juin 2013
Cassandra Ippevent 20 Juin 2013
Cassandra Ippevent 20 Juin 2013
Cassandra Ippevent 20 Juin 2013
Cassandra Ippevent 20 Juin 2013
Cassandra Ippevent 20 Juin 2013
Cassandra Ippevent 20 Juin 2013
Cassandra Ippevent 20 Juin 2013
Cassandra Ippevent 20 Juin 2013
Cassandra Ippevent 20 Juin 2013
Cassandra Ippevent 20 Juin 2013
Cassandra Ippevent 20 Juin 2013
Cassandra Ippevent 20 Juin 2013
Cassandra Ippevent 20 Juin 2013
Cassandra Ippevent 20 Juin 2013
Cassandra Ippevent 20 Juin 2013
Cassandra Ippevent 20 Juin 2013
Cassandra Ippevent 20 Juin 2013
Cassandra Ippevent 20 Juin 2013
Cassandra Ippevent 20 Juin 2013
Cassandra Ippevent 20 Juin 2013
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Cassandra Ippevent 20 Juin 2013

300

Published on

Slides de la présentation "Cassandra Java Driver" à l'Ippevent du 20 juin 2013 …

Slides de la présentation "Cassandra Java Driver" à l'Ippevent du 20 juin 2013
http://blog.ippon.fr/2013/06/03/ippevent-utiliser-les-nouvelles-apis-cassandra-le-2-juin-2013/

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
300
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
29
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.frCASSANDRA-JAVA-DRIVERVers Cassandra 1.2 et au delà
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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 ...
  • 10. 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
  • 11. www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.frAGILITECQL 3 - Performances
  • 12. www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.frAGILITECQL 3 - PerformancesAttention : performance des SELECT * 
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. 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)
  • 17. 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
  • 18. 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
  • 19. 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

×