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 · вид: наръчник