Materialized Views enhance the way Scylla users access their data, pushing the burden to the server instead of the application for processing queries. I sat down with Duarte Nunes of ScyllaDB to learn more about Materialized Views and his upcoming talk at Scylla Summit 2017.
Please tell us about yourself and what you do at ScyllaDB?
I’m a Software Engineer working on Scylla. I have a background in concurrent programming, distributed systems, and low-latency software. Prior to ScyllaDB, I was working on distributed network virtualization.
What will you be talking about at Scylla Summit 2017?
I’ll be talking about Materialized Views and its implementation in Scylla. These are tables that store, redundantly, a subset of the columns from a given base table, and allow different queries to be performed on that data set.
What type of audience will be interested in your talk?
Mainly developers interested in distributed algorithms and/or the inner workings of Scylla.
Can you please tell me more about your talk?
Supporting Materialized Views in a multi-master and eventually consistent store such as Scylla presents some challenges. In the absence of a single master server serializing updates to each partition, we need a decentralized way of incrementally maintaining Materialized Views. The solution mustn’t negatively affect cluster availability and request latency, as these are important characteristics of Scylla.
Further design constraints are endemic to the nature of Materialized Views themselves. A view table must be consistent with the underlying base table such that rows in the base will eventually appear in the view and rows absent from the base will eventually be absent from the view as well. In other words, an update to a base table must reliably propagate to the view table.
Due to Scylla’s data model, it is also necessary to do a read from the base table before preparing and propagating the view update. This in turns leads to issues with concurrent updates.
Thus, a full solution to supporting Materialized Views includes a mechanism for update propagation, solves consistency issues between base and view tables, and addresses concurrent updates by an algorithm that works locally and provides emergent safety.
The talk will cover the design decisions involved in our implementation and touch upon some of its details.
Where can we learn more information about your talk?
Please check out the blog post that we did for more information on Materialized Views.
How can the people get in touch with you?
The best way to get in touch with me is through our public Slack and mailing list located on our site. There’s where I spend most of my time interacting with people.
Thank you very much, Duarte. We can not wait to see your talk in person and learn more. If you want to attend Scylla Summit 2017 and enjoy more talks like this one, please register here.
Scylla Summit is taking place in San Francisco, CA on October 24-25. Check out the current agenda on our website to learn about the rest of the talks—including technical talks from the Scylla team, the Scylla roadmap, and a hands-on workshop where you’ll learn how to get the most out of your Scylla cluster.