SlideShare a Scribd company logo
PRESENTATION TITLE ON ONE LINE
AND ON TWO LINES
First and last name
Position, company
HOW TO USE GOCQL TO
EXECUTE QUERIES AND WHAT
THE DRIVER DOES THAT YOU
CAN’T SEE
Chris Bannister
PRESENTATION TITLE ON ONE LINE
AND ON TWO LINES
First and last name
Position, company
CHRIS BANNISTER
2
Software Engineer by day, Cassandra driver
developer at night. Been programming in Go for
over 4 years and working on GoCQL for 3.
Know far too much about Cassandra drivers.
PRESENTATION TITLE ON ONE LINE
AND ON TWO LINES
First and last name
Position, company
OUTLINE
▪ What is GoCQL
▪ Connecting to a cluster
▪ Querying
▪ Async querying
▪ Other libraries
3
PRESENTATION TITLE ON ONE LINE
AND ON TWO LINES
First and last name
Position, company
WHY USE GO
▪ Simple concurrency primitives
▪ First class functions
▪ Strongly typed
▪ Garbage collected
4

Recommended for you

How to Use JSON in MySQL Wrong
How to Use JSON in MySQL WrongHow to Use JSON in MySQL Wrong
How to Use JSON in MySQL Wrong

The document discusses using JSON in MySQL. It begins by introducing the speaker and outlining topics to be covered, including why JSON is useful, loading JSON data into MySQL, performance considerations when querying JSON data, using generated columns with JSON, and searching multi-valued attributes in JSON. The document then dives into examples demonstrating loading sample data from XML to JSON in MySQL, issues that can arise, and techniques for optimizing JSON queries using generated columns and indexes.

mysqlrelational databasemongodb
Inheritance in c++
Inheritance in c++ Inheritance in c++
Inheritance in c++

Prof. Sandeep Vishwakarma gave a lecture. The lecture was delivered by Prof. Sandeep Vishwakarma but no other details are provided about the topic, content, or audience of the lecture. The document only lists the name of the lecturer but gives no other informative context.

inheritance in c++types of inheritancesingle inheritance
Demystifying the use of wallets and ssl with your database
Demystifying the use of wallets and  ssl with your databaseDemystifying the use of wallets and  ssl with your database
Demystifying the use of wallets and ssl with your database

This presentation is from a session that was delivered in in Oracle Groundpreaders Tour to help understand how to secure your data which flows through the network between client and server. This will also help the attendees understand how toleverage the various tools like Oracle Network Encryption & TLS to harden the security of the databases, along with practical insights,case studies and various tips & tricks for multitenant and RAC architectures. Securing Communication with Oracle Databases

securitytlsoracledatabase
PRESENTATION TITLE ON ONE LINE
AND ON TWO LINES
First and last name
Position, company
WHAT IS GOCQL
▪ GoCQL is a driver for Cassandra & Scylla written in Go
▪ Supports all versions of Cassandra >= 2.0
▪ Supports nearly all the features of the Java driver
▪ Idiomatic Go API
▪ Has rich supporting libraries with more features
5
PRESENTATION TITLE ON ONE LINE
AND ON TWO LINES
First and last name
Position, company
INSTALLING
▪ go get github.com/gocql/gocql
▪ Docs at https://godoc.org/github.com/gocql/gocql
6
PRESENTATION TITLE ON ONE LINE
AND ON TWO LINES
First and last name
Position, company
CONNECTING TO A CLUSTER
7
conf := gocql.NewCluster(“10.0.12.83“, “10.0.13.04”, “10.0.14.12”)
conf.PoolConfig.HostSelectionPolicy =
gocql.TokenAwareHostPolicy(gocql.RoundRobinHostPolicy())
conf.Compressor = &gocql.SnappyCompressor{}
conf.RetryPolicy = &gocql.ExponentialBackoffRetryPolicy{NumRetries: 3}
conf.Consistency = gocql.LocalQuorum
db, err := conf.CreateSession()
if err != nil {
// unable to connect
}
PRESENTATION TITLE ON ONE LINE
AND ON TWO LINES
First and last name
Position, company
CONNECTING TO A CLUSTER
8
conf := gocql.NewCluster(“10.0.12.83“, “10.0.13.04”, “10.0.14.12”)
conf.PoolConfig.HostSelectionPolicy =
gocql.TokenAwareHostPolicy(gocql.RoundRobinHostPolicy())
conf.Compressor = &gocql.SnappyCompressor{}
conf.RetryPolicy = &gocql.ExponentialBackoffRetryPolicy{NumRetries: 3}
conf.Consistency = gocql.LocalQuorum
db, err := conf.CreateSession()
if err != nil {
// unable to connect
}

Recommended for you

C++ 프로젝트에 단위 테스트 도입하기
C++ 프로젝트에 단위 테스트 도입하기C++ 프로젝트에 단위 테스트 도입하기
C++ 프로젝트에 단위 테스트 도입하기
SQL for Data Science Tutorial | Data Science Tutorial | Edureka
SQL for Data Science Tutorial | Data Science Tutorial | EdurekaSQL for Data Science Tutorial | Data Science Tutorial | Edureka
SQL for Data Science Tutorial | Data Science Tutorial | Edureka

YouTube Link: https://youtu.be/sTiWTx0ifaM ** Data Science Master Program: https://www.edureka.co/masters-program/data-scientist-certification** This Edureka session on SQL for Data Science will help you understand how SQL can be used to store, access and retrieve data to perform data analysis. Here’s a list of topics covered in this session: 1. Introduction To Data Science 2. Why Is SQL Needed For Data Science? 3. What Is SQL? 4. Basics Of SQL 5. Installing MySQL 6. Hands-On Follow us to never miss an update in the future. YouTube: https://www.youtube.com/user/edurekaIN Instagram: https://www.instagram.com/edureka_learning/ Facebook: https://www.facebook.com/edurekaIN/ Twitter: https://twitter.com/edurekain LinkedIn: https://www.linkedin.com/company/edureka Castbox: https://castbox.fm/networks/505?country=in

sql for data sciencesql data science tutorialsql basics for data science
Oracle database performance tuning
Oracle database performance tuningOracle database performance tuning
Oracle database performance tuning

Database tuning is the process of optimizing a database to maximize performance. It involves activities like configuring disks, tuning SQL statements, and sizing memory properly. Database performance issues commonly stem from slow physical I/O, excessive CPU usage, or latch contention. Tuning opportunities exist at the level of database design, application code, memory settings, disk I/O, and eliminating contention. Performance monitoring tools like the Automatic Workload Repository and wait events help identify problem areas.

PRESENTATION TITLE ON ONE LINE
AND ON TWO LINES
First and last name
Position, company
CONNECTING TO A CLUSTER
9
conf := gocql.NewCluster(“10.0.12.83“, “10.0.13.04”, “10.0.14.12”)
conf.PoolConfig.HostSelectionPolicy =
gocql.TokenAwareHostPolicy(gocql.RoundRobinHostPolicy())
conf.Compressor = &gocql.SnappyCompressor{}
conf.RetryPolicy = &gocql.ExponentialBackoffRetryPolicy{NumRetries: 3}
conf.Consistency = gocql.LocalQuorum
db, err := conf.CreateSession()
if err != nil {
// unable to connect
}
PRESENTATION TITLE ON ONE LINE
AND ON TWO LINES
First and last name
Position, company
CONNECTING TO A CLUSTER
10
conf := gocql.NewCluster(“10.0.12.83“, “10.0.13.04”, “10.0.14.12”)
conf.PoolConfig.HostSelectionPolicy =
gocql.TokenAwareHostPolicy(gocql.RoundRobinHostPolicy())
conf.Compressor = &gocql.SnappyCompressor{}
conf.RetryPolicy = &gocql.ExponentialBackoffRetryPolicy{NumRetries: 3}
conf.Consistency = gocql.LocalQuorum
db, err := conf.CreateSession()
if err != nil {
// unable to connect
}
PRESENTATION TITLE ON ONE LINE
AND ON TWO LINES
First and last name
Position, company
CONNECTING TO A CLUSTER
11
conf := gocql.NewCluster(“10.0.12.83“, “10.0.13.04”, “10.0.14, 12”)
conf.PoolConfig.HostSelectionPolicy =
gocql.TokenAwareHostPolicy(gocql.RoundRobinHostPolicy())
conf.Compressor = &gocql.SnappyCompressor{}
conf.RetryPolicy = &gocql.ExponentialBackoffRetryPolicy{NumRetries: 3}
conf.Consistency = gocql.LocalQuorum
db, err := conf.CreateSession()
if err != nil {
// unable to connect
}
PRESENTATION TITLE ON ONE LINE
AND ON TWO LINES
First and last name
Position, company
CONNECTING TO A CLUSTER
▪ Good defaults for production config
o Tailor to your environment
▪ Use a single session per application
o Session is like a connection pool, with extra features
▪ Supplied hosts only used to discover rest of the cluster
o Ensure cluster IP addresses are configured correctly!
12

