diff options
author | thek@adventure.(none) <> | 2007-07-02 19:14:48 +0200 |
---|---|---|
committer | thek@adventure.(none) <> | 2007-07-02 19:14:48 +0200 |
commit | 863e882785762bbde5b11bee7fd4568dc46d5794 (patch) | |
tree | 6ae98744dc3b93525f63eb7f5c0c84bcbf702b47 /sql/sql_parse.cc | |
parent | 6044940b258a964e19264e466fd4fd044dc495d3 (diff) | |
download | mariadb-git-863e882785762bbde5b11bee7fd4568dc46d5794.tar.gz |
Bug#21074 Large query_cache freezes mysql server sporadically under heavy load
Invaldating a subset of a sufficiently large query cache can take a long time.
During this time the server is efficiently frozen and no other operation can
be executed. This patch addresses this problem by moving the locks which cause
the freezing and also by temporarily disable the query cache while the
invalidation takes place.
Diffstat (limited to 'sql/sql_parse.cc')
-rw-r--r-- | sql/sql_parse.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 8e55610df36..485648d1fb1 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -2445,7 +2445,7 @@ end_with_restore_list: check_grant(thd, INSERT_ACL | CREATE_ACL, &new_list, 0, 1, 0))) goto error; } - query_cache_invalidate3(thd, first_table, 0); + if (end_active_trans(thd) || mysql_rename_tables(thd, first_table, 0)) goto error; break; |