detection of 'flush tables with read lock' in php
        Posted  
        
            by theduke0
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by theduke0
        
        
        
        Published on 2010-03-30T10:52:38Z
        Indexed on 
            2010/04/06
            22:43 UTC
        
        
        Read the original article
        Hit count: 211
        
I would like to know from my application if a myisam table can accept writes (i.e. not locked). If an exception is thrown, everything is fine as I can catch this and log the failed statement to a file. However, if a 'flush tables with read lock' command has been issued (possibly for backup), the query I send will pretty much hang out forever.
If one table is locked at a time, insert delayed works well. But when this global lock is applied, my query just waits.
The query I run is an insert statement. If this statement fails or hangs, user experience is degraded. I need a way to send the query to the server and forget about it (pretty much).
Does anyone have any suggestions on how to deal with this?
-set a query timeout?
-run asyncronous request and allow for the lock to expire while application continues?
-fork my php process?
Please let me know if I can provide and clarification or details.
© Stack Overflow or respective owner