Thursday, March 02, 2006
Watching the searches go by
A lot of visitors walk into the Googleplex lobby and stand mesmerized by the scrolling display of search queries crawling across the large monitor suspended over the receptionist's desk. It inspires journalists to wax poetic and dig deep for metaphors about the international impact of Google and the deepening role search plays in all our lives. They're so in awe of this peek into the global gestalt that they don't even read the NDA they automatically agree to by signing in for a visitor's badge.
The query scroll is fascinating, though it's carefully screened for offensive terms that might clash with the wholesome decor. Screened for offensive terms written in English, anyway. I seem to recall a group of Japanese visitors pointing and smirking at some of the katakana queries floating across the page.
Hey! I just saw my search go by!
Back when I wrote GeoFind (originally
“Brainstorm” although I think the term “Brainstem” may have been bandied
about) one of the features I added was a live feed of all the search terms
being submitted (as a network service, no less)—I think at the time there
were a few search engines that allowed one to check the queries being
submitted (although I suspect all of this was before Google's time). It wasn't difficult to add
the functionality, and it was fun interesting to watch the queries
being made (except for the disturbing ones).
But one time I'm sitting in my office, watching the live search requests when I see “Hi Sean” flow past. It was one of my fellow cow-orkers having a bit of fun.
“Why yes, I'd prefer my packets to take the slow connection”
Yesterday, the Cisco router preferred the secondary circuit (a DSL line) over the primary circuit (an Ethernet port) and I couldn't figure why. I had programmed in weighted routes but the Cisco seemed to read “take the Ethernet port over the DSL port” as “take not the Ethernet port over the DSL port.”
First attempt at a fix: weight the routes heavily (as in fifteen times) in favor of the Ethernet port. Still the Cisco took it as “take not at all the Ethernet port over the DSL port.”
Second attempt at a fix: who knows? Maybe I have the weights backwards? So, reverse the weight values. It was then I realized that the Cisco was in fact hearing “do not even think of the Ethernet port unless the DSL port is down.” Didn't matter how I weighed the routes, the Cisco would refuse to route over the Ethernet unless the DSL was down.
Which is the exact opposite of what we want.
So G, our Cisco consultant took a look into the problem and came up with the answer—that's the way Cisco's work.
Basically, the Cisco router will select a route according to the following:
- All connected interfaces go first.
- Route to the most specific subnet second.
- Only now are weighted routes considered.
The DSL connection was being routed on a connected interface, so we could have weighted the DSL connection with 17 tons and made the Ethernet interface weightless, but because the DSL route is directly connected, it would be preferred.
The problem was fixed by changing the DSL routing destination, so it was neither directly connected, nor a specific subnet.
Sigh.