With deep, purple bags under his eyes, Beagin Tiredly plops down into his swivel chair with a loud whoosh. His unsweetened, black coffee sloshes onto the desk as he sets it down, adding new spots to the coffee stains from previous mornings. Despite being at the ripe, young age of 25, this early hour has him looking twenty years older. —Nenshou Fire Continue reading
Netflix contributes its Fenzo open source code to Apache Mesos.
There's a growing effort to create stateful containers.
In our last post on BGP code, we unraveled the call chain snaproute’s Go BGP implementation uses to bring a peer up. Let’s look at this call chain a bit more to see if we can figure out what it actually does—or rather, how it actually works. I’m going to skip the actual beginning of the FSM itself, and just move to the first state, looking at how the FSM is designed to move from state to state. The entire thing kicks off here—
func (st *IdleState) processEvent(event BGPFSMEvent, data interface{}) {
st.logger.Info(fmt.Sprintln("Neighbor:", st.fsm.pConf.NeighborAddress, "FSM:", st.fsm.id,
"State: Idle Event:", BGPEventTypeToStr[event]))
switch event {
case BGPEventManualStart, BGPEventAutoStart:
st.fsm.SetConnectRetryCounter(0)
st.fsm.StartConnectRetryTimer()
st.fsm.ChangeState(NewConnectState(st.fsm))
....
}
What we need to do is chase down each of these three calls to figure out what they actually do. The first is simple—it just sets a retry counter (connectRetryCounter) to 0, indicating we haven’t tried to restart this peer at all. In other words, this is the first attempt to move from idle to a full peering relationship. This counter is primarily used for telemetry, which means it’s a counter used to show you, Continue reading