Commit graph

773 commits

Author SHA1 Message Date
sunny
bcc2aa6d07 branches/zip: Undo r5512 2009-07-19 22:58:43 +00:00
sunny
940e1ef159 branches/zip: Remove unused extern ref to timed_mutexes. 2009-07-19 22:52:48 +00:00
calvin
17a555bfc9 branches/zip: Support inlining of functions and prefetch with
Sun Studio

Those changes are contributed by Sun/MySQL. Two sets of changes
in this patch when Sun Studio is used:
- Explicit inlining of functions
- Prefetch Support

This patch has been tested by Sunny with the plugin statically
built in. Since we've never built the plugin as a dynamically
loaded module on Solaris, it is a separate task to change
plug.in.

rb://142
Approved by: Heikki
2009-07-16 12:40:47 +00:00
calvin
1935ee3317 branches/zip: fix compile errors on Win64
Both srv_read_ahead_factor and srv_io_capacity should
be defined as ulong.

Approved by: Sunny
2009-07-15 07:58:44 +00:00
calvin
b8f488a241 branches/zip: minor change
Remove an extra "with".
2009-07-14 16:03:26 +00:00
calvin
0e71cfd9e2 branches/zip: fix run-time symbols clash on Solaris.
This patch is from Sergey Vojtovich of Sun Microsystems,
to fix run-time symbols clash on Solaris with older C++
compiler:
- when finding out a way to hide symbols, make decision basing
  on compiler, not operating system.
- Sun Studio supports __hidden declaration specifier for this
  purpose.
2009-07-13 18:01:00 +00:00
inaam
9af090cb0e branches/zip
Fixed warnings on windows where ulint != ib_uint64_t
2009-07-13 17:04:57 +00:00
calvin
eda5850256 branches/zip: add copyright info to files related to PAUSE
instruction patch, contributed by Sun Microsystems.
2009-07-10 15:19:17 +00:00
calvin
c09f41f6f2 branches/zip: fix PAUSE instruction patch on Windows
The original PAUSE instruction patch (r5470) does not
compile on Windows. Also, there is an elegant way of
doing it on Windows - YieldProcessor().

Approved by: Heikki (on IM)
2009-07-08 15:42:28 +00:00
inaam
43fceb74f2 branches/zip rb://133
This patch introduces heuristics based flushing rate of dirty pages to
avoid IO bursts at checkpoint.

1) log_capacity / log_generated per second gives us number of seconds
in which ALL dirty pages need to be flushed. Based on this rough
assumption we can say that
n_dirty_pages / (log_capacity / log_generation_rate) = desired_flush_rate

2) We use weighted averages (hard coded to 20 seconds) of
log_generation_rate to avoid resonance.

3) From the desired_flush_rate we subtract the number of pages that have
been flushed due to LRU flushing. That gives us pages that we should
flush as part of flush_list cleanup. And that is the number (capped by
maximum io_capacity) that we try to flush from the master thread.

Knobs:
======

innodb_adaptive_flushing: boolean, global, dynamic, default TRUE.
Since this heuristic is very experimental and has the potential to
dramatically change the IO pattern I think it is a good idea to leave a
knob to turn it off.

Approved by: Heikki
2009-07-08 15:11:40 +00:00
inaam
462111149c branches/zip rb://126
Based on contribution from Google Inc.
This patch introduces a new parameter innodb_io_capacity to control the
rate at which master threads performs various tasks. The default value
is 200 and higher values imply more aggressive flushing and ibuf merges
from within the master thread.
This patch also changes the ibuf merge from synchronous to asynchronous.
Another minor change is not to force the master thread to wait for a
log flush to complete every second.

Approved by: Heikki
2009-07-07 21:57:14 +00:00
vasil
900f489a19 branches/zip:
Use PAUSE instruction inside spinloop if it is available.

