1. 19 Jan, 2022 22 commits
  2. 18 Jan, 2022 8 commits
    • Vladislav Vaintroub's avatar
    • Vladislav Vaintroub's avatar
      MDEV-27525 Invalid (non-UTF8) characters found for option 'plugin_dir' · 2e48fbe3
      Vladislav Vaintroub authored
      Two Problems
      1. Upgrade wizard failed to retrieve path to service executable,
      if it contained non-ASCII.
      Fixed by setlocale(LC_ALL, "en_US.UTF8"), which was missing in upgrade wizard
      
      2.mysql_upgrade_service only updated (converted to UTF8) the server's sections
      leaving client's as-is
      
      Corrected typo.
      
      3. Fixed assertion in my_getopt, turns out to be too strict.
      2e48fbe3
    • Daniel Black's avatar
      MDEV-27158: humanize the bytes in innodb info/error messages · d9f7a6b3
      Daniel Black authored
      Log messages like total size = 17179869184, chunk size = 134217728
      get hard to read. If we normalize it down to IEC units is easier.
      
      Idea thanks to Axel Schwenke.
      
      Review thanks to Eugene Kosov and Marko Mäkelä
      
      $ mariadblocal --innodb-buffer-pool-size=30G --innodb-log-file-size=128M
      Installing MariaDB/MySQL system tables in '/tmp/build-mariadb-server-10.7-datadir' ...
      2021-12-09  9:54:04 0 [Note] /home/dan/repos/build-mariadb-server-10.7/sql/mysqld (server 10.7.2-MariaDB) starting as process 250473 ...
      2021-12-09  9:54:04 0 [Note] InnoDB: The first data file './ibdata1' did not exist. A new tablespace will be created!
      2021-12-09  9:54:04 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
      2021-12-09  9:54:04 0 [Note] InnoDB: Number of transaction pools: 1
      2021-12-09  9:54:04 0 [Note] InnoDB: Using crc32 + pclmulqdq instructions
      2021-12-09  9:54:04 0 [Note] InnoDB: Using liburing
      2021-12-09  9:54:04 0 [Note] InnoDB: Initializing buffer pool, total size = 128.000MiB, chunk size = 128.000MiB
      2021-12-09  9:54:04 0 [Note] InnoDB: Completed initialization of buffer pool
      2021-12-09  9:54:04 0 [Note] InnoDB: Setting O_DIRECT on file ./ibdata1 failed
      2021-12-09  9:54:04 0 [Note] InnoDB: Setting file './ibdata1' size to 12.000MiB. Physically writing the file full; Please wait ...
      2021-12-09  9:54:04 0 [Note] InnoDB: File './ibdata1' size is now 12.000MiB.
      2021-12-09  9:54:04 0 [Note] InnoDB: Setting log file ./ib_logfile101 size to 96.000MiB
      2021-12-09  9:54:04 0 [Note] InnoDB: Renaming log file ./ib_logfile101 to ./ib_logfile0
      2021-12-09  9:54:04 0 [Note] InnoDB: New log file created, LSN=10317
      2021-12-09  9:54:04 0 [Note] InnoDB: Doublewrite buffer not found: creating new
      2021-12-09  9:54:04 0 [Note] InnoDB: Doublewrite buffer created
      2021-12-09  9:54:04 0 [Note] InnoDB: 128 rollback segments are active.
      2021-12-09  9:54:04 0 [Note] InnoDB: Creating shared tablespace for temporary tables
      2021-12-09  9:54:04 0 [Note] InnoDB: Setting file './ibtmp1' size to 12.000MiB. Physically writing the file full; Please wait ...
      2021-12-09  9:54:04 0 [Note] InnoDB: File './ibtmp1' size is now 12.000MiB.
      2021-12-09  9:54:04 0 [Note] InnoDB: 10.7.2 started; log sequence number 0; transaction id 3
      OK
      2021-12-09  9:54:04 0 [Note] sql/mysqld (server 10.7.2-MariaDB) starting as process 250501 ...
      2021-12-09  9:54:04 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
      2021-12-09  9:54:04 0 [Note] InnoDB: Number of transaction pools: 1
      2021-12-09  9:54:04 0 [Note] InnoDB: Using crc32 + pclmulqdq instructions
      2021-12-09  9:54:04 0 [Note] InnoDB: Using liburing
      2021-12-09  9:54:04 0 [Note] InnoDB: Initializing buffer pool, total size = 30.000GiB, chunk size = 128.000MiB
      2021-12-09  9:54:04 0 [Note] InnoDB: Completed initialization of buffer pool
      2021-12-09  9:54:04 0 [Note] InnoDB: Setting O_DIRECT on file ./ibdata1 failed
      2021-12-09  9:54:04 0 [Note] InnoDB: Resizing redo log from 96.000MiB to 128.000MiB; LSN=41361
      2021-12-09  9:54:04 0 [Note] InnoDB: Starting to delete and rewrite log file.
      2021-12-09  9:54:04 0 [Note] InnoDB: Setting log file ./ib_logfile101 size to 128.000MiB
      2021-12-09  9:54:04 0 [Note] InnoDB: Renaming log file ./ib_logfile101 to ./ib_logfile0
      2021-12-09  9:54:04 0 [Note] InnoDB: New log file created, LSN=41361
      2021-12-09  9:54:04 0 [Note] InnoDB: 128 rollback segments are active.
      2021-12-09  9:54:04 0 [Note] InnoDB: Creating shared tablespace for temporary tables
      2021-12-09  9:54:04 0 [Note] InnoDB: Setting file './ibtmp1' size to 12.000MiB. Physically writing the file full; Please wait ...
      2021-12-09  9:54:04 0 [Note] InnoDB: File './ibtmp1' size is now 12.000MiB.
      2021-12-09  9:54:04 0 [Note] InnoDB: 10.7.2 started; log sequence number 41349; transaction id 14
      2021-12-09  9:54:04 0 [Note] InnoDB: Loading buffer pool(s) from /tmp/build-mariadb-server-10.7-datadir/ib_buffer_pool
      2021-12-09  9:54:04 0 [Note] Plugin 'FEEDBACK' is disabled.
      2021-12-09  9:54:04 0 [Note] InnoDB: Buffer pool(s) load completed at 211209  9:54:04
      2021-12-09  9:54:04 0 [Note] sql/mysqld: ready for connections.
      Version: '10.7.2-MariaDB'  socket: '/tmp/build-mariadb-server-10.7.sock'  port: 0  Source distribution
      2021-12-09  9:56:57 0 [Note] sql/mysqld (initiated by: unknown): Normal shutdown
      2021-12-09  9:56:57 0 [Note] InnoDB: FTS optimize thread exiting.
      2021-12-09  9:56:57 0 [Note] InnoDB: Starting shutdown...
      2021-12-09  9:56:57 0 [Note] InnoDB: Dumping buffer pool(s) to /tmp/build-mariadb-server-10.7-datadir/ib_buffer_pool
      2021-12-09  9:56:57 0 [Note] InnoDB: Buffer pool(s) dump completed at 211209  9:56:57
      2021-12-09  9:56:57 0 [Note] InnoDB: Removed temporary tablespace data file: "./ibtmp1"
      2021-12-09  9:56:57 0 [Note] InnoDB: Shutdown completed; log sequence number 42602; transaction id 15
      2021-12-09  9:56:57 0 [Note] sql/mysqld: Shutdown complete
      d9f7a6b3
    • Daniel Black's avatar
      MDEV-25342: autosize innodb_buffer_pool_chunk_size · d434250e
      Daniel Black authored
      The previous default innodb_buffer_pool_chunk_size of 128M
      made sense when the innodb buffer pool size was a few GB.
      
      When the pool size is 128GB this means the chunk size is 0.1%
      of this. Fine tuning the buffer pool size on such a fine
      increment doesn't make practical sense. Also on extremely
      large buffer pool systems, initializing on the default 128M can
      also take a considerable amount of time.
      
      When large pages are enabled, the chunk size has to be a multiple
      of an available large page size or memory allocation without
      use can occur.
      
      Previously the default 0 was documented as disabling resizing.
      With srv_buf_pool_chunk_unit > 0 assertions in the code and the
      minimium value set, I doubt this was ever the case.
      
      As such the autosizing (based on default 0) takes place as follows:
      * a 64th of the innodb_buffer_pool_size
      * if large pages, this is rounded down the the nearest multiple
        of the large page size.
      * If less than 1MB, set to 1MB.
      
      This does mean the new default innodb_buffer_pool_chunk size is
      2MB, derived form the above formular with 128MB as the buffer pool
      size.
      
      The innodb_buffer_pool_chunk_size is changed to a size_t for
      better compatiblity with the memory allocations which use size_t.
      The previous upper limit is changed to the maxium of a size_t. The
      maximium value used is the buffer pool size anyway.
      
      Getting this default value of the chunk size to a more practical
      size facilitates further development of more automated resizing
      without significant overhead or memory fragmentation.
      
      innodb_buffer_pool_resize test adjusted based on 1M default
      chunk size thanks Wlad.
      d434250e
    • Marko Mäkelä's avatar
      Merge 10.7 into 10.8 · e5b75ac3
      Marko Mäkelä authored
      e5b75ac3
    • Marko Mäkelä's avatar
      Merge 10.6 into 10.7 · b0998583
      Marko Mäkelä authored
      b0998583
    • Marko Mäkelä's avatar
      Merge 10.5 into 10.6 · 1abc476f
      Marko Mäkelä authored
      1abc476f
    • Marko Mäkelä's avatar
      MDEV-27499 Performance regression in log_checkpoint_margin() · e44439ab
      Marko Mäkelä authored
      In commit 4c3ad244 (MDEV-27416)
      an unnecessarily strict wait condition was introduced in the
      function buf_flush_wait(). Most callers actually only care that
      the pages have been flushed, not that a checkpoint has completed.
      
      Only in the buf_flush_sync() call for log resizing, we might care
      about the log checkpoint. But, in fact,
      srv_prepare_to_delete_redo_log_file() is explicitly disabling
      checkpoints. So, we can simply remove the unnecessary wait loop.
      
      Thanks to Krunal Bauskar for reporting this performance regression
      that we failed to repeat in our testing.
      e44439ab
  3. 17 Jan, 2022 4 commits
  4. 16 Jan, 2022 1 commit
    • Otto Kekäläinen's avatar
      Deb: Track libmariadb3 ABI explicitly to detect future symbol changes · 4775a406
      Otto Kekäläinen authored
      When this file exists, Debian builds will automatically compare the built
      ABI and symbols to the ones defined in the list. If there is a mismatch,
      developers need to update the libmariadb3.symbols file, otherwise the build
      fails.
      
      This ensures there are no accidental symbol changes. This also helps track
      what symbols changed and in what versions.
      
      Also add a README embedded in the sources to facilitate correct use of this
      new file.
      
      This change is made for branch 10.2, as it was the first server version to
      introduce an embedded libmariadb3 client library, and from this version
      the file with the same libmariadb3 specific content will be merged to
      10.3, 10.4 and 10.5.
      
      Related: MDEV-21732
      4775a406
  5. 15 Jan, 2022 3 commits
  6. 14 Jan, 2022 2 commits
    • Marko Mäkelä's avatar
      Remove FIXME comments that refer to an early MDEV-14425 plan · 8535c260
      Marko Mäkelä authored
      In MDEV-14425, an early plan was to introduce a separate log file
      for file-level records and checkpoint information. The reasoning was
      that fil_system.mutex contention would be reduced by not having to
      maintain fil_system.named_spaces. The mutex contention was actually
      fixed in MDEV-23855 by making some data fields in fil_space_t and
      fil_node_t use std::atomic.
      
      Using a single circular log file simplifies recovery and backup.
      8535c260
    • Marko Mäkelä's avatar
      Merge 10.7 into 10.8 · 347f6d01
      Marko Mäkelä authored
      347f6d01