Here's my idea for keyword searches. I volunteer to implement it.
Each node keeps an index of the ksk's it has in it's data store. When it receives a
Request.Search
message with a keyword, it searches the local store for matching ksk's and sends back
a Reply.Search
message. It then forwards the search request to the next node on it's list of peers.
When a
Reply.Search message comes back, it removes the ksk's it already sent and forwards the
message. If it
has no peers it sends a Reply.Search message containing DONE. Once all it's peers have
replied DONE
or CONTINUE it replies with DONE to the requesting node. As each Reply.Search message
arrives at the
originating node the results get displayed real time. When the user wishes he/she can
stop the search
by sending a Request.Search containing ABORT. If an ABORT request is received it is
forwarded to all
peer nodes that were sent the search request and have not yet replied and no more
peers are sent the
request.
Each search would be faster and less taxing on the system than a mistyped data request
or an insert.
Clients could even use drastically reduced hops to live on search request messages to
further reduce
system load. This type of message is no worse than any other as far as cancer nodes
sending out bad
requests to load down the system. To further improve efficiency, searches could have
their results
cached in the datastore for a set time like 24 hours.
l8r
Aaron
_______________________________________________
Freenet-dev mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/mailman/listinfo/freenet-dev