Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-34450

os_file_write_func() is an overkill for ib_logfile0

    XMLWordPrintable

Details

    Description

      While working on MDEV-33894, I noticed a rather deep call stack:

      #0  __libc_pwrite64 (fd=7, buf=0x7f0d44b15000, count=count@entry=8192, offset=104448) at ../sysdeps/unix/sysv/linux/pwrite64.c:24
      #1  0x0000564264c10e07 in SyncFileIO::execute_low (this=this@entry=0x7f0d1729bc20, request=..., n=8192) at /data/Server/10.11-MDEV-33894/storage/innobase/os/os0file.cc:692
      #2  0x0000564264c10f17 in SyncFileIO::execute (this=this@entry=0x7f0d1729bc20, request=...) at /data/Server/10.11-MDEV-33894/storage/innobase/os/os0file.cc:715
      #3  0x0000564264c12402 in os_file_io (in_type=..., file=file@entry=7, buf=buf@entry=0x7f0d44b15000, n=n@entry=8192, offset=offset@entry=104448, err=err@entry=0x7f0d1729be7c)
          at /data/Server/10.11-MDEV-33894/storage/innobase/os/os0file.cc:2584
      #4  0x0000564264c125d9 in os_file_pwrite (type=..., file=file@entry=7, buf=buf@entry=0x7f0d44b15000 "w\a\f", n=8192, offset=104448, err=err@entry=0x7f0d1729be7c)
          at /data/Server/10.11-MDEV-33894/storage/innobase/os/os0file.cc:2659
      #5  0x0000564264c14299 in os_file_write_func (type=..., name=<optimized out>, name@entry=0x56426540609f "ib_logfile0", file=7, buf=0x7f0d44b15000, offset=<optimized out>, offset@entry=104448, n=<optimized out>)
          at /data/Server/10.11-MDEV-33894/storage/innobase/os/os0file.cc:2688
      #6  0x0000564264bbed28 in log_file_t::write (this=this@entry=0x5642665238c0 <log_sys+128>, offset=offset@entry=104448, buf=...) at /data/Server/10.11-MDEV-33894/storage/innobase/log/log0log.cc:173
      #7  0x0000564264bbf1a7 in log_write_buf (buf=buf@entry=0x7f0d44b15000 "w\a\f", length=length@entry=8192, offset=offset@entry=104448) at /data/Server/10.11-MDEV-33894/storage/innobase/log/log0log.cc:624
      #8  0x0000564264bc1936 in log_t::write_buf<true> (this=this@entry=0x564266523840 <log_sys>) at /data/Server/10.11-MDEV-33894/storage/innobase/log/log0log.cc:944
      

      The InnoDB write-ahead log is not instrumented by PERFORMANCE_SCHEMA; we only have innodb_data_file_key and innodb_temp_file_key for data files and temporary files. Therefore, log_file_t::write could simply invoke IF_WIN(tpool::,)pwrite().

      Attachments

        Issue Links

          Activity

            People

              marko Marko Mäkelä
              marko Marko Mäkelä
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.