Технології

Turso використовує Amazon S3 Express One Zone для транзакційних баз даних SQLite

Д

Джерело: Amazon Web Services

5 хв читання

Концептуальна ілюстрація архітектурного відокремлення обчислювальних вузлів від шару зберігання Amazon S3 Express One Zone для транзакційної бази даних.

Turso та виклик BYOC-середовищ

Turso — це транзакційна хмарна платформа баз даних, побудована на SQLite, яка обслуговує розробників та підприємства, що потребують легких, високощільних баз даних на периферії та в хмарі. Оскільки кожна база даних є просто файлом, один обчислювальний вузол Turso може розміщувати мільйони таких баз без холодного старту. Turso надає ці бази даних за моделлю Bring Your Own Cloud (BYOC), де дані клієнтів повністю зберігаються в їхніх власних облікових записах AWS.

Традиційно транзакційні бази даних покладаються на синхронні записи на локальний диск, спільні масиви зберігання або мережеві томи для забезпечення надійності. Запис вважається завершеним лише після того, як дані надійно збережені, щоб вони могли пережити збій сервера або відключення живлення. Ця стійкість створює тісний зв'язок між обчисленнями та сховищем. У BYOC-середовищах постачальник повинен віддалено керувати постійними томами, координувати резервне копіювання та обробляти міграцію даних в обліковому записі, до якого він може мати обмежений доступ. Для Turso це означало розгортання Stateful-навантажень на Kubernetes. Традиційні архітектури баз даних зберігають записи журналу попереднього запису (WAL) на локальному диску перед підтвердженням транзакцій, що створює жорстку залежність між обчислювальними подами та їхнім сховищем. Це обмежує вільне переміщення подів, планувальник Kubernetes залежить від локальності даних, а відновлення подів вимагає координації між локальними WAL-файлами та асинхронними резервними копіями. Turso потребувала відокремлення стійкого стану від обчислювальних вузлів, щоб поди стали по-справжньому ефемерними.

Рішення: Amazon S3 Express One Zone

Turso замінила локальний диск на Amazon S3 Express One Zone як рівень надійності. S3 Express One Zone — це високопродуктивний клас зберігання даних в одній зоні доступності (Single-AZ), розроблений для забезпечення стабільного доступу до даних із затримкою в одиниці мілісекунд для найбільш часто використовуваних даних та чутливих до затримки застосунків. Він забезпечує стабільну, передбачувану продуктивність із сильною узгодженістю read-after-write.

Turso оцінила S3 Express One Zone як заміну локального сховища у своєму шляху фіксації транзакцій. Вони провели бенчмарки з екземпляра Amazon EC2, розташованого в тій самій зоні доступності, тестуючи 1000 операцій типового розміру транзакцій бази даних. Середня затримка для операції завантаження (PUT) 4 КБ становила 6.4 мс, а для завантаження (GET) — 3.8 мс. Пікові значення (P99) становили 7 мс для PUT та 4 мс для GET. Низька затримка PUT та стабільна затримка (P99 7 мс) зробили S3 Express One Zone придатним для транзакційної надійності.

Оптимізація витрат через багатокористувацьке пакетування

Багатокористувацька модель Turso розміщує сотні баз даних на вузол. Модель оплати S3 Express One Zone за фактичне використання (pay-as-you-go) дозволяє Turso платити лише за виконані записи. Для максимізації цієї моделі Turso розробила платформу для пакетування записів між базами даних. Замість завантаження кожної транзакції окремо, платформа накопичує записи WAL з десятків баз даних протягом кількох мілісекунд, а потім завантажує їх разом в одному PUT-запиті. Це пакетування додає лише кілька мілісекунд затримки, що є прийнятним, оскільки загальний шлях запису залишається в межах бюджету затримки більшості застосунків. Цей підхід дозволяє амортизувати витрати на запити S3 Express One Zone між багатьма базами даних на один PUT-запит.

Архітектура: S3 Express One Zone як джерело істини

Архітектура Turso використовує S3 Express One Zone як джерело істини для всіх зафіксованих транзакцій, а локальне сховище NVMe слугує кешем для продуктивності читання.

Шлях запису включає:

  1. Виконання транзакції в пам'яті на обчислювальному вузлі.
  2. Платформа чекає кілька мілісекунд для пакетування WAL-записів з кількох баз даних на тому ж вузлі.
  3. Пакетні WAL-записи завантажуються в S3 Express One Zone за допомогою одного S3 PUT-запиту.
  4. Після успішної відповіді PUT-запиту, що підтверджує надійне зберігання даних, транзакції підтверджуються клієнтам.
  5. Дані також записуються на локальне сховище NVMe для швидких подальших читань.