Recommended for you

SQL BUILT-IN FUNCTION
SQL BUILT-IN FUNCTIONSQL BUILT-IN FUNCTION
SQL BUILT-IN FUNCTION

This document discusses various SQL functions in DBMS including single row functions, group functions, character functions, number functions, date functions, and conversion functions. It provides examples of commonly used functions like ROUND, TRUNC, SQRT, MOD, DATE functions, and TO_CHAR/TO_DATE conversion functions. It also covers general functions like NVL, NVL2, NULLIF, COALESCE, CASE, and DECODE that can work on different data types and avoid null values. Set operators are briefly mentioned to combine multiple queries.

sqloraclebuilt-in function
Java database connectivity with MySql
Java database connectivity with MySqlJava database connectivity with MySql
Java database connectivity with MySql

This document discusses Java Database Connectivity (JDBC) and its components. It describes the two-tier and three-tier JDBC architectures and the roles of the JDBC driver, connection, statement, and result set. It also covers the different types of JDBC drivers and provides code examples to demonstrate how to connect to a database and execute queries using JDBC.

jdbcmysqlconnectivity
DBMS 5 | MySQL Practice List - HR Schema
DBMS 5 | MySQL Practice List - HR SchemaDBMS 5 | MySQL Practice List - HR Schema
DBMS 5 | MySQL Practice List - HR Schema

This note contains some sample MySQL query practices based on the HR Schema database. The practice sections are from the following categories: - DDL statements - Basic Select statements - Aggregate operations - Join operations

mysqlhr schemapractice list
PRESENTATION TITLE ON ONE LINE
AND ON TWO LINES
First and last name
Position, company
WHAT HAPPENED BEHIND THE SCENES
▪ Discover protocol version
o Pretty hacky, Cassandra please fix
▪ Discover cluster topology
o Addresses advertised by cluster take priority over those supplied
▪ Create connection pools to all discovered hosts
▪ Register for host and schema change events
13
PRESENTATION TITLE ON ONE LINE
AND ON TWO LINES
First and last name
Position, company
QUERYING AND ITERATING
14
type TraceSpan struct {
ID gocql.UUID `cql:"id"`
StartTime time.Time `cql:"start_time"`
Duration time.Duration `cql:"duration"`
}
query := db.Query("SELECT span FROM traces WHERE service_name=?",
"my-service")
sc := query().Iter().Scanner()
PRESENTATION TITLE ON ONE LINE
AND ON TWO LINES
First and last name
Position, company
QUERYING AND ITERATING
15
type TraceSpan struct {
ID gocql.UUID `cql:"id"`
StartTime time.Time `cql:"start_time"`
Duration time.Duration `cql:"duration"`
}
query := db.Query("SELECT span FROM traces WHERE service_name=?",
"my-service")
sc := query.Iter().Scanner()
PRESENTATION TITLE ON ONE LINE
AND ON TWO LINES
First and last name
Position, company
QUERYING AND ITERATING
16
type TraceSpan struct {
ID gocql.UUID `cql:"id"`
StartTime time.Time `cql:"start_time"`
Duration time.Duration `cql:"duration"`
}
query := db.Query("SELECT span FROM traces WHERE service_name=?",
"my-service")
sc := query.Iter().Scanner()

Recommended for you

Nested Queries Lecture
Nested Queries LectureNested Queries Lecture
Nested Queries Lecture

This document provides an overview of nested queries in SQL, including examples and explanations of: - What nested queries are and how they are structured using subqueries - How to write nested queries using operators like IN, EXISTS, and correlated subqueries - Examples of nested queries for SELECT, UPDATE, DELETE, and the FROM clause using data on country fertility rates - Advantages of nested queries like readability and ability to isolate parts of statements

sqlmysqldatabase
Java And Multithreading
Java And MultithreadingJava And Multithreading
Java And Multithreading

The document discusses threads and multithreading in Java. It defines a thread as a single sequential flow of control within a program. Multithreading allows a program to be divided into multiple subprograms that can run concurrently. Threads have various states like newborn, runnable, running, blocked, and dead. The key methods for managing threads include start(), sleep(), yield(), join(), wait(), notify(). Synchronization is needed when multiple threads access shared resources to prevent inconsistencies. Deadlocks can occur when threads wait indefinitely for each other.

multithreadingjava
DBA_FEATURE_USAGE_STATISTICS
DBA_FEATURE_USAGE_STATISTICSDBA_FEATURE_USAGE_STATISTICS
DBA_FEATURE_USAGE_STATISTICS

This document discusses the DBA_FEATURE_USAGE_STATISTICS view in Oracle databases, which tracks database feature usage. It describes what is stored in the view, the underlying tables and packages that populate it, and how to manually refresh the data. It also covers how to determine if a feature is installed and how its usage is detected, using the installation check and usage detection logic stored in the WRI$_DBU_FEATURE_METADATA table. The document demonstrates some examples and concludes with information on reports produced by Oracle on database options and management pack usage based on the DBA_FEATURE_USAGE_STATISTICS data.

oracle databasedba_feature_usage_statisticslicensing
PRESENTATION TITLE ON ONE LINE
AND ON TWO LINES
First and last name
Position, company
QUERYING AND ITERATING
17
var spans []TraceSpan
for sc.Next() {
var span TraceSpan
if err := sc.Scan(&span); err != nil {
return err
}
spans = append(spans, span)
}
if err := sc.Err(); err != nil {
return err
}
PRESENTATION TITLE ON ONE LINE
AND ON TWO LINES
First and last name
Position, company
QUERYING AND ITERATING
18
var spans []TraceSpan
for sc.Next() {
var span TraceSpan
if err := sc.Scan(&span); err != nil {
return err
}
spans = append(spans, span)
}
if err := sc.Err(); err != nil {
return err
}
PRESENTATION TITLE ON ONE LINE
AND ON TWO LINES
First and last name
Position, company
QUERYING AND ITERATING
▪ The driver automatically prefetches and pages results
▪ Check the error at the end
▪ Close iterators to let them be reused for performance
▪ Query options can be set per query
o Will inherit global settings from the session
19
PRESENTATION TITLE ON ONE LINE
AND ON TWO LINES
First and last name
Position, company
HOW QUERYING WORKS
▪ Pick host + Connection
o Token Aware, pick host which owns the data or a replica
o Connections can support up to 32k concurrent queries
▪ Prepare query
o Cached per host
o Required to know how to serialise the query parameters
▪ Serialise all outgoing values
▪ Deserialise results & return to caller
▪ Paginate, handle host errors
20

Recommended for you

Consultas multitabla clase
Consultas multitabla claseConsultas multitabla clase
Consultas multitabla clase

1) El documento habla sobre consultas multitabla que obtienen datos de diferentes tablas mediante operaciones de álgebra relacional como unión y composición de tablas. 2) Describe los tipos de unión, composición, intersección y diferencia de tablas así como ejemplos de su uso. 3) Explica JOINs internos y externos para combinar filas entre tablas relacionadas.

````
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQL

Telecharger Exercices corrigés PL/SQL,Telecharger Exercices corrigés PL/SQL,Telecharger Exercices corrigés PL/SQL,Telecharger Exercices corrigés PL/SQL

telechargerexercices corrigéspl/sql
Cours Visual Basic.NET
Cours Visual Basic.NETCours Visual Basic.NET
Cours Visual Basic.NET

Un cours d'initiation en Visual Basic. Merci de me faire part de vos remarques et suggestions pour le parfaire et le perfectionner via mon email: pr.azizdarouichi@gmail.com

vbvbnetvb.net
PRESENTATION TITLE ON ONE LINE
AND ON TWO LINES
First and last name
Position, company
ASYNC QUERIES IN GO
21
PRESENTATION TITLE ON ONE LINE
AND ON TWO LINES
First and last name
Position, company
ASYNC QUERIES IN GO
22
ch := make(chan TraceSpan, 10)
go func() {
for sc.Next() {
var span TraceSpan
if err := sc.Scan(&span); err != nil {
// handle error
}
ch <- span
}
if err := sc.Err(); err != nil {
// handle error
}
}()
PRESENTATION TITLE ON ONE LINE
AND ON TWO LINES
First and last name
Position, company
ASYNC QUERIES IN GO
▪ Gocql only provides a synchronous interface
▪ Trivial to adapt to be asynchronous
o Channels and Goroutines!
o Take care with errors
▪ Under the hood, all queries execute concurrently
23
PRESENTATION TITLE ON ONE LINE
AND ON TWO LINES
First and last name
Position, company
LIBRARIES USING GOCQL
▪ Gocql provides a low level and fully usable interface to Cassandra
▪ Other features available outside of the driver
24

