All,

Preface: I am new to this list, and tried to do a little
homework before sending this out, but if someone has already
proposed this idea I apologize in advance. Also, I am by
no means a freenet routing expert, so if the following idea
is flawed in some way, I also apologize in advance. That
said, I'd like to hear comments on the following idea:


Migrating Infrequently Accessed Data

So, from what I've read, a freenet node will old dump data
when its cache becomes full, and then will dump the old
reference to the data when its table becomes full.

What if instead of just dumping the data, the node first
tried to give it to another node to hold? Here is how I
imagine it working:

Node A & B each have cache sizes of 100M, and a new variable
"highWaterMark" (a cache high water mark, duh.. ) set to 80M.

When node A inserts new data into its cache, it checks the
current size of its cache against the water mark. Lets say a
new entry puts it over 80M. It then attempts to contact peers
in the network, and politely ask them if they have room. The
node it chooses in the end can be made intelligent, but for
now lets pretend Node A has only one peer, Node B.

B has only 30M in its cache, so it responds with "Sure, I have
room", and the data is stuck at the END of B's cache, and
erased from A's. It's at the END of the cache queue because
no one has requested it in a long time, and we still want it
to go away eventually.

Now lets say instead that B had no room, and neither did anyone
else nearby. Then A would just drop the data, and it would
disappear like it does in the current system.

The end result is that freenet as a whole tries to get the most
out of the resources available, which allows infrequently used
data to last until there is no space ANYWHERE on the network.

Just a thought,

Howard

_______________________________________________
freenet-tech mailing list
[EMAIL PROTECTED]
http://lists.freenetproject.org/mailman/listinfo/tech

Reply via email to