Проекты CBS и sqld развивают облачный и серверный варианты SQLite
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Разработчики SQLite развивают экспериментальный VFS-модуль CBS (Cloud Backed SQLite), позволяющий хранить содержимое базы данных не в локальном файле, а во внешнем облачном хранилище. Для хранения используется специально оптимизированный для внешнего хранения формат базы, позволяющий загружать данные из внешнего хранилища динамически по мере необходимости, без предварительного копирования всей БД на локальную систему. Из облачных хранилищ в настоящее время поддерживаются Azure Blob Storage и Google Cloud Storage. На использование CBS могут быть переведены любые приложения, поддерживающие работу с обычным SQLite.
VFS-модуль может работать в фоновом и активном режиме. В фоновом режиме в системе постоянно выполняется фоновый процесс, позволяющий обращаться к внешней БД только в режиме чтения, но поддерживающий общий кэш, к которому совместно могут обращаться разные процессы. В активном режиме допускается чтение и запись, но используется только локальный кэш текущего процесса. В каждый момент времени только один клиент может осуществлять запись, а другие клиенты не увидят записанные изменения, пока явно не запросят их из облачного хранилища. Для разделения разных запросов на запись применяется типовая система блокировок SQLite на основе WAL-лога.
Разработчикам предоставляется расширенный C API и интерфейс командной строки, позволяющие выполнять такие операции, как создание и очистка внешнего хранилища, загрузка и выгрузка БД в/из внешнего хранилища, создание копии БД на внешнем хранилище, просмотр списка БД в облачном хранилище, удаление неиспользуемых блоков из облачного хранилища.
Отдельно разработчиками проекта libSQL (расширенный форк SQLite) анонсирован серверный вариант SQLite - sqld, позволяющий организовать работу совместно используемой СУБД, подключение клиентов к которой осуществляется через применение протокола PostgreSQL или HTTP. Например, для подключения к sqld могут применяться существующие клиентские библиотеки, созданные для СУБД PostgreSQL, и, среди прочего, CLI-интерфейс psql. К серверу sqld также можно обращаться при помощи API на базе протокола HTTP, что упрощает интеграцию с web-приложениями. Код sqld написан на языке Rust и распространяется под лицензией MIT.
В качестве областей применения sqld отмечается резервное копирование, репликация на другие системы и организация доступа к БД SQlite в бессерверных инфраструктурах, в которые отсутствует постоянное хранилище и невозможно обеспечить ведение базы в локальном файле. В бессерверных системах, БД, с которой работает sqld, может реплицироваться с других серверов. Для обеспечения высокой доступности и устойчивости к сбоям поддерживается интеграция с mvSQLite (распределённый вариант SQLite, работающий поверх FoundationDB). Имеется режим поддержания активной резервной копии, реализованный через периодическое сохранение снапшотов с состоянием БД и репликацию изменений из WAL-лога в облачное хранилище, совместимое с Amazon S3.
Для приложений предоставляется совместимая с SQLite библиотека, которая может загружаться через LD_PRELOAD для перехода с хранения данных в локальном файле на работу через sqld. Возможна загрузка расширений к SQLite. Клиентские библиотеки подготовлены для TypeScript, JavaScript, Rust, Go и Python. C БД, привязанной к sqld, одновременно можно работать при помощи штатного инструментария SQLite, т.е. sqld выступает как надстройка для предоставления сетевого доступа к БД, репликации и резервного копирования. Например:
# Запускаем сервер для SQLite БД foo.db:
sqld -d foo.db -p 127.0.0.1:5432 --http-listen-addr=127.0.0.1:8000
# Обращаемся к БД при помощи утилит PostgreSQL:
psql -q postgres://127.0.0.1
# Подключаемся локально к БД при помощи инструментария SQLite:
sqlite3 foo.db
# Обращаемся через HTTP:
curl -s -d "{"statements": ["SELECT * from databases;"] }" \
http://127.0.0.1:8000
В заключение можно упомянуть проект LiteFS, развиваемый компанией Fly.io. LiteFS представляет собой FUSE-модуль для организации работы с одной общей БД SQLite на нескольких хостах. LiteFS реплицирует состояние БД между несколькими системами через перехват операций записи в файл с БД, и трансляцию этих операций на другие системы, используя подобие механизма транзакций и сохранение транзакций в отдельном файле в формате LTX. Код LiteFS написан на языке Go и распространяется под лицензией Apache 2.0.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://news.ycombinator.com/i...)
- OpenNews: Проект libSQL начал развитие форка СУБД SQLite
- OpenNews: Опубликован проект Litestream, реализующий систему репликации для SQLite
- OpenNews: В SQLite добавлена поддержка WASM для использования СУБД в web-браузере
- OpenNews: Опубликован DuckDB 0.6.0, вариант SQLite для аналитических запросов
- OpenNews: Разработчики SQLite развивают бэкенд HC-tree с поддержкой параллельных операций записи
Похожие новости:
- Выпуск СУБД SQLite 3.42 и DuckDB 0.8.0. CG/SQL с реализацией хранимых процедур для SQLite
- Выпуск СУБД AlaSQL 4.0, нацеленной на использование в браузерах и Node.js
- Выпуск СУБД SQLite 3.41
- Разработчики SQLite развивают бэкенд HC-tree с поддержкой параллельных операций записи
- Выпуск СУБД SQLite 3.40
- Стабильный выпуск СУБД MariaDB 10.10
- Опубликован DuckDB 0.6.0, вариант SQLite для аналитических запросов
- В SQLite добавлена поддержка WASM для использования СУБД в web-браузере
- Проект libSQL начал развитие форка СУБД SQLite
- Выпуск СУБД SQLite 3.39
Теги для поиска: #_sqlite, #_litefs, #_cbs, #_sqld, #_libsql, #_database
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 02:49
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Разработчики SQLite развивают экспериментальный VFS-модуль CBS (Cloud Backed SQLite), позволяющий хранить содержимое базы данных не в локальном файле, а во внешнем облачном хранилище. Для хранения используется специально оптимизированный для внешнего хранения формат базы, позволяющий загружать данные из внешнего хранилища динамически по мере необходимости, без предварительного копирования всей БД на локальную систему. Из облачных хранилищ в настоящее время поддерживаются Azure Blob Storage и Google Cloud Storage. На использование CBS могут быть переведены любые приложения, поддерживающие работу с обычным SQLite. VFS-модуль может работать в фоновом и активном режиме. В фоновом режиме в системе постоянно выполняется фоновый процесс, позволяющий обращаться к внешней БД только в режиме чтения, но поддерживающий общий кэш, к которому совместно могут обращаться разные процессы. В активном режиме допускается чтение и запись, но используется только локальный кэш текущего процесса. В каждый момент времени только один клиент может осуществлять запись, а другие клиенты не увидят записанные изменения, пока явно не запросят их из облачного хранилища. Для разделения разных запросов на запись применяется типовая система блокировок SQLite на основе WAL-лога. Разработчикам предоставляется расширенный C API и интерфейс командной строки, позволяющие выполнять такие операции, как создание и очистка внешнего хранилища, загрузка и выгрузка БД в/из внешнего хранилища, создание копии БД на внешнем хранилище, просмотр списка БД в облачном хранилище, удаление неиспользуемых блоков из облачного хранилища. Отдельно разработчиками проекта libSQL (расширенный форк SQLite) анонсирован серверный вариант SQLite - sqld, позволяющий организовать работу совместно используемой СУБД, подключение клиентов к которой осуществляется через применение протокола PostgreSQL или HTTP. Например, для подключения к sqld могут применяться существующие клиентские библиотеки, созданные для СУБД PostgreSQL, и, среди прочего, CLI-интерфейс psql. К серверу sqld также можно обращаться при помощи API на базе протокола HTTP, что упрощает интеграцию с web-приложениями. Код sqld написан на языке Rust и распространяется под лицензией MIT. В качестве областей применения sqld отмечается резервное копирование, репликация на другие системы и организация доступа к БД SQlite в бессерверных инфраструктурах, в которые отсутствует постоянное хранилище и невозможно обеспечить ведение базы в локальном файле. В бессерверных системах, БД, с которой работает sqld, может реплицироваться с других серверов. Для обеспечения высокой доступности и устойчивости к сбоям поддерживается интеграция с mvSQLite (распределённый вариант SQLite, работающий поверх FoundationDB). Имеется режим поддержания активной резервной копии, реализованный через периодическое сохранение снапшотов с состоянием БД и репликацию изменений из WAL-лога в облачное хранилище, совместимое с Amazon S3. Для приложений предоставляется совместимая с SQLite библиотека, которая может загружаться через LD_PRELOAD для перехода с хранения данных в локальном файле на работу через sqld. Возможна загрузка расширений к SQLite. Клиентские библиотеки подготовлены для TypeScript, JavaScript, Rust, Go и Python. C БД, привязанной к sqld, одновременно можно работать при помощи штатного инструментария SQLite, т.е. sqld выступает как надстройка для предоставления сетевого доступа к БД, репликации и резервного копирования. Например: # Запускаем сервер для SQLite БД foo.db:
sqld -d foo.db -p 127.0.0.1:5432 --http-listen-addr=127.0.0.1:8000 # Обращаемся к БД при помощи утилит PostgreSQL: psql -q postgres://127.0.0.1 # Подключаемся локально к БД при помощи инструментария SQLite: sqlite3 foo.db # Обращаемся через HTTP: curl -s -d "{"statements": ["SELECT * from databases;"] }" \ http://127.0.0.1:8000 В заключение можно упомянуть проект LiteFS, развиваемый компанией Fly.io. LiteFS представляет собой FUSE-модуль для организации работы с одной общей БД SQLite на нескольких хостах. LiteFS реплицирует состояние БД между несколькими системами через перехват операций записи в файл с БД, и трансляцию этих операций на другие системы, используя подобие механизма транзакций и сохранение транзакций в отдельном файле в формате LTX. Код LiteFS написан на языке Go и распространяется под лицензией Apache 2.0. =========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 02:49
Часовой пояс: UTC + 5