A deep dive and comparison of Python drivers for Cassandra and Scylla

Alexys Jacob

Databases NoSQL Python 3 Scaling

See in schedule

This talk will explain the thread-per-core data architecture of Scylla and
detail how we implemented "shard-awareness" in the Cassandra Python driver
which allows to route queries down to the right CPU!

Cassandra's and Scylla's architecture and topology rely on the usage of
a consistent token ring to distribute their data evenly on the cluster.

The cassandra-python driver is used widely to interact with those NoSQL
databases. It implements connection pools and token awareness allowing the
driver to route queries to the right node based on its knowledge of where the
data is.

But Scylla goes one step further as it also dedicates CPUs to a smaller portion
of the data on each node (called shards). This means that **we can route CQL
queries not only to the right node but to the right CPU**!

This talk will give implementation details on how we have done it.

Talk audience requirements: having a minimal knowledge of what Cassandra and
a consistent hash ring are.

Type: Talk (45 mins); Python level: Advanced; Domain level: Advanced


Alexys Jacob

Numberly

CTO at Numberly, Open-Source contributor, Gentoo Linux developer, PSF contributing member.

I’ve been giving talks for a few years now, mostly to share my experience on architecture design, distributed systems, fault tolerance and scaling Python.

Numberly is a Marketing Technologist that helps its customers leverage the value of their data using all the digital communication channels available. We own and operate our infrastructure and are working on building large scale and highly available global architectures and applications. Our main development language to achieve this in all this variety of use cases is Python!

As a Gentoo Linux developer I focus mainly on clustering and NoSQL related packages. I'm a packager of various Open Source projects such as uwsgi, mongodb, consul, rabbitmq, keepalived, scylla...

You can catch me around with my handle: @ultrabug
Blog: https://www.ultrabug.fr/