| Users (Building Occupants) | Elevators | Requests per Minute | System Changes |
|---|---|---|---|
| 100 | 2-3 | ~50 | Simple scheduling, single controller, minimal queue management |
| 10,000 | 10-20 | ~5,000 | Distributed control, request queueing, basic load balancing |
| 1,000,000 | 100+ | ~500,000 | Hierarchical control, partitioned zones, advanced scheduling algorithms |
| 100,000,000 | 1000+ | ~50,000,000 | Multi-layer distributed system, real-time analytics, predictive scheduling, fault tolerance |
Multiple elevator coordination in LLD - Scalability & System Analysis
Start learning this pattern below
Jump into concepts and practice - no test required
The first bottleneck is the centralized scheduler/controller that manages elevator requests and assigns elevators. As user requests grow, a single controller struggles to process and assign requests quickly, causing delays and inefficient elevator usage.
- Horizontal scaling: Add multiple controllers managing subsets of elevators or building zones to distribute load.
- Partitioning: Divide the building into zones, each with its own scheduler to reduce coordination overhead.
- Caching: Cache recent requests and elevator states to reduce repeated computations.
- Load balancing: Use algorithms to evenly distribute elevator assignments and avoid congestion.
- Predictive scheduling: Use historical data to anticipate demand and pre-position elevators.
- Fault tolerance: Implement fallback controllers and health checks to maintain service during failures.
- At 10,000 users with 10 elevators, expect ~5,000 requests per minute (~83 requests/sec).
- Each controller can handle ~1000-5000 requests per second; a single controller suffices up to ~1000 users.
- Network bandwidth is minimal since messages are small (elevator commands and status updates).
- Storage needs are low, mainly for logs and historical data (few MBs per day).
- CPU and memory scale with number of requests and complexity of scheduling algorithms.
Start by defining system scale and user load. Identify the main bottleneck (usually the scheduler). Discuss how to partition the problem (zones, controllers). Explain trade-offs between centralized and distributed control. Mention caching and predictive techniques. Always justify your choices with scalability and latency in mind.
Your database handles 1000 QPS. Traffic grows 10x. What do you do first?
Answer: Add read replicas and implement caching to reduce load on the primary database before considering sharding or more complex solutions.
Practice
Solution
Step 1: Understand elevator coordination purpose
Multiple elevator coordination aims to improve efficiency by reducing passenger wait and travel times.Step 2: Evaluate options based on goal
Options B, C, and D do not focus on improving passenger experience or efficiency.Final Answer:
To reduce wait and travel times for passengers -> Option AQuick Check:
Goal of coordination = reduce wait/travel times [OK]
- Confusing coordination with adding more elevators
- Thinking elevators should stay idle
- Assuming random movement improves service
Solution
Step 1: Understand assignment criteria
Elevators should be assigned based on proximity and direction to minimize wait time.Step 2: Analyze options
Assign the elevator closest to the request floor moving in the same direction matches this logic. Options A, B, and C ignore direction or proximity, causing inefficiency.Final Answer:
Assign the elevator closest to the request floor moving in the same direction -> Option CQuick Check:
Closest elevator + direction match = correct assignment [OK]
- Ignoring elevator direction when assigning
- Choosing elevators randomly
- Always picking ground floor elevator
Solution
Step 1: Analyze elevator positions and directions
Elevator A is at floor 3 going up; Elevator B is at floor 6 going down.Step 2: Match request direction and elevator direction
Request is at floor 4 going up. Elevator A is below floor 4 and moving up, so it can pick up on the way. Elevator B is above floor 4 but moving down, so it cannot pick up going up.Final Answer:
Elevator A -> Option DQuick Check:
Elevator moving towards request floor in same direction = Elevator A [OK]
- Choosing elevator moving away from request
- Ignoring elevator direction
- Assuming either elevator works
Solution
Step 1: Identify cause of stuck elevator in system
If elevator position is not updated, controller cannot assign requests properly.Step 2: Determine fix
Adding regular position updates and health checks ensures controller has current elevator status to assign requests correctly.Final Answer:
Elevator state not updated; add regular position updates and health checks -> Option AQuick Check:
Missing updates cause stuck state; fix with health checks [OK]
- Assuming hardware failure without checking software updates
- Blaming random assignment logic
- Ignoring elevator state updates
Solution
Step 1: Understand peak hour challenges
High traffic causes many requests; serving all floors equally can cause delays and conflicts.Step 2: Evaluate zoning strategy
Dividing floors into zones and assigning elevators reduces travel distance and wait time by localizing service.Step 3: Compare other options
Random assignment or no zoning causes inefficiency; keeping elevators idle wastes capacity.Final Answer:
Divide floors into zones and assign elevators to zones dynamically -> Option BQuick Check:
Zoning elevators reduces wait time in tall buildings [OK]
- Ignoring zoning benefits in tall buildings
- Assuming random assignment balances load
- Keeping elevators idle wastes capacity
