Alo Sarv
lead developer

Donate via
MoneyBookers

Latest Builds

version 0.3
tar.gz tar.bz2
Boost 1.33.1 Headers
MLDonkey Downloads Import Module Development
Payment completed
Development in progress.
Developer's Diary
irc.hydranode.com/#hydranode

Saturday, April 02, 2005

Moved CVS to subversion, SourceExchange upgrades

First and foremost, we finally changed to local subversion repository on our dedicated server - no more problems with berlios downtimes. While originally we intended to use CVS, in the end we realized subversion is much better choice, and I don't regret this choice. Subversion truly IS nice.

To access the repository, you need subversion client (available from http://subversion.tigris.org/), and the following command gives the latest version:
svn co svn://hydranode.com/hydranode/hydranode
Yes, I know it sounds a bit stupid with that many "hydranodes" in the command, but sadly, it's neccesery. Web-based view of the repository is available from http://svn.hydranode.com. Change notifications mailing-list has already been set up, but is lacking a web-frontend, so it's not possible to subscribe to it yet.

Special thanks to our server-admin for the long hours of work on setting all this up :)

On the code side, the new SourceExchange code was merged to svn, and seems mostly operational. The gain is noticable - now nearly 80% of sources are received via source-exchange - before this, the ratios were roughly 60% passive, <5% UDP server and 35% local server.

Memory usage should'v gotten a nice boost too - namely, we were registering event handlers to PartData from each source, which generated a ton of overhead from event tables. Now, we have a thin wrapper API called DownloadList in ed2k module, which takes care of handling PartData events (and registers only one event handler). Moreover, DownloadList (or to be precice, Download object) is tighly coupled with Client object, to keep them in sync at all times, leading to increased stability - keeping PartData and Client relationship stable was a constant headache, but now both of these dynamic objects are tied together via the DownloadList wrapper API, which acts as a kind of "stabilizator". Granted, there may still be bugs in the new code, but it's structure is fundamentally more stable, so ...

Madcat, ZzZz

PS: There still seems some bugs left in the SVN setup, if you experience database errors, retry in couple hours (it seems to have crashed again during this blog post writing).



Comments:
Congrats for the subversion move. Is there some type of nightly tarballs (that are auto-generated)? :-)
 
Post a Comment



<< Home

This page is powered by Blogger. Isn't yours?