[mythtv-users] Slow MySQL query after delete

Michael T. Dean mtdean at thirdcontact.com
Wed Dec 5 17:08:28 UTC 2007


On 12/05/2007 09:33 AM, Boleslaw Ciesielski wrote:
> Michael T. Dean wrote:
>   
>> However, when deleting multiple recordings at once, the deletions occur
>> sequentially, so when slow deletes are enabled, the first delete request
>> is made, data is removed from the DB, a reschedule is requested, then
>> the 1GB/2min10sec deletion occurs.  If, during that deletion process,
>> another recording is deleted, the DB data deletion and reschedule waith
>> until the first recording is gone.  When the first file's deletion
>> completes, the backend waits another 3 seconds for the frontend to catch
>> up (though by now it surely already has), then removes data from the DB,
>> reschedules, and begins the deletion process.  Any additional deletion
>> requests wait in the queue for their turn to remove DB data, reschedule,
>> then delete.
> Are you sure about this part? Delete from DB has it's own separate lock 
> from the truncate lock. From MainServer::DoDeleteThread():
>
>      deletelock.lock();
>
>      [...]
>
>      DoDeleteInDB(ds);
>
>      if (pginfo->recgroup != "LiveTV")
>          ScheduledRecording::signalChange(0);
>
>      deletelock.unlock();
>
>      if (slowDeletes && fd != -1)
>          TruncateAndClose(pginfo, fd, ds->filename, size);
>
>
> So all the deletes from DB (and unlinks) happen right away and only the 
> slow truncates are delayed, no?

You're right.  There's a separate independent lock for the actual
truncation.

Mike


More information about the mythtv-users mailing list