You are Currently: Not Signed In
Virtual Recording Studio
Removing the limitations to music collaboration
Skip to: Site menu | Main content
TheNetStudio.com
Internet Music CollaborationThink.Code.Repeat.
The Architect's Blog
October 1st, 2009
Think: Performance, Uploads, and Real-Time
About the begining of September, we started to experience some performance issues with TheNetStudio.com. Everything looked OK: The Database was fine, bandwidth was adequate, and a review of the code showed that we could make some minor performance improvements, but nothing major.
The problems seemed to be related to the fact that more of our members were uploading large files. But there was no real way with the existing VRS upload engine to see where the bottleneck might be. I decided to re-code the upload engine so that it could provide real-time status to the members as they upload their files. Then I could ask members experiencing slow uploads, where and when they saw the issue.
Code
Recoding the upload engine was fairly simple, but creating the browser code (JavaScript) to provide real time status back to the member as they uploaded files was going to be a more complex problem.
Since I was already using Scriptaculous, Prototype, and Modalbox Javascript libraries, I decide that using those FANTASTIC, open source libraries would be a good way to provide the browser side of the upload status. A little xmlHttpRequest Javascript, a sprinkling of JSON, and viola - Real Time Upload status. It was actually a lot easier to initially create than I thought it would be. Well - Only because I did the development using Firefox as my browser - Which I have found to be the best browser by far for reliability, development tools, capabilities, and support for standards. But that is another post for another time.
When I finally got everything working, and I was ready to figure out why we experienced our initial performance problems... They went away. The problems never re-occurred, so I never did isolate exactly what was happening. But I think the real-time upload status is pretty cool, and worth keeping.
So now, when you use either Internet Explorer or Firefox to upload Tracks and Mixes to your Project, you will get an upload status box that will let you know how your upload is progressing.
Repeat
As I started testing the new capability using browsers other than Firefox and IE, I found that they did not work as well with the method I am using, and so I am re-thinking the way I provide real-time status and feedback. It's kind of a shame because it involves re-architecting a major part of the upload engine architecture. But since I would like to support the WebKit based browsers like Chrome and Safari, off I go to rethink VRS uploads.
In fact, it might be time to review the whole VRS system, and redesign some parts of it to move VRS toward the next coming web paradigm, which will be real-time, interactive collaboration. VRS is already an amazing Internet Music Collaboration system, but I wonder if it might not be even better as a real-time collaboration system.
What do you think?
[ Back to top ]