Next: , Previous: , Up: Database Methods   [Contents][Index]


4.3.17 blonde_turn_detail

extern int blonde_turn_detail(void *, unsigned *);

The function moves high file offset blocks in the data store of the $1 database to lower file offsets. The combined size in 64 kilobytes units of the moved blocks will not exceed the indication stored at $2 if more than one block is moved, and will be stored at $2.

See Administration.

If the reported moved data size comes significantly less than the indicated target, it may be that there are no more blocks to move.

The function does not record the changes it made to the data store. Like other database operations, it leaves the pre-call and the post-call states existing side by side. The changes made are added to the ongoing transaction, which needs to be closed eventually. Prior to version 6.20210225, the function was creating its own transaction, and there was no need for an explicit ulterior blonde_ever_detail call.

The function should not be called more often than once every few dozens transactions, especially if the combined moved blocks size is less than the combined size of blocks stored by the last transactions, as otherwise it may only move data around.