mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
a859c59454
Bug #16979: AUTO_INC lock in InnoDB works a table level lock Add a table level counter that tracks the number of AUTOINC locks that are pending and/or granted on a table. We peek at this value to determine whether a transaction doing a simple INSERT in innodb_autoinc_lock_mode = 1, needs to acquire the AUTOINC lock or not. This change is related to Bug# 16979. Bug #27950: Duplicate entry error in auto-inc after mysqld restart We check whether the AUTOINC sub-system has been initialized (first) by holding the AUTOINC mutex and if initialization is required then we initialize using our normal procedure. storage/innobase/dict/dict0boot.c: Apply InnoDB snapshot innodb-5.1-ss1751. storage/innobase/dict/dict0crea.c: Apply InnoDB snapshot innodb-5.1-ss1751. storage/innobase/dict/dict0load.c: Apply InnoDB snapshot innodb-5.1-ss1751. storage/innobase/dict/dict0mem.c: Apply InnoDB snapshot innodb-5.1-ss1751. Revision r1749: Add a table level counter that tracks the number of AUTOINC locks that are pending and/or granted on a table. We peek at this value to determine whether a transaction doing a simple INSERT in innodb_autoinc_lock_mode = 1, needs to acquire the AUTOINC lock or not. This change is related to Bug# 16979. storage/innobase/handler/ha_innodb.cc: Apply InnoDB snapshot innodb-5.1-ss1751. Revision r1735: Add variable "innodb_autoinc_lock_mode" to control the behavior of the AUTOINC locking. There are three modes, 0 for backward compatibility, 1 for the new style locking (default, safe for statement-based replication) and 2 for no AUTOINC locking (unsafe for statement-based replication). Revision r1750: We check whether the AUTOINC sub-system has been initialized (first) by holding the AUTOINC mutex and if initialization is required then we initialize using our normal procedure. This change is related to Bug#27950. Revision r1746: Remove some code from ha_innodb.cc that was already enclosed in #if 0. The code was related to replication and group commit, and it was unreachable already as of MySQL 5.0. Approved by Heikki Revision r1749: Add a table level counter that tracks the number of AUTOINC locks that are pending and/or granted on a table. We peek at this value to determine whether a transaction doing a simple INSERT in innodb_autoinc_lock_mode = 1, needs to acquire the AUTOINC lock or not. This change is related to Bug# 16979. storage/innobase/include/dict0mem.h: Apply InnoDB snapshot innodb-5.1-ss1751. Revision r1749: Add a table level counter that tracks the number of AUTOINC locks that are pending and/or granted on a table. We peek at this value to determine whether a transaction doing a simple INSERT in innodb_autoinc_lock_mode = 1, needs to acquire the AUTOINC lock or not. This change is related to Bug# 16979. Revision r1747: Correct an outdated comment about dict_table_t:col_names that should have been adjusted in r1719, or r1264 in branches/zip. storage/innobase/include/mem0mem.ic: Apply InnoDB snapshot innodb-5.1-ss1751. Revision r1744: Merge r1739 from branches/zip: mem_heap_free_heap_top(): Declare the memory freed with UNIV_MEM_FREE(). Before this change, the memory freed by mem_heap_empty() was not completely flagged free in UNIV_DEBUG_VALGRIND builds. After this change, Valgrind will hopefully catch all errors caught by UNIV_MEM_DEBUG. storage/innobase/include/sync0rw.ic: Apply InnoDB snapshot innodb-5.1-ss1751. Revision r1751: rw_lock_s_lock_func(): Correct a typo in a comment. storage/innobase/include/trx0trx.h: Apply InnoDB snapshot innodb-5.1-ss1751. Revision r1742: Remove some unused fields of trx_t: mysql_master_log_file_name, mysql_master_log_pos, repl_wait_binlog_name, repl_wait_binlog_pos. Approved by Heikki. storage/innobase/lock/lock0lock.c: Apply InnoDB snapshot innodb-5.1-ss1751. Revision r1749: Add a table level counter that tracks the number of AUTOINC locks that are pending and/or granted on a table. We peek at this value to determine whether a transaction doing a simple INSERT in innodb_autoinc_lock_mode = 1, needs to acquire the AUTOINC lock or not. This change is related to Bug# 16979. storage/innobase/mtr/mtr0log.c: Apply InnoDB snapshot innodb-5.1-ss1751. storage/innobase/pars/pars0pars.c: Apply InnoDB snapshot innodb-5.1-ss1751. storage/innobase/srv/srv0srv.c: Apply InnoDB snapshot innodb-5.1-ss1751. storage/innobase/trx/trx0sys.c: Apply InnoDB snapshot innodb-5.1-ss1751. Revision r1743: trx_sys_print_mysql_binlog_offset_from_page(): Enclose the definition in #ifdef UNIV_HOTBACKUP, to match the function declaration. storage/innobase/trx/trx0trx.c: Apply InnoDB snapshot innodb-5.1-ss1751. Revision r1742: Remove some unused fields of trx_t: mysql_master_log_file_name, mysql_master_log_pos, repl_wait_binlog_name, repl_wait_binlog_pos. Approved by Heikki. |
||
---|---|---|
.. | ||
btr0btr.h | ||
btr0btr.ic | ||
btr0cur.h | ||
btr0cur.ic | ||
btr0pcur.h | ||
btr0pcur.ic | ||
btr0sea.h | ||
btr0sea.ic | ||
btr0types.h | ||
buf0buf.h | ||
buf0buf.ic | ||
buf0flu.h | ||
buf0flu.ic | ||
buf0lru.h | ||
buf0lru.ic | ||
buf0rea.h | ||
buf0types.h | ||
data0data.h | ||
data0data.ic | ||
data0type.h | ||
data0type.ic | ||
data0types.h | ||
db0err.h | ||
dict0boot.h | ||
dict0boot.ic | ||
dict0crea.h | ||
dict0crea.ic | ||
dict0dict.h | ||
dict0dict.ic | ||
dict0load.h | ||
dict0load.ic | ||
dict0mem.h | ||
dict0mem.ic | ||
dict0types.h | ||
dyn0dyn.h | ||
dyn0dyn.ic | ||
eval0eval.h | ||
eval0eval.ic | ||
eval0proc.h | ||
eval0proc.ic | ||
fil0fil.h | ||
fsp0fsp.h | ||
fsp0fsp.ic | ||
fut0fut.h | ||
fut0fut.ic | ||
fut0lst.h | ||
fut0lst.ic | ||
ha0ha.h | ||
ha0ha.ic | ||
ha_prototypes.h | ||
hash0hash.h | ||
hash0hash.ic | ||
ibuf0ibuf.h | ||
ibuf0ibuf.ic | ||
ibuf0types.h | ||
lock0iter.h | ||
lock0lock.h | ||
lock0lock.ic | ||
lock0priv.h | ||
lock0priv.ic | ||
lock0types.h | ||
log0log.h | ||
log0log.ic | ||
log0recv.h | ||
log0recv.ic | ||
mach0data.h | ||
mach0data.ic | ||
mem0dbg.h | ||
mem0dbg.ic | ||
mem0mem.h | ||
mem0mem.ic | ||
mem0pool.h | ||
mem0pool.ic | ||
mtr0log.h | ||
mtr0log.ic | ||
mtr0mtr.h | ||
mtr0mtr.ic | ||
mtr0types.h | ||
os0file.h | ||
os0proc.h | ||
os0proc.ic | ||
os0sync.h | ||
os0sync.ic | ||
os0thread.h | ||
os0thread.ic | ||
page0cur.h | ||
page0cur.ic | ||
page0page.h | ||
page0page.ic | ||
page0types.h | ||
pars0grm.h | ||
pars0opt.h | ||
pars0opt.ic | ||
pars0pars.h | ||
pars0pars.ic | ||
pars0sym.h | ||
pars0sym.ic | ||
pars0types.h | ||
que0que.h | ||
que0que.ic | ||
que0types.h | ||
read0read.h | ||
read0read.ic | ||
read0types.h | ||
rem0cmp.h | ||
rem0cmp.ic | ||
rem0rec.h | ||
rem0rec.ic | ||
rem0types.h | ||
row0ins.h | ||
row0ins.ic | ||
row0mysql.h | ||
row0mysql.ic | ||
row0purge.h | ||
row0purge.ic | ||
row0row.h | ||
row0row.ic | ||
row0sel.h | ||
row0sel.ic | ||
row0types.h | ||
row0uins.h | ||
row0uins.ic | ||
row0umod.h | ||
row0umod.ic | ||
row0undo.h | ||
row0undo.ic | ||
row0upd.h | ||
row0upd.ic | ||
row0vers.h | ||
row0vers.ic | ||
srv0que.h | ||
srv0srv.h | ||
srv0srv.ic | ||
srv0start.h | ||
sync0arr.h | ||
sync0arr.ic | ||
sync0rw.h | ||
sync0rw.ic | ||
sync0sync.h | ||
sync0sync.ic | ||
sync0types.h | ||
thr0loc.h | ||
thr0loc.ic | ||
trx0purge.h | ||
trx0purge.ic | ||
trx0rec.h | ||
trx0rec.ic | ||
trx0roll.h | ||
trx0roll.ic | ||
trx0rseg.h | ||
trx0rseg.ic | ||
trx0sys.h | ||
trx0sys.ic | ||
trx0trx.h | ||
trx0trx.ic | ||
trx0types.h | ||
trx0undo.h | ||
trx0undo.ic | ||
trx0xa.h | ||
univ.i | ||
usr0sess.h | ||
usr0sess.ic | ||
usr0types.h | ||
ut0byte.h | ||
ut0byte.ic | ||
ut0dbg.h | ||
ut0list.h | ||
ut0list.ic | ||
ut0lst.h | ||
ut0mem.h | ||
ut0mem.ic | ||
ut0rnd.h | ||
ut0rnd.ic | ||
ut0sort.h | ||
ut0ut.h | ||
ut0ut.ic | ||
ut0vec.h | ||
ut0vec.ic | ||
ut0wqueue.h |