Hi, ShawnYan,

On Mar 30, ShawnYan via developers wrote:
> hi, there,
> when I check release notes,
> https://mariadb.com/kb/en/mariadb-10419-changelog/
> I notice this commit record,
> Revision #f24038b851 2021-03-07 14:06:01 +0100
>  mark Aria allocations for temp tables as MY_THREAD_SPECIFIC 
> but, it can not find in the jira system, can't learn more detail/background 
> about this commit,
> could anyone help with it, may we know which task refer to this commit?
> https://github.com/MariaDB/server/commit/f24038b851
> Thank you.

MariaDB internally distinguishes "global" and "thread-local" memory
allocations for the purpose of memory accounting.

For "global" allocations the memory can be allocated in one thread and
freed in another. A query cache, for example, is global.

"local" allocations always owned by a specific thread. Temporary tables,
for example, are always thread-local.

That commit marks all allocations for Aria temporary tables to be
thread-local.

Why it was done at that point in time? The following commit is

  commit 01a0d739c8f
  Author: Sergei Golubchik <s...@mariadb.org>
  Date:   Sun Mar 7 01:53:52 2021 +0100

    MDEV-24975 Server consumes extra 4G memory upon querying 
INFORMATION_SCHEMA.OPTIIMIZER_TRACE

and the test case in that commit does

  set max_session_mem_used=1024*1024*1024;
  select count(*) from information_schema.optimizer_trace;

I suppose max_session_mem_used did not apply to temporary Aria tables,
because they weren't marked MY_THREAD_SPECIFIC. So the first commit
fixes temporary Aria tables to use MY_THREAD_SPECIFIC, and the second
commit introduces a test case that relies on that.

Regards,
Sergei
Chief Architect, MariaDB Server
and secur...@mariadb.org
_______________________________________________
developers mailing list -- developers@lists.mariadb.org
To unsubscribe send an email to developers-le...@lists.mariadb.org

Reply via email to