パッケージ org.piax.gtrans.ov.szk
クラス ChordSharp<E extends Endpoint>
java.lang.Object
org.piax.gtrans.RPCInvoker<RingIf,E>
org.piax.gtrans.ov.ring.RingManager<E>
org.piax.gtrans.ov.ring.rq.RQManager<E>
org.piax.gtrans.ov.szk.ChordSharp<E>
- 型パラメータ:
E- the type of Endpoint in the underlying network.
- すべての実装されたインタフェース:
RingIf,RQIf<E>,ChordSharpIf,RPCIf
public class ChordSharp<E extends Endpoint> extends RQManager<E> implements ChordSharpIf
multi-key Chord#
-
ネストされたクラスの概要
クラスから継承されたネストされたクラス/インタフェース org.piax.gtrans.ov.ring.RingManager
RingManager.ExecQueryReturn, RingManager.LinkContainer, RingManager.RightNodeMismatch -
フィールドの概要
フィールド 修飾子とタイプ フィールド 説明 static TransportIdDEFAULT_TRANSPORT_IDstatic intFINGER_TABLE_UPDATE_CONCURRENCYクラスから継承されたフィールド org.piax.gtrans.ov.ring.rq.RQManager
execQueryCallback, FIND_INSERT_POINT_TIMEOUT, FIXLEFT, FIXPEERID, NEWALGORITHM, QID_EXPIRATION_TASK_PERIOD, QID_EXPIRE, QUERY_INSERT_POINT_SPECIAL, QUERY_KEY_SPECIAL, RQ_EXPIRATION_GRACE, RQ_FLUSH_PERIOD, RQ_NRECENT, RQ_QUERY_AT_FIND, RQ_RETRANS_PERIODクラスから継承されたフィールド org.piax.gtrans.ov.ring.RingManager
DDLL_CHECK_PERIOD_L0, keyComp, keyHash, manager, msgframe, myLocator, peerId, rand, RPC_TIMEOUT, statman, transIdクラスから継承されたフィールド org.piax.gtrans.RPCInvoker
channelPool, isActive, objId, POOL_CHANNEL, POOL_CHANNEL_SIZE, trans, USE_CHANNEL_FOR_ONEWAY -
コンストラクタの概要
コンストラクタ コンストラクタ 説明 ChordSharp(TransportId transId, ChannelTransport<E> trans, RQExecQueryCallback execQueryCallback) -
メソッドの概要
修飾子とタイプ メソッド 説明 voidaggregateDelegates(List<SubRange> dkrlist, StrictMap<Id,List<SubRange>> map)List<ChordSharpVNode<E>>allValidVNodes()get all inserted RingVNode instancesCollection<ChordSharpVNode<E>>allVNodes()get all RingVNode instancesprotected StrictMap<Id,List<SubRange>>assignDelegates(RQMessage msg, List<SubRange[]> closeRanges)各 range を subRange に分割し,それぞれ担当ノードを割り当てる.protected List<Link>filterFailedNodes(FTEntry ftlist)voidfin()NavigableMap<DdllKey,List<Link>>fragmentPoints(Range<DdllKey> queryRange, List<List<Link>> goodNodes, List<SubRange[]> closeRanges, Set<Endpoint> maybeFailed)queryRangeを分割する.protected LinkgetClosestPredecessor(DdllKey key, List<List<Link>> goodNodes, List<List<Link>> allNodes, Set<Endpoint> maybeFailed)ftlist (非故障ノードリスト) から,指定されたkeyのclosest predecessorを求める.ChordSharpVNode.FTEntrySetgetFingers(DdllKey key, int x, int y, int k, ChordSharpVNode.FTEntrySet given)FTEntry[][]getFingerTable(DdllKey key)intgetHeight(Comparable<?> key)List<FTEntry>getValidFTEntries()get valid finger table entries from all inserted ChordSharpVNode.ChordSharpVNode<E>getVNode(Comparable<?> rawkey)get RingVNode instance (for debugging only)protected ChordSharpVNode<E>newVNode(Comparable<?> rawkey, Object... params)voidrqDisseminate(RQMessage msg, NavigableMap<DdllKey,Link> unused)voidscheduleFingerTableUpdate(int delay, int interval)クラスから継承されたメソッド org.piax.gtrans.ov.ring.rq.RQManager
convertToSubRange, execQuery, findImmedNeighbors, forwardQuery, getStub, getStub, invokeExecQuery, preferDelegateNodeLeftSide, rqDisseminate, rqSplit, rqStartRawRange, scalableRangeQueryPro, setRQAlgorithmクラスから継承されたメソッド org.piax.gtrans.ov.ring.RingManager
ackReceived, addKey, addKey, addKey, checkLocked, find, findLeftLink, fixRoutingTables, getAvailableLinks, getClosestLinks, getLocalLinks, getPeerId, getRequestMessageById, isActive, newCondition, offline, online, removeKey, replyMsgReceived, requestMsgReceived, rtLockR, rtLockW, rtUnlockR, rtUnlockW, schedule, schedule, schedule, schedule, showTable, toString, toStringShortクラスから継承されたメソッド org.piax.gtrans.RPCInvoker
changeRPCTimeout, changeTransport, checkActive, createObjId, getEndpoint, getRPCObject, getSrcPeerId, getStub, getStub, getStub, getStub, getStub, getStub, getStub, getStub, getTransport, invokeInReceive, isOnline, newMethodCall, rcall, rcall, rcall, rcall, rcall, rcall, rcall, rcall, receiveOneway, receiveSync, registerRPCObject, sendInvoke, sendOnewayInvoke, unregisterRPCObjectクラスから継承されたメソッド java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitインタフェースから継承されたメソッド org.piax.gtrans.ov.ring.RingIf
ackReceived, getClosestLinks, getLocalLinks, replyMsgReceived, requestMsgReceived
-
フィールド詳細
-
DEFAULT_TRANSPORT_ID
-
FINGER_TABLE_UPDATE_CONCURRENCY
public static final int FINGER_TABLE_UPDATE_CONCURRENCY- 関連項目:
- 定数フィールド値
-
-
コンストラクタの詳細
-
ChordSharp
public ChordSharp(TransportId transId, ChannelTransport<E> trans, RQExecQueryCallback execQueryCallback) throws IdConflictException, IOException
-
-
メソッドの詳細
-
newVNode
- オーバーライド:
newVNodeクラス内RingManager<E extends Endpoint>- パラメータ:
rawkey- the rawkeyparams- parameters.- 戻り値:
- the RingVNode object.
-
getFingers
public ChordSharpVNode.FTEntrySet getFingers(DdllKey key, int x, int y, int k, ChordSharpVNode.FTEntrySet given) throws NoSuchKeyException- 定義:
getFingersインタフェース内ChordSharpIf- 例外:
NoSuchKeyException
-
getFingerTable
- 定義:
getFingerTableインタフェース内ChordSharpIf- 例外:
NoSuchKeyException
-
getHeight
-
allVNodes
クラスからコピーされた説明:RingManagerget all RingVNode instances- オーバーライド:
allVNodesクラス内RingManager<E extends Endpoint>- 戻り値:
- collection of RingVNode
-
allValidVNodes
クラスからコピーされた説明:RingManagerget all inserted RingVNode instances- オーバーライド:
allValidVNodesクラス内RingManager<E extends Endpoint>- 戻り値:
- collection of RingVNode
-
getVNode
クラスからコピーされた説明:RingManagerget RingVNode instance (for debugging only) -
fin
public void fin()- オーバーライド:
finクラス内RingManager<E extends Endpoint>
-
getValidFTEntries
get valid finger table entries from all inserted ChordSharpVNode. XXX: this is naive implementation.- 戻り値:
- list of finger table entries
-
fragmentPoints
public NavigableMap<DdllKey,List<Link>> fragmentPoints(Range<DdllKey> queryRange, List<List<Link>> goodNodes, List<SubRange[]> closeRanges, Set<Endpoint> maybeFailed)queryRangeを分割する. 分割点は,ftlistから,queryRange(QR)に含まれ,maybeFailed(MF)に含まれない DdllKeyを選ぶ. ただし,QRに含まれるならば,MFに含まれていてもsuccessorは必ず選ぶ.返り値は,(分割点, QRに含まれ,MFに含まれない,分割点と等しいか大きいノードの集合)のmap
[======QR=====] ftlist: ABCD EFGH 上の図の場合,返り値は (C, {C, D}), (E, {E, F}) である.(MFが空のとき)- パラメータ:
queryRange- query rangegoodNodes- list of list of peerscloseRanges- list of [my key, successor)maybeFailed- nodes not recommended for next hop- 戻り値:
- (分割点のDdllKey, 分割点に対応するLinkのList)のNavigableMap
-
filterFailedNodes
-
getClosestPredecessor
protected Link getClosestPredecessor(DdllKey key, List<List<Link>> goodNodes, List<List<Link>> allNodes, Set<Endpoint> maybeFailed)ftlist (非故障ノードリスト) から,指定されたkeyのclosest predecessorを求める. ただし,closest predecesorが自ノードになる場合で,自ノードのsuccessorの方が keyに近い場合(=ftlistにsuccessorが含まれない場合),successorを返す.- パラメータ:
key- the keygoodNodes- the good nodesallNodes- the all nodes.maybeFailed- the nodes that may be failed.- 戻り値:
- the closest predecessor.
-
rqDisseminate
- オーバーライド:
rqDisseminateクラス内RQManager<E extends Endpoint>
-
assignDelegates
protected StrictMap<Id,List<SubRange>> assignDelegates(RQMessage msg, List<SubRange[]> closeRanges)各 range を subRange に分割し,それぞれ担当ノードを割り当てる. 各ノード毎に割り当てたSubRangeのリストのMapを返す.- パラメータ:
msg- the message for range query.closeRanges- List of {[predecessor, n), [n, successor}}, where n is myself.- 戻り値:
- a map of id and subranges.
-
aggregateDelegates
-
scheduleFingerTableUpdate
public void scheduleFingerTableUpdate(int delay, int interval)
-