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
unknown 77017191de WL#3071 - Maria checkpoint
- serializing calls to flush_pagecache_blocks_int() on the same file
to avoid known concurrency bugs
- having that, we can now enable the background thread, as the
flushes it does are now supposedly safe in concurrent situations.
- new type of flush FLUSH_KEEP_LAZY: when the background checkpoint
thread is flushing a packet of dirty pages between two checkpoints,
it uses this flush type, indeed if a file is already being flushed
by another thread it's smarter to move on to the next file than wait.
- maria_checkpoint_frequency renamed to maria_checkpoint_interval.


include/my_sys.h:
  new type of flushing for the page cache: FLUSH_KEEP_LAZY
mysql-test/r/maria.result:
  result update
mysys/mf_keycache.c:
  indentation. No FLUSH_KEEP_LAZY support in key cache.
storage/maria/ha_maria.cc:
  maria_checkpoint_frequency was somehow a hidden part of the
  Checkpoint API and that was not good. Now we have checkpoint_interval,
  local to ha_maria.cc, which serves as container for the user-visible
  maria_checkpoint_interval global variable; setting it calls
  update_checkpoint_interval which passes the new value to
  ma_checkpoint_init(). There is no hiding anymore.
  By default, enable background thread which does checkpoints
  every 30 seconds, and dirty page flush in between. That thread takes
  a checkpoint when it ends, so no need for maria_hton_panic to take one.
  The | is | and not ||, because maria_panic() must always be called.
  frequency->interval.
storage/maria/ma_checkpoint.c:
  Use FLUSH_KEEP_LAZY for background thread when it flushes packets of
  dirty pages between two checkpoints: it is smarter to move on to
  the next file than wait for it to have been completely flushed, which
  may take long.
  Comments about flush concurrency bugs moved from ma_pagecache.c.
  Removing out-of-date comment.
  frequency->interval.
  create_background_thread -> (interval>0).
  In ma_checkpoint_background(), some variables need to be preserved
  between iterations.
storage/maria/ma_checkpoint.h:
  new prototype
storage/maria/ma_pagecache.c:
  - concurrent calls of flush_pagecache_blocks_int() on the same file
  cause bugs (see @note in that function); we fix them by serializing
  in this situation. For that we use a global hash of (file, wqueue).
  When flush_pagecache_blocks_int() starts it looks into the hash,
  using the file as key. If not found, it inserts (file,wqueue) into the
  hash, flushes the file, and finally removes itself from the hash and
  wakes up any waiter in the queue. If found, it adds itself to the
  wqueue and waits.
  - As a by-product, we can remove changed_blocks_is_incomplete
  and replace it by scanning the hash, replace the sleep() by a queue wait.
  - new type of flush FLUSH_KEEP_LAZY: when flushing a file, if it's
  already being flushed by another thread (even partially), return
  immediately.
storage/maria/ma_pagecache.h:
  In pagecache, a hash of files currently being flushed (i.e. there
  is a call to flush_pagecache_blocks_int() for them).
storage/maria/ma_recovery.c:
  new prototype
storage/maria/ma_test1.c:
  new prototype
storage/maria/ma_test2.c:
  new prototype
