четверг, 7 марта 2024 г.

FreeM: Transactions

Sirenita Spark adds transaction processing to FreeM.

How is transaction processing going ?

FreeM TP works, with the exception that restartable transactions are not implemented.

In concert with journaling, SERIAL transactions are ACID When you TSTART a SERIAL transaction, the process acquires a semaphore that prevents all other FreeM jobs from doing anything until the transaction is either committed or rolled back.

Database operations during the transaction are journaled to disk, but not written to the database. Instead, they are held in process memory for isolation when you commit a transaction, any global database files that are to be changed in the transaction are copied to a temporary location, so that if any part of the commit fails, the affected globals can be restored to their previous state then, the database operations are written to the database and the backups removed.

Then, the semaphore is released.

Комментариев нет:

Отправить комментарий