|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||
java.lang.Objectow.routing.impl.AbstractRoutingAlgorithm
ow.routing.linearwalker.LinearWalker
ow.routing.chord.AbstractChord
uk.ac.ic.doc.automed.p2p.routing.Cresendo
public class Cresendo
| Nested Class Summary | |
|---|---|
protected class |
Cresendo.DomainStabilizer
|
private class |
Cresendo.FingerTableFixer
|
(package private) class |
Cresendo.ReqConnectMessageHandler
|
class |
Cresendo.ReqFindSuccessorMessageHandler
|
protected class |
Cresendo.Stabilizer
|
| Field Summary | |
|---|---|
private CresendoConfiguration |
config
|
private ow.messaging.MessagingAddress[] |
domainLevelNeighbours
|
private java.lang.Thread |
fingerTableFixerThread
|
private java.util.List |
fingerTableList
|
private ow.id.IDAddressPair |
initialContact
|
private int |
numberOfHigherDomainLevels
|
private DHTRoutingState |
routingState
|
| Fields inherited from class ow.routing.chord.AbstractChord |
|---|
fingerTable |
| Fields inherited from class ow.routing.linearwalker.LinearWalker |
|---|
algorithm, idSizeInBit, predecessor, sizeOfIdSpace, stabilizerThread, stopped, successorList, suspended, towardSelfComparator |
| Fields inherited from class ow.routing.impl.AbstractRoutingAlgorithm |
|---|
logger, runtime, runtimeConfig, selfIDAddress, sender |
| Constructor Summary | |
|---|---|
protected |
Cresendo(ow.routing.RoutingAlgorithmConfiguration config,
ow.routing.RoutingService routingSvc)
|
| Method Summary | |
|---|---|
private ow.id.IDAddressPair |
findSuccessor(ow.id.ID targetID)
Use the current finger table to find the successor of a given target ID |
private ow.id.IDAddressPair[] |
findSuccessorByProxy(ow.messaging.MessagingAddress proxyNode,
ow.id.ID targetID,
java.lang.String[] levels)
Ask a node to find the successor of an ID for a specified domain level |
private ow.routing.chord.FingerTable |
getFingerTable(int level)
Check if there are finger entries for a specified domain level |
java.lang.String |
getRoutingTableHTMLString()
|
java.lang.String |
getRoutingTableHTMLString(ow.routing.chord.FingerTable ft)
|
java.lang.String |
getRoutingTableString()
|
java.lang.String |
getRoutingTableString(ow.routing.chord.FingerTable ft)
|
private void |
initDomainFingerTable(ow.messaging.MessagingAddress domainSuccessor,
ow.routing.chord.FingerTable ft)
Populate a domain finger table with entries, Not all looked up entries are added (Section 2.1 of the paper) |
void |
join(ow.id.IDAddressPair[] neighbors)
this is invoked when a node joins an existing node in its lowest-level domain |
void |
joinDomain(ow.messaging.MessagingAddress[] domainLevelNeighbours)
This method is invoked to join with peers in other domains (if any). |
void |
prepareHandlers()
|
void |
resume()
|
protected void |
startDomainStabilizer()
Stabilizer for updating the domain hierarchy |
private void |
startFingerTableFixer()
|
protected void |
startStabilizer()
|
void |
stop()
|
private void |
stopFingerTableFixer()
|
void |
suspend()
|
protected void |
updateDomainHierarchy(ow.messaging.MessagingAddress proxyNode)
update the domain hierarchy via a chosen proxy node by sending a query with the current node's ID via this proxy (Section 2.3 of the paper) |
private void |
updatePredecessor(ow.id.IDAddressPair targetNode)
Tells the target node that I am his predecessor also use the target node's predessor as my predecessor (Section 2.3 of the paper) |
| Methods inherited from class ow.routing.chord.AbstractChord |
|---|
closestTo, forget, reset, touch |
| Methods inherited from class ow.routing.linearwalker.LinearWalker |
|---|
adjustRoot, connectToSuccessor, connectToSuccessorList, distance, join, prepareHandlers, rootCandidates, toReplace, updatePredecessor |
| Methods inherited from class ow.routing.impl.AbstractRoutingAlgorithm |
|---|
fail, initialRoutingContext |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
private CresendoConfiguration config
private DHTRoutingState routingState
private java.util.List fingerTableList
private ow.id.IDAddressPair initialContact
private int numberOfHigherDomainLevels
private ow.messaging.MessagingAddress[] domainLevelNeighbours
private java.lang.Thread fingerTableFixerThread
| Constructor Detail |
|---|
protected Cresendo(ow.routing.RoutingAlgorithmConfiguration config,
ow.routing.RoutingService routingSvc)
throws java.security.InvalidAlgorithmParameterException
java.security.InvalidAlgorithmParameterException| Method Detail |
|---|
public void join(ow.id.IDAddressPair[] neighbors)
join in interface ow.routing.RoutingAlgorithmjoin in class ow.routing.linearwalker.LinearWalkerpublic void joinDomain(ow.messaging.MessagingAddress[] domainLevelNeighbours)
joinDomain in interface ow.routing.RoutingAlgorithmjoinDomain in class ow.routing.impl.AbstractRoutingAlgorithmdomainLevelNeighbours - protected void startDomainStabilizer()
protected void updateDomainHierarchy(ow.messaging.MessagingAddress proxyNode)
throws DomainUpdateException
DomainUpdateException
private void initDomainFingerTable(ow.messaging.MessagingAddress domainSuccessor,
ow.routing.chord.FingerTable ft)
throws FindSuccessorException
domainSuccessor - ft -
FindSuccessorException
private void updatePredecessor(ow.id.IDAddressPair targetNode)
throws java.io.IOException
targetNode -
java.io.IOExceptionprivate void startFingerTableFixer()
private void stopFingerTableFixer()
public void stop()
stop in interface ow.routing.RoutingAlgorithmstop in class ow.routing.linearwalker.LinearWalkerpublic void suspend()
suspend in interface ow.routing.RoutingAlgorithmsuspend in class ow.routing.linearwalker.LinearWalkerpublic void resume()
resume in interface ow.routing.RoutingAlgorithmresume in class ow.routing.linearwalker.LinearWalkerprotected void startStabilizer()
startStabilizer in class ow.routing.linearwalker.LinearWalkerpublic void prepareHandlers()
prepareHandlers in class ow.routing.linearwalker.LinearWalkerprivate ow.routing.chord.FingerTable getFingerTable(int level)
level -
private ow.id.IDAddressPair[] findSuccessorByProxy(ow.messaging.MessagingAddress proxyNode,
ow.id.ID targetID,
java.lang.String[] levels)
throws FindSuccessorException
proxyNode - targetID - level -
FindSuccessorException
private ow.id.IDAddressPair findSuccessor(ow.id.ID targetID)
throws FindSuccessorException
targetID -
FindSuccessorExceptionpublic java.lang.String getRoutingTableString()
getRoutingTableString in interface ow.routing.RoutingAlgorithmgetRoutingTableString in class ow.routing.chord.AbstractChordpublic java.lang.String getRoutingTableString(ow.routing.chord.FingerTable ft)
public java.lang.String getRoutingTableHTMLString()
getRoutingTableHTMLString in interface ow.routing.RoutingAlgorithmgetRoutingTableHTMLString in class ow.routing.chord.AbstractChordpublic java.lang.String getRoutingTableHTMLString(ow.routing.chord.FingerTable ft)
|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||