List:Internals« Previous MessageNext Message »
From:LeeRicky Date:April 14 2011 7:25am
Subject:How to do custom work before binlog resources have been cleaned up?
View as plain text  
Hi Sergei,
Our storage engine writes binlog ourself to get better performance, using a
background thread. Recently I got a bug. When shut down MySQL server, after MySQL
had cleaned up the binlog resources,   our binlog thread was still working
and got into trouble.
Now I want to wait for this thread to exit before MySQL cleans up binlog resources.In
function 'cleanup()' (mysqld.cc:1295, MySQL5.1.49), I found 'ha_binlog_end()' interface
can do this work.But it is defined as empty macro except the 'HAVE_NDB_BINLOG' macro is
defined. 
If I implement the ''ha_binlog_end()' interface like NDB, 'binlog_func' interface
of handlerton can be calledcorrectly and my problem is solved. But I don't want to
modify codes in handler.cc and handler.h. 
I feel this interface hasn't completely open to storage engine.  I mean storage
engine needn't modify the codes of MySQL internal to fit requirements
like mine.
Can future version or patch solve this problem? Provide a way to let 'binlog_func'
interface of handlertonbe called before MySQL cleans up binlog resources.
Sorry for my poor English. I don't know if I have explained the problem clearly.
Really looking forward to your reply. Thanks! 		 	   		  
Thread
How to do custom work before binlog resources have been cleaned up?LeeRicky14 Apr
  • Re: How to do custom work before binlog resources have beencleaned up?Sergei Golubchik19 Apr