Official eMule-Board: Possible Way To Reduce Overhead And Speed Up Search Operations - Official eMule-Board

Jump to content


Page 1 of 1

Possible Way To Reduce Overhead And Speed Up Search Operations

#1 User is offline   netfinity 

  • Master of WARP
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 1658
  • Joined: 23-April 04

Posted 04 February 2008 - 10:14 PM

When a search operation is performed by Kademlia it will request nodes closest to the target from those nodes currently known to be closest and then in turn ask the nodes that was returned. Once no more nodes that are closer can be found it will start sending SEARCH or STORE queries to the nodes that was responding. However far from always will a node that is being searched have anything stored related to the search query, so sending the search query would then just be a waste of bandwidth.

To help avoiding sending queries to nodes not being able to deal with them a solution would be to add a few flags to the Kademlia response messages (eg. KADEMLIA2_RES) that allows the nodes to tell weather they have anything stored for the given key or if they are full already during the initial node search phase. Thus saving us the need to try them.

The additional byte returned could have the following format containing the status for the key given.
| bHaveSources | bHaveKeys | bHaveNotes | 0 | bSourceIndexFull | bKeyIndexFull | bNoteIndexFull | 0 |

And the way to trigger the extra response byte could be to add 0x20 to byType in the KADEMLIA2_REQ request message.

OK it would cost a little bit extra CPU, but that isn't usually the big issue for Kademlia.

/netfinity
eMule v0.50a [NetF WARP v0.3a]
- Compiled for 32 and 64 bit Windows versions
- Optimized for fast (100Mbit/s) Internet connections
- Faster file completion via Dynamic Block Requests and dropping of stalling sources
- Faster searching via KAD with equal or reduced overhead
- Less GUI lockups through multi-threaded disk IO operations
- VIP "Payback" queue
- Fakealyzer (helps you chosing the right files)
- Quality Of Service to keep eMule from disturbing VoIP and other important applications (Vista/7/8 only!)
0

#2 User is offline   netfinity 

  • Master of WARP
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 1658
  • Joined: 23-April 04

Posted 15 June 2008 - 09:13 PM

Bumping this thread as I think it could save quite much bandwidth as publishing popular keywords (eg. mp3) would be expected to fail quite often due to index tables being full.
eMule v0.50a [NetF WARP v0.3a]
- Compiled for 32 and 64 bit Windows versions
- Optimized for fast (100Mbit/s) Internet connections
- Faster file completion via Dynamic Block Requests and dropping of stalling sources
- Faster searching via KAD with equal or reduced overhead
- Less GUI lockups through multi-threaded disk IO operations
- VIP "Payback" queue
- Fakealyzer (helps you chosing the right files)
- Quality Of Service to keep eMule from disturbing VoIP and other important applications (Vista/7/8 only!)
0

  • Member Options

Page 1 of 1

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users