This talk will walk through the journey of Cassandra at Netflix. It will go into 3-4 specific use cases where Cassandra stands out than the rest of the data-stores and is being used in Netflix, bringing great viewing experience to all customers globally. Roopa will go into the specifics of the data model being used and where Cassandra stands out with its strengths and which places where they learnt the hard way. Roopa will then share some of the best practices and self service platform being used for Cassandra to cater to their developer needs.
27. Current Membership data model
Current [soon to be old model]
1. Thrift based
2. Schema less data model
3. One account info - results in multiple reads
[from multiple nodes]
28. Membership data model - evolved
New data model
1. CQL based
2. Well defined schema
3. A few UDTs for schema flexibility
4. One account with multiple profiles - just one call
29. Membership data model - evolved
New data model
1. Primary key definition
a. Account_id -> part key and
b. profile_id -> clustering column
2. Partition size <= 64k for all the profile
CQL - Table definition
40. Global Ratings - I
Two main usage -
1. Full sweep of advisories and rating
countrywide
2. Get advisories and rating for a
given movie_id, country_code
47. ● Slow Rate of ingestion
● Slow reads
● On ingestion need to parse message and build
index
● Data for each request not continuous on disk
Elasticsearch Issues
54. Before:
1. Users sent requests via email, Slack, or JIRA tickets.
2. CDE on-call translated their requirements into appropriate resource
requirements, and kicked off automation to create clusters.
3. Once created, CDE on-call notified users via email, including information
about how to access the cluster, set up security group rules, useful links,
etc.
Elasticsearch Cluster Creation
55. * Cost shown is not real, for illustration only.
58. Goals:
1. Allow Repairs to be enabled/disabled quickly for a cluster.
2. Allow fine-tuning of table-specific settings for subrange repairs,
parallelism, etc.
Cassandra Repairs
59.
60.
61. Goals:
1. Allow Backups to be enabled/disabled quickly for a cluster.
2. Allow Backup schedules, retention periods, S3 buckets/locations, etc. to
be customized.
Cluster Backups
65. Goal:
Provide cluster owners insight into the costs of running their clusters so that
they can make more informed choices/tradeoffs with respect to efficiency in
resource usage.
Cluster Costs
67. Goal:
Aggregate and display on-instance stats/metadata for all nodes in a cluster,
including:
○ Datastore versions
○ Sidecar versions
○ OS versions
○ AWS instance types
○ etc.
Node Inventory
83. ▪ Unify access to our customer’s persisted data
▪ Codify the CDE team’s best-practices
▪ Provide cluster-level ACLs to avoid unnecessary
access
▪ Provide a paved path for common database
operations
▪ Work at Netflix-scale
Netflix Data Explorer