[Banshee-List] Thoughts on extremely high count of database queries and possible bug under certain (common) scenerios



I noticed a slight performance problem, I think, while watching my Banshee debug output (--debug --debug-sql).

On a setup where the library watcher, anonymous data is submitted, move on info change, write metadata and write rating is enabled. Importing an album by either importing from CD (only FLAC tested) or dropping a library of an album into the watched music folder will generate probably 100 queries like the one below for each song. While the the 30-50 ms per query by itself is absolutely problem free, the current behavior leads to the interface freezing at times and the extra load appears to make Banshee skip in during playback and occasionally even skipping an entire song on a playlist.

There is also apparently a bug in that one can occasionally end up with 2 copies of a song in the database. Sometimes with a physical copy of the song, other times just an entry to a non-existing file. This sounds like a race on the database to me which I gather could be dangerous. At the very least the current behavior isn't desirable purely for displaying an experience for the users.

[2 Debug 16:49:56.483] Executed in 45ms SELECT CoreTracks.Rating,CoreTracks.LastStreamError,CoreTracks.TrackID,CoreTracks.PrimarySourceID,CoreTracks.ArtistID,CoreTracks.AlbumID,CoreTracks.TagSetID,CoreTracks.MusicBrainzID,CoreTracks.MimeType,CoreTracks.FileSize,CoreTracks.FileModifiedStamp,CoreTracks.LastSyncedStamp,CoreTracks.Attributes,CoreTracks.Title,CoreTracks.TitleSort,CoreTracks.TrackNumber,CoreTracks.TrackCount,CoreTracks.Disc,CoreTracks.DiscCount,CoreTracks.Duration,CoreTracks.Year,CoreTracks.Genre,CoreTracks.Composer,CoreTracks.Conductor,CoreTracks.Grouping,CoreTracks.Copyright,CoreTracks.LicenseUri,CoreTracks.Comment,CoreTracks.BPM,CoreTracks.BitRate,CoreTracks.SampleRate,CoreTracks.BitsPerSample,CoreTracks.Score,CoreTracks.PlayCount,CoreTracks.SkipCount,CoreTracks.ExternalID,CoreTracks.LastPlayedStamp,CoreTracks.LastSkippedStamp,CoreTracks.DateAddedSta
mp,CoreTracks.DateUpdatedStamp,CoreTracks.Uri,CoreArtists.Name,CoreArtists.NameSort,CoreAlbums.Title,CoreAlbums.TitleSort,CoreAlbums.ArtistName,CoreAlbums.ArtistNameSort,CoreAlbums.IsCompilation FROM CoreTracks,CoreArtists,CoreAlbums WHERE CoreArtists.ArtistID = CoreTracks.ArtistID AND CoreAlbums.AlbumID = CoreTracks.AlbumID AND CoreTracks.Uri = 'file:///home/david/Musik/Akhenaton/Sol%20Invictus/08.%20Quand%20%C3%A7a%20se%20disperse.flac' LIMIT 1

Perhaps something could be done to optimize this behavior?

David


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]