SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » Firebird, HQbird, InterBase » Версии записей. ("Про архитектуру".)
icon6.gif  Версии записей. [сообщение #1672] Wed, 22 February 2023 15:34 Переход к предыдущему сообщению
 в настоящее время не в онлайне 
Сообщений: 198
Зарегистрирован: September 2022
Senior Member
Плоский (без подуровней) каталог, с файлами (например).
Много Клиентов, все они в режиме RO. И один клиент-Писатель, который иногда меняет данные. Все версии записей данных должны оставаться в системе, физически их не удаляем.

1. Клиент 1 запускается, в момент X коннектится, читает список файлов (имя и, например, размер файла), потом по мере надобности загружает файлы, содержимое которых соответствует моменту X (т.е. когда этот каталог был прочитан). Коннект к БД физически не сохраняется, список файлов хранится в памяти клиента, пока клиент жив. Клиент по мере надобности снова физически коннектится к БД считывает нужные ему файлы (актуальные на момент X).

2. Потом Писатель (возможно, во время работы клиента 1) дополняет/изменяет/удаляет список и содержимое (тело) файлов. А клиент 1 всё так же работает со своей версией данных, актуальной на момент Х.

3. Клиент 2 запускается, в момент Y коннектится, читает НОВЫЙ (измененный в п.2) список и т.д., см. п.1.

3. Потом Писатель опять меняет данные. А клиенты 1 и 2 продолжают работать со своими версиями, актуальными на моменты X и Y соответственно.

... После перезапуска клиенты видят самую последнюю (самую новую) версию данных, и работает уже с ней.
-------------
Что-то когда-то такое обсуждалось, но я уже забыл. Evil or Very Mad
А напомните, пожалуйста. Если помнит кто.
 
Сообщение не прочитано icon6.gif
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Предыдущая тема: Не могу подключиться к серверу Firebird на Debian
Следующая тема: OO API: IMessageMetadata.getCharSet (FB3.0)
Переход к форуму:
  


Текущее время: Wed Dec 18 07:39:11 GMT+3 2024

Общее время, затраченное на создание страницы: 0.01065 секунд