On Sun, May 07, 2000 at 01:08:01PM +0100, Ian Clarke wrote:
>
> > The basic issue is how to update content. A versioning system would not
> > allow any document to be modified or deleted to be replaced by a newer
> > version. The old version would hang around the system until it was
> > eventually dropped from the datastore, or not if it was popular enough.
> > Two capabilities need to be provided. The ability to retrieve the
> > latest version of the document automatically and the ability to access a
> > specific version.
> >
> > To retrieve a later version of a document, you should be able to make
> > another request using the same search key. If Freenet encounters two
> > versions of the same document using the same key, it should return the
> > newer one. This implies that the version information is seperate from
> > the plaintext the search key is hashed from. One option is to make a
> > 'Version' header field.
>
> Ok, the problem here is that if you have numerous documents all with the
> same key then you can't use Freenet's routing mechanism to find all
> version, in fact, you can never be sure you have found the latest
> version. Further, how can you specify what version you are looking
> for? The node which attempts to answer your request probably won't have
> all of the versions to start with.
>
> The way I would approach this gives the same functionality, but doesn't
> require such an upheaval in the way things operate. Each new version of
> a document would be stored under a key like "documentname/0.2", and then
> the key "documentname" would redirect to the latest version (this
> obviously required that we have implemented data modification and
> redirection - both of which are on the radar).
>
> Ian.
This would require either searching that looks beyong the nearest node or
messages which would be broadcast whenever a new version of a document was
created. Even redirection to the latest version would require this.
I propose the creation of a new message type:
Broadcast.NodeUpdate
with the attributes:
UniqueID= ID unique to this message (does not change when message is passed on)
DataKey= data key (if this isn't the name of the same attribute for the
other messages, this should be changed)
DataVersion= version of the updated document
When a document is updated, the node which received the message to update
the document should send this message to all the other nodes that it knows
of. When a node receives this message (if it hasn't received it before,
which can be determined by the UniqueID), it passes it onto all the other
nodes that it knows of, except for the node that it received this message
from.
> _______________________________________________
> Freenet-dev mailing list
> Freenet-dev at lists.sourceforge.net
> http://lists.sourceforge.net/mailman/listinfo/freenet-dev
--
Travis Bemann
Sendmail is still misconfigured on my box.
My email address is really bemann at execpc.com
_______________________________________________
Freenet-dev mailing list
Freenet-dev at lists.sourceforge.net
http://lists.sourceforge.net/mailman/listinfo/freenet-dev