SlideShare a Scribd company logo
1 of 36
Beyond Jurassic NoSQL:
New Designs for a New
World
Avishai Ish-Shalom (@nukemberg)
~ whoami
2
Avishai Ish-Shalom
+ 17 years in the industry
+ On both the ops and dev sides
+ Wix, Aleph VC, ScyllaDB alumni
Databases are old
3
Current RDBMS (Oracle, Postgres et-al) ~ 30 years old
Actually, the architecture and design are 40 years old
For reference:
+ AWS launched in 2006, GCP 2013
+ iPhone launched in 2007
+ Facebook launched 2004
Agenda
■ Operating environment changes
■ Business requirements changes
■ The architecture gap of legacy databases
■ New designs for a new world
4
Part I: Partly
cloudy
The weather changed
5
+ On premises datacenters
+ Manually managed servers
+ Enterprise grade hardware
+ Fancy SAN with RAID, battery backed cache, etc
+ Dedicated networks (e.g. RAC interconnect)
+ Single active location
The DC, circa 2002
6
+ Cloud
+ Automatically managed servers
+ Commodity hardware, often virtualized
+ Local storage or distributed Software Defined Storage
+ Common networks, SDN
+ Multi region, multi cloud, global infra
Fast forward to 2022
7
Oh, and CPU core:node 1 → 100
Let’s not forget the hardware
8
Change 2002 → 2022 Latency (ratio) Bandwidth (ratio)
RAM:storage 1E6 → 1E3 40 → 2
RAM:Network 2E5 → 1E5 40 → 1
Network:storage 20 → 0.1 2/3 → 4
+ Virtualized hardware
+ Virtualized network
+ Virtualized storage
+ Short provision time
+ Cost hedging
+ Statistical failure in large numbers
Server uptime: years (2002) → months (2022), days/hours for app servers
Dynamic topologies
9
+ Cloud compute nodes are ephemeral (yes, that’s a good thing!)
+ The cloud provides replicated storage
+ Node reprovisioning == Really hard reboot
+ Easy to change the number of nodes
+ But can you change it?
+ What about node configuration?
The ephemeral node conundrum
10
When replicas replicate
11
“disk” “disk”
Cloud storage servers
Multiple replication layers… Why do we even care?
+ Disjoint failure domains (what AZs are used?)
+ Performance issues
+ Debuggability
If a node failed, do we reboot or fail over?
The business environment
changed too
12
The world went online
13
+ Number of of users increased - still growing, but will stabilize
+ But users do more
+ With more devices
+ And the devices also want service
More concurrency, more throughput, more data
Digital everything
14
+ Users move globally
+ Users interact globally
+ Through a global infrastructure
+ That has local presence
Digital everywhere
15
You know what hasn’t
changed? Speed of light!
16
Ping time SF → Tokyo: ~100ms (on a good day)
+ Local PoP is no longer optional
+ Data intensive software (e.g. ML/AI) → local DC no longer optional
+ Local data governance (e.g. GDPR/CCPA) → local DC mandatory
Global market, local speeds
17
+ 1000x more end users
+ 1000x more CPUs
+ 1000x more clients, connections
Concurrency increased
18
Part II: How do we
scale?
A crash course in scalability
19
The Universal Scalability Law
20
Retrograde
scaling -
coordination,
consensus
Diminishing
returns -
locks, shared
resources
Warp space
21
Sharding Replication
datum X
datum X
datum Z
datum Y
Disjoint datasets
+ Scale reads/writes
+ Scale dataset
+ Non uniform load
+ Share nothing
+ No joins
+ No transactions
Sharding
22
All replicas are equivalent
+ Scale reads only
+ Requires coordination on write
+ Improve availability
Replication
Warp time
23
op 1
op 2
op 3
op 4
…
…
op 413138
op 413139
op 413140
op 1
op 2
op 3
op 4
…
…
op 413138
op 1
op 2
op 3
op 4
…
…
op 413138
op 413139
op 413140
op 1
op 3
op 2
…
…
op 413140
op 4
op 413138
Lag Re-order
Async replication
+ Limited parallelism (1 per shard)
+ Deterministic operation results
+ Queuing latency penalty
Lag
24
No coupling between operations
+ No head-of-line blocking
+ Infinite parallelism
+ Resilient, low latency
+ Application must reason operation
results
Re-order
The Universal Scalability Law
25
Sync
replication,
Cross shard
transactions
Replication
with lag
Part III: Towards
a modern DB
26
27
+ Dynamic topology ← ephemeral cloud nodes
+ Server/AZ failure domains ← no one cares about disks
+ Read, write scalability ← user count will only grow
+ CPU scalability ← CPUs ain’t getting faster
+ Geo replication ← speed of light ain’t changing
+ Support high concurrency ← more CPUs, clients
+ Automatic node configuration, maintenance ← node count will only grow
+ Automatic cluster management
What do we want from a modern DB?
+ Assumed physical, monolithic servers
+ On failure, reboot and recover
+ Often required special hardware
+ Stateful connections → low concurrency
+ CPU scaling? Locks, locks, locks
+ Replication added as an afterthought
Early 2000s: RDBMS
28
+ Native sharding, async replication
+ Shard coupled to specific nodes
+ No granularity in shard size
+ Manual cluster management
+ Static topology
+ Small clusters only
+ CPU scaling? Locks, locks, locks
2009: MongoDB
29
+ Native sharding, async replication, re-ordering
+ Small shards
+ Decoupled shards from servers
+ Dynamic topology
+ Cluster changes still painful though
+ Large clusters
+ Geo replication
+ CPU scaling? Locks, locks, locks
2013: Cassandra 1.2
30
+ Native sharding, async replication, re-ordering
+ Small shards
+ Decoupled shards from servers
+ Dynamic topology
+ Cluster changes still somewhat painful
+ Large clusters
+ Geo replication
+ CPU scaling: shard-per-core
+ Automatic node configuration
2016: ScyllaDB 1.0
31
+ Native sharding, semi-sync replication
+ Dynamic shards
+ Decoupled shards from servers
+ Dynamic topology
+ Cluster changes still somewhat painful
+ Large clusters
+ Geo replication
+ CPU scaling: Locks, locks, locks
+ ACID Transactions!
2015: CockroachDB
32
+ Native sharding, async replication, re-ordering
+ Dynamic shard size (AKA tablets)
+ Decoupled shards from servers
+ Dynamic topology
+ Large clusters
+ Geo replication
+ CPU scaling: shard-per-core
+ Automatic node configuration
2022: ScyllaDB 5.0
33
It’s ok!
+ Application developers find re-ordering hard
+ Modern event based architectures enforce order (e.g. Kafka)
+ Network throughput improved 40x since 2002
+ Parallelization through shards
+ Dynamic shard sizing helps
Wait, no re-ordering?
34
+ Stateless client protocols
+ HTTP/3 would be great!
+ Distributed tracing support
+ Burst capacity
+ Object storage support
+ Geo policies
My personal wishlist
35
Thank you
for joining us today.
@scylladb scylladb/
slack.scylladb.com
@scylladb company/scylladb/
scylladb/

More Related Content

Similar to Beyond Jurassic NoSQL: New Designs for a New World

ZFS for Databases
ZFS for DatabasesZFS for Databases
ZFS for Databases
ahl0003
 
UKOUG, Lies, Damn Lies and I/O Statistics
UKOUG, Lies, Damn Lies and I/O StatisticsUKOUG, Lies, Damn Lies and I/O Statistics
UKOUG, Lies, Damn Lies and I/O Statistics
Kyle Hailey
 
Apache Spark on Supercomputers: A Tale of the Storage Hierarchy with Costin I...
Apache Spark on Supercomputers: A Tale of the Storage Hierarchy with Costin I...Apache Spark on Supercomputers: A Tale of the Storage Hierarchy with Costin I...
Apache Spark on Supercomputers: A Tale of the Storage Hierarchy with Costin I...
Databricks
 
Apache Spark on Supercomputers: A Tale of the Storage Hierarchy with Costin I...
Apache Spark on Supercomputers: A Tale of the Storage Hierarchy with Costin I...Apache Spark on Supercomputers: A Tale of the Storage Hierarchy with Costin I...
Apache Spark on Supercomputers: A Tale of the Storage Hierarchy with Costin I...
Databricks
 

Similar to Beyond Jurassic NoSQL: New Designs for a New World (20)

