Commit graph

1853 commits

Author SHA1 Message Date
inaam
ec40f5cd73 branches/zip rb://138 (REVERT)
Revert the flush neighbors patch as it shows regression in
the benchmarks run by Michael.
2009-07-13 14:48:45 +00:00
vasil
f1f529dd6d branches/zip:
Restore the original value of innodb_sync_spin_loops at the end, previously
the test assumed that setting it to 20 will do this, but now the default is
30 and MTR's internal check failed.
2009-07-13 06:37:35 +00:00
calvin
d7f9b01105 branches/zip: add ChangeLog entries for r5484-r5486. 2009-07-10 20:47:34 +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
vasil
50c053adfc branches/zip:
Add ChangeLog entry for 5489.
2009-07-10 08:04:20 +00:00
vasil
95a9790ceb branches/zip:
Change the defaults for
innodb_sync_spin_loops: 20 -> 30
innodb_spin_wait_delay: 5 -> 6

This change was proposed by Sun/MySQL based on their performance testing,
see https://svn.innodb.com/innobase/Release_tasks_for_InnoDB_Plugin_V1.0.4
2009-07-10 08:02:22 +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
449e6af3c6 branches/zip rb://138
The current implementation is to try to flush the neighbors of every
page that we flush. This patch makes the following distinction:

1) If the flush is from flush_list AND
2) If the flush is intended to move the oldest_modification LSN ahead
(this happens when a user thread sees little space in the log file and
attempts to flush pages from the buffer pool so that a checkpoint can
be made)

THEN

Do not try to flush the neighbors. Just focus on flushing dirty pages at
the end of flush_list

Approved by: Heikki
2009-07-07 22:00:49 +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
calvin
b495b79f3b branches/zip: add IB_HAVE_PAUSE_INSTRUCTION to CMake.
Windows will support PAUSE instruction by default.
2009-07-07 08:36:43 +00:00
calvin
3dded57d33 branches/zip: add COPYING files for Percona and Sun Micro.
1.0.4 contains patches based on contributions from Percona
and Sun Microsystems.
2009-07-06 21:36:35 +00:00
vasil
c43749cb5d branches/zip:
Remove unnecessary quotes and simplify plug.in.
2009-07-06 16:16:32 +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
3fdc16ea5b branches/zip: Replace a non-ASCII character
(ISO 8859-1 encoded U+00AD SOFT HYPHEN) with a cheap ASCII substitute.
2009-06-30 11:42:52 +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
1f62fdc8a3 branches/zip: page_set_max_trx_id(): Make the code compile
with UNIV_HOTBACKUP.
2009-06-30 11:09:49 +00:00
marko
3a2a5e5e03 branches/zip: os_file_close_no_error_handling(): Unused, remove. 2009-06-30 11:02:20 +00:00
marko
9165e0b89d branches/zip: innobase_start_or_create_for_mysql():
Invoke os_get_os_version() at most once.
2009-06-30 11:00:50 +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
f6eb4a4a6e branches/zip: ibuf_dummy_index_free(): Beautify the comment. 2009-06-30 08:10:01 +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
marko
6bfbdb2d0d branches/zip: Do not crash on SET GLOBAL innodb_file_format=DEFAULT
or SET GLOBAL innodb_file_format_check=DEFAULT.

innodb_file_format.test: New test for innodb_file_format and
innodb_file_format_check.

innodb_file_format_name_validate(): Store the string in *save.
innodb_file_format_name_update(): Check the string again.

innodb_file_format_check_validate(): Store the string in *save.
innodb_file_format_check_update(): Check the string again.

Issue #282, rb://140 approved by Heikki Tuuri
2009-06-29 12:49:54 +00:00
marko
9e8ba2765d branches/zip: row_sel_store_mysql_rec(): Add missing pointer cast.
Do not do arithmetics on void pointers.
2009-06-29 10:06:29 +00:00
marko
4a447cde2e branches/zip: lock_print_info_all_transactions(), buf_read_recv_pages():
Tolerate missing tablespaces (zip_size==ULINT_UNDEFINED).
buf_page_get_gen(): Add ut_ad(ut_is_2pow(zip_size)).

Issue #289, rb://136 approved by Sunny Bains
2009-06-29 08:54:53 +00:00
marko
17105a0ad9 branches/zip: buf_page_get_gen(): Fix a race condition when reading
buf_fix_count.  This could explain Issue #156.
Tested by Michael.
2009-06-29 08:24:27 +00:00
marko
3bc2b8f158 branches/zip: ha_innobase::add_index(), ha_innobase::final_drop_index():
Start prebuilt->trx before locking the table.  This should fix Issue #293
and could fix Issue #229.
Approved by Sunny (over IM).
2009-06-29 07:52:30 +00:00
calvin
95aaddbe70 branches/zip: Fix typos. 2009-06-26 19:52:52 +00:00
marko
bb0e1c34df branches/zip: Fix a race condition caused by
SET GLOBAL innodb_commit_concurrency=DEFAULT. (Bug #45749)
When innodb_commit_concurrency is initially set nonzero,
DEFAULT would change it back to 0, triggering Bug #42101.
rb://139 approved by Heikki Tuuri.
2009-06-25 11:55:52 +00:00
marko
3b765849d4 branches/zip: ha_innodb.cc: Move the misplaced Doxygen @file comment. 2009-06-25 11:20:56 +00:00
marko
dcd851bcbe branches/zip: dict_index_find_cols(): Print diagnostic on name mismatch.
This addresses Bug #44571 but does not fix it.
rb://135 approved by Sunny Bains.
2009-06-25 09:45:57 +00:00
marko
943c28d5a8 branches/zip: Replace a DBUG_ASSERT with ut_a to track down Issue #290. 2009-06-25 09:27:08 +00:00
calvin
73823ce1d2 branches/zip: remove relative path of header files.
Suggested by Marko.
2009-06-24 12:51:08 +00:00
calvin
eebca3bfea branches/zip: change the header file path.
Change the header file path from ../storage/innobase/include/
to ../include/. In the planned 5.1 + plugin release, the source
directory of the plugin will not be in storage/innobase.

Approved by: Heikki (IM)
2009-06-23 19:59:42 +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
55cb42519b branches/zip: ha_innobase::check_if_incompatible_data(): When
ROW_FORMAT=DEFAULT, do not compare to get_row_type().
Without this change, fast index creation will be disabled
in recent versions of MySQL 5.1.
2009-06-22 10:58:20 +00:00
marko
c0bda951fa branches/zip: buf_page_get_zip(): Fix a bogus warning about
block_mutex being possibly uninitialized.
2009-06-22 08:31:35 +00:00