diff options
author | Sergei Golubchik <serg@mysql.com> | 2008-08-06 21:30:05 +0200 |
---|---|---|
committer | Sergei Golubchik <serg@mysql.com> | 2008-08-06 21:30:05 +0200 |
commit | 3971e262e99366fa4bc9b454e69cf48daac9be85 (patch) | |
tree | b56353bb1faa6894eddf63228e16dcb2b0621f39 /storage/maria/maria_def.h | |
parent | 7ca3fc4ff0ab53835da9f57af7f630f4c65868b7 (diff) | |
download | mariadb-git-3971e262e99366fa4bc9b454e69cf48daac9be85.tar.gz |
maria: deadlock detection when waiting on unique key (useless until we can rollback)
include/my_pthread.h:
cleanup
include/waiting_threads.h:
header guard
mysys/waiting_threads.c:
bug - kill strategy were not applied to deadlocks of length 1.
cast timeout to ulonglong.
storage/maria/ma_static.c:
declare WT_RESOURCE_TYPE ma_rc_dup_unique
storage/maria/ma_write.c:
deadlock detection when waiting on unique key (useless until we can rollback)
storage/maria/maria_def.h:
deadlock detection when waiting on unique key (useless until we can rollback)
storage/maria/trnman.c:
use deadlock detector.
protect state transitions of a TRN with a mutex.
trnman_trid_to_trn() function.
storage/maria/trnman.h:
trnman_trid_to_trn() function
protect state transitions of a TRN with a mutex
use deadlock detector.
storage/maria/trnman_public.h:
trnman_trid_to_trn()
Diffstat (limited to 'storage/maria/maria_def.h')
-rw-r--r-- | storage/maria/maria_def.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/storage/maria/maria_def.h b/storage/maria/maria_def.h index c1160993607..3d633355729 100644 --- a/storage/maria/maria_def.h +++ b/storage/maria/maria_def.h @@ -29,6 +29,7 @@ #include "ma_loghandler.h" #include "ma_control_file.h" #include "ma_state.h" +#include <waiting_threads.h> /* For testing recovery */ #ifdef TO_BE_REMOVED @@ -492,13 +493,14 @@ struct st_maria_handler uint32 int_keytree_version; /* -""- */ int (*read_record)(MARIA_HA *, uchar*, MARIA_RECORD_POS); invalidator_by_filename invalidator; /* query cache invalidator */ - ulonglong last_auto_increment; /* auto value at start of statement */ + ulonglong last_auto_increment; /* auto value at start of statement */ ulong this_unique; /* uniq filenumber or thread */ ulong last_unique; /* last unique number */ ulong this_loop; /* counter for this open */ ulong last_loop; /* last used counter */ MARIA_RECORD_POS save_lastpos; MARIA_RECORD_POS dup_key_pos; + TrID dup_key_trid; my_off_t pos; /* Intern variable */ my_off_t last_keypage; /* Last key page read */ my_off_t last_search_keypage; /* Last keypage when searching */ @@ -759,6 +761,7 @@ extern char *maria_data_root; extern uchar maria_zero_string[]; extern my_bool maria_inited, maria_in_ha_maria; extern HASH maria_stored_state; +extern WT_RESOURCE_TYPE ma_rc_dup_unique; /* This is used by _ma_calc_xxx_key_length och _ma_store_key */ typedef struct st_maria_s_param @@ -782,7 +785,6 @@ typedef struct st_pinned_page my_bool changed; } MARIA_PINNED_PAGE; - /* Prototypes for intern functions */ extern int _ma_read_dynamic_record(MARIA_HA *, uchar *, MARIA_RECORD_POS); extern int _ma_read_rnd_dynamic_record(MARIA_HA *, uchar *, MARIA_RECORD_POS, |