Scylla Summit 2022: How ScyllaDB Powers This Next Tech Cycle
Scylla Summit 2022: How ScyllaDB Powers This Next Tech CycleScylla Summit 2022: How ScyllaDB Powers This Next Tech Cycle
Scylla Summit 2022: How ScyllaDB Powers This Next Tech Cycle
 
How Optimizely (Safely) Maximizes Database Concurrency.pdf
How Optimizely (Safely) Maximizes Database Concurrency.pdfHow Optimizely (Safely) Maximizes Database Concurrency.pdf
How Optimizely (Safely) Maximizes Database Concurrency.pdf
 
Hadoop 3.0 - Revolution or evolution?
Hadoop 3.0 - Revolution or evolution?Hadoop 3.0 - Revolution or evolution?
Hadoop 3.0 - Revolution or evolution?
 
Renegotiating the boundary between database latency and consistency
Renegotiating the boundary between database latency  and consistencyRenegotiating the boundary between database latency  and consistency
Renegotiating the boundary between database latency and consistency
 
How to achieve no compromise performance and availability
How to achieve no compromise performance and availabilityHow to achieve no compromise performance and availability
How to achieve no compromise performance and availability
 
ZFS for Databases
ZFS for DatabasesZFS for Databases
ZFS for Databases
 
UKOUG, Lies, Damn Lies and I/O Statistics
UKOUG, Lies, Damn Lies and I/O StatisticsUKOUG, Lies, Damn Lies and I/O Statistics
UKOUG, Lies, Damn Lies and I/O Statistics
 
Understanding Storage I/O Under Load
Understanding Storage I/O Under LoadUnderstanding Storage I/O Under Load
Understanding Storage I/O Under Load
 
Transforming the Database: Critical Innovations for Performance at Scale
Transforming the Database: Critical Innovations for Performance at ScaleTransforming the Database: Critical Innovations for Performance at Scale
Transforming the Database: Critical Innovations for Performance at Scale
 
Data Grids with Oracle Coherence
Data Grids with Oracle CoherenceData Grids with Oracle Coherence
Data Grids with Oracle Coherence
 
DSD-INT 2017 The use of big data for dredging - De Boer
DSD-INT 2017 The use of big data for dredging - De BoerDSD-INT 2017 The use of big data for dredging - De Boer
DSD-INT 2017 The use of big data for dredging - De Boer
 
Introduction to ClustrixDB
Introduction to ClustrixDBIntroduction to ClustrixDB
Introduction to ClustrixDB
 
Apache Spark on Supercomputers: A Tale of the Storage Hierarchy with Costin I...
Apache Spark on Supercomputers: A Tale of the Storage Hierarchy with Costin I...Apache Spark on Supercomputers: A Tale of the Storage Hierarchy with Costin I...
Apache Spark on Supercomputers: A Tale of the Storage Hierarchy with Costin I...
 
Apache Spark on Supercomputers: A Tale of the Storage Hierarchy with Costin I...
Apache Spark on Supercomputers: A Tale of the Storage Hierarchy with Costin I...Apache Spark on Supercomputers: A Tale of the Storage Hierarchy with Costin I...
Apache Spark on Supercomputers: A Tale of the Storage Hierarchy with Costin I...
 
How to Build a Scylla Database Cluster that Fits Your Needs
How to Build a Scylla Database Cluster that Fits Your NeedsHow to Build a Scylla Database Cluster that Fits Your Needs
How to Build a Scylla Database Cluster that Fits Your Needs
 
Pilot Hadoop Towards 2500 Nodes and Cluster Redundancy
Pilot Hadoop Towards 2500 Nodes and Cluster RedundancyPilot Hadoop Towards 2500 Nodes and Cluster Redundancy
Pilot Hadoop Towards 2500 Nodes and Cluster Redundancy
 
Seattle Scalability Meetup - Ted Dunning - MapR
Seattle Scalability Meetup - Ted Dunning - MapRSeattle Scalability Meetup - Ted Dunning - MapR
Seattle Scalability Meetup - Ted Dunning - MapR
 
