MariaDB server is a community developed fork of MySQL server. Started by core members of the original MySQL team, MariaDB actively works with outside developers to deliver the most featureful, stable, and sanely licensed open SQL server in the industry.
Find a file
Marko Mäkelä aaef2e1d8c MDEV-27058: Reduce the size of buf_block_t and buf_page_t
buf_page_t::frame: Moved from buf_block_t::frame.
All 'thin' buf_page_t describing compressed-only ROW_FORMAT=COMPRESSED
pages will have frame=nullptr, while all 'fat' buf_block_t
will have a non-null frame pointing to aligned innodb_page_size bytes.
This eliminates the need for separate states for
BUF_BLOCK_FILE_PAGE and BUF_BLOCK_ZIP_PAGE.

buf_page_t:🔒 Moved from buf_block_t::lock. That is, all block
descriptors will have a page latch. The IO_PIN state that was used
for discarding or creating the uncompressed page frame of a
ROW_FORMAT=COMPRESSED block is replaced by a combination of read-fix
and page X-latch.

page_zip_des_t::fix: Replaces state_, buf_fix_count_, io_fix_, status
of buf_page_t with a single std::atomic<uint32_t>. All modifications
will use store(), fetch_add(), fetch_sub(). This space was previously
wasted to alignment on 64-bit systems. We will use the following encoding
that combines a state (partly read-fix or write-fix) and a buffer-fix
count:

buf_page_t::NOT_USED=0 (previously BUF_BLOCK_NOT_USED)
buf_page_t::MEMORY=1 (previously BUF_BLOCK_MEMORY)
buf_page_t::REMOVE_HASH=2 (previously BUF_BLOCK_REMOVE_HASH)
buf_page_t::FREED=3 + fix: pages marked as freed in the file
buf_page_t::UNFIXED=1U<<29 + fix: normal pages
buf_page_t::IBUF_EXIST=2U<<29 + fix: normal pages; may need ibuf merge
buf_page_t::REINIT=3U<<29 + fix: reinitialized pages (skip doublewrite)
buf_page_t::READ_FIX=4U<<29 + fix: read-fixed pages (also X-latched)
buf_page_t::WRITE_FIX=5U<<29 + fix: write-fixed pages (also U-latched)
buf_page_t::WRITE_FIX_IBUF=6U<<29 + fix: write-fixed; may have ibuf
buf_page_t::WRITE_FIX_REINIT=7U<<29 + fix: write-fixed (no doublewrite)

buf_page_t::write_complete(): Change WRITE_FIX or WRITE_FIX_REINIT to
UNFIXED, and WRITE_FIX_IBUF to IBUF_EXIST, before releasing the U-latch.

buf_page_t::read_complete(): Renamed from buf_page_read_complete().
Change READ_FIX to UNFIXED or IBUF_EXIST, before releasing the X-latch.

buf_page_t::can_relocate(): If the page latch is being held or waited for,
or the block is buffer-fixed or io-fixed, return false. (The condition
on the page latch is new.)

Outside buf_page_get_gen(), buf_page_get_low() and buf_page_free(), we
will acquire the page latch before fix(), and unfix() before unlocking.

buf_page_t::flush(): Replaces buf_flush_page(). Optimize the
handling of FREED pages.

buf_pool_t::release_freed_page(): Assume that buf_pool.mutex is held
by the caller.

buf_page_t::is_read_fixed(), buf_page_t::is_write_fixed(): New predicates.

buf_page_get_low(): Ignore guesses that are read-fixed because they
may not yet be registered in buf_pool.page_hash and buf_pool.LRU.

buf_page_optimistic_get(): Acquire latch before buffer-fixing.

buf_page_make_young(): Leave read-fixed blocks alone, because they
might not be registered in buf_pool.LRU yet.

