Subject Re: [firebird-support] Re: [Firebird-devel] Sweep process too many writes to disc
Author Ann Harrison
Sean,


> I think the key issue that Karol is pointing to is the ratio of Disk IO
> writes to the number of pages (size of database). I agree with him.
>

His stats look bad, for sure.

>
> Even if there are off-page changes, these could be collected into a page
> group and written to disk as a group (since all of the extra pages are only
> related to the single original page).
>

Firebird will first look for a page in cache with space for an old record
version. That page may have overflow from other pages and primary record
versions. So no, extra pages are not related to a single original page.
That would be very inefficient, I think, leading to lots of pages
containing only a few old record versions.

>
> While sweep is intended to cleanup old record versions, it is reasonable
> to think that Write IO should be page centric (flush the page group to disk
> when all rows on the pages have been sweeped) -- to minimize the amount of
> write IO (slow in general, can cause problems for MLC flash based SSDs).
>

All the data pages for a table can be interlinked, so there really isn't a
"page group" smaller than a table.

Best regards,

Ann


[Non-text portions of this message have been removed]