|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.util.Observable
rice.pastry.routing.RoutingTable
The Pastry routing table.
The size of this table is determined by two constants:
nodeIdBitLength
which determines the number of bits in a node id (which we call n ).
idBaseBitLength
which is the base that table is stored in (which we call b ).
We write out node ids as numbers in base 2 b . They will have length D = ceiling(log 2 b 2 n ) . The table is stored from 0...(D-1) by 0...(2 b - 1). The table stores a set of node handles at each entry. At address [index][digit] , we store the set of handles were the most significant (numerically) difference from the node id that the table routes for at the index th digit and the differing digit is digit . An index of 0 is the least significant digit.
Field Summary | |
static int |
idBaseBitLength
The routing calculations will occur in base 2 idBaseBitLength |
NodeHandle |
myNodeHandle
|
Constructor Summary | |
RoutingTable(NodeHandle me,
int max)
Constructor. |
Method Summary | |
NodeSet |
alternateRoutes(Id key,
int max)
Determines a set of alternate hops towards a given key. |
static int |
baseBitLength()
return the bit length of the base |
NodeHandle |
bestAlternateRoute(Id key)
Determines an alternate hop numerically closer to the key than the one we are at. |
NodeHandle |
get(NodeId nid)
Gets the node handle associated with a given id. |
RouteSet |
getBestEntry(Id key)
Gets the set of handles that match at least one more digit of the key than the local nodeId. |
RouteSet |
getRouteSet(int index,
int digit)
Gets the set of handles at a particular entry in the table. |
RouteSet[] |
getRow(int i)
Get a row from the routing table. |
int |
numColumns()
return ths number of columns in the routing table |
int |
numRows()
return the number of rows in the routing table |
void |
put(NodeHandle handle)
Puts a handle into the routing table. |
NodeHandle |
remove(NodeId nid)
Removes a node id from the table. |
java.lang.String |
toString()
produces a String representation of the routing table, showing the number of node handles in each entry |
void |
update(java.util.Observable o,
java.lang.Object arg)
Is called by the Observer pattern whenever a RouteSet in this table has changed. |
Methods inherited from class java.util.Observable |
addObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChanged |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
public static int idBaseBitLength
public NodeHandle myNodeHandle
Constructor Detail |
public RoutingTable(NodeHandle me, int max)
me
- the node id for this routing table.max
- the maximum number of entries at each table slot.Method Detail |
public int numColumns()
public int numRows()
public static int baseBitLength()
public NodeHandle bestAlternateRoute(Id key)
key
- the key
public NodeSet alternateRoutes(Id key, int max)
key
- the keymax
- the maximal number of alternate hops requested
public RouteSet getRouteSet(int index, int digit)
index
- the index of the digit in base 2 idBaseBitLength . 0 is the least significant.digit
- ranges from 0... 2 idBaseBitLength - 1 . Selects which digit to use.
public RouteSet getBestEntry(Id key)
key
- the key
public void put(NodeHandle handle)
handle
- the handle to put.public NodeHandle get(NodeId nid)
nid
- a node id
public RouteSet[] getRow(int i)
i
- which row
public NodeHandle remove(NodeId nid)
nid
- the node id to remove.
public void update(java.util.Observable o, java.lang.Object arg)
update
in interface java.util.Observer
o
- the RouteSetarg
- the eventpublic java.lang.String toString()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |