Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Added a new mechanism to designate certain parties in the cluster to act as repositories. When a DISCOVERY request goes out that parrot back everything they have seen, not just its own services |
---|---|
Timelines: | family | ancestors | descendants | both | odie |
Files: | files | file ages | folders |
SHA1: |
64d9695c879c3185889d48ecc02b2629 |
User & Date: | hypnotoad 2015-09-24 00:34:26 |
Context
2015-09-24
| ||
19:29 | Moved the tool.shed manifest to the new customary spot. Added a makefile directive to rebuild the makefile check-in: f8dd6bc0eb user: hypnotoad tags: odie | |
00:34 | Added a new mechanism to designate certain parties in the cluster to act as repositories. When a DISCOVERY request goes out that parrot back everything they have seen, not just its own services check-in: 64d9695c87 user: hypnotoad tags: odie | |
2015-09-21
| ||
17:17 | Redesign of the free_port system for nns_cluster. check-in: b79e07e239 user: hypnotoad tags: odie | |
Changes
Changes to modules/nns/nns_cluster.tcl.
︙ | ︙ | |||
94 95 96 97 98 99 100 101 102 103 104 105 106 107 | variable discovery_group set broadcast_sock [udp_open $discovery_port reuse] fconfigure $broadcast_sock -buffering none -blocking 0 \ -mcastadd $discovery_group \ -remote [list $discovery_group $discovery_port] fileevent $broadcast_sock readable [list [namespace current]::UDPPacket $broadcast_sock] ::cron::every cluster_heartbeat 30 ::cluster::heartbeat return $broadcast_sock } ### # topic: 2a33c825920162b0791e2cdae62e6164 ### proc ::cluster::UDPPacket sock { | > | 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | variable discovery_group set broadcast_sock [udp_open $discovery_port reuse] fconfigure $broadcast_sock -buffering none -blocking 0 \ -mcastadd $discovery_group \ -remote [list $discovery_group $discovery_port] fileevent $broadcast_sock readable [list [namespace current]::UDPPacket $broadcast_sock] ::cron::every cluster_heartbeat 30 ::cluster::heartbeat return $broadcast_sock } ### # topic: 2a33c825920162b0791e2cdae62e6164 ### proc ::cluster::UDPPacket sock { |
︙ | ︙ | |||
145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 | set serviceurl [lindex $messageinfo 0] set serviceinfo [lindex $messageinfo 1] dict set serviceinfo ipaddr [lindex $peer 0] Service_Add $serviceurl $serviceinfo set ::cluster::ping_recv($serviceurl) [clock seconds] } DISCOVERY { ::cluster::heartbeat } LOG { set serviceurl [lindex $messageinfo 0] set serviceinfo [lindex $messageinfo 1] Service_Log $serviceurl $serviceinfo } ?WHOIS { | > > > > > > > > > | 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 | set serviceurl [lindex $messageinfo 0] set serviceinfo [lindex $messageinfo 1] dict set serviceinfo ipaddr [lindex $peer 0] Service_Add $serviceurl $serviceinfo set ::cluster::ping_recv($serviceurl) [clock seconds] } DISCOVERY { variable config ::cluster::heartbeat if {$config(local_registry)==1} { variable ptpdata # A local registry barfs back all data that is sees set now [clock seconds] foreach {url info} [array get ptpdata] { broadcast ~SERVICE $url $info } } } LOG { set serviceurl [lindex $messageinfo 0] set serviceinfo [lindex $messageinfo 1] Service_Log $serviceurl $serviceinfo } ?WHOIS { |
︙ | ︙ | |||
256 257 258 259 260 261 262 | proc ::cluster::get_free_port {{startport 50000}} { ::cluster::listen ::cluster::broadcast DISCOVERY after 10000 {set ::cluster::recv_message 0} # Wait for a pingback or timeout vwait ::cluster::recv_message | | | 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 | proc ::cluster::get_free_port {{startport 50000}} { ::cluster::listen ::cluster::broadcast DISCOVERY after 10000 {set ::cluster::recv_message 0} # Wait for a pingback or timeout vwait ::cluster::recv_message cluster::sleep 2000 set macid [::cluster::macid] set port $startport set conflict 1 while {$conflict} { set conflict 0 set port [::nettool::find_port $port] |
︙ | ︙ | |||
453 454 455 456 457 458 459 460 461 462 463 464 465 466 | ### namespace eval ::cluster { # Number of seconds to "remember" data variable config array set config { debug 0 discovery_ttl 300 } variable cache {} variable broadcast_sock {} variable cache_maxage 500 variable discovery_port 38573 # Currently an unassigned group in the # Local Network Control Block (224.0.0/24) | > | 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 | ### namespace eval ::cluster { # Number of seconds to "remember" data variable config array set config { debug 0 discovery_ttl 300 local_registry 0 } variable cache {} variable broadcast_sock {} variable cache_maxage 500 variable discovery_port 38573 # Currently an unassigned group in the # Local Network Control Block (224.0.0/24) |
︙ | ︙ |