パッケージ org.piax.gtrans.ov.sg

クラス SGNode<E extends Endpoint>

java.lang.Object
org.piax.gtrans.ov.sg.SGNode<E>
すべての実装されたインタフェース:
NodeObserver

public class SGNode<E extends Endpoint>
extends Object
implements NodeObserver
a node in a skip graph.
  • コンストラクタの詳細

    • SGNode

      public SGNode​(SkipGraph<E> sg, MembershipVector mv, Comparable<?> rawkey)
      create a SGNode instance.
      パラメータ:
      sg - the SkipGraph instance that manages this node
      mv - membership vector
      rawkey - the key
  • メソッドの詳細

    • getSGNodeInfo

      public SkipGraph.SGNodeInfo getSGNodeInfo​(int level, MembershipVector mv, int nTraversed)
      指定した level に関連するSkipGraph.SGNodeInfoを返す.

      メンバシップベクタの上位ビットが同一であるノードを検索するために findMatchingNode(int) からRPCで呼ばれる.

      自ノードも findMatchingNode実行中の場合,いままでにトラバースしたノード数 traversed が大きい側が勝つ.自ノードが負けた場合,findMatchingNode を実行中のスレッドに通知する.

      返り値の SGNodeInfo には以下の情報が格納される.

       
       ・me: (level + 1) の自分自身へのリンク
       ・left: (level + 1) の左リンク
       ・right: (level + 0) の右リンク.null if the caller cannot traverse
            rightward further.
       

      自ノードが削除中の場合,指定されたlevelは削除済みの可能性がある.このときはnullを返す.

      自ノードが挿入中で level + 1 Linkがまだない場合,me = null を返す. (level + 0は存在するので,メンバシップベクトルが一致しなければcaller側はrightを使って 検索を継続できることに注意)

      パラメータ:
      level - level
      mv - the membership vector of the remote (caller) node
      nTraversed - the number of traversed node of the remote node
      戻り値:
      the SGNodeInfo
    • getDdllNode

      public SGNode.Tile getDdllNode​(int level, SkipGraph.LvState newstate)
    • toString

      public String toString()
      オーバーライド:
      toString クラス内 Object
    • getTile

      public SGNode.Tile getTile​(int level)
    • onRightNodeChange

      public void onRightNodeChange​(Link prevRight, Link newRight, Object payload)
      インタフェースからコピーされた説明: NodeObserver
      called when the right link is changed by receiving a SetR message.
      定義:
      onRightNodeChange インタフェース内 NodeObserver
      パラメータ:
      prevRight - the previous right link
      newRight - the new right link
      payload - an Object passed with SetR message.
      関連項目:
      Node.setR(Link, int, Link, Link, LinkSeq, int, Object)
    • payloadNotSent

      public void payloadNotSent​(Object payload)
      インタフェースからコピーされた説明: NodeObserver
      called when the payload given via Node.setR(Link, int, Link, Link, LinkSeq, int, Object) is not passed to the specified remote node. typically this happens when the SetR request fails.
      定義:
      payloadNotSent インタフェース内 NodeObserver
      パラメータ:
      payload - the payload not has been sent
    • onNodeFailure

      public boolean onNodeFailure​(Collection<Link> failedLinks)
      インタフェースからコピーされた説明: NodeObserver
      called when node failure is detected by DDLL's node monitor. if this method returns true, the DDLL link fixing procedure is executed just after returning from this method. when false is returned, it is application's responsibility to repair the failed link.
      定義:
      onNodeFailure インタフェース内 NodeObserver
      パラメータ:
      failedLinks - the collection of failed links.
      戻り値:
      true to execute DDLL's link fixing procedure
    • suppplyLeftCandidatesForFix

      public List<Link> suppplyLeftCandidatesForFix()
      定義:
      suppplyLeftCandidatesForFix インタフェース内 NodeObserver