Терминология

Fragment

Fragment (фрагмент) - фрагмент исполнямого кода. Можеть быть исходным кодом или скомпилированым бинарником. Перед исполнением фрагмент необходимо складывать в снапшот.

Program order

Program order - порядок операций чтения и записи явным образом определнный в исходном коде фрагмента.

DAM

DAM (Data Access Marker) - последовтельность байтов неограниченного размера (теоритически), по которой можно однозначно установить program order. Лексикографически больший DAM означает более позднюю операцию чтения или записи.

IO-resource

IO-resource (IO-ресурс) - внешний по отношению к TVM ресурс (чтение/запись данных). Например: REST-ресурс ячейка Acapella DB * файл локальной ФС

IO-cell

Ячейка, "привязанная" к IO-ресурсу. Чтение из IO-cell приводит к чтению из IO-ресурса. Запись приводит к непосредственной записи IO-ресурс только после commit (исключение REST-ресурсы).

CPVM Transaction

CPVM Transaction - группа исполнений фрагментов, представляющая из себя дерево задач, где корень - запускаемый фрагмент транзакции (корневой фрагмент).

TODO связь с AcapellaDB Transaction

AcapellaDB Transaction

AcapellaDB Transaction - "symbolizes a unit of work performed within a database management system (or similar system) against a database, and treated in a coherent and reliable way independent of other transactions" (wikipedia).

Worker

Worker (исполнитель/executor) - некий програмный компонент, способный исполнять определенные типы фрагментов. Один исполнитель может одновременно брать на себя выполнение нескольких фрагментов.

Snapshot

Snapshot (cнапшот) - единица деплоймента, группа файлов, в которой присутсвует как минимум один фрагмент. Снапшот идентифицируется по 3 компонентам:

  • User ID - идентификатор владельца.
  • Name - имя снапшота. Может быть несколько снапшотов с одинаковым именем, но разными тегами.
  • Tag/Version - тег/версия снапшота.

Короткая форма записи такой идентфикации: <UserID>/<Name>/<Tag>.

Снапшот может находится в двух 2 состояниях - заморожен/не заморожен. Замороженный снапшот можно исполнять, но нельзя модифицировать (и наоборот).