Github
This repository
This repository
All repositories

MySQL fork maintained and used at Twitter

Read-Only access

branch: master
Switch branches/tags
Nothing to show

Twitter MySQL 5.5.29.t10

latest commit 7cc603246f
Davi Arnaut authored
.bzr-mysql Fix tree setup: Wrong mailing list for commit mails. []
BUILD Updated/added copyright headers []
Docs INSTALL-BINARY placeholder (upmerge from 5.1): change invalid URLs (r… []
client Raise Twitter MySQL version to t10-dev. []
cmake Raise Twitter MySQL version to t10-dev. []
cmd-line-utils weave merge of mysql-5.1->mysql-5.5 []
dbug Bug#14542543 FIX BUG #12694872 IN 5.5 []
extra Raise the Twitter version to t8 merge commit 'mysql-5.5.28' into it. []
include The fractional part of the def, min and max values of system variables []
libmysql Raise Twitter MySQL version to t10-dev. []
libmysqld Raise the Twitter version to t8 merge commit 'mysql-5.5.28' into it. []
libservices Updated/added copyright headers []
man Exclude NDB man pages from a source tarball, []
mysql-test Expose I/O operations counters per tablespace. []
mysys The fractional part of the def, min and max values of system variables []
packaging Building RPMs for ULN: []
plugin Raise the Twitter version to t8 merge commit 'mysql-5.5.28' into it. []
regex Merge from mysql-5.1 for bug#58026. []
scripts Print ISO date and PID with mysqld_safe log messages. []
sql-bench Updated/added copyright headers []
sql-common Bug #12910665: AUTH-PLUGIN-DATA-LEN NOT TESTED FOR VALIDITY BY THE []
sql Only print path to minidump if writing it actually succeeded. []
storage Report counter for InnoDB stall events. []
strings Raise the Twitter version to t8 merge commit 'mysql-5.5.28' into it. []
support-files Raise Twitter MySQL version to t10-dev. []
tests merge 5.1 => 5.5 []
unittest Merge additional changes from branch 'statement-timeout' into t8-dev []
vio Bug #13115401: -SSL-KEY VALUE IS NOT VALIDATED AND IT ALLOWS INSECURE []
win Updated/added copyright headers []
zlib WL#5665: Removal of the autotools-based build system []
.bzrfileids Add "packaging/rpm-uln/" directory. []
.bzrignore Raise the Twitter version to t8 merge commit 'mysql-5.5.28' into it. []
.reviewboardrc Specify the repository name for Review Board. []
BUILD-CMAKE Updated/added copyright headers []
CMakeLists.txt Raise Twitter MySQL version to t10-dev. []
COPYING Use a new version of "COPYING", the GPL text. []
INSTALL-SOURCE Merged some fixes from 7.2 release branches []
INSTALL-WIN-SOURCE Merged some fixes from 7.2 release branches []
README-MySQL Merge commit 'mysql-5.5.23' into MYSQL-63 []
README.md Complete a thought and correct for consistency. []
VERSION Twitter MySQL 5.5.29.t10 []
config.h.cmake Bug#65830: utf8_general_cs is not available []
configure.cmake Use a C++ specific header check when looking for a C++ header file. []
README.md

Twitter MySQL 5.5

This is Twitter's MySQL development branch, which is based on MySQL 5.5 as published by Oracle on MySQL on Launchpad.

This repository is published in order to share code and information and is not intended to be used directly outside of Twitter. We provide no guarantees of bug fixes, ongoing maintenance, compatibility, or suitability for any user outside of Twitter.

The original README file provided with the upstream MySQL release can be found at README-MySQL.

Features in Twitter MySQL

Additional status variables

Additional status variables have been added, particularly from the internals of InnoDB. This allows us to monitor our systems more effectively and understand their behavior better when handling production workloads. The variables added are:

  • The number of InnoDB files and tablespace files opened, closed, and currently open. This information was previously not exposed by InnoDB.
  • The number of deadlocks encountered. This information was previously not exposed by InnoDB.
  • The current log sequence number (LSN) as well as the LSN flushed up to and checkpointed up to. This information has previously been available in SHOW ENGINE INNODB STATUS.

Optimization of memory allocation under NUMA

On most recent multi-processor systems, a non-uniform memory access NUMA (NUMA) architecture is in use, which divides the total system memory across multiple NUMA "nodes". When allocating large amounts of memory to InnoDB's buffer pool, as is typical, some inefficiencies as well as serious problems can be encountered. More details about the problems typical in NUMA systems running MySQL can be found in a blog post by Jeremy Cole. The following changes have been made to optimize and improve this:

  • An option has been added to forcibly pre-allocate the entire buffer pool during startup. This is primarily intended to force the system to decide which pages to allocate, and on which NUMA node to allocate them. If the buffer pool can't be fully allocated for any reason, InnoDB will abort during startup.
  • An option has been added to mysqld_safe to wrap the start of mysqld with numactl --interleave=all to interleave memory allocation between all NUMA nodes available. This ensures that no NUMA node is favored for any allocation, so that memory usage will remain even over time between multiple NUMA nodes.
  • An option has been added to mysqld_safe to flush the operating system buffer caches before startup (on Linux only). Linux will normally not evict optional caches to make new allocations unless the system is under memory pressure, which can cause supposedly evenly interleaved memory allocations to still be done unevenly, favoring the node with less data cached before startup. Flushing the caches before startup ensures that no large cache allocations are present in the system before InnoDB allocates its buffer pool.

Server-side query timeout

  • Reduced unnecessary work through improved server-side statement timeout support. This allows the server to proactively cancel queries that run longer than a millisecond-granularity timeout.

Buffer pool export and restore by prefetch

  • Export and restore InnoDB buffer pool in using a safe and lightweight method. This enables us to build tools to support rolling restarts of our services with minimal pain.

Optimization for solid-state drives (SSDs)

  • Optimize MySQL for SSD-based machines, including page-flushing behavior and reduction in writes to disk to improve lifespan.


Something went wrong with that request. Please try again.