Design server allocation for multi-type nodes
GoogleSoftware Engineer · Technical ScreenLast updated
This question evaluates understanding of scalable resource-allocation and matching systems, encompassing data-structure and index design, availability tracking, fragmentation minimization, concurrency control, and failure handling for large node pools.
Design a service to manage a large pool (about 100, 000) of server nodes. Each node can satisfy multiple instance types; clients call getServer(reqNumOfServer, instanceTypes[]) to request servers that collectively meet the requested types, and returnServer(ids[]) to release them. Propose data structures and indexes for fast matching, availability tracking, fragmentation minimization, and scaling. Address concurrency, starvation, and failure handling.
Solution walkthrough is for members
Get the full walkthrough with reference code and complexity analysis, plus Kitty Coach at 300 messages a day. Hints, the code runner and community answers stay free.