Scylla db deck, july 2017
Scylla db deck, july 2017Scylla db deck, july 2017
Scylla db deck, july 2017
 
NoSQL and NewSQL: Tradeoffs between Scalable Performance & Consistency
NoSQL and NewSQL: Tradeoffs between Scalable Performance & ConsistencyNoSQL and NewSQL: Tradeoffs between Scalable Performance & Consistency
NoSQL and NewSQL: Tradeoffs between Scalable Performance & Consistency
 
Nibiru: Building your own NoSQL store
Nibiru: Building your own NoSQL storeNibiru: Building your own NoSQL store
Nibiru: Building your own NoSQL store
 

More from ScyllaDB

More from ScyllaDB (20)

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
What Developers Need to Unlearn for High Performance NoSQL
What Developers Need to Unlearn for High Performance NoSQLWhat Developers Need to Unlearn for High Performance NoSQL
What Developers Need to Unlearn for High Performance NoSQL
 
Low Latency at Extreme Scale: Proven Practices & Pitfalls
Low Latency at Extreme Scale: Proven Practices & PitfallsLow Latency at Extreme Scale: Proven Practices & Pitfalls
Low Latency at Extreme Scale: Proven Practices & Pitfalls
 
Dissecting Real-World Database Performance Dilemmas
Dissecting Real-World Database Performance DilemmasDissecting Real-World Database Performance Dilemmas
Dissecting Real-World Database Performance Dilemmas
 
Beyond Linear Scaling: A New Path for Performance with ScyllaDB
Beyond Linear Scaling: A New Path for Performance with ScyllaDBBeyond Linear Scaling: A New Path for Performance with ScyllaDB
Beyond Linear Scaling: A New Path for Performance with ScyllaDB
 
Dissecting Real-World Database Performance Dilemmas
Dissecting Real-World Database Performance DilemmasDissecting Real-World Database Performance Dilemmas
Dissecting Real-World Database Performance Dilemmas
 
Database Performance at Scale Masterclass: Workload Characteristics by Felipe...
Database Performance at Scale Masterclass: Workload Characteristics by Felipe...Database Performance at Scale Masterclass: Workload Characteristics by Felipe...
Database Performance at Scale Masterclass: Workload Characteristics by Felipe...
 
Database Performance at Scale Masterclass: Database Internals by Pavel Emelya...
Database Performance at Scale Masterclass: Database Internals by Pavel Emelya...Database Performance at Scale Masterclass: Database Internals by Pavel Emelya...
Database Performance at Scale Masterclass: Database Internals by Pavel Emelya...
 
Database Performance at Scale Masterclass: Driver Strategies by Piotr Sarna
Database Performance at Scale Masterclass: Driver Strategies by Piotr SarnaDatabase Performance at Scale Masterclass: Driver Strategies by Piotr Sarna
Database Performance at Scale Masterclass: Driver Strategies by Piotr Sarna
 
Replacing Your Cache with ScyllaDB
Replacing Your Cache with ScyllaDBReplacing Your Cache with ScyllaDB
Replacing Your Cache with ScyllaDB
 
Powering Real-Time Apps with ScyllaDB_ Low Latency & Linear Scalability
Powering Real-Time Apps with ScyllaDB_ Low Latency & Linear ScalabilityPowering Real-Time Apps with ScyllaDB_ Low Latency & Linear Scalability
Powering Real-Time Apps with ScyllaDB_ Low Latency & Linear Scalability
 
7 Reasons Not to Put an External Cache in Front of Your Database.pptx
7 Reasons Not to Put an External Cache in Front of Your Database.pptx7 Reasons Not to Put an External Cache in Front of Your Database.pptx
7 Reasons Not to Put an External Cache in Front of Your Database.pptx
 
Getting the most out of ScyllaDB
Getting the most out of ScyllaDBGetting the most out of ScyllaDB
Getting the most out of ScyllaDB
 
NoSQL Database Migration Masterclass - Session 2: The Anatomy of a Migration
NoSQL Database Migration Masterclass - Session 2: The Anatomy of a MigrationNoSQL Database Migration Masterclass - Session 2: The Anatomy of a Migration
NoSQL Database Migration Masterclass - Session 2: The Anatomy of a Migration
 
