Re: Help interpreting SHOW INNODB Status Message

2004-12-08 Thread Heikki Tuuri
Emmett,
if you have an index on a column, say
c CHAR(10)
and the index contains adjacent records 'aabbaguu' and 'abbaguu', then a 
'gap' is the gap between those values in the alphabetical order. If you try 
to insert, say, 'aac' to the index, it would fall in the 'gap'.

Note that the 'next-key' locking information in InnoDB is carried by 
existing records in the index. You cannot lock just some subinterval of a 
'gap'.

Regards,
Heikki
- Alkuperäinen viesti - 
Lähettäjä: Emmett Bishop [EMAIL PROTECTED]
Vastaanottaja: Heikki Tuuri [EMAIL PROTECTED]; 
[EMAIL PROTECTED]
Lähetetty: Wednesday, December 08, 2004 12:16 AM
Aihe: Re: Help interpreting SHOW INNODB Status Message


Heikki,
Thanks for the input. Right now we can't move to 4.1,
we're stuck with 4.0.20 for sometime. So, it there
someway that through improving the schema these issues
could be addressed? I added an index on these tables
reflecting the way that data is usually looked up
(always by session_guid and label). Every user has a
unique session_guid that looks something like:
7E6E4C38-4819-11D9-9802-84B0A828F8C4
What I don't understand is what the gap is. I can
understand in the example on the mysql site (select *
from table where id  100 for update) how that would
lock all records with id  100. How does it work in
the case of a string based index? Suppose there were
two different users, one with guid
7E6E4C38-4819-11D9-9802-84B0A828F8C4 and the other
with guid 5G4F4H10-4819-11D9-9802-84B0A828F8C4 (note,
these two guids are fairly representative in form).
The first user was performing a delete and the second
was performing an insert what gap would be created?
What kind of schema change might reduce/eliminate the
contention?
Thanks,
Tripp
--- Heikki Tuuri [EMAIL PROTECTED] wrote:
Emmett,
ok, trx (1) is trying to lock gap G, but trx (2)
already has a lock on it.
And trx (2) is trying to insert a new record into
that same gap G.
Even a waiting lock request on a gap prevents new
inserts into it = a
deadlock.
In 4.1.7, you might avoid this deadlock. In 4.1.7, a
waiting gap lock does
not need to wait just because someone else has a
granted lock on the same
gap. But, of course, your transactions might
deadlock a bit later. DELETEs
and INSERTs in the same gap very easily lead to a
deadlock.
In 4.1, you can also set
innodb_locks_unsafe_for_binlog
in my.cnf. That removes almost all gap locking.
Best regards,
Heikki Tuuri
Innobase Oy
Foreign keys, transactions, and row level locking
for MySQL
InnoDB Hot Backup - a hot backup tool for InnoDB
which also backs up MyISAM
tables
http://www.innodb.com/order.php
- Original Message - 
From: Emmett Bishop [EMAIL PROTECTED]
Newsgroups: mailing.database.myodbc
Sent: Tuesday, December 07, 2004 5:44 PM
Subject: Re: Help interpreting SHOW INNODB Status
Message

 Heikki,

 We're using MySQL 4.0.20. Here's the full output:

 =
 041207  8:33:26 INNODB MONITOR OUTPUT
 =
 Per second averages calculated from the last 15
 seconds
 --
 SEMAPHORES
 --
 OS WAIT ARRAY INFO: reservation count 49506785,
signal
 count 48823098
 Mutex spin waits 963371106, rounds 3338424450, OS
 waits 2853796
 RW-shared spins 80886102, OS waits 38728129;
RW-excl
 spins 2488320, OS waits 302033
 
 LATEST FOREIGN KEY ERROR
 
 041206 23:52:41 Transaction:
 TRANSACTION 0 10799828, ACTIVE 2 sec, process no
 31424, OS thread id 2942950320 inserting, thread
 declared inside InnoDB 500
 mysql tables in use 1, locked 1
 6 lock struct(s), heap size 1024, undo log entries
