summaryrefslogtreecommitdiff
path: root/storage/innobase/include/dict0crea.h
diff options
context:
space:
mode:
authorunknown <tsmith@quadxeon.mysql.com>2006-11-09 05:01:19 +0100
committerunknown <tsmith@quadxeon.mysql.com>2006-11-09 05:01:19 +0100
commit0ea6669e0498101dac8dac338100919f2768b96b (patch)
tree06753a2c6ffe49b9cc4d39f6179dc6510faf46a0 /storage/innobase/include/dict0crea.h
parentecfb2a75540bcf8133707b4879e6860730d73af2 (diff)
downloadmariadb-git-0ea6669e0498101dac8dac338100919f2768b96b.tar.gz
Applied innodb-5.1-ss1004
Fixes: - Bug #15815: Very poor performance with multiple queries running concurrently - Bug #22868: 'Thread thrashing' with > 50 concurrent conns under an upd-intensive workloadw - Bug #24089: Race condition in fil_flush_file_spaces() storage/innobase/btr/btr0btr.c: Applied innodb-5.1-ss1004 Revision r934: btr_lift_page_up(): Set new page levels in all ancestor pages, not just in the father page. btr0btr.h: Add a BTR_MAX_LEVELS define. storage/innobase/buf/buf0buf.c: Applied innodb-5.1-ss1004 Revision r999: Reduce buffer pool mutex contention under >= 4 big concurrent CPU-bound SELECT queries. (Bug #22868) Fix: replace the mutex by one mutex protecting the 'flush list' (and the free list) and several mutexes protecting portions of the buffer pool, where we keep several indivudual LRU lists of pages. This patch is from Sunny Bains and Heikki Tuuri. storage/innobase/buf/buf0flu.c: Applied innodb-5.1-ss1004 Revision r999: Reduce buffer pool mutex contention under >= 4 big concurrent CPU-bound SELECT queries. (Bug #22868) Fix: replace the mutex by one mutex protecting the 'flush list' (and the free list) and several mutexes protecting portions of the buffer pool, where we keep several indivudual LRU lists of pages. This patch is from Sunny Bains and Heikki Tuuri. storage/innobase/buf/buf0lru.c: Applied innodb-5.1-ss1004 Revision r999: Reduce buffer pool mutex contention under >= 4 big concurrent CPU-bound SELECT queries. (Bug #22868) Fix: replace the mutex by one mutex protecting the 'flush list' (and the free list) and several mutexes protecting portions of the buffer pool, where we keep several indivudual LRU lists of pages. This patch is from Sunny Bains and Heikki Tuuri. Revision r1004: UT_LIST_REMOVE(): Invalidate the node pointers #ifdef UNIV_DEBUG. buf_LRU_invalidate_tablespace(): Invoke UT_LIST_GET_PREV(LRU, block) before UT_LIST_REMOVE(LRU, buf_pool->LRU, block). storage/innobase/dict/dict0crea.c: Applied innodb-5.1-ss1004 Revision r973: Do not break the latching order in TRUNCATE TABLE. dict_truncate_index_tree(): Replace parameter rec_t* rec with btr_pcur_t* pcur. Reposition pcur before calling btr_create(). sync_thread_add_level(): Remove the relaxation of the assertion added in r968. storage/innobase/fil/fil0fil.c: Applied innodb-5.1-ss1004 Revision r1002: fil_flush_file_spaces(): Copy the system->unflushed_spaces list to an array while holding the mutex. This removes the crash-triggering race condition that was introduced when fixing Bug 15653. (Bug #24089) storage/innobase/include/btr0btr.h: Applied innodb-5.1-ss1004 Revision r934: btr_lift_page_up(): Set new page levels in all ancestor pages, not just in the father page. btr0btr.h: Add a BTR_MAX_LEVELS define. storage/innobase/include/buf0buf.h: Applied innodb-5.1-ss1004 Revision r999: Reduce buffer pool mutex contention under >= 4 big concurrent CPU-bound SELECT queries. (Bug #22868) Fix: replace the mutex by one mutex protecting the 'flush list' (and the free list) and several mutexes protecting portions of the buffer pool, where we keep several indivudual LRU lists of pages. This patch is from Sunny Bains and Heikki Tuuri. storage/innobase/include/buf0buf.ic: Applied innodb-5.1-ss1004 Revision r999: Reduce buffer pool mutex contention under >= 4 big concurrent CPU-bound SELECT queries. (Bug #22868) Fix: replace the mutex by one mutex protecting the 'flush list' (and the free list) and several mutexes protecting portions of the buffer pool, where we keep several indivudual LRU lists of pages. This patch is from Sunny Bains and Heikki Tuuri. storage/innobase/include/dict0crea.h: Applied innodb-5.1-ss1004 Revision r973: Do not break the latching order in TRUNCATE TABLE. dict_truncate_index_tree(): Replace parameter rec_t* rec with btr_pcur_t* pcur. Reposition pcur before calling btr_create(). sync_thread_add_level(): Remove the relaxation of the assertion added in r968. storage/innobase/include/ut0lst.h: Applied innodb-5.1-ss1004 Revision r1004: UT_LIST_REMOVE(): Invalidate the node pointers #ifdef UNIV_DEBUG. buf_LRU_invalidate_tablespace(): Invoke UT_LIST_GET_PREV(LRU, block) before UT_LIST_REMOVE(LRU, buf_pool->LRU, block). storage/innobase/row/row0mysql.c: Applied innodb-5.1-ss1004 Revision r973: Do not break the latching order in TRUNCATE TABLE. dict_truncate_index_tree(): Replace parameter rec_t* rec with btr_pcur_t* pcur. Reposition pcur before calling btr_create(). sync_thread_add_level(): Remove the relaxation of the assertion added in r968.
Diffstat (limited to 'storage/innobase/include/dict0crea.h')
-rw-r--r--storage/innobase/include/dict0crea.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/storage/innobase/include/dict0crea.h b/storage/innobase/include/dict0crea.h
index bd0890dbfa7..f0f30481abe 100644
--- a/storage/innobase/include/dict0crea.h
+++ b/storage/innobase/include/dict0crea.h
@@ -62,8 +62,10 @@ dict_truncate_index_tree(
/* out: new root page number, or
FIL_NULL on failure */
dict_table_t* table, /* in: the table the index belongs to */
- rec_t* rec, /* in: record in the clustered index of
- SYS_INDEXES table */
+ btr_pcur_t* pcur, /* in/out: persistent cursor pointing to
+ record in the clustered index of
+ SYS_INDEXES table. The cursor may be
+ repositioned in this call. */
mtr_t* mtr); /* in: mtr having the latch
on the record page. The mtr may be
committed and restarted in this call. */