NoSQL Database Migration Masterclass - Session 3: Migration Logistics
NoSQL Database Migration Masterclass - Session 3: Migration LogisticsNoSQL Database Migration Masterclass - Session 3: Migration Logistics
NoSQL Database Migration Masterclass - Session 3: Migration Logistics
 
NoSQL Data Migration Masterclass - Session 1 Migration Strategies and Challenges
NoSQL Data Migration Masterclass - Session 1 Migration Strategies and ChallengesNoSQL Data Migration Masterclass - Session 1 Migration Strategies and Challenges
NoSQL Data Migration Masterclass - Session 1 Migration Strategies and Challenges
 
ScyllaDB Virtual Workshop
ScyllaDB Virtual WorkshopScyllaDB Virtual Workshop
ScyllaDB Virtual Workshop
 
DBaaS in the Real World: Risks, Rewards & Tradeoffs
DBaaS in the Real World: Risks, Rewards & TradeoffsDBaaS in the Real World: Risks, Rewards & Tradeoffs
DBaaS in the Real World: Risks, Rewards & Tradeoffs
 
Build Low-Latency Applications in Rust on ScyllaDB
Build Low-Latency Applications in Rust on ScyllaDBBuild Low-Latency Applications in Rust on ScyllaDB
Build Low-Latency Applications in Rust on ScyllaDB
 
NoSQL Data Modeling 101
NoSQL Data Modeling 101NoSQL Data Modeling 101
NoSQL Data Modeling 101
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 