Recommended for you

Test unitaires
Test unitairesTest unitaires
Test unitaires

Présentation académique des tests unitaires

#test#dev#it
Ajp notes-chapter-01
Ajp notes-chapter-01Ajp notes-chapter-01
Ajp notes-chapter-01

This chapter introduces the Abstract Window Toolkit (AWT) in Java. It discusses creating windows and frames using AWT classes. It covers working with graphics, colors, fonts, and layout managers. It also discusses using AWT controls like buttons, checkboxes, lists, menus and dialog boxes. The chapter describes handling events by extending AWT components and exploring controls, menus and layout managers in more detail.

Scylla Summit 2017: Scylla on Kubernetes
Scylla Summit 2017: Scylla on KubernetesScylla Summit 2017: Scylla on Kubernetes
Scylla Summit 2017: Scylla on Kubernetes

Kubernetes is a declarative system for automatically deploying, managing, and scaling applications and their dependencies. In this short talk, I'll demonstrate a small Scylla cluster running in Google Compute Engine via Kubernetes and our publicly-published Docker images.

scyllasummitnosqlscylla
PRESENTATION TITLE ON ONE LINE
AND ON TWO LINES
First and last name
Position, company
LIBRARIES USING GOCQL
▪ gocqlx is a Gocql extension that automates data binding, adds
named queries support, provides flexible query builders
o Thanks Scylla!
▪ gocassa provides query building, adds data binding, and provides
easy-to-use "recipe" tables for common query use-cases
▪ journey is a migration tool with Cassandra support
25
PRESENTATION TITLE ON ONE LINE
AND ON TWO LINES
First and last name
Position, company
THANK YOU
c.bannister@gmail.com
@ChrisBannister
Stay in touch!
Questions?

More Related Content

What's hot

Multi threading
Multi threadingMulti threading
Multi threading
gndu
 
Mysql Optimization
Mysql OptimizationMysql Optimization
Mysql Optimization
Renato Shirakashi
 
Database connectivity to sql server asp.net
Database connectivity to sql server asp.netDatabase connectivity to sql server asp.net
Database connectivity to sql server asp.net
Hemant Sankhla
 
How to Use JSON in MySQL Wrong
How to Use JSON in MySQL WrongHow to Use JSON in MySQL Wrong
How to Use JSON in MySQL Wrong
Karwin Software Solutions LLC
 
Inheritance in c++
Inheritance in c++ Inheritance in c++
Inheritance in c++
sandeep54552
 
Demystifying the use of wallets and ssl with your database
Demystifying the use of wallets and  ssl with your databaseDemystifying the use of wallets and  ssl with your database
Demystifying the use of wallets and ssl with your database
Aishwarya Kala
 
C++ 프로젝트에 단위 테스트 도입하기
C++ 프로젝트에 단위 테스트 도입하기C++ 프로젝트에 단위 테스트 도입하기
C++ 프로젝트에 단위 테스트 도입하기
OnGameServer
 
SQL for Data Science Tutorial | Data Science Tutorial | Edureka
SQL for Data Science Tutorial | Data Science Tutorial | EdurekaSQL for Data Science Tutorial | Data Science Tutorial | Edureka
SQL for Data Science Tutorial | Data Science Tutorial | Edureka
Edureka!
 
Oracle database performance tuning
Oracle database performance tuningOracle database performance tuning
Oracle database performance tuning
Yogiji Creations
 
SQL BUILT-IN FUNCTION
SQL BUILT-IN FUNCTIONSQL BUILT-IN FUNCTION
SQL BUILT-IN FUNCTION
Arun Sial
 
Java database connectivity with MySql
Java database connectivity with MySqlJava database connectivity with MySql
Java database connectivity with MySql
Dhyey Dattani
 
DBMS 5 | MySQL Practice List - HR Schema
DBMS 5 | MySQL Practice List - HR SchemaDBMS 5 | MySQL Practice List - HR Schema
DBMS 5 | MySQL Practice List - HR Schema
Mohammad Imam Hossain
 
Nested Queries Lecture
Nested Queries LectureNested Queries Lecture
Nested Queries Lecture
Felipe Costa
 
Java And Multithreading
Java And MultithreadingJava And Multithreading
Java And Multithreading
Shraddha
 
DBA_FEATURE_USAGE_STATISTICS
DBA_FEATURE_USAGE_STATISTICSDBA_FEATURE_USAGE_STATISTICS
DBA_FEATURE_USAGE_STATISTICS
Martin Berger
 
Consultas multitabla clase
Consultas multitabla claseConsultas multitabla clase
Consultas multitabla clase
Alejandra Vera
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQL
webreaker
 
Cours Visual Basic.NET
Cours Visual Basic.NETCours Visual Basic.NET
Cours Visual Basic.NET
Aziz Darouichi
 
Test unitaires
Test unitairesTest unitaires
Test unitaires
Mohamed Akrouh
 
Ajp notes-chapter-01
Ajp notes-chapter-01Ajp notes-chapter-01
Ajp notes-chapter-01
Ankit Dubey
 

What's hot (20)

Multi threading
Multi threadingMulti threading
Multi threading
 
Mysql Optimization
Mysql OptimizationMysql Optimization
Mysql Optimization
 
Database connectivity to sql server asp.net
Database connectivity to sql server asp.netDatabase connectivity to sql server asp.net
Database connectivity to sql server asp.net
 
How to Use JSON in MySQL Wrong
How to Use JSON in MySQL WrongHow to Use JSON in MySQL Wrong
How to Use JSON in MySQL Wrong
 
Inheritance in c++
Inheritance in c++ Inheritance in c++
Inheritance in c++
 
Demystifying the use of wallets and ssl with your database
Demystifying the use of wallets and  ssl with your databaseDemystifying the use of wallets and  ssl with your database
Demystifying the use of wallets and ssl with your database
 
C++ 프로젝트에 단위 테스트 도입하기
C++ 프로젝트에 단위 테스트 도입하기C++ 프로젝트에 단위 테스트 도입하기
C++ 프로젝트에 단위 테스트 도입하기
 
SQL for Data Science Tutorial | Data Science Tutorial | Edureka
SQL for Data Science Tutorial | Data Science Tutorial | EdurekaSQL for Data Science Tutorial | Data Science Tutorial | Edureka
SQL for Data Science Tutorial | Data Science Tutorial | Edureka
 
Oracle database performance tuning
Oracle database performance tuningOracle database performance tuning
Oracle database performance tuning
 
SQL BUILT-IN FUNCTION
SQL BUILT-IN FUNCTIONSQL BUILT-IN FUNCTION
SQL BUILT-IN FUNCTION
 
Java database connectivity with MySql
Java database connectivity with MySqlJava database connectivity with MySql
Java database connectivity with MySql
 
DBMS 5 | MySQL Practice List - HR Schema
DBMS 5 | MySQL Practice List - HR SchemaDBMS 5 | MySQL Practice List - HR Schema
DBMS 5 | MySQL Practice List - HR Schema
 
Nested Queries Lecture
Nested Queries LectureNested Queries Lecture
Nested Queries Lecture
 
Java And Multithreading
Java And MultithreadingJava And Multithreading
Java And Multithreading
 
DBA_FEATURE_USAGE_STATISTICS
DBA_FEATURE_USAGE_STATISTICSDBA_FEATURE_USAGE_STATISTICS
DBA_FEATURE_USAGE_STATISTICS
 
Consultas multitabla clase
Consultas multitabla claseConsultas multitabla clase
Consultas multitabla clase
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQL
 
Cours Visual Basic.NET
Cours Visual Basic.NETCours Visual Basic.NET
Cours Visual Basic.NET
 
Test unitaires
Test unitairesTest unitaires
Test unitaires
 
Ajp notes-chapter-01
Ajp notes-chapter-01Ajp notes-chapter-01
Ajp notes-chapter-01
 

Viewers also liked

Scylla Summit 2017: Scylla on Kubernetes
Scylla Summit 2017: Scylla on KubernetesScylla Summit 2017: Scylla on Kubernetes
Scylla Summit 2017: Scylla on Kubernetes
ScyllaDB
 
Scylla Summit 2017: The Upcoming HPC Evolution
Scylla Summit 2017: The Upcoming HPC EvolutionScylla Summit 2017: The Upcoming HPC Evolution
Scylla Summit 2017: The Upcoming HPC Evolution
ScyllaDB
 
