|
||||||||
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.RoutingAlgorithm
join
in class ow.routing.linearwalker.LinearWalker
public void joinDomain(ow.messaging.MessagingAddress[] domainLevelNeighbours)
joinDomain
in interface ow.routing.RoutingAlgorithm
joinDomain
in class ow.routing.impl.AbstractRoutingAlgorithm
domainLevelNeighbours
- 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.IOException
private void startFingerTableFixer()
private void stopFingerTableFixer()
public void stop()
stop
in interface ow.routing.RoutingAlgorithm
stop
in class ow.routing.linearwalker.LinearWalker
public void suspend()
suspend
in interface ow.routing.RoutingAlgorithm
suspend
in class ow.routing.linearwalker.LinearWalker
public void resume()
resume
in interface ow.routing.RoutingAlgorithm
resume
in class ow.routing.linearwalker.LinearWalker
protected void startStabilizer()
startStabilizer
in class ow.routing.linearwalker.LinearWalker
public void prepareHandlers()
prepareHandlers
in class ow.routing.linearwalker.LinearWalker
private 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
-
FindSuccessorException
public java.lang.String getRoutingTableString()
getRoutingTableString
in interface ow.routing.RoutingAlgorithm
getRoutingTableString
in class ow.routing.chord.AbstractChord
public java.lang.String getRoutingTableString(ow.routing.chord.FingerTable ft)
public java.lang.String getRoutingTableHTMLString()
getRoutingTableHTMLString
in interface ow.routing.RoutingAlgorithm
getRoutingTableHTMLString
in class ow.routing.chord.AbstractChord
public 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 |