ロケット - tilelink - ProbePicker

 

 
ProbePickerの簡単な実現。
 
 
1.基本はじめに
 
1にまとめた複数のためのキャッシュクライアント:
 
2.外交ノード
 
ProbePickerアダプタ外交ノードは、下流ノードへの接続、およびパラメータの受渡しのためのノードです。
 
ここで下流ノードパラメータの変化が上流のノードに送信されない、下流ノードがProbePickerを参照するように適応パラメータが下流ノードへアップストリームノードに送信し、処理をマージすることができるキャッシュ・クライアント・パラメータは、クライアントが併合しましたパラメータ少ない合併クライアントのうちの一部。
 
1)clientFn
 
右から左の要素への一つのオリジナル1内のクライアントは、新しいクライアントのパラメータとして結合された結果を組み合わせること:
 
2)コンバイン
 
ここでの仮定は、アドレスのセット(可視性)連続クライアントアクセスが注文されています。
。Aヘッド及び次のオーバーラップは、結合することができない場合は、ヘッドを組み合わせることができないので、要素を組み込むことのできる最初のものであることを意味し、その後、ヘッドが最終クライアント配列である出力に追加され、その意味を失うことになる、と次の要素は、最初の要素は次のヘッドを組み合わせ、即ち、次の要素をチェックするためにマージすることが可能となります。
。Bは、ヘッドに対して墨消して、次のSourceID / nodePathを比較視認性を無視するので、必要なそのような名前/ requireFifo / supportsXXXなどの他のフィールド、それを尋ねます。
。Cは、結合のSourceIDヘッドを吸引し、次の二つを合わせて視認されます。
 
3)合併のSourceID
 
そして、のSourceIDの次のヘッドはどのような関係を持っていますか?
。一致:部分的に重複または完全に重複し、
b. 不重合;
 
3.怠惰なモジュール
 
の内部ロジックProbePickerを実装するための怠惰なモジュール:
 
因为diplomacy node中可能把上游节点的多个clients合并到一起了,所以下游节点看到的sourceId实际上也是合并之后的,即下游节点发起Probe消息时,使用的是合并之后的source值。需要ProbePicker把这个source值区分成合并前的某一个client再转发给上游节点。
 
1) 成对的输入边和输出边
 
 
2) 默认直连
 
 
3) 区分source
 
a. edgeIn.client.clients.size是输入边的clients的数量,即ProbePicker看到的上游节点的clients的数量;edgeOut.client.clients.size是输出边的clients的数量,即ProbePicker的下游节点看到的ProbePicker的clients的数量。两者相等,表明没有进行合并;两者不等,则表明进行了合并,则需要对source域进行区分;
 
b. 判断source属于哪一个client:edgeOut.client.clients.map(_.sourceId contains out.b.bits.source)
 
c. 如果合并前只有一个client的sourceId被合并后的client包含,则表明这个client没有与其他client进行合并,所以无需区分;
 
d. 否则需要根据地址确定是属于哪一个合并前的client(这些client的visibility不重叠),而后转换为对应client的sourceId:
 

おすすめ

転載: www.cnblogs.com/wjcdx/p/11442950.html