Scylla Summit 2017: Scylla on Samsung NVMe Z-SSDs
Scylla Summit 2017: Scylla on Samsung NVMe Z-SSDsScylla Summit 2017: Scylla on Samsung NVMe Z-SSDs
Scylla Summit 2017: Scylla on Samsung NVMe Z-SSDs
ScyllaDB
 
Scylla Summit 2017: From Elasticsearch to Scylla at Zenly
Scylla Summit 2017: From Elasticsearch to Scylla at ZenlyScylla Summit 2017: From Elasticsearch to Scylla at Zenly
Scylla Summit 2017: From Elasticsearch to Scylla at Zenly
ScyllaDB
 
Scylla Summit 2017: A Toolbox for Understanding Scylla in the Field
Scylla Summit 2017: A Toolbox for Understanding Scylla in the FieldScylla Summit 2017: A Toolbox for Understanding Scylla in the Field
Scylla Summit 2017: A Toolbox for Understanding Scylla in the Field
ScyllaDB
 
Scylla Summit 2017: How to Ruin Your Workload's Performance by Choosing the W...
Scylla Summit 2017: How to Ruin Your Workload's Performance by Choosing the W...Scylla Summit 2017: How to Ruin Your Workload's Performance by Choosing the W...
Scylla Summit 2017: How to Ruin Your Workload's Performance by Choosing the W...
ScyllaDB
 
Scylla Summit 2017: Stateful Streaming Applications with Apache Spark
Scylla Summit 2017: Stateful Streaming Applications with Apache Spark Scylla Summit 2017: Stateful Streaming Applications with Apache Spark
Scylla Summit 2017: Stateful Streaming Applications with Apache Spark
ScyllaDB
 
Scylla Summit 2017: Planning Your Queries for Maximum Performance
Scylla Summit 2017: Planning Your Queries for Maximum PerformanceScylla Summit 2017: Planning Your Queries for Maximum Performance
Scylla Summit 2017: Planning Your Queries for Maximum Performance
ScyllaDB
 
If You Care About Performance, Use User Defined Types
If You Care About Performance, Use User Defined TypesIf You Care About Performance, Use User Defined Types
If You Care About Performance, Use User Defined Types
ScyllaDB
 
Scylla Summit 2017: Migrating to Scylla From Cassandra and Others With No Dow...
Scylla Summit 2017: Migrating to Scylla From Cassandra and Others With No Dow...Scylla Summit 2017: Migrating to Scylla From Cassandra and Others With No Dow...
Scylla Summit 2017: Migrating to Scylla From Cassandra and Others With No Dow...
ScyllaDB
 
Scylla Summit 2017: Cry in the Dojo, Laugh in the Battlefield: How We Constan...
Scylla Summit 2017: Cry in the Dojo, Laugh in the Battlefield: How We Constan...Scylla Summit 2017: Cry in the Dojo, Laugh in the Battlefield: How We Constan...
Scylla Summit 2017: Cry in the Dojo, Laugh in the Battlefield: How We Constan...
ScyllaDB
 
Scylla Summit 2017: Managing 10,000 Node Storage Clusters at Twitter
Scylla Summit 2017: Managing 10,000 Node Storage Clusters at TwitterScylla Summit 2017: Managing 10,000 Node Storage Clusters at Twitter
Scylla Summit 2017: Managing 10,000 Node Storage Clusters at Twitter
ScyllaDB
 
Scylla Summit 2017: Streaming ETL in Kafka for Everyone with KSQL
Scylla Summit 2017: Streaming ETL in Kafka for Everyone with KSQLScylla Summit 2017: Streaming ETL in Kafka for Everyone with KSQL
Scylla Summit 2017: Streaming ETL in Kafka for Everyone with KSQL
ScyllaDB
 
Scylla Summit 2017: How to Optimize and Reduce Inter-DC Network Traffic and S...
Scylla Summit 2017: How to Optimize and Reduce Inter-DC Network Traffic and S...Scylla Summit 2017: How to Optimize and Reduce Inter-DC Network Traffic and S...
Scylla Summit 2017: How to Optimize and Reduce Inter-DC Network Traffic and S...
ScyllaDB
 
Scylla Summit 2017: Repair, Backup, Restore: Last Thing Before You Go to Prod...
Scylla Summit 2017: Repair, Backup, Restore: Last Thing Before You Go to Prod...Scylla Summit 2017: Repair, Backup, Restore: Last Thing Before You Go to Prod...
Scylla Summit 2017: Repair, Backup, Restore: Last Thing Before You Go to Prod...
ScyllaDB
 
Scylla Summit 2017: Keynote, Looking back, looking ahead
Scylla Summit 2017: Keynote, Looking back, looking aheadScylla Summit 2017: Keynote, Looking back, looking ahead
Scylla Summit 2017: Keynote, Looking back, looking ahead
ScyllaDB
 
How to Monitor and Size Workloads on AWS i3 instances
How to Monitor and Size Workloads on AWS i3 instancesHow to Monitor and Size Workloads on AWS i3 instances
How to Monitor and Size Workloads on AWS i3 instances
ScyllaDB
 
Scylla Summit 2017: A Deep Dive on Heat Weighted Load Balancing
Scylla Summit 2017: A Deep Dive on Heat Weighted Load BalancingScylla Summit 2017: A Deep Dive on Heat Weighted Load Balancing
Scylla Summit 2017: A Deep Dive on Heat Weighted Load Balancing
ScyllaDB
 
Scylla Summit 2016: Keynote - Big Data Goes Native
Scylla Summit 2016: Keynote - Big Data Goes NativeScylla Summit 2016: Keynote - Big Data Goes Native
Scylla Summit 2016: Keynote - Big Data Goes Native
ScyllaDB
 
Scylla Summit 2017: Stretching Scylla Silly: The Datastore of a Graph Databas...
Scylla Summit 2017: Stretching Scylla Silly: The Datastore of a Graph Databas...Scylla Summit 2017: Stretching Scylla Silly: The Datastore of a Graph Databas...
Scylla Summit 2017: Stretching Scylla Silly: The Datastore of a Graph Databas...
ScyllaDB
 

Viewers also liked (20)

Scylla Summit 2017: Scylla on Kubernetes
Scylla Summit 2017: Scylla on KubernetesScylla Summit 2017: Scylla on Kubernetes
Scylla Summit 2017: Scylla on Kubernetes
 
Scylla Summit 2017: The Upcoming HPC Evolution
Scylla Summit 2017: The Upcoming HPC EvolutionScylla Summit 2017: The Upcoming HPC Evolution
Scylla Summit 2017: The Upcoming HPC Evolution
 
Scylla Summit 2017: Scylla on Samsung NVMe Z-SSDs
Scylla Summit 2017: Scylla on Samsung NVMe Z-SSDsScylla Summit 2017: Scylla on Samsung NVMe Z-SSDs
Scylla Summit 2017: Scylla on Samsung NVMe Z-SSDs
 
Scylla Summit 2017: From Elasticsearch to Scylla at Zenly
Scylla Summit 2017: From Elasticsearch to Scylla at ZenlyScylla Summit 2017: From Elasticsearch to Scylla at Zenly
Scylla Summit 2017: From Elasticsearch to Scylla at Zenly
 
Scylla Summit 2017: A Toolbox for Understanding Scylla in the Field
Scylla Summit 2017: A Toolbox for Understanding Scylla in the FieldScylla Summit 2017: A Toolbox for Understanding Scylla in the Field
Scylla Summit 2017: A Toolbox for Understanding Scylla in the Field
 
Scylla Summit 2017: How to Ruin Your Workload's Performance by Choosing the W...
Scylla Summit 2017: How to Ruin Your Workload's Performance by Choosing the W...Scylla Summit 2017: How to Ruin Your Workload's Performance by Choosing the W...
Scylla Summit 2017: How to Ruin Your Workload's Performance by Choosing the W...
 
Scylla Summit 2017: Stateful Streaming Applications with Apache Spark
Scylla Summit 2017: Stateful Streaming Applications with Apache Spark Scylla Summit 2017: Stateful Streaming Applications with Apache Spark
Scylla Summit 2017: Stateful Streaming Applications with Apache Spark
 
Scylla Summit 2017: Planning Your Queries for Maximum Performance
Scylla Summit 2017: Planning Your Queries for Maximum PerformanceScylla Summit 2017: Planning Your Queries for Maximum Performance
Scylla Summit 2017: Planning Your Queries for Maximum Performance
 
If You Care About Performance, Use User Defined Types
If You Care About Performance, Use User Defined TypesIf You Care About Performance, Use User Defined Types
If You Care About Performance, Use User Defined Types
 
Scylla Summit 2017: Migrating to Scylla From Cassandra and Others With No Dow...
Scylla Summit 2017: Migrating to Scylla From Cassandra and Others With No Dow...Scylla Summit 2017: Migrating to Scylla From Cassandra and Others With No Dow...
Scylla Summit 2017: Migrating to Scylla From Cassandra and Others With No Dow...
 
Scylla Summit 2017: Cry in the Dojo, Laugh in the Battlefield: How We Constan...
Scylla Summit 2017: Cry in the Dojo, Laugh in the Battlefield: How We Constan...Scylla Summit 2017: Cry in the Dojo, Laugh in the Battlefield: How We Constan...
Scylla Summit 2017: Cry in the Dojo, Laugh in the Battlefield: How We Constan...
 
Scylla Summit 2017: Managing 10,000 Node Storage Clusters at Twitter
Scylla Summit 2017: Managing 10,000 Node Storage Clusters at TwitterScylla Summit 2017: Managing 10,000 Node Storage Clusters at Twitter
Scylla Summit 2017: Managing 10,000 Node Storage Clusters at Twitter
 
Scylla Summit 2017: Streaming ETL in Kafka for Everyone with KSQL
Scylla Summit 2017: Streaming ETL in Kafka for Everyone with KSQLScylla Summit 2017: Streaming ETL in Kafka for Everyone with KSQL
Scylla Summit 2017: Streaming ETL in Kafka for Everyone with KSQL
 
Scylla Summit 2017: How to Optimize and Reduce Inter-DC Network Traffic and S...
Scylla Summit 2017: How to Optimize and Reduce Inter-DC Network Traffic and S...Scylla Summit 2017: How to Optimize and Reduce Inter-DC Network Traffic and S...
Scylla Summit 2017: How to Optimize and Reduce Inter-DC Network Traffic and S...
 
Scylla Summit 2017: Repair, Backup, Restore: Last Thing Before You Go to Prod...
Scylla Summit 2017: Repair, Backup, Restore: Last Thing Before You Go to Prod...Scylla Summit 2017: Repair, Backup, Restore: Last Thing Before You Go to Prod...
Scylla Summit 2017: Repair, Backup, Restore: Last Thing Before You Go to Prod...
 
Scylla Summit 2017: Keynote, Looking back, looking ahead
Scylla Summit 2017: Keynote, Looking back, looking aheadScylla Summit 2017: Keynote, Looking back, looking ahead
Scylla Summit 2017: Keynote, Looking back, looking ahead
 
How to Monitor and Size Workloads on AWS i3 instances
How to Monitor and Size Workloads on AWS i3 instancesHow to Monitor and Size Workloads on AWS i3 instances
How to Monitor and Size Workloads on AWS i3 instances
 
Scylla Summit 2017: A Deep Dive on Heat Weighted Load Balancing
Scylla Summit 2017: A Deep Dive on Heat Weighted Load BalancingScylla Summit 2017: A Deep Dive on Heat Weighted Load Balancing
Scylla Summit 2017: A Deep Dive on Heat Weighted Load Balancing
 
Scylla Summit 2016: Keynote - Big Data Goes Native
Scylla Summit 2016: Keynote - Big Data Goes NativeScylla Summit 2016: Keynote - Big Data Goes Native
Scylla Summit 2016: Keynote - Big Data Goes Native
 
Scylla Summit 2017: Stretching Scylla Silly: The Datastore of a Graph Databas...
Scylla Summit 2017: Stretching Scylla Silly: The Datastore of a Graph Databas...Scylla Summit 2017: Stretching Scylla Silly: The Datastore of a Graph Databas...
Scylla Summit 2017: Stretching Scylla Silly: The Datastore of a Graph Databas...
 

Similar to Scylla Summit 2017: How to Use Gocql to Execute Queries and What the Driver Does That You Can’t See

Scylla Summit 2017: SMF: The Fastest RPC in the West
Scylla Summit 2017: SMF: The Fastest RPC in the WestScylla Summit 2017: SMF: The Fastest RPC in the West
Scylla Summit 2017: SMF: The Fastest RPC in the West
ScyllaDB
 
GraphQL & Prisma from Scratch
GraphQL & Prisma from ScratchGraphQL & Prisma from Scratch
GraphQL & Prisma from Scratch
Nikolas Burk
 
MongoDB.local Berlin: Building a GraphQL API with MongoDB, Prisma and Typescript
MongoDB.local Berlin: Building a GraphQL API with MongoDB, Prisma and TypescriptMongoDB.local Berlin: Building a GraphQL API with MongoDB, Prisma and Typescript
MongoDB.local Berlin: Building a GraphQL API with MongoDB, Prisma and Typescript
MongoDB
 
ECMAScript 6 and the Node Driver
ECMAScript 6 and the Node DriverECMAScript 6 and the Node Driver
ECMAScript 6 and the Node Driver
MongoDB
 
Scylla Summit 2017: Scylla's Open Source Monitoring Solution
Scylla Summit 2017: Scylla's Open Source Monitoring SolutionScylla Summit 2017: Scylla's Open Source Monitoring Solution
Scylla Summit 2017: Scylla's Open Source Monitoring Solution
ScyllaDB
 
Scylla Summit 2017: Performance Evaluation of Scylla as a Database Backend fo...
Scylla Summit 2017: Performance Evaluation of Scylla as a Database Backend fo...Scylla Summit 2017: Performance Evaluation of Scylla as a Database Backend fo...
Scylla Summit 2017: Performance Evaluation of Scylla as a Database Backend fo...
ScyllaDB
 
Managing GraphQL servers with AWS Fargate & Prisma Cloud
Managing GraphQL servers  with AWS Fargate & Prisma CloudManaging GraphQL servers  with AWS Fargate & Prisma Cloud
Managing GraphQL servers with AWS Fargate & Prisma Cloud
Nikolas Burk
 
Reactive Access to MongoDB from Scala
Reactive Access to MongoDB from ScalaReactive Access to MongoDB from Scala
Reactive Access to MongoDB from Scala
Hermann Hueck
 
Elasticsearch And Ruby [RuPy2012]
Elasticsearch And Ruby [RuPy2012]Elasticsearch And Ruby [RuPy2012]
Elasticsearch And Ruby [RuPy2012]
Karel Minarik
 
Testing and validating spark programs - Strata SJ 2016
Testing and validating spark programs - Strata SJ 2016Testing and validating spark programs - Strata SJ 2016
Testing and validating spark programs - Strata SJ 2016
Holden Karau
 
Scylla Summit 2017: How to Run Cassandra/Scylla from a MySQL DBA's Point of View
Scylla Summit 2017: How to Run Cassandra/Scylla from a MySQL DBA's Point of ViewScylla Summit 2017: How to Run Cassandra/Scylla from a MySQL DBA's Point of View
Scylla Summit 2017: How to Run Cassandra/Scylla from a MySQL DBA's Point of View
ScyllaDB
 
New Docker Features for Orchestration and Containers
New Docker Features for Orchestration and ContainersNew Docker Features for Orchestration and Containers
New Docker Features for Orchestration and Containers
Jeff Anderson
 
Complex Made Simple: Sleep Better with TorqueBox
Complex Made Simple: Sleep Better with TorqueBoxComplex Made Simple: Sleep Better with TorqueBox
Complex Made Simple: Sleep Better with TorqueBox
bobmcwhirter
 
The Ring programming language version 1.10 book - Part 10 of 212
The Ring programming language version 1.10 book - Part 10 of 212The Ring programming language version 1.10 book - Part 10 of 212
The Ring programming language version 1.10 book - Part 10 of 212
Mahmoud Samir Fayed
 
ROracle
ROracle ROracle
ROracle
Mohamed Magdy
 
How Opera Syncs Tens of Millions of Browsers and Sleeps Well at Night
How Opera Syncs Tens of Millions of Browsers and Sleeps Well at NightHow Opera Syncs Tens of Millions of Browsers and Sleeps Well at Night
How Opera Syncs Tens of Millions of Browsers and Sleeps Well at Night
ScyllaDB
 
TDC2016SP - Trilha Frameworks JavaScript
TDC2016SP - Trilha Frameworks JavaScriptTDC2016SP - Trilha Frameworks JavaScript
TDC2016SP - Trilha Frameworks JavaScript
tdc-globalcode
 
React for Beginners
React for BeginnersReact for Beginners
React for Beginners
Derek Willian Stavis
 
Share pointtechies linqtosp-andsbs
Share pointtechies linqtosp-andsbsShare pointtechies linqtosp-andsbs
Share pointtechies linqtosp-andsbs
Shakir Majeed Khan
 
Launching Beeline with Firebase
Launching Beeline with FirebaseLaunching Beeline with Firebase
Launching Beeline with Firebase
Chetan Padia
 

Similar to Scylla Summit 2017: How to Use Gocql to Execute Queries and What the Driver Does That You Can’t See (20)

