Maybe.

Yeah the song is just meant to be funny.

The long / extremely short, limited value, overview of my view is that
pretty much every classical way you can share clusterstate with Zookeeper
is an Overseer design, at least how I defined or thought of an Overseer
before it had any implementation . The fundamental concept of the Overseer
has always been some kind of cluster lock for some duration. If you
simplify a bit, I see how you implement an Overseer as a spectrum, where on
one end you have something like a Hadoop NameNode, or a permanent cluster
lock. Maybe you have a hot backup in the wings. As you move toward the
other end of the spectrum in this simplified model, you have cluster locks
that are held for less and less time, and maybe even more cluster locks
than one for some tasks. At the very far end, you have something like an
optimistic concurrency cluster lock, and effectively, ridiculously short
lock holds.

Personally, I would have aimed for the optimistic concurrency end of the
spectrum in implementation, but short of it, that is actually where I
started as a foothold, with no intention of staying there. But anyway, I
would have moved up the spectrum a short ways. I don’t think anyone really
aimed for where the current Overseer did land, it kind of gets there
through sheer weight and silliness as opposed to any grand design, but it’s
obviously spent most of its life closer to the NameNode end, while trying
to pretend it’s more in the middle. It very much could be where I initially
would have imagined it ended up with  extremely minimal functional changes
- I mean, 100% code change, but functional extremely close. Which isn’t to
say that is the ideal target. But one should understand that reality if
they want to understand what that monster actually is.

Going back to the Overseer looking much closer to a NameNode but kind of
pretending it’s more in the middle, Fundamentally, that’s indicative of
everything that’s wrong with the Overseer. It doesn’t know what it is. It
leans on Zookeeper like an unsure underseer.  And in the end, that helps
ensure it would never be good even if you wanted to target its location on
the spectrum as your desired location.

And of course that’s compounded by the ridiculous cluster communication
cadence it allows for, the more than ridiculous communication cost it
requires. And the hairy, complexity that fairly weak mitigation attempts
have added over time to the already hairy, way overly complex code.

And already, I can’t wrap that up in any meaningful way here, I’m already
way past my attempted word limit.

Reply via email to