ср, 6 окт. 2021 г. в 22:01, Adriano dos Santos Fernandes <adrian...@gmail.com>:
>
> On 06/10/2021 15:43, Roman Simakov wrote:
> >
> >>>   RDB$POINTER_PAGE - INTEGER
> >>>   RDB$ROOT_PAGE - INTEGER
> >>
> >>    What these are for?
> >
> > These fields are necessary for reliable implementation of moving data
> > pages to another tablespace. You'll be able to understand their
> > meaning in code.
> >
>
> How are data moved?
>
> Under transaction control?
>
> In background (and interruptible) like db crypt?

it's a dfw operation with EX database lock. I hope to relax this
limitation later. So there are no concurrent changes.
1) copy all data pages
2) switch RDB$POINTER_PAGE and RDB$ROOT_PAGE transactionally
3) Rebuild RDB$PAGES
4) clear old data pages (as post-dfw operation)

It can be interrupted but not resumed. I'm afraid it starts from the beginning.

I guess it's better to discuss in a context of PR.

-- 
Roman Simakov


Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to