Beyond Jurassic NoSQL: New Designs for a New World

  • 1. Beyond Jurassic NoSQL: New Designs for a New World Avishai Ish-Shalom (@nukemberg)
  • 2. ~ whoami 2 Avishai Ish-Shalom + 17 years in the industry + On both the ops and dev sides + Wix, Aleph VC, ScyllaDB alumni
  • 3. Databases are old 3 Current RDBMS (Oracle, Postgres et-al) ~ 30 years old Actually, the architecture and design are 40 years old For reference: + AWS launched in 2006, GCP 2013 + iPhone launched in 2007 + Facebook launched 2004
  • 4. Agenda ■ Operating environment changes ■ Business requirements changes ■ The architecture gap of legacy databases ■ New designs for a new world 4
  • 5. Part I: Partly cloudy The weather changed 5
  • 6. + On premises datacenters + Manually managed servers + Enterprise grade hardware + Fancy SAN with RAID, battery backed cache, etc + Dedicated networks (e.g. RAC interconnect) + Single active location The DC, circa 2002 6
  • 7. + Cloud + Automatically managed servers + Commodity hardware, often virtualized + Local storage or distributed Software Defined Storage + Common networks, SDN + Multi region, multi cloud, global infra Fast forward to 2022 7
  • 8. Oh, and CPU core:node 1 → 100 Let’s not forget the hardware 8 Change 2002 → 2022 Latency (ratio) Bandwidth (ratio) RAM:storage 1E6 → 1E3 40 → 2 RAM:Network 2E5 → 1E5 40 → 1 Network:storage 20 → 0.1 2/3 → 4
  • 9. + Virtualized hardware + Virtualized network + Virtualized storage + Short provision time + Cost hedging + Statistical failure in large numbers Server uptime: years (2002) → months (2022), days/hours for app servers Dynamic topologies 9
  • 10. + Cloud compute nodes are ephemeral (yes, that’s a good thing!) + The cloud provides replicated storage + Node reprovisioning == Really hard reboot + Easy to change the number of nodes + But can you change it? + What about node configuration? The ephemeral node conundrum 10
  • 11. When replicas replicate 11 “disk” “disk” Cloud storage servers Multiple replication layers… Why do we even care? + Disjoint failure domains (what AZs are used?) + Performance issues + Debuggability If a node failed, do we reboot or fail over?
  • 13. The world went online 13
  • 14. + Number of of users increased - still growing, but will stabilize + But users do more + With more devices + And the devices also want service More concurrency, more throughput, more data Digital everything 14
  • 15. + Users move globally + Users interact globally + Through a global infrastructure + That has local presence Digital everywhere 15
  • 16. You know what hasn’t changed? Speed of light! 16
  • 17. Ping time SF → Tokyo: ~100ms (on a good day) + Local PoP is no longer optional + Data intensive software (e.g. ML/AI) → local DC no longer optional + Local data governance (e.g. GDPR/CCPA) → local DC mandatory Global market, local speeds 17
  • 18. + 1000x more end users + 1000x more CPUs + 1000x more clients, connections Concurrency increased 18
  • 19. Part II: How do we scale? A crash course in scalability 19
  • 20. The Universal Scalability Law 20 Retrograde scaling - coordination, consensus Diminishing returns - locks, shared resources
  • 21. Warp space 21 Sharding Replication datum X datum X datum Z datum Y
  • 22. Disjoint datasets + Scale reads/writes + Scale dataset + Non uniform load + Share nothing + No joins + No transactions Sharding 22 All replicas are equivalent + Scale reads only + Requires coordination on write + Improve availability Replication
  • 23. Warp time 23 op 1 op 2 op 3 op 4 … … op 413138 op 413139 op 413140 op 1 op 2 op 3 op 4 … … op 413138 op 1 op 2 op 3 op 4 … … op 413138 op 413139 op 413140 op 1 op 3 op 2 … … op 413140 op 4 op 413138 Lag Re-order
  • 24. Async replication + Limited parallelism (1 per shard) + Deterministic operation results + Queuing latency penalty Lag 24 No coupling between operations + No head-of-line blocking + Infinite parallelism + Resilient, low latency + Application must reason operation results Re-order
  • 25. The Universal Scalability Law 25 Sync replication, Cross shard transactions Replication with lag
  • 26. Part III: Towards a modern DB 26
  • 27. 27 + Dynamic topology ← ephemeral cloud nodes + Server/AZ failure domains ← no one cares about disks + Read, write scalability ← user count will only grow + CPU scalability ← CPUs ain’t getting faster + Geo replication ← speed of light ain’t changing + Support high concurrency ← more CPUs, clients + Automatic node configuration, maintenance ← node count will only grow + Automatic cluster management What do we want from a modern DB?
  • 28. + Assumed physical, monolithic servers + On failure, reboot and recover + Often required special hardware + Stateful connections → low concurrency + CPU scaling? Locks, locks, locks + Replication added as an afterthought Early 2000s: RDBMS 28
  • 29. + Native sharding, async replication + Shard coupled to specific nodes + No granularity in shard size + Manual cluster management + Static topology + Small clusters only + CPU scaling? Locks, locks, locks 2009: MongoDB 29
  • 30. + Native sharding, async replication, re-ordering + Small shards + Decoupled shards from servers + Dynamic topology + Cluster changes still painful though + Large clusters + Geo replication + CPU scaling? Locks, locks, locks 2013: Cassandra 1.2 30
  • 31. + Native sharding, async replication, re-ordering + Small shards + Decoupled shards from servers + Dynamic topology + Cluster changes still somewhat painful + Large clusters + Geo replication + CPU scaling: shard-per-core + Automatic node configuration 2016: ScyllaDB 1.0 31
  • 32. + Native sharding, semi-sync replication + Dynamic shards + Decoupled shards from servers + Dynamic topology + Cluster changes still somewhat painful + Large clusters + Geo replication + CPU scaling: Locks, locks, locks + ACID Transactions! 2015: CockroachDB 32
  • 33. + Native sharding, async replication, re-ordering + Dynamic shard size (AKA tablets) + Decoupled shards from servers + Dynamic topology + Large clusters + Geo replication + CPU scaling: shard-per-core + Automatic node configuration 2022: ScyllaDB 5.0 33
  • 34. It’s ok! + Application developers find re-ordering hard + Modern event based architectures enforce order (e.g. Kafka) + Network throughput improved 40x since 2002 + Parallelization through shards + Dynamic shard sizing helps Wait, no re-ordering? 34
  • 35. + Stateless client protocols + HTTP/3 would be great! + Distributed tracing support + Burst capacity + Object storage support + Geo policies My personal wishlist 35
  • 36. Thank you for joining us today. @scylladb scylladb/ slack.scylladb.com @scylladb company/scylladb/ scylladb/