➥🔝 7737669865 🔝▻ malwa Call-girls in Women Seeking Men 🔝malwa🔝 Escorts Ser...
Building Software to Scale
1. Building Software to Scale
Adam Prout, Senior Vice President Engineering and Chief Architect
2. Software is designed in such a way that as you
add hardware, the software is able to fully
utilize that hardware
The gold standard: linear scalability
Software Scalability. What it Means
3. Be aware of contention points.
They usually exist around shared resources
(cpu, disk, memory, network)
Examples:
▪ SKIPLISTS
▪ SHARDING
Considerations for Software Scalability
4. ▪ Provides scalable access to data in memory
▪ Lock-free --> simplicity
Developing Lock-Free Skiplist Indexes
http://blog.memsql.com/the-story-behind-memsqls-skiplist-indexes/
5. Sharding
Agg 1 Agg 2
Leaf 1 Leaf 2 Leaf 3 Leaf 4
Provides scalable access to data by partitioning that data
across a cluster of machines
6. Distributed query execution
▪ Scalable use of CPUs
Columnstore
▪ Scalable access to data on disk
▪ Compression
Other Examples
7. Recommended approach:
1. Start simple
2. Leverage existing resources
Building Scalable Software
Changes How You Build Product Features
8. ▪ Ensure that the team makes the right design
and implementation decisions
▪ Set the culture on the engineering team
▪ Identify gatekeepers
▪ Implement rigorous code reviews
Strong Technical Leaders are Critical