List:Falcon Storage Engine« Previous MessageNext Message »
From:John Embretsen Date:November 12 2008 2:07pm
Subject:Transactional LOCK TABLE support in Falcon?
View as plain text  
Hi experts,

I'm looking at the test rpl.rpl_locktrans_{innodb,myisam}, with the
objective of adding a corresponding test wrapper for Falcon (since this
is one of the few so-called engine-independent replication tests).

The test tests various uses of the LOCK TABLE command, which is
described here:
http://dev.mysql.com/doc/refman/6.0/en/lock-tables.html

This section in the manual says that only InnoDB supports transactional
LOCK TABLE, which seems to match current behavior.

My question is, why is this kind of transactional locking not supported
by Falcon?

(Maria's worklog for this is WL#4574, not started).

I am asking simply because I found it a bit counter-intuitive, since
Falcon is a transactional engine. And I want to make sure that new tests
like this are testing correct behavior.



Details:

I find that Falcon behaves more like MyISAM than InnoDB in this case.
With Falcon, transactional locks are converted to non-transactional
locks where possible, e.g.:

#
# Valid syntax for transactional locks.
LOCK TABLE t1 IN SHARE MODE, t2 IN EXCLUSIVE MODE;
Warnings:
Warning 1615    Converted to non-transactional lock on 't1'
Warning 1615    Converted to non-transactional lock on 't2'
UNLOCK TABLES;

Otherwise, transactional locking fails, e.g. as follows:

# Try transactional locks on top of the existing non-transactional locks.
LOCK TABLE t1 IN SHARE MODE, t2 IN EXCLUSIVE MODE;
ERROR HY000: Cannot convert to non-transactional lock in strict mode on 't1'


thank you for your attention,

-- 
John

Thread
Transactional LOCK TABLE support in Falcon?John Embretsen12 Nov
  • Re: Transactional LOCK TABLE support in Falcon?Ann W. Harrison12 Nov