2007-10-19 14:15:13 +02:00
BitKeeper propagation to maria_repair_by_sort() and maria_repair_parallel() 2007-08-08 11:36:41 +02:00
BUILD Merge janus.mylan:/usr/home/serg/Abk/mysql-5.1 2007-10-08 21:01:44 +02:00
client my_getopt: enforce "correctness" (min/max/block_size) of default values 2007-10-13 20:25:53 +02:00
cmd-line-utils make_binary_distribution.sh: 2007-09-26 20:19:33 +02:00
config/ac-macros Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-5.1-build 2007-09-26 18:49:09 +02:00
dbug dbug_add_tags.pl: 2007-10-13 20:26:32 +02:00
debian Made changes to debian control files to support building 5.1 packages. 2007-04-20 16:15:30 -07:00
Docs Merge mysql.com:/home/kent/bk/tmp/mysql-5.0-build 2007-03-22 19:44:14 +01:00
extra Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-5.1-build 2007-09-26 18:49:09 +02:00
include WL#3071 - Maria checkpoint 2007-10-19 14:15:13 +02:00
libmysql Merge janus.mylan:/usr/home/serg/Abk/mysql-5.1 2007-10-08 21:01:44 +02:00
libmysql_r Makefile.am: 2007-10-08 20:55:44 +02:00
libmysqld Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-5.1-build 2007-09-26 18:49:09 +02:00
man my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
mysql-test WL#3071 - Maria checkpoint 2007-10-19 14:15:13 +02:00
mysys WL#3071 - Maria checkpoint 2007-10-19 14:15:13 +02:00
netware Merge trift2.:/MySQL/M50/netware2-5.0 2007-08-24 23:40:36 +02:00
plugin Merge janus.mylan:/usr/home/serg/Abk/mysql-5.1 2007-10-08 21:01:44 +02:00
pstack Makefile.am, configure.in: 2007-09-27 21:39:23 +02:00
regex Merge bk-internal.mysql.com:/home/bk/mysql-5.1-marvel 2007-08-16 18:21:47 +02:00
scripts Merge production.mysql.com:/usersnfs/jperkin/bk/build/5.0 2007-10-04 12:21:51 +02:00
server-tools ha_partition.cc, listener.h, listener.cc, ha_partition.h: 2007-09-07 13:30:42 +02:00
sql my_getopt: enforce "correctness" (min/max/block_size) of default values 2007-10-13 20:25:53 +02:00
sql-bench Fixed REPAIR/CHECK/ANALYZE TABLE for tables with new BLOCK-ROW format. 2007-07-01 16:20:57 +03:00
sql-common Fixed a lot of compiler warnings and errors detected by Forte C++ on Solaris 2007-08-13 16:11:25 +03:00
storage WL#3071 - Maria checkpoint 2007-10-19 14:15:13 +02:00
strings Merge trift2.:/MySQL/M51/target-5.1.22 2007-08-22 16:08:55 +02:00
support-files Merge janus.mylan:/usr/home/serg/Abk/mysql-5.1 2007-10-08 21:01:44 +02:00
tests Merge dfischer@bk-internal.mysql.com:/home/bk/mysql-5.1-build 2007-08-24 10:13:03 +02:00
unittest Merge hynda.mysql.fi:/home/my/mysql-5.1-main 2007-09-27 17:05:07 +03:00
vio Merge pilot.(none):/data/msvensson/mysql/mysql-5.0-maint 2007-08-28 11:36:10 +02:00
win Merge production.mysql.com:/usersnfs/jperkin/bk/trees/50/push-5.0 2007-09-07 21:56:00 +02:00
zlib CMakeLists.txt, README, configure.js 2007-08-03 21:51:37 +02:00
.bzrignore make maria more pluggable 2007-10-12 10:22:49 +02:00
.cvsignore Import changeset 2000-07-31 21:29:14 +02:00
.tree-is-private - WL#3239 "log CREATE TABLE in Maria" 2007-06-22 14:49:37 +02:00
CMakeLists.txt CMakeLists.txt (many), win/README, mysql_manifest.cmake, configure.js: 2007-08-06 23:16:01 +02:00
configure.in Merge janus.mylan:/usr/home/serg/Abk/mysql-5.1 2007-10-08 21:01:44 +02:00
COPYING - manual.texi will be replaced with a manual written in DocBook/XML. This ChangeSet removes all 2005-04-13 11:51:38 +02:00
EXCEPTIONS-CLIENT EXCEPTIONS-CLIENT: 2007-03-14 18:28:16 +01:00
Makefile.am Merge janus.mylan:/usr/home/serg/Abk/mysql-5.1 2007-10-08 21:01:44 +02:00
README make_binary_distribution.sh: 2006-11-07 22:26:37 +01:00

This is a release of MySQL, a dual-license SQL database server.
MySQL is brought to you by the MySQL team at MySQL AB.

License information can be found in these files:
- For GPL (free) distributions, see the COPYING file and
  the EXCEPTIONS-CLIENT file.
- For commercial distributions, see the LICENSE.mysql file.


For further information about MySQL or additional documentation, see:
- The latest information about MySQL: http://www.mysql.com
- The current MySQL documentation: http://dev.mysql.com/doc

Some manual sections of special interest:

- If you are migrating from an older version of MySQL, please read the
  "Upgrading from..." section first!
- To see what MySQL can do, take a look at the features section.
- For installation instructions, see the Installing and Upgrading chapter.
- For the new features/bugfix history, see the Change History appendix.
- For the currently known bugs/misfeatures (known errors) see the Problems
  and Common Errors appendix.
- For a list of developers and other contributors, see the Credits
  appendix.

A local copy of the MySQL Reference Manual can be found in the Docs
directory in GNU Info format.  You can also browse the manual online or
download it in any of several formats at the URL given earlier in this
file.

************************************************************

IMPORTANT:

Bug or error reports should be sent to http://bugs.mysql.com.