Main Page | Class Hierarchy | Data Structures | File List | Data Fields | Globals | Related Pages

Moonlight's Sparse File Support (MSFS)

What is a sparse file?

A sparse file is a file who's internally unused internal ranges are not allocated to any actual disk space. These ranges will read as NULL (0) when applications read them and will be allocated only when written to. Since eMule partfiles are mostly unused space initially, substantial amounts of free space can be temporarily reclaimed for other uses.

The sparse support is built into Moonlight's Mod (Upcoming build: 0.42g-0.22g, ????).

Bug:
I tried various things to make Sparse possible concurrently with buffer flushes and discovered that this was more annoying to do than I had expected so until I work this out, I am making Sparse available only on paused/stopped files.

Todo:
Complete documentation.
Warning:
Since using sparse and compressed files will trick eMule into downloading more data than it thinks it can, sparse and compressed files support should be used along with the "Pause when disk free space is below XXMB" feature. This should ideally be set to many MBs, something like 4MB + 256KB per active (non-paused/stopped) partfile or more. I personally recommend at least 16MB, preferably 64MB.

New sparse/compressed implementation ready for testing.

Implemented in this new version:

Changed files

New files:

How to integrate the original micro-mod?

The old quick-hack implementation required only three changes in PartFile.cpp:

Hits since December 5, 2003:
Count.cgi?display=counter|df=vllmtqtwVL2.dat

Generated on Thu Jul 1 20:28:04 2004 for Moonlight's eMule Hacks by doxygen 1.3.6