SQLite — это бессерверное решение
1. SQLite — это бессерверная система
Большинство СУБД на основе SQL реализованы как отдельный серверный процесс. Программы, которые хотят получить доступ к базе данных, взаимодействуют с сервером с помощью некоторого вида межпроцессного взаимодействия (обычно TCP/IP), отправляя запросы на сервер и получая результаты. SQLite работает иначе. В SQLite процесс, который хочет получить доступ к базе данных, читает и записывает данные непосредственно из файлов базы данных на диске. Промежуточного серверного процесса нет.
У бессерверной архитектуры есть свои преимущества и недостатки. Основное преимущество заключается в отсутствии необходимости устанавливать, настраивать, инициализировать, управлять и устранять неполадки отдельного серверного процесса. Это одна из причин, по которой SQLite является "бесконфигурационной" СУБД. Программам, использующим SQLite, не требуется администрирование для настройки движка базы данных перед запуском. Любая программа, способная получать доступ к диску, может использовать базу данных SQLite.
С другой стороны, СУБД, использующая сервер, может лучше защищать от ошибок в приложении-клиенте — случайные указатели в клиенте не могут повредить память на сервере. И поскольку сервер представляет собой единственный постоянный процесс, он может контролировать доступ к базе данных более точно, что позволяет более точное блокирование и лучшую параллельность.
Большинство СУБД на основе SQL являются клиент-серверными. Из тех, что бессерверны, SQLite — единственная известная автору система, которая позволяет нескольким приложениям одновременно получать доступ к одной и той же базе данных.
2. Классическая бессерверная архитектура против нео-бессерверной
(Этот раздел был добавлен 02 апреля 2018 года)
В последнее время люди стали использовать слово «бессерверная» в несколько ином смысле, чем в этом документе. Вот два возможных определения «бессерверного»:
Классическая бессерверная архитектура: движок базы данных работает в одном и том же процессе, потоке и адресном пространстве, что и приложение. Нет передачи сообщений или сетевой активности.
Нео-бессерверная архитектура: движок базы данных работает в отдельном пространстве имен от приложения, возможно, на отдельной машине, но база данных предоставляется как готовое к использованию решение поставщиком хостинга, не требует управления или администрирования со стороны владельцев приложения, и так проста в использовании, что разработчики могут рассматривать базу данных как бессерверную, даже если она действительно использует сервер под капотом.
SQLite является примером классической бессерверной СУБД. В SQLite нет других процессов, потоков, машин или других механизмов (кроме операционной системы хост-компьютера и файловой системы), которые бы помогали предоставлять услуги или реализовывать базу данных. Сервера в прямом смысле нет.
Microsoft Azure Cosmos DB и Amazon S3 — примеры нео-бессерверных баз данных. Эти базы данных реализуются серверными процессами, работающими отдельно в облаке. Но серверы обслуживаются и администрируются провайдером, а не разработчиком приложения. Разработчики приложений просто используют службу. Разработчики не должны развертывать, настраивать или управлять экземплярами сервера базы данных, так как вся эта работа выполняется автоматически поставщиком услуг. Серверы базы данных фактически существуют, они просто скрыты от разработчиков.
Важно понимать эти два разных определения «бессерверного». Когда база данных утверждает, что она «бессерверная», убедитесь, что понимаете, подразумевают ли они «классическую бессерверную» или «нео-бессерверную» архитектуру.
Эта страница была изменена в последний раз 13 февраля 2024 года в 17:39:19 по UTC
SQLite is in the Public Domain.
https://sqlite.org/serverless.html