recv_sys_t::recover_deferred(), recv_sys_t::recover_low():
Possibly fix MDEV-26326, by holding a page X-latch instead of
only buffer-fixing the page.
2021-11-18 17:47:19 +02:00
.github Add Pull Request template file to the MariaDB/server repository 2021-05-27 16:28:28 +03:00
BUILD Merge 10.3 into 10.4 2021-08-31 09:22:21 +03:00
client Merge 10.5 into 10.6 2021-11-09 09:11:50 +02:00
cmake Merge 10.5 into 10.6 2021-11-17 15:03:47 +02:00
dbug MDEV-25602 get rid of __WIN__ in favor of standard _WIN32 2021-06-06 13:21:03 +02:00
debian Merge 10.5 into 10.6 2021-10-13 13:28:12 +03:00
Docs Clean up logcheck.ignore.* configs and unify MariaDB.org links with https 2020-04-23 10:07:07 +03:00
extra improve build, allow sql library to be built in parallel with builtins 2021-11-09 17:02:45 +02:00
include Merge 10.5 into 10.6 2021-10-28 09:08:58 +03:00
libmariadb@0bf84c065e Merge 10.5 into 10.6 2021-10-21 16:06:34 +03:00
libmysqld Add new option NOT_EMBEDDED, for plugins 2021-11-09 16:57:27 +02:00
libservices Add build on AIX 2020-12-16 08:07:04 +11:00
man MDEV-22552: mytop packaging 2021-10-25 12:15:49 +02:00
mysql-test MDEV-27058: Reduce the size of buf_block_t and buf_page_t 2021-11-18 17:47:19 +02:00
mysys Merge 10.5 into 10.6 2021-10-28 09:08:58 +03:00
mysys_ssl Merge 10.3 into 10.4 2020-10-22 13:27:18 +03:00
plugin Merge 10.5 into 10.6 2021-10-28 09:08:58 +03:00
randgen/conf
scripts MDEV-26925 - upgrade fails creating trigger in sysschema, if root user does not exist 2021-10-28 14:28:50 +02:00
sql Merge 10.5 into 10.6 2021-11-17 15:03:47 +02:00
sql-bench MDEV-24854: Change innodb_flush_method=O_DIRECT by default 2021-02-20 11:58:58 +02:00
sql-common Change CHARSET_INFO character set and collaction names to LEX_CSTRING 2021-05-19 22:54:07 +02:00
storage MDEV-27058: Reduce the size of buf_block_t and buf_page_t 2021-11-18 17:47:19 +02:00
strings Merge 10.5 into 10.6 2021-11-09 09:11:50 +02:00
support-files Merge 10.5 into 10.6 2021-09-30 10:38:44 +03:00
tests Merge 10.5 into 10.6 2021-10-05 17:04:51 +03:00
tpool MDEV-27058: Move buf_page_t::slot to IORequest::slot 2021-11-18 17:44:33 +02:00
unittest Merge 10.5 into 10.6 2021-11-16 16:30:45 +02:00
vio MDEV-25602 get rid of __WIN__ in favor of standard _WIN32 2021-06-06 13:21:03 +02:00
win Merge 10.5 into 10.6 2021-11-17 15:03:47 +02:00
wsrep-lib@22921e7082 MDEV-26707 SR transaction rolls back locally, but not in cluster 2021-10-12 07:25:13 +03:00
zlib Merge branch '10.3' into 10.4 2020-12-25 09:13:28 +01:00
.clang-format Merge 10.4 into 10.5 2019-12-27 21:17:16 +02:00
.gitattributes .gitattributes - correct language detection 2021-01-15 18:29:35 +11:00
.gitignore Merge 10.5 into 10.6 2021-10-18 16:36:24 +03:00
.gitlab-ci.yml Misc improvements to the Gitlab-CI pipeline for MariaDB 2021-09-29 20:39:50 -07:00
.gitmodules Add stub for building ColumnStore 2020-06-19 21:04:17 +02:00
.travis.compiler.sh MDEV-19780 Remove the TokuDB storage engine 2020-05-14 10:11:47 +03:00
.travis.yml MDEV-25288 follow-up: Remove traces of unstable-tests 2021-06-11 15:59:02 +03:00
appveyor.yml appveyor - do not use buggy cygwin bison. 2021-11-04 10:22:06 +01:00
BUILD-CMAKE
CMakeLists.txt Add new option NOT_EMBEDDED, for plugins 2021-11-09 16:57:27 +02:00
config.h.cmake MDEV-25602 get rid of __WIN__ in favor of standard _WIN32 2021-06-06 13:21:03 +02:00
configure.cmake Merge 10.5 into 10.6 2021-10-21 16:06:34 +03:00
CONTRIBUTING.md Remove mention of Freenode 2021-09-22 07:15:08 +02:00
COPYING
CREDITS Update sponsors 2021-03-12 07:02:29 +11:00
INSTALL-SOURCE
INSTALL-WIN-SOURCE
KNOWN_BUGS.txt
README.md Remove mention of Freenode 2021-09-22 07:15:08 +02:00
THIRDPARTY Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
VERSION bump the VERSION 2021-11-08 12:56:18 -05:00

Code status:

  • Appveyor CI status ci.appveyor.com

MariaDB: The open source relational database

MariaDB was designed as a drop-in replacement of MySQL(R) with more features, new storage engines, fewer bugs, and better performance.

MariaDB is brought to you by the MariaDB Foundation and the MariaDB Corporation. Please read the CREDITS file for details about the MariaDB Foundation, and who is developing MariaDB.

MariaDB is developed by many of the original developers of MySQL who now work for the MariaDB Corporation, the MariaDB Foundation and by many people in the community.

MySQL, which is the base of MariaDB, is a product and trademark of Oracle Corporation, Inc. For a list of developers and other contributors, see the Credits appendix. You can also run 'SHOW authors' to get a list of active contributors.

A description of the MariaDB project and a manual can be found at:

https://mariadb.org

https://mariadb.com/kb/en/

https://mariadb.com/kb/en/mariadb-vs-mysql-features/

https://mariadb.com/kb/en/mariadb-versus-mysql-compatibility/

https://mariadb.com/kb/en/new-and-old-releases/

Help

More help is available from the Maria Discuss mailing list https://launchpad.net/~maria-discuss, MariaDB's Zulip instance, https://mariadb.zulipchat.com/

Live QA for beginner contributors

MariaDB has a dedicated time each week when we answer new contributor questions live on Zulip. From 8:00 to 10:00 UTC on Mondays, and 10:00 to 12:00 UTC on Thursdays, anyone can ask any questions theyd like, and a live developer will be available to assist.

New contributors can ask questions any time, but we will provide immediate feedback during that interval.

Licensing


NOTE:

MariaDB is specifically available only under version 2 of the GNU General Public License (GPLv2). (I.e. Without the "any later version" clause.) This is inherited from MySQL. Please see the README file in the MySQL distribution for more information.

License information can be found in the COPYING file. Third party license information can be found in the THIRDPARTY file.


Bug Reports

Bug and/or error reports regarding MariaDB should be submitted at: https://jira.mariadb.org

For reporting security vulnerabilities see: https://mariadb.org/about/security-policy/

The code for MariaDB, including all revision history, can be found at: https://github.com/MariaDB/server