Marko Mäkelä <marko.mak...@mariadb.com> writes:

> Hi Kristian,
>
> On Mon, Feb 26, 2024 at 8:31 PM Kristian Nielsen
> <kniel...@knielsen-hq.org> wrote:
>> > I would tweak the log checkpoint to ensure that all pages of the
>> > "previous" binlog tablespace must be written back before we can
>> > advance the log checkpoint. The tablespace ID (actually just 1 bit of
>>
>> Conversely, we would then also need to wait for a log checkpoint before we
>> can rotate to a new binlog tablespace, right?
>
> That is not necessary. We only have to completely write back the
> changes from the buffer pool to the last-but-one binlog file, whose
> tablespace ID we are about to reuse for the new file. That can be done

> checkpoint from being advanced. If we write the last modification LSN
> to the first page of the binlog tablespace, recovery can simply skip
> all log records for the binlog tablespace that are older than the LSN.

Ah! Yes, I see, that seems a good solution. And users will want to have
binlog data written to the file as quickly as possible anyway, to be visible
with external tools (mariadb-binlog), so that fits perfectly.

So this looks perfect, I like the approach of cycling between two reserved
tablespace IDs.

> Created pages are fixed in the buffer pool until the mtr_t::commit()
> that would release the page latch and the buffer-fix. Simply by
> invoking buf_page_t::io_fix() before mtr_t::commit() you can extend
> the buffer-fix, to reuse the page in a subsequent
> mini-transaction. For example,

Ok, thanks for the explanation, sounds useful.

> If a page is buffer-fixed for an unbounded time, it could interfere
> with an attempt to shrink the buffer pool or to respond to a memory
> pressure event. Some interface for releasing those pages would be nice

Right. In this case, the idea would be to fix at most one page at a time,
the last partial page that is currently being appended to.

 - Kristian.
_______________________________________________
developers mailing list -- developers@lists.mariadb.org
To unsubscribe send an email to developers-le...@lists.mariadb.org

Reply via email to