Improvements… today and in the future.

The Future…

At the board meeting today, we decided on a February 26th launch date for Pedlr.

I can’t get much more into what Pedlr is (yet), but as it relates to LyricWiki, it is a site which will contain LyricWiki and add on a TON of other features (which won’t interfere with the LyricWiki part). The best part is that since it will have a decent business-model, it will be able to pull the server-expense of LyricWiki which takes a lot of bandwidth/space/cpu-power to handle its traffic.

Today…

Earlier I mentioned that I would be making some improvements to the SOAP webservice. I thought I should take a minute to recap what was done today (developers may be interested?).

  1. Speed – Ignored the common format (artsist=””, song=”Track ##”) automatically before checking the database.
  2. Accuracy – Added an additional test so that songs with trailing parentheses get checked for versions without the parentheses. For example, if you did a getSong for (“Disturbed”, “Want (Remix)”), since there is no remix, the webservice would figure out that you actually wanted Want by Disturbed.
  3. Accuracy – Re-enabled the artist-redirect trick (which was too slow the old way). For example if you did getSong(“Prodigy”, “Action Radar”), the ws detects that there is no page by that name, however “Prodigy” redirects to “The Prodigy” and there IS a page for getSong(“The Prodigy”, “Action Radar”).
  4. Speed -Replaced the MediaWiki code to check if an article exists. That code was written for a different purpose (using an article Title several times on a single page), so it does a whole bunch of extra initialization that wasn’t needed. I just wrote a simple query to replace it and added caching of that single-byte result so that checks for the same title (during the same page load) have no additional database-query overhead.
  5. Speed – In the list of most common failed SOAP requests, I added 2-hour caching of the results so that users can go to the page as frequently as needed without running that fairly expensive query each time.
  6. Speed – Took out the double-logging of SOAP requests. For statistics, hits to the server are logged. Hits to the SOAP are logged. Now the hits to the SOAP are not added to the main statistics (which was resulting in double the amount of queries).

The only improvement I would have liked to have made, but decided against was the automatic removal of commonly failed requests after the first time they are successfully found. This was a great suggestion by admin Teknomunk, but I couldn’t figure out a way to do it without slowing down the whole system by issuing an extra query every time there was a successful SOAP request (which is currently about 40% of the SOAP requests). This extra query would be unneeded in the vast majority of cases (only helps for the first time a previous-failure is requested successfully). On the flipside, this is fairly needed so that the site can be self-sufficient (right now it requires me to manually remove entries from the table when I see they’ve been fixed… and a site shouldn’t ever be held up waiting for a single person), so I’m still thinking of a way that it could be done efficiently.

Advertisements

3 Responses to Improvements… today and in the future.

  1. remiss says:

    It all seems a lot snappier now! Great work, Sean!

  2. stonecrest says:

    Thank you so much! My getSong requests literally went from 90 seconds down to 1-2 seconds 😀 I appreciate your hard work on this Sean.

  3. […] I was all happy after the upgrades yesterday […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: