Scott Young wrote:

Actually, I just got another idea on how to handle them with a new key type.
Let's call it a Time Redirection Key (TRK).  The key is designed so that it
will always route to the same part of the keyspace for a specific updatable
file.  When someone initially uploads a document, they point to this routing
keyspace, and a request goes in that direction.   This keytype has an
unencrypted meta-value that is basically an estimate for the next update
time.  If a request reaches a node with a key that has a
next-update-estimate time less than the current time, it continues on until
the search finds a node with a next-update-estimate that is greater than the
current time.  If the request fails, it returns with the most recent value
for the key found in the request chain.
You should send the "current time" with the request for two reasons:
 1) The clocks of the nodes are not synchronized.
 2) Older versions can be kept available that way.

A node should not replace the old content with the new one, but keep old versions
until they fall off. The unencrypted metadata of each version specifies an interval
in time for that the data is valid. (If the interval of two versions overlap during
an insert, this is treated as a key collision.)

One should also specify the interval for the request. The search stops, if a version
with an overlapping interval is found. Otherwise the youngest version before the
interval in the request is returned after a full search.

This allows the requestor to say:
 1) I want an the version that was valid two days ago.
 2) I'm happy with a one day old version, but if you find a newer version, give me that!
    This will usually not take a full search for daily updated keys.
 3) I really what to be sure, that I get the newest version. Do a full search!

This would make a request as long as a DNF only occur if the current time is
after estimate update time and the publisher hasn't updated the content.  If
a publisher has new content by then, the nodes get the most recent version
with the same time cost as a DBR.  If it isn't updated, well then it takes
longer, but you'd still get the last published version.

any thoughts?

-Scott Young
-Thomas Leske


_______________________________________________
devl mailing list
[EMAIL PROTECTED]
http://hawk.freenetproject.org/cgi-bin/mailman/listinfo/devl

Reply via email to