Шлях читання включає:

  1. Застосунок читає з локального кешу NVMe.
  2. У разі промаху кешу дані отримуються з S3 Express One Zone.
  3. Отримані дані кешуються на локальному NVMe для майбутніх читань.

Кожні кілька хвилин WAL інтегрується в повний файл бази даних через процес контрольних точок (checkpointing). Отриманий файл бази даних потім зберігається в S3 Standard для довгострокового зберігання, використовуючи переваги доступності та надійності в кількох зонах доступності. Ці контрольні точки зберігаються з мінімальними додатковими витратами завдяки нижчій вартості зберігання S3 Standard та підтримці версіонування.

Операційні переваги

Архітектура з безстатевими обчисленнями змінює спосіб роботи Turso з базами даних в облікових записах клієнтів:

  • Мобільність подів та миттєве відновлення: Оскільки стійкий стан не зберігається на локальному вузлі, Kubernetes може вільно планувати, переміщувати та замінювати поди. У разі збою пода, новий под починає обслуговувати читання безпосередньо з S3 Express One Zone, одночасно потоково передаючи дані у свій локальний кеш у фоновому режимі. Це усуває необхідність чекати відновлення резервних копій або міграції даних.
  • Спрощене розгортання BYOC: Розгортання в обліковому записі AWS клієнта вимагає лише створення каталогу S3 Express One Zone, запуску обчислювальних подів та налаштування політик AWS IAM. Це усуває потребу в постійних томах або StatefulSets. Дані клієнта повністю зберігаються в їхніх власних S3-бакетах, що спрощує вимоги до відповідності та аудиту.
  • Еластичне масштабування: Додавання обчислювальної потужності означає запуск нових подів, які негайно отримують доступ до всіх даних в S3 Express One Zone. Зменшення масштабу означає завершення роботи подів без міграції даних.

Висновок

Архітектура Turso демонструє, як вони досягли надійних записів та затримки в одиниці мілісекунд, використовуючи Amazon S3 Express One Zone для транзакційних баз даних SQLite. Замінивши локальний диск (приблизно 2 мс) на пакетні PUT-запити до S3 Express One Zone (в середньому 6.4 мс), Turso обміняла кілька мілісекунд додаткової затримки запису на безстатеві обчислення та операційну простоту. Загальна затримка фіксації залишається в межах бюджету затримки, який може обробляти більшість застосунків, усуваючи тісний зв'язок між подами та постійними томами. Тепер поди є одноразовими; збійний под замінюється майже миттєво, а новий под читає безпосередньо з S3 Express One Zone, одночасно розігріваючи свій локальний кеш у фоновому режимі.

Що це означає для розробників

Для розробників застосунків це означає, що керовані бази даних можуть працювати в їхніх власних облікових записах AWS без накладних витрат на постійні томи або міграцію даних. Для розробників баз даних та інфраструктури це надає модель розгортання, яка обмінює невелику додаткову затримку запису на операційну простоту та безстатеві обчислення.

Ключові факти

  • Turso — це транзакційна хмарна платформа баз даних на SQLite, що працює за моделлю BYOC.

  • Вона замінила локальний диск на Amazon S3 Express One Zone для забезпечення надійності даних.

  • Це дозволило досягти середньої затримки 6.4 мс для транзакційних записів.

  • Архітектура Turso забезпечує миттєве відновлення подів та спрощує розгортання BYOC.

  • Використовується багатокористувацьке пакетування записів для оптимізації витрат.

Джерела

ТехнологіїРозробка ПЗ

Джерело

Amazon Web Services

How Turso built a transactional database using Amazon S3 Express One Zone | Amazon Web Services

23 липня 2026 · оновлено 23 липня 2026

Оригінал

Попередні статті

Наступні статті

Контрольна кімната вінтажної радіостанції з мікшерним пультом та плейлистом пісень у стилі яхт-рок.
24 липня 2026МузикаJonathan Eig

10 правил програмування яхт-рок радіостанції: Іронічний погляд на жанр

Дізнайтеся про 10 несподіваних правил для створення ідеального плейлиста в стилі яхт-рок, від вибору інструментів до іронічного ставлення до самого жанру, засновані на досвіді прослуховування.