Skip to content
Find file
Fetching contributors…
Cannot retrieve contributors at this time
78 lines (60 sloc) 3.34 KB
Version 0.9:
This is yet another Tech. Preview release. The torrent client works
to the point where it can be used to download things, but it have
not seen much testing yet and there are numerous places it can be
improved still. Yet, there are so many changes, that it warrants a
new release.
The current regressions revolve around a high CPU usage at times. We
expect to tackle this problem next with some profiling. We also
expect to tackle fast resume support as the main "new thing". And
some 10 things in the issue tracker and the TODO lists for the
next release. I don't expect it to follow as fast as this one.
One development methodology change worth mentioning: the git
repository now uses several branches laid out as described in
doc/git.txt. Tracking the 'master' branch ought to provide you with
a system that is stable at all times, while tracking the 'next'
branch gives you the 'cooking pot' of new things that ought to be
tested. We'll try to keep 'next' stable, though it may have problems
at times.
Changes:
- There is a set of new commands for viewing what is currently
cooking in the torrent client. etorrent:l/0, etorrent:s/1,
etorrent:h/0. Implemented with help from Tuncer Ayaz.
- Changed build infrastructure. No more autoconf. It simplifies the
build structure considerably. Introduce the use of EMakefile for
building the erlang parts of the system. Reinstate all make targets
and add a 'tags' target for building a TAGS file.
- etorrent now correctly handles the 'min_interval' tracker response
parameter. It is not strictly part of the spec, but everybody uses
it.
- Add support for installing etorrent. A shell-script, etorrentctl,
is provided to control the etorrent daemon. The installer, while
overly simple, has not seen much testing as of yet and may not
work. It will be tested before v1.0.
- etorrent no longer pre-fills files it want to download with
junk. It uses the semantics of fseek() to make a file of the right
size initially.
- several ETS restructurings has brought the memory use
down. Before, etorrent would take some 660 megabytes of memory
running 20 torrents. Now it is more like 50-80 megabytes for 20
torrents. More can be shaved but this is a good start. Also, memory
usage still occasionally spikes because we are doing nothing in certain
situations to limit it.
- New choking/unchoking algorithm, based on a combination of
BitTornado/BitTorrent/Transmission. This is not the smartest one can
do, but it follows the spec more or less precisely.
- Event Publisher. A gen_event OTP behaviour one can subscribe to and
get information about the system. A logfile subscriber is there by
default.
- Rate calculation optimizations. etorrent now uses a running
average over a period of up to 20 seconds to measure the rate of a
peer. This yields a more fair measurement of individual peers so we
claim the best peers. While here, change the sockets to be passive
for now. It bumps the CPU-usage, but makes the rate calculation more
precise. There are several optimizations possible revolving around
passive/active sockets.
- Robustize the supervisor tree. etorrent is now less likely to die
due to a crash somewhere in the tree. It is not entirely safe yet,
but it will be during the next releases.
Version 0.8:
First Technology Preview.
Something went wrong with that request. Please try again.