1
 MySQL thread id 88051, query id 14858689 host ip
user
 update
 INSERT INTO s_filter (fname, lname, email,
 eff_oldest_dt, eff_latest_dt, move_oldest_dt,
 move_latest_dt, agent_id, no_agent_sw,
 exclude_holds_sw, custom_message_sw, pics_only_sw,
 price, wiz_city_name, subdivision,
tot_finished_sqft,
 bedrooms, garage_spaces, bathrooms, area, subarea,
 year, property_t
 Foreign key constraint fails for table
 `ahf_test/s_filter`:
 ,
  CONSTRAINT `s_filter_ibfk_1` FOREIGN KEY
 (`session_guid`) REFERENCES `s_session`
 (`session_guid`)
 Trying to add in child table, in index
 `idx_session_guid` tuple:
 DATA TUPLE: 2 fields;
 0: len 36; hex

3745364534482d343831392d313144392d393830322d383442304138323846384334;
 asc 7E6E4C38-4819-11D9-9802-84B0A828F8C4;; 1: len
6;
 hex 0048a79b; ascH  ;;

 But in parent table `ahf_test/s_session`, in index
 `PRIMARY`,
 the closest match we can find is record:
 PHYSICAL RECORD: n_fields 4; 1-byte offs TRUE;
info
 bits 32
 0: len 30; hex

37454139364146452d343743442d313144392d393830322d383442304138;
 asc 7EA96AFE-47CD-11D9-9802-84B0A8;...(truncated);
1:
 len 6; hex 00a49aaf; asc   ;; 2: len 7;
hex
 0340082073; asc@  s;; 3: len 8; hex
 8000123a34f916a6; asc:4   ;;

 
 LATEST DETECTED DEADLOCK
 
 041207  7:32:14
 *** (1) TRANSACTION

Re: Help interpreting SHOW INNODB Status Message

2004-12-07 Thread Heikki Tuuri
Emmett,
- Original Message - 
From: Emmett Bishop [EMAIL PROTECTED]
Newsgroups: mailing.database.myodbc
Sent: Tuesday, December 07, 2004 6:01 AM
Subject: Help interpreting SHOW INNODB Status Message


Howdy all,
We're having concurrency problems with a table in our
database and I'm not sure if I'm interpreting the
following chunk of output from SHOW INNODB STATUS
correctly.
From what I gather, the row could not be inserted
because the table was locked. I think that this insert
was a victim of the next key locking stategy used by
INNODB based on statement lock_mode X locks gap
before rec. We don't use SELECT FOR UPDATE statements
so I'm wondering how there could be a lock. If someone
was performing a regular SELECT statement (they would
be using the index session_guid, label to retrieve the
records) would that cause the insert statement to get
locked out? What confuses me is how there could be two
or more different guids involved in any one query (the
session guid is always in the where clause of any
select statement against this table, as is the label,
though the labels are almost all the same, a value of
SelectedCustomer). Any ideas as to how I can clean
this up so that the contention is reduced? BTW, we're
using a transaction isolation level of REPEATABLE
READ.
please post the COMPLETE output of SHOW INNODB STATUS. Do not cut anything 
off. What MySQL version you are using?

Thanks in advance,
Tripp
LATEST DETECTED DEADLOCK

041206 17:13:50
*** (1) TRANSACTION:
TRANSACTION 0 10790587, ACTIVE 151 sec, process no
31424, OS thread id 2949241776 inserting
mysql tables in use 1, locked 1
LOCK WAIT 46 lock struct(s), heap size 5504, undo log
entries 158
MySQL thread id 85684, query id 14714501 host ip user
update
INSERT INTO s_contact_log (log_id, customer_id, entry,
author, log_dt, log_type, office_id, session_guid,
label, sort_id) VALUES (228072,38755, 'test entry' -
*** (1) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 0 page no 2263 n bits 264 index
`idx_session_label` of table `ahf_test/s_contact_log`
trx id 0 10790587 lock_mode X locks gap before rec
insert intention waiting
Record lock, heap no 130 PHYSICAL RECORD: n_fields 3;
1-byte offs TRUE; info bits 32
0: len 30; hex
35384143373041392d343745312d313144392d393830322d383442304138;
asc 58AC70A9-47E1-11D9-9802-84B0A8;...(truncated); 1:
len 16; hex 53656c6563746564437573746f6d6572; asc
SelectedCustomer;; 2: len 6; hex 004880b1; asc
H  ;;
Here's the structure of the table:
CREATE TABLE `s_contact_log` (
 `session_guid` varchar(36) NOT NULL default '',
 `label` varchar(50) NOT NULL default '',
 `log_id` int(11) NOT NULL default '0',
 `office_id` int(11) NOT NULL default '0',
 `customer_id` int(11) NOT NULL default '0',
 `entry` text NOT NULL,
 `author` varchar(60) NOT NULL default '',
 `log_dt` date NOT NULL default '-00-00',
 `sort_id` int(11) NOT NULL default '0',
 `log_type` int(11) NOT NULL default '0',
 KEY `idx_session_guid` (`session_guid`),
 KEY `idx_session_label` (`session_guid`,`label`),
 CONSTRAINT `s_contact_log_ibfk_1` FOREIGN KEY
(`session_guid`) REFERENCES `s_session`
(`session_guid`)
) TYPE=InnoDB
Best regards,
Heikki Tuuri
Innobase Oy
Foreign keys, transactions, and row level locking for MySQL
InnoDB Hot Backup - a hot backup tool for InnoDB which also backs up MyISAM 
tables
http://www.innodb.com/order.php

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]


Re: Help interpreting SHOW INNODB Status Message

2004-12-07 Thread Emmett Bishop
Heikki,

We're using MySQL 4.0.20. Here's the full output:

=
041207  8:33:26 INNODB MONITOR OUTPUT
=
Per second averages calculated from the last 15
seconds
--
SEMAPHORES
--
OS WAIT ARRAY INFO: reservation count 49506785, signal
count 48823098
Mutex spin waits 963371106, rounds 3338424450, OS
waits 2853796
RW-shared spins 80886102, OS waits 38728129; RW-excl
spins 2488320, OS waits 302033

LATEST FOREIGN KEY ERROR

041206 23:52:41 Transaction:
TRANSACTION 0 10799828, ACTIVE 2 sec, process no
31424, OS thread id 2942950320 inserting, thread
declared inside InnoDB 500
mysql tables in use 1, locked 1
6 lock struct(s), heap size 1024, undo log entries 1
MySQL thread id 88051, query id 14858689 host ip user
update
INSERT INTO s_filter (fname, lname, email,
eff_oldest_dt, eff_latest_dt, move_oldest_dt,
move_latest_dt, agent_id, no_agent_sw,
exclude_holds_sw, custom_message_sw, pics_only_sw,
price, wiz_city_name, subdivision, tot_finished_sqft,
bedrooms, garage_spaces, bathrooms, area, subarea,
year, property_t
Foreign key constraint fails for table
`ahf_test/s_filter`:
,
  CONSTRAINT `s_filter_ibfk_1` FOREIGN KEY
(`session_guid`) REFERENCES `s_session`
(`session_guid`)
Trying to add in child table, in index
`idx_session_guid` tuple:
DATA TUPLE: 2 fields;
 0: len 36; hex
3745364534482d343831392d313144392d393830322d383442304138323846384334;
asc 7E6E4C38-4819-11D9-9802-84B0A828F8C4;; 1: len 6;
hex 0048a79b; ascH  ;;

But in parent table `ahf_test/s_session`, in index
`PRIMARY`,
the closest match we can find is record:
PHYSICAL RECORD: n_fields 4; 1-byte offs TRUE; info
bits 32
 0: len 30; hex
37454139364146452d343743442d313144392d393830322d383442304138;
asc 7EA96AFE-47CD-11D9-9802-84B0A8;...(truncated); 1:
len 6; hex 00a49aaf; asc   ;; 2: len 7; hex
0340082073; asc@  s;; 3: len 8; hex
8000123a34f916a6; asc:4   ;;


LATEST DETECTED DEADLOCK

041207  7:32:14
*** (1) TRANSACTION:
TRANSACTION 0 10812524, ACTIVE 0 sec, process no
31424, OS thread id 2916936624 starting index read
mysql tables in use 1, locked 1
LOCK WAIT 2 lock struct(s), heap size 320
MySQL thread id 89288, query id 15070554 host ip user
updating
DELETE FROM s_customer WHERE session_guid =
'0B10634A-485A-11D9-9802-84B0A828F8C4' AND label =
'CustomerDTO'
*** (1) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 0 page no 6682 n bits 120 index
`idx_session_label` of table `ahf_test/s_customer` trx
id 0 10812524 lock_mode X locks gap before rec waiting
Record lock, heap no 13 PHYSICAL RECORD: n_fields 3;
1-byte offs TRUE; info bits 32
 0: len 30; hex
32354435463135432d343835382d313144392d393830322d383442304138;
asc 25D5F15C-4858-11D9-9802-84B0A8;...(truncated); 1:
len 11; hex 437573746f6d657244544f; asc CustomerDTO;;
2: len 6; hex 0048b228; ascH (;;

*** (2) TRANSACTION:
TRANSACTION 0 10812523, ACTIVE 0 sec, process no
31424, OS thread id 2926173104 inserting, thread
declared inside InnoDB 500
mysql tables in use 1, locked 1
7 lock struct(s), heap size 1024, undo log entries 1
MySQL thread id 89289, query id 15070556 host ip user
update
INSERT INTO s_customer (customer_id, address_id,
agent_id, pref_id, lname, fname, email, home_phone,
work_phone, comments, house_for_sale, address1, city,
state, zip, subdivision_list, price_lower,
price_upper, tot_finished_sqft, bedrooms, bathrooms,
garage_spaces, style, eff_dt, move_dt, customer_i
*** (2) HOLDS THE LOCK(S):
RECORD LOCKS space id 0 page no 6682 n bits 120 index
`idx_session_label` of table `ahf_test/s_customer` trx
id 0 10812523 lock_mode X locks gap before rec
Record lock, heap no 13 PHYSICAL RECORD: n_fields 3;
1-byte offs TRUE; info bits 32
 0: len 30; hex
32354435463135432d343835382d313144392d393830322d383442304138;
asc 25D5F15C-4858-11D9-9802-84B0A8;...(truncated); 1:
len 11; hex 437573746f6d657244544f; asc CustomerDTO;;
2: len 6; hex 0048b228; ascH (;;

*** (2) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 0 page no 6682 n bits 120 index
`idx_session_label` of table `ahf_test/s_customer` trx
id 0 10812523 lock_mode X locks gap before rec insert
intention waiting
Record lock, heap no 13 PHYSICAL RECORD: n_fields 3;
1-byte offs TRUE; info bits 32
 0: len 30; hex
32354435463135432d343835382d313144392d393830322d383442304138;
asc 25D5F15C-4858-11D9-9802-84B0A8;...(truncated); 1:
len 11; hex 437573746f6d657244544f; asc CustomerDTO;;
2: len 6; hex 0048b228; ascH (;;

*** WE ROLL BACK TRANSACTION (1)

TRANSACTIONS

Trx id counter 0 10819864
Purge done for trx's n:o  0 10819842 undo n:o  0 0
Total number of lock structs in row lock hash table 0
LIST OF TRANSACTIONS FOR EACH SESSION:
---TRANSACTION 0 0, not started, process no 31424, OS
thread id 2925570992
MySQL thread id 89423, query id 15136606 host ip user
show innodb 

Re: Help interpreting SHOW INNODB Status Message

2004-12-07 Thread Heikki Tuuri
Emmett,
ok, trx (1) is trying to lock gap G, but trx (2) already has a lock on it. 
And trx (2) is trying to insert a new record into that same gap G.

Even a waiting lock request on a gap prevents new inserts into it = a 
deadlock.

In 4.1.7, you might avoid this deadlock. In 4.1.7, a waiting gap lock does 
not need to wait just because someone else has a granted lock on the same 
gap. But, of course, your transactions might deadlock a bit later. DELETEs 
and INSERTs in the same gap very easily lead to a deadlock.

In 4.1, you can also set
innodb_locks_unsafe_for_binlog
in my.cnf. That removes almost all gap locking.
Best regards,
Heikki Tuuri
Innobase Oy
Foreign keys, transactions, and row level locking for MySQL
InnoDB Hot Backup - a hot backup tool for InnoDB which also backs up MyISAM 
tables
http://www.innodb.com/order.php

- Original Message - 
From: Emmett Bishop [EMAIL PROTECTED]
Newsgroups: mailing.database.myodbc
Sent: Tuesday, December 07, 2004 5:44 PM
Subject: Re: Help interpreting SHOW INNODB Status Message


Heikki,
We're using MySQL 4.0.20. Here's the full output:
=
041207  8:33:26 INNODB MONITOR OUTPUT
=
Per second averages calculated from the last 15
seconds
--
SEMAPHORES
--
OS WAIT ARRAY INFO: reservation count 49506785, signal
count 48823098
Mutex spin waits 963371106, rounds 3338424450, OS
waits 2853796
RW-shared spins 80886102, OS waits 38728129; RW-excl
spins 2488320, OS waits 302033

LATEST FOREIGN KEY ERROR

041206 23:52:41 Transaction:
TRANSACTION 0 10799828, ACTIVE 2 sec, process no
31424, OS thread id 2942950320 inserting, thread
declared inside InnoDB 500
mysql tables in use 1, locked 1
6 lock struct(s), heap size 1024, undo log entries 1
MySQL thread id 88051, query id 14858689 host ip user
update
INSERT INTO s_filter (fname, lname, email,
eff_oldest_dt, eff_latest_dt, move_oldest_dt,
move_latest_dt, agent_id, no_agent_sw,
exclude_holds_sw, custom_message_sw, pics_only_sw,
price, wiz_city_name, subdivision, tot_finished_sqft,
bedrooms, garage_spaces, bathrooms, area, subarea,
year, property_t
Foreign key constraint fails for table
`ahf_test/s_filter`:
,
 CONSTRAINT `s_filter_ibfk_1` FOREIGN KEY
(`session_guid`) REFERENCES `s_session`
(`session_guid`)
Trying to add in child table, in index
`idx_session_guid` tuple:
DATA TUPLE: 2 fields;
0: len 36; hex
3745364534482d343831392d313144392d393830322d383442304138323846384334;
asc 7E6E4C38-4819-11D9-9802-84B0A828F8C4;; 1: len 6;
hex 0048a79b; ascH  ;;
But in parent table `ahf_test/s_session`, in index
`PRIMARY`,
the closest match we can find is record:
PHYSICAL RECORD: n_fields 4; 1-byte offs TRUE; info
bits 32
0: len 30; hex
37454139364146452d343743442d313144392d393830322d383442304138;
asc 7EA96AFE-47CD-11D9-9802-84B0A8;...(truncated); 1:
len 6; hex 00a49aaf; asc   ;; 2: len 7; hex
0340082073; asc@  s;; 3: len 8; hex
8000123a34f916a6; asc:4   ;;

LATEST DETECTED DEADLOCK

041207  7:32:14
*** (1) TRANSACTION:
TRANSACTION 0 10812524, ACTIVE 0 sec, process no
31424, OS thread id 2916936624 starting index read
mysql tables in use 1, locked 1
LOCK WAIT 2 lock struct(s), heap size 320
MySQL thread id 89288, query id 15070554 host ip user
updating
DELETE FROM s_customer WHERE session_guid =
'0B10634A-485A-11D9-9802-84B0A828F8C4' AND label =
'CustomerDTO'
*** (1) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 0 page no 6682 n bits 120 index
`idx_session_label` of table `ahf_test/s_customer` trx
id 0 10812524 lock_mode X locks gap before rec waiting
Record lock, heap no 13 PHYSICAL RECORD: n_fields 3;
1-byte offs TRUE; info bits 32
0: len 30; hex
32354435463135432d343835382d313144392d393830322d383442304138;
asc 25D5F15C-4858-11D9-9802-84B0A8;...(truncated); 1:
len 11; hex 437573746f6d657244544f; asc CustomerDTO;;
2: len 6; hex 0048b228; ascH (;;
*** (2) TRANSACTION:
TRANSACTION 0 10812523, ACTIVE 0 sec, process no
31424, OS thread id 2926173104 inserting, thread
declared inside InnoDB 500
mysql tables in use 1, locked 1
7 lock struct(s), heap size 1024, undo log entries 1
MySQL thread id 89289, query id 15070556 host ip user
update
INSERT INTO s_customer (customer_id, address_id,
agent_id, pref_id, lname, fname, email, home_phone,
work_phone, comments, house_for_sale, address1, city,
state, zip, subdivision_list, price_lower,
price_upper, tot_finished_sqft, bedrooms, bathrooms,
garage_spaces, style, eff_dt, move_dt, customer_i
*** (2) HOLDS THE LOCK(S):
RECORD LOCKS space id 0 page no 6682 n bits 120 index
`idx_session_label` of table `ahf_test/s_customer` trx
id 0 10812523 lock_mode X locks gap before rec
Record lock, heap no 13 PHYSICAL RECORD: n_fields 3;
1-byte offs TRUE; info bits 32
0: len 30; hex
32354435463135432d343835382d313144392d393830322d383442304138;
asc 25D5F15C-4858-11D9-9802-84B0A8

Re: Help interpreting SHOW INNODB Status Message

2004-12-07 Thread Emmett Bishop
Heikki,

Thanks for the input. Right now we can't move to 4.1,
we're stuck with 4.0.20 for sometime. So, it there
someway that through improving the schema these issues
could be addressed? I added an index on these tables
reflecting the way that data is usually looked up
(always by session_guid and label). Every user has a
unique session_guid that looks something like:
7E6E4C38-4819-11D9-9802-84B0A828F8C4

What I don't understand is what the gap is. I can
understand in the example on the mysql site (select *
from table where id  100 for update) how that would
lock all records with id  100. How does it work in
the case of a string based index? Suppose there were
two different users, one with guid
7E6E4C38-4819-11D9-9802-84B0A828F8C4 and the other
with guid 5G4F4H10-4819-11D9-9802-84B0A828F8C4 (note,
these two guids are fairly representative in form).
The first user was performing a delete and the second
was performing an insert what gap would be created?
What kind of schema change might reduce/eliminate the
contention?

Thanks,

Tripp

--- Heikki Tuuri [EMAIL PROTECTED] wrote:

 Emmett,
 
 ok, trx (1) is trying to lock gap G, but trx (2)
 already has a lock on it. 
 And trx (2) is trying to insert a new record into
 that same gap G.
 
 Even a waiting lock request on a gap prevents new
 inserts into it = a 
 deadlock.
 
 In 4.1.7, you might avoid this deadlock. In 4.1.7, a
 waiting gap lock does 
 not need to wait just because someone else has a
 granted lock on the same 
 gap. But, of course, your transactions might
 deadlock a bit later. DELETEs 
 and INSERTs in the same gap very easily lead to a
 deadlock.
 
 In 4.1, you can also set
 
 innodb_locks_unsafe_for_binlog
 
 in my.cnf. That removes almost all gap locking.
 
 Best regards,
 
 Heikki Tuuri
 Innobase Oy
 Foreign keys, transactions, and row level locking
 for MySQL
 InnoDB Hot Backup - a hot backup tool for InnoDB
 which also backs up MyISAM 
 tables
 http://www.innodb.com/order.php
 
 
 - Original Message - 
 From: Emmett Bishop [EMAIL PROTECTED]
 Newsgroups: mailing.database.myodbc
 Sent: Tuesday, December 07, 2004 5:44 PM
 Subject: Re: Help interpreting SHOW INNODB Status
 Message
 
 
  Heikki,
 
  We're using MySQL 4.0.20. Here's the full output:
 
  =
  041207  8:33:26 INNODB MONITOR OUTPUT
  =
  Per second averages calculated from the last 15
  seconds
  --
  SEMAPHORES
  --
  OS WAIT ARRAY INFO: reservation count 49506785,
 signal
  count 48823098
  Mutex spin waits 963371106, rounds 3338424450, OS
  waits 2853796
  RW-shared spins 80886102, OS waits 38728129;
 RW-excl
  spins 2488320, OS waits 302033
  
  LATEST FOREIGN KEY ERROR
  
  041206 23:52:41 Transaction:
  TRANSACTION 0 10799828, ACTIVE 2 sec, process no
  31424, OS thread id 2942950320 inserting, thread
  declared inside InnoDB 500
  mysql tables in use 1, locked 1
  6 lock struct(s), heap size 1024, undo log entries
 1
  MySQL thread id 88051, query id 14858689 host ip
 user
  update
  INSERT INTO s_filter (fname, lname, email,
  eff_oldest_dt, eff_latest_dt, move_oldest_dt,
  move_latest_dt, agent_id, no_agent_sw,
  exclude_holds_sw, custom_message_sw, pics_only_sw,
  price, wiz_city_name, subdivision,
 tot_finished_sqft,
  bedrooms, garage_spaces, bathrooms, area, subarea,
  year, property_t
  Foreign key constraint fails for table
  `ahf_test/s_filter`:
  ,
   CONSTRAINT `s_filter_ibfk_1` FOREIGN KEY
  (`session_guid`) REFERENCES `s_session`
  (`session_guid`)
  Trying to add in child table, in index
  `idx_session_guid` tuple:
  DATA TUPLE: 2 fields;
  0: len 36; hex
 

3745364534482d343831392d313144392d393830322d383442304138323846384334;
  asc 7E6E4C38-4819-11D9-9802-84B0A828F8C4;; 1: len
 6;
  hex 0048a79b; ascH  ;;
 
  But in parent table `ahf_test/s_session`, in index
  `PRIMARY`,
  the closest match we can find is record:
  PHYSICAL RECORD: n_fields 4; 1-byte offs TRUE;
 info
  bits 32
  0: len 30; hex
 

37454139364146452d343743442d313144392d393830322d383442304138;
  asc 7EA96AFE-47CD-11D9-9802-84B0A8;...(truncated);
 1:
  len 6; hex 00a49aaf; asc   ;; 2: len 7;
 hex
  0340082073; asc@  s;; 3: len 8; hex
  8000123a34f916a6; asc:4   ;;
 
  
  LATEST DETECTED DEADLOCK
  
  041207  7:32:14
  *** (1) TRANSACTION:
  TRANSACTION 0 10812524, ACTIVE 0 sec, process no
  31424, OS thread id 2916936624 starting index read
  mysql tables in use 1, locked 1
  LOCK WAIT 2 lock struct(s), heap size 320
  MySQL thread id 89288, query id 15070554 host ip
 user
  updating
  DELETE FROM s_customer WHERE session_guid =
  '0B10634A-485A-11D9-9802-84B0A828F8C4' AND label =
  'CustomerDTO'
  *** (1) WAITING FOR THIS LOCK TO BE GRANTED:
  RECORD LOCKS space id 0 page no 6682 n bits 120
 index
  `idx_session_label` of table `ahf_test/s_customer`
 trx
  id 0 10812524