Hey Steven,

Welcome and thanks for the patch!

Some comments:

1) Flushing after every folder is scanned sounds like it could have a
significant impact on scanning performance. Using your friend's large
collection have you noticed any reduction in scanning speed?

In the future we're looking at refactoring everything so that all library
operations happen in one thread and all other threads communicate with that
thread via message passing. This would allow the scanner to periodically
push new tracks to be inserted into the database to the database thread. It
also solves the locking problem by forcing all parts of Mixxx to interact
with the database asynchronously and have a strategy for waiting for
responses to their requests.

Hopefully we can work on this change for Mixxx 1.12.

2) RE: returning in BSTM if the table query fails I think this looks like a
nice workaround to that bug. It results in bad behavior because the table
will still contain the old contents while the sidebar reflects the new view
but it's much better than the alternative (assertion failures).

We're in the process of releasing 1.11.0 right now and I will be holding a
1.12.0 planning meeting soon. You should join us! Announcements will go out
to mixxx-devel for the date/time.

thanks,
RJ


On Wed, Apr 10, 2013 at 1:45 AM, Daniel Schürmann <[email protected]>wrote:

> Hi Steven,
>
> welcome to to the Mixxx community!
>
> It is nice to here that you had an successful gig using Mixxx.
>
> And thank you very much for your patch. I am impressed that you are so
> familiar with the Mixxx code without any help!
> I had not the chance to test it, but from the code it looks very good and
> suitable to fix the bug.
>
> Please attach the patch to bug #1090888 and assign the bug to yourselves
> or mark it as duplicate and use  bug #870128 instead.
>
> Kind regards,
>
> Daniel
>
>
>
>
>
>
>
>
>
>
>  2013/4/10 Steven Boswell II <[email protected]>
>
>>  Hello all!  I got a panicked call from a DJ/KJ friend of mine this
>> weekend.  He knew I was handy with computers & needed help DJing a gig he
>> had that evening.  I quickly found mixxx (in the rpmfusion repo for Fedora
>> Core 17), put it through its paces, called him back to tell him I thought I
>> could fake it, spent a few more hours load-testing mixxx and beating it to
>> death...then went to the gig.  We pulled it off!  So, just like that, I'm a
>> DJ. :-)
>>
>> Enclosed are some patches I've come up with so far.  I doubt they're
>> ready to check in; I'm posting them mostly for feedback, and so you can
>> point out any problems with them.  I'm building with the 1.11 branch.
>>
>> The patch to src/library/basesqltablemodel.cpp is meant to fix bug
>> #1090888, i.e. https://bugs.launchpad.net/mixxx/+bug/1090888 .  The
>> problem is that, if the database is locked, the code continues with an
>> invalid SQL-query result.  My solution is to move the query to the top of
>> the method, and return if the query fails.
>>
>> The rest of the patch makes it possible for library-rescan to run in
>> parallel with the rest of the GUI.  Before, the database would stay locked
>> during rescan, although nothing prevented the user from trying to use the
>> rest of the GUI, which would lead to the GUI hanging and/or crashing
>> relatively often.  My solution is to commit at the end of scanning each
>> individual directory, so that other database clients get a chance to do
>> their work.  I also added a pause button to the library-rescan window.
>>
>> I intend to spend part of this evening load-testing my changes.
>>
>> My DJ friend has several hundred GB of music; I tried to scan it right
>> before the gig, but didn't finish.  When I had time, I let it run, and it
>> took about 4 hours.  Being able to scan it incrementally, and allowing
>> Mixxx to be usable meanwhile, would have been a big help; these changes
>> allow that.
>>
>> I have more to say, but I figure I'll stop here for now...no need to talk
>> your ear off in my first e-mail :-)
>>
>> Steven Boswell
>>
>>
>>
>> ------------------------------------------------------------------------------
>> Precog is a next-generation analytics platform capable of advanced
>> analytics on semi-structured data. The platform includes APIs for building
>> apps and a phenomenal toolset for data science. Developers can use
>> our toolset for easy data analysis & visualization. Get a free account!
>> http://www2.precog.com/precogplatform/slashdotnewsletter
>> _______________________________________________
>> Get Mixxx, the #1 Free MP3 DJ Mixing software Today
>> http://mixxx.org
>>
>>
>> Mixxx-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/mixxx-devel
>>
>
>
>
> ------------------------------------------------------------------------------
> Precog is a next-generation analytics platform capable of advanced
> analytics on semi-structured data. The platform includes APIs for building
> apps and a phenomenal toolset for data science. Developers can use
> our toolset for easy data analysis & visualization. Get a free account!
> http://www2.precog.com/precogplatform/slashdotnewsletter
> _______________________________________________
> Get Mixxx, the #1 Free MP3 DJ Mixing software Today
> http://mixxx.org
>
>
> Mixxx-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/mixxx-devel
>
------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
_______________________________________________
Get Mixxx, the #1 Free MP3 DJ Mixing software Today
http://mixxx.org


Mixxx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to