KV на Deno Deploy
Deno Deploy теперь предлагает встроенную бессерверную базу данных ключей-значений, называемую Deno KV.
Кроме того, Deno KV доступна непосредственно в Deno, используя SQLite в качестве бэкенда. Эта функция доступна с версии Deno v1.32 с флагом --unstable. Подробнее об Deno KV.
Согласованность
Deno KV по умолчанию — это база данных со строгой согласованностью. Она обеспечивает самый строгий вид сильной согласованности, называемый внешней согласованностью, что подразумевает:
- Сериализуемость: Это самый высокий уровень изоляции для транзакций. Он гарантирует, что одновременное выполнение нескольких транзакций приводит к состоянию системы, которое было бы таким же, как если бы транзакции выполнялись последовательно, одна за другой. Другими словами, конечный результат сериализуемых транзакций эквивалентен некоторому последовательному порядку этих транзакций.
- Линейность: Эта модель согласованности гарантирует, что операции, такие как чтение и запись, кажутся мгновенными и происходят в реальном времени. После завершения операции записи все последующие операции чтения немедленно возвращают обновленное значение. Линейность обеспечивает сильную временную упорядоченность операций, что делает систему более предсказуемой и более понятной.
В то же время вы можете ослабить ограничения согласованности, установив параметр consistency: "eventual" для отдельных операций чтения. Этот параметр позволяет системе получать данные из глобальных реплик и кешей для минимальной задержки.
Ниже приведены значения задержки, наблюдаемые в наших основных регионах:
| Регион | Задержка (Случайная согласованность) | Задержка (Сильная согласованность) |
|---|---|---|
| Северная Вирджиния (us-east4) | 7 мс | 7 мс |
| Франкфурт (europe-west3) | 7 мс | 94 мс |
| Нидерланды (europe-west4) | 13 мс | 95 мс |
| Калифорния (us-west2) | 72 мс | 72 мс |
| Гонконг (asia-east2) | 42 мс | 194 мс |
Распределённые очереди
Бессерверные распределённые очереди доступны на Deno Deploy. Подробнее см. Очереди на Deno Deploy.
Подключение к управляемым базам данных извне Deno Deploy
Вы можете подключиться к базе данных Deno Deploy KV из своего приложения Deno за пределами Deno Deploy. Для открытия управляемой базы данных установите переменную среды DENO_KV_ACCESS_TOKEN на токен доступа к личному профилю Deno Deploy и предоставьте URL базы данных Deno.openKv:
const kv = await Deno.openKv(
"https://api.deno.com/databases/<database-id>/connect",
);
Для получения спецификации протокола подключения к удаленной базе данных KV обратитесь к документации.
Распределение данных
Базы данных Deno KV реплицируются как минимум в 6 дата-центрах, охватывающих 3 региона (США, Европа и Азия). После подтверждения операции записи ее изменения сохраняются постоянно как минимум в двух дата-центрах в основном регионе. Асинхронная репликация обычно передает эти изменения в другие два региона за время менее 10 секунд.
Система разработана для переносимости большинства отказов на уровне дата-центров без простоев или потери данных. Цели восстановления точки (RPO) и цели восстановления времени (RTO) помогают количественно оценить устойчивость системы в различных режимах сбоев. RPO представляет собой максимальное допустимое количество потерь данных, измеряемое во времени, а RTO указывает максимальное допустимое время, необходимое для восстановления системы до нормальной работы после сбоя.
- Потеря одного дата-центра в основном регионе: RPO=0 (нет потери данных), RTO<5s (восстановление системы за менее чем 5 секунд)
- Потеря любого количества дата-центров в регионе реплик: RPO=0, RTO<5s
- Потеря двух или более дата-центров в основном регионе: RPO<60s (менее 60 секунд потерь данных)
© 2018–2024 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/deploy/kv/manual/on_deploy