Scylla Summit 2017: SMF: The Fastest RPC in the West
Scylla Summit 2017: SMF: The Fastest RPC in the WestScylla Summit 2017: SMF: The Fastest RPC in the West
Scylla Summit 2017: SMF: The Fastest RPC in the West
 
GraphQL & Prisma from Scratch
GraphQL & Prisma from ScratchGraphQL & Prisma from Scratch
GraphQL & Prisma from Scratch
 
MongoDB.local Berlin: Building a GraphQL API with MongoDB, Prisma and Typescript
MongoDB.local Berlin: Building a GraphQL API with MongoDB, Prisma and TypescriptMongoDB.local Berlin: Building a GraphQL API with MongoDB, Prisma and Typescript
MongoDB.local Berlin: Building a GraphQL API with MongoDB, Prisma and Typescript
 
ECMAScript 6 and the Node Driver
ECMAScript 6 and the Node DriverECMAScript 6 and the Node Driver
ECMAScript 6 and the Node Driver
 
Scylla Summit 2017: Scylla's Open Source Monitoring Solution
Scylla Summit 2017: Scylla's Open Source Monitoring SolutionScylla Summit 2017: Scylla's Open Source Monitoring Solution
Scylla Summit 2017: Scylla's Open Source Monitoring Solution
 
Scylla Summit 2017: Performance Evaluation of Scylla as a Database Backend fo...
Scylla Summit 2017: Performance Evaluation of Scylla as a Database Backend fo...Scylla Summit 2017: Performance Evaluation of Scylla as a Database Backend fo...
Scylla Summit 2017: Performance Evaluation of Scylla as a Database Backend fo...
 
Managing GraphQL servers with AWS Fargate & Prisma Cloud
Managing GraphQL servers  with AWS Fargate & Prisma CloudManaging GraphQL servers  with AWS Fargate & Prisma Cloud
Managing GraphQL servers with AWS Fargate & Prisma Cloud
 
Reactive Access to MongoDB from Scala
Reactive Access to MongoDB from ScalaReactive Access to MongoDB from Scala
Reactive Access to MongoDB from Scala
 
Elasticsearch And Ruby [RuPy2012]
Elasticsearch And Ruby [RuPy2012]Elasticsearch And Ruby [RuPy2012]
Elasticsearch And Ruby [RuPy2012]
 
Testing and validating spark programs - Strata SJ 2016
Testing and validating spark programs - Strata SJ 2016Testing and validating spark programs - Strata SJ 2016
Testing and validating spark programs - Strata SJ 2016
 
Scylla Summit 2017: How to Run Cassandra/Scylla from a MySQL DBA's Point of View
Scylla Summit 2017: How to Run Cassandra/Scylla from a MySQL DBA's Point of ViewScylla Summit 2017: How to Run Cassandra/Scylla from a MySQL DBA's Point of View
Scylla Summit 2017: How to Run Cassandra/Scylla from a MySQL DBA's Point of View
 
New Docker Features for Orchestration and Containers
New Docker Features for Orchestration and ContainersNew Docker Features for Orchestration and Containers
New Docker Features for Orchestration and Containers
 
Complex Made Simple: Sleep Better with TorqueBox
Complex Made Simple: Sleep Better with TorqueBoxComplex Made Simple: Sleep Better with TorqueBox
Complex Made Simple: Sleep Better with TorqueBox
 
The Ring programming language version 1.10 book - Part 10 of 212
The Ring programming language version 1.10 book - Part 10 of 212The Ring programming language version 1.10 book - Part 10 of 212
The Ring programming language version 1.10 book - Part 10 of 212
 
ROracle
ROracle ROracle
ROracle
 
How Opera Syncs Tens of Millions of Browsers and Sleeps Well at Night
How Opera Syncs Tens of Millions of Browsers and Sleeps Well at NightHow Opera Syncs Tens of Millions of Browsers and Sleeps Well at Night
How Opera Syncs Tens of Millions of Browsers and Sleeps Well at Night
 
TDC2016SP - Trilha Frameworks JavaScript
TDC2016SP - Trilha Frameworks JavaScriptTDC2016SP - Trilha Frameworks JavaScript
TDC2016SP - Trilha Frameworks JavaScript
 
React for Beginners
React for BeginnersReact for Beginners
React for Beginners
 
Share pointtechies linqtosp-andsbs
Share pointtechies linqtosp-andsbsShare pointtechies linqtosp-andsbs
Share pointtechies linqtosp-andsbs
 
Launching Beeline with Firebase
Launching Beeline with FirebaseLaunching Beeline with Firebase
Launching Beeline with Firebase
 

More from ScyllaDB

Unconventional Methods to Identify Bottlenecks in Low-Latency and High-Throug...
Unconventional Methods to Identify Bottlenecks in Low-Latency and High-Throug...Unconventional Methods to Identify Bottlenecks in Low-Latency and High-Throug...
Unconventional Methods to Identify Bottlenecks in Low-Latency and High-Throug...
ScyllaDB
 
Mitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing SystemsMitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing Systems
ScyllaDB
 
Measuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at TwitterMeasuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at Twitter
ScyllaDB
 
Architecting a High-Performance (Open Source) Distributed Message Queuing Sys...
Architecting a High-Performance (Open Source) Distributed Message Queuing Sys...Architecting a High-Performance (Open Source) Distributed Message Queuing Sys...
Architecting a High-Performance (Open Source) Distributed Message Queuing Sys...
ScyllaDB
 
Noise Canceling RUM by Tim Vereecke, Akamai
Noise Canceling RUM by Tim Vereecke, AkamaiNoise Canceling RUM by Tim Vereecke, Akamai
Noise Canceling RUM by Tim Vereecke, Akamai
ScyllaDB
 
Running a Go App in Kubernetes: CPU Impacts
Running a Go App in Kubernetes: CPU ImpactsRunning a Go App in Kubernetes: CPU Impacts
Running a Go App in Kubernetes: CPU Impacts
ScyllaDB
 
Always-on Profiling of All Linux Threads, On-CPU and Off-CPU, with eBPF & Con...
Always-on Profiling of All Linux Threads, On-CPU and Off-CPU, with eBPF & Con...Always-on Profiling of All Linux Threads, On-CPU and Off-CPU, with eBPF & Con...
Always-on Profiling of All Linux Threads, On-CPU and Off-CPU, with eBPF & Con...
ScyllaDB
 
Performance Budgets for the Real World by Tammy Everts
Performance Budgets for the Real World by Tammy EvertsPerformance Budgets for the Real World by Tammy Everts
Performance Budgets for the Real World by Tammy Everts
ScyllaDB
 
Using Libtracecmd to Analyze Your Latency and Performance Troubles
Using Libtracecmd to Analyze Your Latency and Performance TroublesUsing Libtracecmd to Analyze Your Latency and Performance Troubles
Using Libtracecmd to Analyze Your Latency and Performance Troubles
ScyllaDB
 
Reducing P99 Latencies with Generational ZGC
Reducing P99 Latencies with Generational ZGCReducing P99 Latencies with Generational ZGC
Reducing P99 Latencies with Generational ZGC
ScyllaDB
 
5 Hours to 7.7 Seconds: How Database Tricks Sped up Rust Linting Over 2000X
5 Hours to 7.7 Seconds: How Database Tricks Sped up Rust Linting Over 2000X5 Hours to 7.7 Seconds: How Database Tricks Sped up Rust Linting Over 2000X
5 Hours to 7.7 Seconds: How Database Tricks Sped up Rust Linting Over 2000X
ScyllaDB
 
How Netflix Builds High Performance Applications at Global Scale
How Netflix Builds High Performance Applications at Global ScaleHow Netflix Builds High Performance Applications at Global Scale
How Netflix Builds High Performance Applications at Global Scale
ScyllaDB
 
Conquering Load Balancing: Experiences from ScyllaDB Drivers
Conquering Load Balancing: Experiences from ScyllaDB DriversConquering Load Balancing: Experiences from ScyllaDB Drivers
Conquering Load Balancing: Experiences from ScyllaDB Drivers
ScyllaDB
 
Interaction Latency: Square's User-Centric Mobile Performance Metric
Interaction Latency: Square's User-Centric Mobile Performance MetricInteraction Latency: Square's User-Centric Mobile Performance Metric
Interaction Latency: Square's User-Centric Mobile Performance Metric
ScyllaDB
 
How to Avoid Learning the Linux-Kernel Memory Model
How to Avoid Learning the Linux-Kernel Memory ModelHow to Avoid Learning the Linux-Kernel Memory Model
How to Avoid Learning the Linux-Kernel Memory Model
ScyllaDB
 
