- 17 Nov, 2011 2 commits
- 16 Nov, 2011 1 commit
-
-
Luis Soares authored
Follow-up patch to fix valgrind warnings.
-
- 15 Nov, 2011 5 commits
-
-
Dmitry Lenev authored
BY CACHING OR REDUCING CREATEEVENT CALLS". 5.5 versions of MySQL server performed worse than 5.1 versions under single-connection workload in autocommit mode on Windows XP. Part of this slowdown can be attributed to overhead associated with constant creation/destruction of MDL_lock objects in the MDL subsystem. The problem is that creation/destruction of these objects causes creation and destruction of associated synchronization primitives, which are expensive on Windows XP. This patch tries to alleviate this problem by introducing a cache of unused MDL_object_lock objects. Instead of destroying such objects we put them into the cache and then reuse with a new key when creation of a new object is requested. To limit the size of this cache, a new --metadata-locks-cache-size start-up parameter was introduced. mysql-test/r/mysqld--help-notwin.result: Updated test after adding --metadata-locks-cache-size parameter. mysql-test/r/mysqld--help-win.result: Updated test after adding --metadata-locks-cache-size parameter. mysql-test/suite/sys_vars/r/metadata_locks_cache_size_basic.result: Added test coverage for newly introduced --metadata_locks_cache_size start-up parameter and corresponding global read-only variable. mysql-test/suite/sys_vars/t/metadata_locks_cache_size_basic-master.opt: Added test coverage for newly introduced --metadata_locks_cache_size start-up parameter and corresponding global read-only variable. mysql-test/suite/sys_vars/t/metadata_locks_cache_size_basic.test: Added test coverage for newly introduced --metadata_locks_cache_size start-up parameter and corresponding global read-only variable. sql/mdl.cc: Introduced caching of unused MDL_object_lock objects, in order to avoid costs associated with constant creation and destruction of such objects in single-connection workloads run in autocommit mode. Such costs can be pretty high on systems where creation and destruction of synchronization primitives require a system call (e.g. Windows XP). To implement this cache,a list of unused MDL_object_lock instances was added to MDL_map object. Instead of being destroyed MDL_object_lock instances are put into this list and re-used later when creation of a new instance is required. Also added MDL_lock::m_version counter to allow threads having outstanding references to an MDL_object_lock instance to notice that it has been moved to the unused objects list. Added a global variable for a start-up parameter that limits the size of the unused objects list. Note that we don't cache MDL_scoped_lock objects since they are supposed to be created only during execution of DDL statements and therefore should not affect performance much. sql/mdl.h: Added a global variable for start-up parameter that limits the size of the unused MDL_object_lock objects list and constant for its default value. sql/sql_plist.h: Added I_P_List<>::pop_front() function. sql/sys_vars.cc: Introduced --metadata-locks-cache-size start-up parameter for specifying size of the cache of unused MDL_object_lock objects.
-
Luis Soares authored
Follow up to fix freebsd compile issue.
-
Luis Soares authored
Automerged approved bzr bundle in latest mysql-5.5.
-
Nirbhay Choubey authored
OPTION SKIP-WRITE-BINLOG System tables were not getting upgraded when mysql_upgrade was run with --skip-write-binlog option. (Same for --write-binlog.) Also, with this option, mysql_upgrade_info file was not getting created after the upgrade. mysql_upgrade makes use of mysql client tool in order to run upgrade scripts, while doing so it passes some of the command line options (used to start mysql_upgrade) directly to mysql client. The reason behind this bug being, some options like skip-write-binlog and upgrade-system-tables were being passed to mysql tool along with other options, and hence mysql execution failed due presence of these invalid options. Fixed this issue by filtering out the above mentioned options from the list of options that will be passed to mysql and mysqlcheck tools. However, since --write-binlog is supported by mysqlcheck, this option would be used explicitly while running mysqlcheck. (not part of patch, already there) Checking the contents of general log after the upgrade is not doable via an mtr test. So performed manual test. Added a test to verify the creation of mysql_upgrade_info. client/mysql_upgrade.c: Bug#11827359 60223: MYSQL_UPGRADE PROBLEM WITH OPTION SKIP-WRITE-BINLOG With this patch, --upgrade-system-tables and --write-binlog options will not be added to the list of options, used to start mysql and mysqlcheck tools. mysql-test/r/mysql_upgrade.result: Added a testcase for Bug#11827359. mysql-test/t/mysql_upgrade.test: Added a testcase for Bug#11827359.
-
Tor Didriksen authored
my_double_round(DBL_MAX, -12, ....) should return 'inf' rather than DBL_MAX The problem is that floor(value/tmp) * tmp is inlined, and optimized away. The solution seems to be to prevent inlining by pre-computing value/tmp and storing it in a variable. No new test case: main.type_float fails without this patch.
-
- 11 Nov, 2011 3 commits
-
-
unknown authored
This patch corrects a defect whereby the --mysqld, --my-print-defaults, and --plugin-ini were required. These options are not required and the code has been fixed accordingly.
-
Luis Soares authored
SCAN/CPU) => SLAVE FAILURE When a statement containing a large amount of ROWs to be applied on the slave, and the slave's table does not contain a PK, it can take a considerable amount of time to find and change all the rows that are to be changed. The proper slave enhancement will be implemented in WL 5597. However, in this bug we are making it clear to the user what the problem is, by printing a message to the error log if the execution time, for a given statement in RBR, takes more than LONG_FIND_ROW_THRESHOLD (set to 60 seconds). This shall help the DBA to diagnose what's happening when facing a slave server that is quiet for no apparent reason... The note is only printed to the error log if log_warnings is set to be greater than 1. sql/log_event.cc: Core of the patch. In Rows_log_event::do_apply_event, sets STMT start timestamp. In Rows_log_event::find_row, if a PK is not used, then the start timestamp is checked to see if the time spent on this STMT is enough to justify the printing of a note (only if it was not printed before). sql/log_event.h: Defining LONG_FIND_ROW_THRESHOLD. sql/rpl_rli.cc: Resets long_find_row state in rli->context_cleanup(). sql/rpl_rli.h: Two new rli properties that are necessary to control when to emit a note in the error log: 1) timestamp that states when the ROW statement started; 2) flag indicating whether the note has been emitted for the current statement or not. Also deployed accessors.
-
Sneha Modi authored
A change has been made in the sql/sql_table.cc file to include debug_sync.
-
- 10 Nov, 2011 8 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
The bug was accidentally fixed by fixing Bug#11759688 52020: InnoDB can still deadlock on just INSERT...ON DUPLICATE KEY a.k.a. the reintroduction of Bug#7975 deadlock without any locking, simple select and update
-
Sneha Modi authored
alter_treable-big.test was failing due to the use of RAND() function which is no more replication safe. This has been modified using static values. Also, 'sleep' has been replaced using 'debug_sync' and the execution time of the test has been reduced significantly. This test is now taken out of the disabled.def file and is being enabled.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
a.k.a. Bug#7975 deadlock without any locking, simple select and update Bug#7975 was reintroduced when the storage engine API was made pluggable in MySQL 5.1. Instead of looking at thd->lex directly, we rely on handler::extra(). But, we were looking at the wrong extra() flag, and we were ignoring the TRX_DUP_REPLACE flag in places where we should obey it. innodb_replace.test: Add tests for hopefully all affected statement types, so that bug should never ever resurface. This kind of tests should have been added when fixing Bug#7975 in MySQL 5.0.3 in the first place. rb:806 approved by Sunny Bains
-
Sergey Vojtovich authored
No commit message
-
Sergey Vojtovich authored
ALTER TABLE AND/OR PLUGIN/SEMISYNC If a plugin was uninstalled, thread local values for plugin variables of string type with PLUGIN_VAR_MEMALLOC flag were not freed. With this patch these variables are freed when thread is done (like all other variables). sql/sql_class.h: Added variable which stores memory hunks allocated for PLUGIN_VAR_MEMALLOC values. sql/sql_plugin.cc: Normally all memory allocated for dynamic variables values must be freed by cleanup_variables(). But if a plugin was uninstalled, descriptors of it's system variables are lost. Still some memory may be occupied for thread local values. It is ok for most kinds of variables, as they're stored on dynamic_variables_ptr and freed when thread is done. Values for PLUGIN_VAR_MEMALLOC variables are stored separately. These lost values are handled by plugin_var_memalloc_free().
-
Sneha Modi authored
A patch for this bug has already been pushed. A minor change is made here. The database to be used after re-enabling the disabled code is 'TEST'. But instead, 'MYSQL' was being used. This is the minor change that is being made here.
-
- 09 Nov, 2011 3 commits
-
-
Bjorn Munch authored
-
Bjorn Munch authored
-
Bjorn Munch authored
Un-needed replace_result accidentally messed up a variable used *if* not running parallel. Removed the bogus --replace_result
-
- 08 Nov, 2011 4 commits
-
-
Bjorn Munch authored
Don't do this for echo, instead: 1) Enable replacements also for assignment from backquoted SQL 2) Allow replace_regex to take a variable for the *entire* argument list With this, the test can be amended, but only in its version in trunk
-
Marko Mäkelä authored
-
Marko Mäkelä authored
btr_pcur_restore_position_func(): When the cursor was positioned at the tree infimum or supremum, initialize pos_state and latch_mode. The assertion failed, because pos_state was BTR_PCUR_WAS_POSITIONED. In the test failure of WL#5874, the purge thread attempted to restore the cursor position on the infimum record (the clustered index was empty). btr_pcur_detach(), btr_pcur_is_detached(): Unused functions, remove. rb:804 approved by Inaam Rana
-
Marko Mäkelä authored
-
- 07 Nov, 2011 3 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
In all callers of row_sel_convert_mysql_key_to_innobase(), assert that the converted key is empty or nonempty when it should be.
-
Marko Mäkelä authored
ibuf_insert_low(), the only caller of ibuf_set_entry_counter(), will have latched an insert buffer bitmap page in bitmap_mtr before invoking ibuf_set_entry_counter(). The latching order forbids any further pages to be latched. ibuf_set_entry_counter(): Renamed to ibuf_get_entry_counter(), simplified the code and added comments. Added the following symbols for predefined field numbers in change buffer records: #define IBUF_REC_FIELD_SPACE 0 /*!< in the pre-4.1 format, the page number. later, the space_id */ #define IBUF_REC_FIELD_MARKER 1 /*!< starting with 4.1, a marker consisting of 1 byte that is 0 */ #define IBUF_REC_FIELD_PAGE 2 /*!< starting with 4.1, the page number */ #define IBUF_REC_FIELD_METADATA 3 /* the metadata field */ #define IBUF_REC_FIELD_USER 4 /* first user field */ rb:802 approved by Sunny Bains
-
- 04 Nov, 2011 1 commit
-
-
unknown authored
This patch corrects the test mysql_plugin so that it correctly masks the library extension of the plugin daemon_example.
-
- 03 Nov, 2011 5 commits
-
-
Bjorn Munch authored
Simplified fix avoiding changes to mysys: Use the MY_HOLD_ORIGINAL_MODES flag when calling my_copy(), this also stops it from attempting to chown() the file. Yes this behavior is a bit confusing.... The only case this might change the behavior is if the destination file exists, but since we also use MY_DONT_OVERWRITE_FILE, it would fail in those cases anyway.
-
Jimmy Yang authored
OF 16G BUFFER POOL TAKES HOURS rb://787 approved by Sunny
-
Bjorn Munch authored
-
Bjorn Munch authored
-
Sneha Modi authored
-
- 02 Nov, 2011 4 commits
-
-
Alfranio Correia authored
In patch mysql-5.5:revno:3097.92.133, we made the gcc 4.6.1 compiler to stop complaining about the fact that binlog_can_be_corrupted was defined but not used. The fix consisted in checking the variable and printing a warning message. However, the fix caused a regression as a message was being printed out when there was no corrupted binary log causing performance problems and triggering users' suspicions when there was no need. In BUG#13337202, we do not print any message and use the variable in an "if" with an empty body to keep the compiler happy.
-
Sneha MOdi authored
and query_cache don't play along nicely. An alternative for RENAME DATABSE using RENAME TABLE has been used to implement this.
-
Bjorn Munch authored
-
Sneha MOdi authored
Parts of index_merge_innodb were disabled.These have been enabled with a few changes and the test is being made experimental to study it's behaviour.
-
- 01 Nov, 2011 1 commit
-
-
Tor Didriksen authored
-