A deep dive and comparison of Python drivers for Cassandra and Scylla
Alexys Jacob (~alexys) |
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.
Having a minimal knowledge of what Cassandra and a consistent hash ring are.
Slides available here: https://ep2020.europython.eu/media/conference/slides/a-deep-dive-and-comparison-of-python-drivers-for-cassandra-and-scylla.pdf
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/
See all my talks here: https://www.ultrabug.fr/talks/