The patch was originally developed by Mikael Ronstrom <mikael@mysql.com>
and can be found here:
http://bazaar.launchpad.net/%7Emysql/mysql-server/mysql-5.4/revision/2768
http://bazaar.launchpad.net/%7Emysql/mysql-server/mysql-5.4/revision/2771
http://bazaar.launchpad.net/%7Emysql/mysql-server/mysql-5.4/revision/2772
http://bazaar.launchpad.net/%7Emysql/mysql-server/mysql-5.4/revision/2774
http://bazaar.launchpad.net/%7Emysql/mysql-server/mysql-5.4/revision/2777
http://bazaar.launchpad.net/%7Emysql/mysql-server/mysql-5.4/revision/2799
http://bazaar.launchpad.net/%7Emysql/mysql-server/mysql-5.4/revision/2800

Approved by:	Heikki (rb://137)
2009-07-02 12:12:36 +00:00
inaam
35bcc4ee2b branches/zip
Non functional change. s/Percona/Percona Inc./
2009-06-30 17:21:09 +00:00
marko
28b2c54bb2 branches/zip: os_process_set_priority_boost(): Unused, remove. 2009-06-30 11:14:01 +00:00
marko
6314305e2b branches/zip: os_file_close_no_error_handling(): Restore,
as this function is used within InnoDB Hot Backup.
2009-06-30 11:10:26 +00:00
marko
3a2a5e5e03 branches/zip: os_file_close_no_error_handling(): Unused, remove. 2009-06-30 11:02:20 +00:00
marko
8e3051e675 branches/zip: mem_heap_cat(): Unused, remove. 2009-06-30 10:56:36 +00:00
marko
2fcd99e793 branches/zip: srv_que_task_queue_check(): Unused, remove. 2009-06-30 10:37:58 +00:00
marko
79f2491f48 branches/zip: srv_que_round_robin(), srv_que_task_enqueue(): Unused, remove. 2009-06-30 10:35:45 +00:00
marko
67743761f1 branches/zip: row_build_row_ref_from_row(): Unused, remove. 2009-06-30 10:28:11 +00:00
marko
be74c36d13 branches/zip: que_graph_try_free(): Unused, remove. 2009-06-30 10:19:49 +00:00
marko
5d548333b2 branches/zip: os_event_create_auto(): Unused, remove. 2009-06-30 10:03:00 +00:00
marko
d14628a8d9 branches/zip: lock_is_on_table(), lock_table_unlock(): Unused, remove. 2009-06-30 09:45:41 +00:00
marko
40f2324152 branches/zip: ha_delete(): Remove this unused function that was
very similar to ha_search_and_delete_if_found().
2009-06-30 09:30:14 +00:00
marko
f4a5ab606c branches/zip: fseg_validate(): Enclose in #ifdef UNIV_DEBUG.
This function is unused, but it could turn out to be a useful debugging aid.
2009-06-30 08:15:22 +00:00
marko
6a44d90b74 branches/zip: fseg_free(): Remove this unused function. 2009-06-30 08:10:32 +00:00
marko
5b7e5de78b branches/zip: Revert an accidentally made change in r5430 to univ.i. 2009-06-29 12:58:40 +00:00
marko
ee7d42579c branches/zip: lock_rec_validate_page(): Add another assertion
to track down Issue #289.
2009-06-29 12:58:07 +00:00
pekka
b18a90934d branches/zip: Add functions for checking the format of tablespaces
for Hot Backup build (UNIV_HOTBACKUP defined).
This change should not affect !UNIV_HOTBACKUP build.
2009-06-22 12:46:34 +00:00
pekka
1b1cff3ef5 branches/zip: Minor changes for Hot Backup to build correctly. (The
code bracketed between #ifdef UNIV_HOTBACKUP and #endif /* UNIV_HOTBACKUP */).
This change should not affect !UNIV_HOTBACKUP build.
2009-06-22 12:27:55 +00:00
marko
d656b7f2d4 branches/zip: buf_page_io_query(): Remove unused function. 2009-06-16 08:27:46 +00:00
marko
d8b07bb759 branches/zip: Declare os_thread_id_t as unsigned long,
because ulint is wrong on Win64.
Pointed out by Vladislav Vaintroub <wlad@sun.com>.
2009-06-11 07:40:33 +00:00
inaam
bfa7cf72aa branches/zip
rb://130

Enable Group Commit functionality that was broken in 5.0 when
distributed transactions were introduced.

Reviewed by: Heikki
2009-06-09 16:46:29 +00:00
inaam
b667060360 branches/zip
Non functional change:

Added legal notices acknowledging percona contribution to the multiple
IO helper threads patch i.e.: r5262
2009-06-08 15:18:21 +00:00
vasil
5d3b805292 branches/zip:
Enable functionality to have multiple background io helper threads.
This patch is based on percona contributions.

More details about this patch will be written at:
https://svn.innodb.com/innobase/MultipleBackgroundThreads

The patch essentially does the following:

expose following knobs:
innodb_read_io_threads = [1 - 64] default 1
innodb_write_io_threads = [1 - 64] default 1

deprecate innodb_file_io_threads (this parameter was relevant only on windows)

Internally it allows multiple segments for read and write IO request arrays
where one thread works on one segement.

Submitted by:	Inaam (rb://124)
Approved by:	Heikki (rb://124)
2009-06-05 15:04:25 +00:00
vasil
a3548774c6 branches/zip:
Fix Mantis Issue#244 fix bug in linear read ahead (no check on access pattern)

The changes are:

1) Take into account access pattern when deciding whether or not to do linear
  read ahead.
2) Expose a knob innodb_read_ahead_factor = [0-64] default (8), dynamic,
  global to control linear read ahead behvior
3) Disable random read ahead. Keep the code for now.

Submitted by:	Inaam (rb://122)
Approved by:	Heikki (rb://122)
2009-06-05 14:13:31 +00:00
marko
30204e96f8 branches/zip: Add missing Doxygen comments for page0zip. 2009-06-04 09:37:35 +00:00
marko
763466c71c branches/zip: Add Doxygen comments to the rest of buf0*. 2009-06-04 05:58:23 +00:00
marko
a4401ad069 branches/zip: Merge revisions 5148:5233 from branches/5.1:
------------------------------------------------------------------------
  r5150 | vasil | 2009-05-27 18:56:03 +0300 (Wed, 27 May 2009) | 4 lines

  branches/5.1:

  Whitespace fixup.
  ------------------------------------------------------------------------
  r5191 | vasil | 2009-05-30 17:46:05 +0300 (Sat, 30 May 2009) | 19 lines

  branches/5.1:

  Merge a change from MySQL (this fixes the failing innodb_mysql test):

    ------------------------------------------------------------
    revno: 1810.3894.10
    committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
    branch nick: mysql-5.0-bugteam
    timestamp: Tue 2009-05-19 11:32:21 +0500
    message:
      Bug#39793 Foreign keys not constructed when column has a '#' in a comment or default value
      Internal InnoDN FK parser does not recognize '\'' as quotation symbol.
      Suggested fix is to add '\'' symbol check for quotation condition
      (dict_strip_comments() function).
    modified:
      innobase/dict/dict0dict.c
      mysql-test/r/innodb_mysql.result
      mysql-test/t/innodb_mysql.test
  ------------------------------------------------------------------------
  r5233 | marko | 2009-06-03 15:12:44 +0300 (Wed, 03 Jun 2009) | 11 lines

  branches/5.1: Merge the test case from r5232 from branches/5.0:
    ------------------------------------------------------------------------
    r5232 | marko | 2009-06-03 14:31:04 +0300 (Wed, 03 Jun 2009) | 21 lines

    branches/5.0: Merge r3590 from branches/5.1 in order to fix Bug #40565
    (Update Query Results in "1 Row Affected" But Should Be "Zero Rows").

    Also, add a test case for Bug #40565.

    rb://128 approved by Heikki Tuuri
    ------------------------------------------------------------------------
  ------------------------------------------------------------------------
2009-06-03 11:26:41 +00:00
marko
1be6982709 branches/zip: Clean up some comments.
Make the rec parameter of mlog_open_and_write_index() const.
2009-06-01 09:35:25 +00:00
marko
8217e9b522 branches/zip: mtr0mtr.h: Add Doxygen comments for the redo log entry types. 2009-05-28 06:21:55 +00:00
marko
87cf4a3a02 branches/zip: Merge revisions 4994:5148 from branches/5.1:
------------------------------------------------------------------------
  r5126 | vasil | 2009-05-26 16:57:12 +0300 (Tue, 26 May 2009) | 9 lines

  branches/5.1:

  Preparation for the fix of
  Bug#45097 Hang during recovery, redo logs for doublewrite buffer pages

  Non-functional change: move FSP_* macros from fsp0fsp.h to a new file
  fsp0types.h. This is needed in order to be able to use FSP_EXTENT_SIZE
  in mtr0log.ic.
  ------------------------------------------------------------------------
  r5127 | vasil | 2009-05-26 17:05:43 +0300 (Tue, 26 May 2009) | 9 lines

  branches/5.1:

  Preparation for the fix of
  Bug#45097 Hang during recovery, redo logs for doublewrite buffer pages

  Do not include unnecessary headers mtr0log.h and fut0lst.h in trx0sys.h
  and include fsp0fsp.h just before it is needed. This is needed in order
  to be able to use TRX_SYS_SPACE in mtr0log.ic.
  ------------------------------------------------------------------------
  r5128 | vasil | 2009-05-26 17:26:37 +0300 (Tue, 26 May 2009) | 7 lines

  branches/5.1:

  Fix Bug#45097 Hang during recovery, redo logs for doublewrite buffer pages

  Do not write redo log for the pages in the doublewrite buffer. Also, do not
  make a dummy change to the page because this is not needed.
  ------------------------------------------------------------------------
2009-05-27 10:46:42 +00:00
marko
ef99c401f2 branches/zip: buf0buf.h, Doxyfile: Fix the Doxygen translation.
@defgroup is for source code modules, not for field groups.
Tell Doxygen to expand the UT_LIST declarations.
2009-05-27 06:57:25 +00:00
marko
6f9a1e17c6 branches/zip: Add some Doxygen @return comments. 2009-05-27 05:08:43 +00:00
marko
68a1ee9960 branches/zip: Add some Doxygen comments for many structs, typedefs,
#defines and global variables.  Many are still missing.
2009-05-26 12:28:49 +00:00
marko
5929cea0fe branches/zip: Add some Doxygen comments, mainly to structs, typedefs,
macros and global variables.  Many more to go.
2009-05-25 12:09:24 +00:00
marko
11ff89d994 branches/zip: Add @file comments, and convert decorative
/*********************************
comments to Doxygen /** style like this:
/*****************************//**

This conversion was performed by the following command:

perl -i -e 'while(<ARGV>){if (m|^/\*{30}\**$|) {
s|\*{4}$|//**| if ++$com>1; $_ .= "\@file $ARGV\n" if $com==2}
print; if(eof){$.=0;undef $com}}' */*[ch] include/univ.i
2009-05-25 09:52:29 +00:00
marko
aa5ceec5d7 branches/zip: Add missing file comments. 2009-05-25 09:47:14 +00:00
marko
aff9b3854f branches/zip: Introduce the macro TEMP_INDEX_PREFIX_STR.
This is to avoid triggering an error in Doxygen.
2009-05-25 08:42:47 +00:00
marko
d075e80c49 branches/zip: Split some long lines that were introduced in r5091. 2009-05-25 08:09:45 +00:00