From: Ann W. Harrison Date: January 28 2009 7:30pm Subject: Re: Problems with record visibility and how it is computed List-Archive: http://lists.mysql.com/falcon/439 Message-Id: <4980B238.90602@mysql.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed; charset=ISO-8859-1 Content-Transfer-Encoding: 7BIT > >> Suppose we had a reusable >> transaction id as an index into a transaction state vector. That >> would tie down only a byte per transaction rather than a large >> object. We would still need a mechanism to recycle the transaction >> ids, however. Something might take a day and think about this... > > Sounds as big a change as cycle locking. Let's talk about wait states > with a cycle lock first... I'm not sure that the state vector is that large a change - maybe because I've worked with vectors of transaction states before. It needs to be bigger than a byte - it needs to be the same size as the commit id because it has to hold the commit id. And it ought to be a sparse vector - no point in wasting space on read-only transactions. And changing the state of an entry has to be done carefully to make the effect atomic. And there has to be some way to release the top of the list when nobody cares about it any more... But it has the advantage of working ... of course making it sparse does complicate everything and gets back into locking... Regards, Ann