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

Reply via email to