Modal з нуля перебудувала основну платформу пісочниць, ізольованих середовищ для запуску коду.
Нова система розрахована на мільйони одночасних пісочниць і десятки тисяч запусків за секунду. У демонстрації компанія одночасно запустила мільйон пісочниць менш ніж за хвилину.
Запити на створення паралельно обробляють кілька серверів планування. Кожен обирає робочий вузол за кешованими в пам’яті даними й напряму запитує в нього запуск через RPC (віддалений виклик процедур). Робочі вузли періодично публікують свій стан, сервери планування отримують його асинхронно, а під час створення пісочниці сховища даних не використовуються.
У тесті медіанний час до готовності пісочниці був меншим за пів секунди, а тривалі затримки Modal пов’язує з конкуренцією в ядрі та мережі під час одночасного запуску багатьох пісочниць і збирається їх скоротити. Нова система вже доступна в бета-версії та незабаром має обслуговувати все планування пісочниць Modal.
Перевірка тверджень:
- За останні місяці Modal з нуля перебудувала основну платформу пісочниць; нова система розрахована на мільйони одночасних пісочниць і десятки тисяч створень за секунду. (підтверджено самою публікацією: доказ; «Over the last few months, we’ve rebuilt our core sandbox platform from the ground up for both scale and reliability. On our new system, users can run millions of sandboxes concurrently and create tens of thousands of sandboxes per second.»)
- У демонстрації Modal одночасно запустила мільйон пісочниць і створила їх менш ніж за хвилину. (підтверджено самою публікацією: доказ; «As a demonstration of what our platform is capable of, we’ve run a million sandboxes concurrently, creating all 1 million in under a minute.»)
- Кілька серверів планування паралельно обробляють запити на створення, обирають вузол за кешованими в пам’яті даними й напряму запитують запуск у робочого вузла через RPC. (підтверджено самою публікацією: доказ; «Rather than a single, serialized scheduler, we run a fleet of scheduling servers which handle sandbox creation requests concurrently. To handle a creation request, a scheduling server runs a fast scheduling algorithm against in-memory cached data. Once a scheduling server decides which worker to create a sandbox on, it contacts the worker directly via RPC to request that a sandbox is created.»)
- Робочі вузли періодично публікують свій стан, сервери планування отримують його асинхронно, а під час створення пісочниці сховища даних не використовуються. (підтверджено самою публікацією: доказ; «Workers publish their state periodically into a Redis stream. The scheduling servers consume this state asynchronously and use it to make scheduling decisions. We have no data stores in the critical path of sandbox creation at all.»)
- У тесті медіанний час до готовності пісочниці був меншим за пів секунди; Modal пов’язує тривалі затримки з конкуренцією в ядрі та мережі й збирається їх скоротити. (підтверджено самою публікацією: доказ; «Sandbox start times on our new system (the latency from when the client first tries to create a sandbox, to when the sandbox can run user code) are less than half a second at the median, and remain solid at scale. We attribute much of this tail to kernel and network contention (including the rtnl lock contention mentioned previously) when many sandboxes start simultaneously on the same worker, and we’re working to reduce it.»)
- Нова система вже доступна в бета-версії та незабаром має обслуговувати все планування пісочниць Modal. (підтверджено самою публікацією: доказ; «Soon this new system will back all sandbox scheduling at Modal, but it’s already available in Beta.»)
Публікації:
Першоджерела:
оцінка 70,5 зі 100 · тип: посібник