99.99% of Your Traces are Trash by Paige Cruz
99.99% of Your Traces are Trash by Paige Cruz99.99% of Your Traces are Trash by Paige Cruz
99.99% of Your Traces are Trash by Paige Cruz
ScyllaDB
 
Square's Lessons Learned from Implementing a Key-Value Store with Raft
Square's Lessons Learned from Implementing a Key-Value Store with RaftSquare's Lessons Learned from Implementing a Key-Value Store with Raft
Square's Lessons Learned from Implementing a Key-Value Store with Raft
ScyllaDB
 
Making Python 100x Faster with Less Than 100 Lines of Rust
Making Python 100x Faster with Less Than 100 Lines of RustMaking Python 100x Faster with Less Than 100 Lines of Rust
Making Python 100x Faster with Less Than 100 Lines of Rust
ScyllaDB
 
A Deep Dive Into Concurrent React by Matheus Albuquerque
A Deep Dive Into Concurrent React by Matheus AlbuquerqueA Deep Dive Into Concurrent React by Matheus Albuquerque
A Deep Dive Into Concurrent React by Matheus Albuquerque
ScyllaDB
 
The Latency Stack: Discovering Surprising Sources of Latency
The Latency Stack: Discovering Surprising Sources of LatencyThe Latency Stack: Discovering Surprising Sources of Latency
The Latency Stack: Discovering Surprising Sources of Latency
ScyllaDB
 

More from ScyllaDB (20)

Unconventional Methods to Identify Bottlenecks in Low-Latency and High-Throug...
Unconventional Methods to Identify Bottlenecks in Low-Latency and High-Throug...Unconventional Methods to Identify Bottlenecks in Low-Latency and High-Throug...
Unconventional Methods to Identify Bottlenecks in Low-Latency and High-Throug...
 
Mitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing SystemsMitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing Systems
 
Measuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at TwitterMeasuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at Twitter
 
Architecting a High-Performance (Open Source) Distributed Message Queuing Sys...
Architecting a High-Performance (Open Source) Distributed Message Queuing Sys...Architecting a High-Performance (Open Source) Distributed Message Queuing Sys...
Architecting a High-Performance (Open Source) Distributed Message Queuing Sys...
 
Noise Canceling RUM by Tim Vereecke, Akamai
Noise Canceling RUM by Tim Vereecke, AkamaiNoise Canceling RUM by Tim Vereecke, Akamai
Noise Canceling RUM by Tim Vereecke, Akamai
 
Running a Go App in Kubernetes: CPU Impacts
Running a Go App in Kubernetes: CPU ImpactsRunning a Go App in Kubernetes: CPU Impacts
Running a Go App in Kubernetes: CPU Impacts
 
Always-on Profiling of All Linux Threads, On-CPU and Off-CPU, with eBPF & Con...
Always-on Profiling of All Linux Threads, On-CPU and Off-CPU, with eBPF & Con...Always-on Profiling of All Linux Threads, On-CPU and Off-CPU, with eBPF & Con...
Always-on Profiling of All Linux Threads, On-CPU and Off-CPU, with eBPF & Con...
 
Performance Budgets for the Real World by Tammy Everts
Performance Budgets for the Real World by Tammy EvertsPerformance Budgets for the Real World by Tammy Everts
Performance Budgets for the Real World by Tammy Everts
 
Using Libtracecmd to Analyze Your Latency and Performance Troubles
Using Libtracecmd to Analyze Your Latency and Performance TroublesUsing Libtracecmd to Analyze Your Latency and Performance Troubles
Using Libtracecmd to Analyze Your Latency and Performance Troubles
 
Reducing P99 Latencies with Generational ZGC
Reducing P99 Latencies with Generational ZGCReducing P99 Latencies with Generational ZGC
Reducing P99 Latencies with Generational ZGC
 
5 Hours to 7.7 Seconds: How Database Tricks Sped up Rust Linting Over 2000X
5 Hours to 7.7 Seconds: How Database Tricks Sped up Rust Linting Over 2000X5 Hours to 7.7 Seconds: How Database Tricks Sped up Rust Linting Over 2000X
5 Hours to 7.7 Seconds: How Database Tricks Sped up Rust Linting Over 2000X
 
How Netflix Builds High Performance Applications at Global Scale
How Netflix Builds High Performance Applications at Global ScaleHow Netflix Builds High Performance Applications at Global Scale
How Netflix Builds High Performance Applications at Global Scale
 
Conquering Load Balancing: Experiences from ScyllaDB Drivers
Conquering Load Balancing: Experiences from ScyllaDB DriversConquering Load Balancing: Experiences from ScyllaDB Drivers
Conquering Load Balancing: Experiences from ScyllaDB Drivers
 
Interaction Latency: Square's User-Centric Mobile Performance Metric
Interaction Latency: Square's User-Centric Mobile Performance MetricInteraction Latency: Square's User-Centric Mobile Performance Metric
Interaction Latency: Square's User-Centric Mobile Performance Metric
 
How to Avoid Learning the Linux-Kernel Memory Model
How to Avoid Learning the Linux-Kernel Memory ModelHow to Avoid Learning the Linux-Kernel Memory Model
How to Avoid Learning the Linux-Kernel Memory Model
 
99.99% of Your Traces are Trash by Paige Cruz
99.99% of Your Traces are Trash by Paige Cruz99.99% of Your Traces are Trash by Paige Cruz
99.99% of Your Traces are Trash by Paige Cruz
 
Square's Lessons Learned from Implementing a Key-Value Store with Raft
Square's Lessons Learned from Implementing a Key-Value Store with RaftSquare's Lessons Learned from Implementing a Key-Value Store with Raft
Square's Lessons Learned from Implementing a Key-Value Store with Raft
 
Making Python 100x Faster with Less Than 100 Lines of Rust
Making Python 100x Faster with Less Than 100 Lines of RustMaking Python 100x Faster with Less Than 100 Lines of Rust
Making Python 100x Faster with Less Than 100 Lines of Rust
 
A Deep Dive Into Concurrent React by Matheus Albuquerque
A Deep Dive Into Concurrent React by Matheus AlbuquerqueA Deep Dive Into Concurrent React by Matheus Albuquerque
A Deep Dive Into Concurrent React by Matheus Albuquerque
 
The Latency Stack: Discovering Surprising Sources of Latency
The Latency Stack: Discovering Surprising Sources of LatencyThe Latency Stack: Discovering Surprising Sources of Latency
The Latency Stack: Discovering Surprising Sources of Latency
 

Recently uploaded

Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
Safe Software
 
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
jackson110191
 
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdfPigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions
 
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
Liveplex
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Mydbops
 
20240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 202420240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 2024
Matthew Sinclair
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
UiPathCommunity
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
Neo4j
 
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
Yevgen Sysoyev
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
HackersList
 
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
Enterprise Wired
 
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Bert Blevins
 
The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
Larry Smarr
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
Stephanie Beckett
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Erasmo Purificato
 
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx
Stephanie Beckett
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
shanthidl1
 
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Chris Swan
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
SynapseIndia
 
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
KAMAL CHOUDHARY
 

Recently uploaded (20)

Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
 
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
 
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdfPigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdf
 
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
 
20240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 202420240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 2024
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
 
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
 
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
 
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
 
The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
 
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
 
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
 
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
 

