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
Thirunarayanan Balathandayuthapani a35b4ae898 MDEV-15528 Punch holes when pages are freed
When a InnoDB data file page is freed, its contents becomes garbage,
and any storage allocated in the data file is wasted. During flushing,
InnoDB initializes the page with zeros if scrubbing is enabled. If the
tablespace is compressed then InnoDB should punch a hole else ignore the
flushing of the freed page.

buf_page_t:
- Replaced the variable file_page_was_freed, init_on_flush in buf_page_t
with status enum variable.
- Changed all debug assert of file_page_was_freed to DBUG_ASSERT
of buf_page_t::status

Removed buf_page_set_file_page_was_freed(),
buf_page_reset_file_page_was_freed().

buf_page_free(): Newly added function which takes X-lock on the page
before marking the status as FREED. So that InnoDB flush handler can
avoid concurrent flush of the freed page. Also while flushing the page,
InnoDB make sure that redo log which does freeing of the page also written
to the disk. Currently, this function only marks the page as FREED if
it is in buffer pool

buf_flush_freed_page(): Newly added function which initializes zeros
asynchorously if innodb_immediate_scrub_data_uncompressed is enabled.
Punch a hole to the file synchorously if page_compressed is enabled.
Reset the io_fix to NORMAL. Release the block from flush list and
associated mutex before writing zeros or punch a hole to the file.

buf_flush_page(): Removed the unnecessary usage of temporary
variable "flush"

fil_io(): Introduce new parameter called punch_hole. It allows fil_io()
to punch the hole to the file for the given offset.

buf_page_create(): Let the callers assign buf_page_t::status.
Every caller should eventually invoke mtr_t::init().

fsp_page_create(): Remove the unused mtr_t parameter.

In all other callers of buf_page_create() except fsp_page_create(),
before invoking mtr_t::init(), invoke
mtr_t::sx_latch_at_savepoint() or mtr_t::x_latch_at_savepoint().

mtr_t::init(): Initialize buf_page_t::status also for the temporary
tablespace (when redo logging is disabled), to avoid assertion failures.
2020-03-10 10:51:08 +05:30
BUILD
client
cmake MDEV-21534 - Improve innodb redo log group commit performance 2020-03-01 19:02:21 +01:00
dbug
debian MDEV-14918: Use sst_dump from package rocksdb-tools, don't build it 2020-03-05 09:11:49 +02:00
Docs
extra MDEV-14425 preparation: Remove log_header_read() 2020-03-04 10:08:33 +02:00
include Fix build on aarch64, after MDEV-21534 2020-03-02 14:28:16 +01:00
libmariadb@8e9c311610 revert accidental libmariadb change 2020-02-19 16:39:02 +03:00
libmysqld MDEV-21702 Add a data type for privileges 2020-02-11 08:10:26 +04:00
libservices
man MDEV-21228: mariadb-conv man page 2020-03-04 16:50:17 +01:00
mysql-test MDEV-15528 Punch holes when pages are freed 2020-03-10 10:51:08 +05:30
mysys MDEV-18650: Options deprecated in previous versions - thread_concurrency 2020-02-13 13:42:01 +02:00
mysys_ssl
plugin Merge pull request #1434 from citrus-it/illumos-auth-socket 2020-03-03 12:51:47 +02:00
randgen/conf
scripts MDEV-18650: Options deprecated in previous versions - storage_engine 2020-02-13 13:42:01 +02:00
sql MDEV-21833 Make slave_run_triggers_for_rbr enforce triggers to run on slave, even when there are triggers on the master 2020-03-09 22:16:43 +02:00
sql-bench
sql-common
storage MDEV-15528 Punch holes when pages are freed 2020-03-10 10:51:08 +05:30
strings Merge 10.4 into 10.5 2020-02-07 08:51:20 +02:00
support-files Merge branch '10.4' into 10.5 2020-02-12 08:55:17 +01:00
tests
tpool Fix compilation error due to type mismatch in tpool_generic.cc 2020-02-13 13:42:01 +02:00
unittest Merge 10.4 into 10.5 2020-02-07 08:51:20 +02:00
vio
win
wsrep-lib@dcdd7435bd Update wsrep-lib submodule. 2020-02-19 09:35:48 +02:00
zlib
.clang-format
.gitattributes
.gitignore Merge branch '10.4' into 10.5 2020-02-12 08:55:17 +01:00
.gitmodules
.travis.compiler.sh
.travis.yml Review comments: Refactoring the duplicates 2020-02-24 19:01:51 +02:00
appveyor.yml
BUILD-CMAKE
CMakeLists.txt
config.h.cmake
configure.cmake
CONTRIBUTING.md
COPYING
CREDITS
EXCEPTIONS-CLIENT
INSTALL-SOURCE
INSTALL-WIN-SOURCE
KNOWN_BUGS.txt
README.md
THIRDPARTY
VERSION bump the VERSION 2020-02-14 10:46:08 -05:00

Code status:

  • Travis CI status travis-ci.org (10.5 branch)
  • Appveyor CI status ci.appveyor.com

MariaDB: drop-in replacement for MySQL

MariaDB is 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.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/library/new-and-old-releases/

https://mariadb.org/

As MariaDB is a full replacement of MySQL, the MySQL manual at http://dev.mysql.com/doc is generally applicable.

Help

More help is available from the Maria Discuss mailing list https://launchpad.net/~maria-discuss and the #maria IRC channel on Freenode.

Live QA for beginner contributors

MariaDB has a dedicated time each week when we answer new contributor questions live on Zulip and IRC. 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/

Bugs in the MySQL code can also be submitted at: https://bugs.mysql.com

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