Scylla Summit 2017: How to Use Gocql to Execute Queries and What the Driver Does That You Can’t See

  • 1. PRESENTATION TITLE ON ONE LINE AND ON TWO LINES First and last name Position, company HOW TO USE GOCQL TO EXECUTE QUERIES AND WHAT THE DRIVER DOES THAT YOU CAN’T SEE Chris Bannister
  • 2. PRESENTATION TITLE ON ONE LINE AND ON TWO LINES First and last name Position, company CHRIS BANNISTER 2 Software Engineer by day, Cassandra driver developer at night. Been programming in Go for over 4 years and working on GoCQL for 3. Know far too much about Cassandra drivers.
  • 3. PRESENTATION TITLE ON ONE LINE AND ON TWO LINES First and last name Position, company OUTLINE ▪ What is GoCQL ▪ Connecting to a cluster ▪ Querying ▪ Async querying ▪ Other libraries 3
  • 4. PRESENTATION TITLE ON ONE LINE AND ON TWO LINES First and last name Position, company WHY USE GO ▪ Simple concurrency primitives ▪ First class functions ▪ Strongly typed ▪ Garbage collected 4
  • 5. PRESENTATION TITLE ON ONE LINE AND ON TWO LINES First and last name Position, company WHAT IS GOCQL ▪ GoCQL is a driver for Cassandra & Scylla written in Go ▪ Supports all versions of Cassandra >= 2.0 ▪ Supports nearly all the features of the Java driver ▪ Idiomatic Go API ▪ Has rich supporting libraries with more features 5
  • 6. PRESENTATION TITLE ON ONE LINE AND ON TWO LINES First and last name Position, company INSTALLING ▪ go get github.com/gocql/gocql ▪ Docs at https://godoc.org/github.com/gocql/gocql 6
  • 7. PRESENTATION TITLE ON ONE LINE AND ON TWO LINES First and last name Position, company CONNECTING TO A CLUSTER 7 conf := gocql.NewCluster(“10.0.12.83“, “10.0.13.04”, “10.0.14.12”) conf.PoolConfig.HostSelectionPolicy = gocql.TokenAwareHostPolicy(gocql.RoundRobinHostPolicy()) conf.Compressor = &gocql.SnappyCompressor{} conf.RetryPolicy = &gocql.ExponentialBackoffRetryPolicy{NumRetries: 3} conf.Consistency = gocql.LocalQuorum db, err := conf.CreateSession() if err != nil { // unable to connect }
  • 8. PRESENTATION TITLE ON ONE LINE AND ON TWO LINES First and last name Position, company CONNECTING TO A CLUSTER 8 conf := gocql.NewCluster(“10.0.12.83“, “10.0.13.04”, “10.0.14.12”) conf.PoolConfig.HostSelectionPolicy = gocql.TokenAwareHostPolicy(gocql.RoundRobinHostPolicy()) conf.Compressor = &gocql.SnappyCompressor{} conf.RetryPolicy = &gocql.ExponentialBackoffRetryPolicy{NumRetries: 3} conf.Consistency = gocql.LocalQuorum db, err := conf.CreateSession() if err != nil { // unable to connect }
  • 9. PRESENTATION TITLE ON ONE LINE AND ON TWO LINES First and last name Position, company CONNECTING TO A CLUSTER 9 conf := gocql.NewCluster(“10.0.12.83“, “10.0.13.04”, “10.0.14.12”) conf.PoolConfig.HostSelectionPolicy = gocql.TokenAwareHostPolicy(gocql.RoundRobinHostPolicy()) conf.Compressor = &gocql.SnappyCompressor{} conf.RetryPolicy = &gocql.ExponentialBackoffRetryPolicy{NumRetries: 3} conf.Consistency = gocql.LocalQuorum db, err := conf.CreateSession() if err != nil { // unable to connect }
  • 10. PRESENTATION TITLE ON ONE LINE AND ON TWO LINES First and last name Position, company CONNECTING TO A CLUSTER 10 conf := gocql.NewCluster(“10.0.12.83“, “10.0.13.04”, “10.0.14.12”) conf.PoolConfig.HostSelectionPolicy = gocql.TokenAwareHostPolicy(gocql.RoundRobinHostPolicy()) conf.Compressor = &gocql.SnappyCompressor{} conf.RetryPolicy = &gocql.ExponentialBackoffRetryPolicy{NumRetries: 3} conf.Consistency = gocql.LocalQuorum db, err := conf.CreateSession() if err != nil { // unable to connect }
  • 11. PRESENTATION TITLE ON ONE LINE AND ON TWO LINES First and last name Position, company CONNECTING TO A CLUSTER 11 conf := gocql.NewCluster(“10.0.12.83“, “10.0.13.04”, “10.0.14, 12”) conf.PoolConfig.HostSelectionPolicy = gocql.TokenAwareHostPolicy(gocql.RoundRobinHostPolicy()) conf.Compressor = &gocql.SnappyCompressor{} conf.RetryPolicy = &gocql.ExponentialBackoffRetryPolicy{NumRetries: 3} conf.Consistency = gocql.LocalQuorum db, err := conf.CreateSession() if err != nil { // unable to connect }
  • 12. PRESENTATION TITLE ON ONE LINE AND ON TWO LINES First and last name Position, company CONNECTING TO A CLUSTER ▪ Good defaults for production config o Tailor to your environment ▪ Use a single session per application o Session is like a connection pool, with extra features ▪ Supplied hosts only used to discover rest of the cluster o Ensure cluster IP addresses are configured correctly! 12
  • 13. PRESENTATION TITLE ON ONE LINE AND ON TWO LINES First and last name Position, company WHAT HAPPENED BEHIND THE SCENES ▪ Discover protocol version o Pretty hacky, Cassandra please fix ▪ Discover cluster topology o Addresses advertised by cluster take priority over those supplied ▪ Create connection pools to all discovered hosts ▪ Register for host and schema change events 13
  • 14. PRESENTATION TITLE ON ONE LINE AND ON TWO LINES First and last name Position, company QUERYING AND ITERATING 14 type TraceSpan struct { ID gocql.UUID `cql:"id"` StartTime time.Time `cql:"start_time"` Duration time.Duration `cql:"duration"` } query := db.Query("SELECT span FROM traces WHERE service_name=?", "my-service") sc := query().Iter().Scanner()
  • 15. PRESENTATION TITLE ON ONE LINE AND ON TWO LINES First and last name Position, company QUERYING AND ITERATING 15 type TraceSpan struct { ID gocql.UUID `cql:"id"` StartTime time.Time `cql:"start_time"` Duration time.Duration `cql:"duration"` } query := db.Query("SELECT span FROM traces WHERE service_name=?", "my-service") sc := query.Iter().Scanner()
  • 16. PRESENTATION TITLE ON ONE LINE AND ON TWO LINES First and last name Position, company QUERYING AND ITERATING 16 type TraceSpan struct { ID gocql.UUID `cql:"id"` StartTime time.Time `cql:"start_time"` Duration time.Duration `cql:"duration"` } query := db.Query("SELECT span FROM traces WHERE service_name=?", "my-service") sc := query.Iter().Scanner()
  • 17. PRESENTATION TITLE ON ONE LINE AND ON TWO LINES First and last name Position, company QUERYING AND ITERATING 17 var spans []TraceSpan for sc.Next() { var span TraceSpan if err := sc.Scan(&span); err != nil { return err } spans = append(spans, span) } if err := sc.Err(); err != nil { return err }
  • 18. PRESENTATION TITLE ON ONE LINE AND ON TWO LINES First and last name Position, company QUERYING AND ITERATING 18 var spans []TraceSpan for sc.Next() { var span TraceSpan if err := sc.Scan(&span); err != nil { return err } spans = append(spans, span) } if err := sc.Err(); err != nil { return err }
  • 19. PRESENTATION TITLE ON ONE LINE AND ON TWO LINES First and last name Position, company QUERYING AND ITERATING ▪ The driver automatically prefetches and pages results ▪ Check the error at the end ▪ Close iterators to let them be reused for performance ▪ Query options can be set per query o Will inherit global settings from the session 19
  • 20. PRESENTATION TITLE ON ONE LINE AND ON TWO LINES First and last name Position, company HOW QUERYING WORKS ▪ Pick host + Connection o Token Aware, pick host which owns the data or a replica o Connections can support up to 32k concurrent queries ▪ Prepare query o Cached per host o Required to know how to serialise the query parameters ▪ Serialise all outgoing values ▪ Deserialise results & return to caller ▪ Paginate, handle host errors 20
  • 21. PRESENTATION TITLE ON ONE LINE AND ON TWO LINES First and last name Position, company ASYNC QUERIES IN GO 21
  • 22. PRESENTATION TITLE ON ONE LINE AND ON TWO LINES First and last name Position, company ASYNC QUERIES IN GO 22 ch := make(chan TraceSpan, 10) go func() { for sc.Next() { var span TraceSpan if err := sc.Scan(&span); err != nil { // handle error } ch <- span } if err := sc.Err(); err != nil { // handle error } }()
  • 23. PRESENTATION TITLE ON ONE LINE AND ON TWO LINES First and last name Position, company ASYNC QUERIES IN GO ▪ Gocql only provides a synchronous interface ▪ Trivial to adapt to be asynchronous o Channels and Goroutines! o Take care with errors ▪ Under the hood, all queries execute concurrently 23
  • 24. PRESENTATION TITLE ON ONE LINE AND ON TWO LINES First and last name Position, company LIBRARIES USING GOCQL ▪ Gocql provides a low level and fully usable interface to Cassandra ▪ Other features available outside of the driver 24
  • 25. PRESENTATION TITLE ON ONE LINE AND ON TWO LINES First and last name Position, company LIBRARIES USING GOCQL ▪ gocqlx is a Gocql extension that automates data binding, adds named queries support, provides flexible query builders o Thanks Scylla! ▪ gocassa provides query building, adds data binding, and provides easy-to-use "recipe" tables for common query use-cases ▪ journey is a migration tool with Cassandra support 25
  • 26. PRESENTATION TITLE ON ONE LINE AND ON TWO LINES First and last name Position, company THANK YOU c.bannister@gmail.com @ChrisBannister Stay in touch! Questions?