On Thu, Aug 10, 2006 at 06:01:48PM +0100, David Lee wrote:
> This is intended merely as a set of random thoughts.  No criticism is
> intended!  Honestly.
> 
> 1. Recent emails to the "-dev" list have identified various problems in
> the code, and Lars M-B has suggested on a few occasions that janitorial
> work on the code would be welcome.
> 
> 2. My own minor dabblings at various places across the code (mainly to try
> to pin down Solaris-driven problems and to try to rectify them in an
> OS-independent manner) have identified various places where the code makes
> assumptions (unintentional, I'm sure) about the environment (e.g. sh/bash)
> and is inconsistent in naming relocatable directories ("HA_VAR*" etc.).
> 
> 3. Bugs lurk on non-Linux implementations.  We still don't pass BSC on
> non-Linux systems (Solaris, BSD).  Why?  What features of the coding cause
> these failures?
> 
> 4. Debugging for an outsider (such as me) is a headache: for one thing the
> internal documentation and commenting is lacking in too many places.
> 
> 5. A colleague here (Andrew Stribblehill) and I have long had a gut
> feeling (instinct, etc.) that the overall code base just feels too big.
> (Put another way: if the supplier were Microsoft, the word "bloat" would
> be surfacing!)  There's a vast amount of code: but what does it all
> actually, really, ultimately do?  And does it do it in a "best practice"
> manner or only in a "get the job done" manner?

Not sure about the code quality, but given the set of features
provided, I'd expect the code to grow considerably.

> 6. Et cetera.
> 
> 
> 
> Heartbeat started small, with various ideas.  It has grown; the ideas and
> visions have changed.  Time has moved on and the typical OS environment
> has widened.
> 
> 
> So (deep breath! ...) once 2.0.7 is shipped, might it be time to pause and
> take stock?  We would continue the background bug-fixing as always, but
> for a while would put a hold on new developments, and instead do some sort
> of audit and rationalising of the code and its documentation.  (Yes, I did
> present that as a (mostly) "either/or" thing because realistically I think
> that is what we would need to do.)
> 
> Just a few examples that spring to mind (at various different levels):
> 
> 1. IPaddr and IPaddr2: We shouldn't really be offering the end-user two
> options.  We ought to be able to offer one product which "does the right
> thing".
> 
> 2. "HA_VAR*" inconsistencies: Sweep through and tidy these up.  Includes
> removal of "-DHA_*=*" from all "Makefile.am", all of which can now be
> removed (with a few essential renames in various ".h" and ".c" files).
> 
> 3. (Another deep breath...) Is "python" now an essential pre-requisite for
> heartbeat?  If so, should various things (e.g. "lrmd" and friends,
> "stonithd" and friends) be rewritten into python?  They would almost
> certainly become significantly smaller and thus cleaner and easier to
> understand, to maintain and to document.  The very act of such a rewrite
> (from one language type to a very different type) would itself result in
> tidying by concentrating the mind on intended functionality.

Python is used only for GUI and CTS. I'm not sure if it would be
the right way to switch to a scripting language for critical
things such as resource manager. Besides, my gut feeling is
that just choosing a different language won't improve the code.
Other factors are more important. However, if a peace of code is
bad, it's typically better to start from scratch. But that
shouldn't imply changing the language.

> 4. By doing such exercises, it might make future developments actually
> easier (short-term pain; long-term gain).  For instance, writing a module
> or daemon in "python" (or into a python framework) might be easier than
> doing it in C, especially given the large amount of string handling that
> often has to be done.
> 
> 5. Insert your own pet "I wish {X|Y|Z} were {tidier|maintainable}" here.
> 
> 6. Et cetera.
> 
> 
> Might this suggest a transition from "2.0.x" to (say) "2.2.x"?  The 2.2.0
> branch would be functionally equivalent to 2.0.7, but tidied as above.
> 
> Doubtless such work feels tedious and uninviting for development-minded
> folk.  But I still think we ought at least to entertain the thought, even
> if only to the extent of generating defensible reasons not to do it.
> 
> As I say, simply "blue sky wish-list", and probably with rose-tinted
> spectacles.  (Might "blue sky" through "rose tint" get a bit dark??)
> 
> Let me repeat that this is not intended as criticism.  Please, please
> don't take it as such.

Hmm, what's wrong with criticism? Hopefully, people here can take
criticism.

> OK.  Give me a couple of minutes to don a full fire-retardant suit...

Why, I think that this initiative is good and probably necessary.
A project like Heartbeat demands higher standards than most.

Cheers,

Dejan

> 
> 
> 
> -- 
> 
> :  David Lee                                I.T. Service          :
> :  Senior Systems Programmer                Computer Centre       :
> :                                           Durham University     :
> :  http://www.dur.ac.uk/t.d.lee/            South Road            :
> :                                           Durham DH1 3LE        :
> :  Phone: +44 191 334 2752                  U.K.                  :
> _______________________________________________________
> Linux-HA-Dev: [email protected]
> http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
> Home Page: http://linux-ha.org/
_______________________________________________________
Linux-HA-Dev: [email protected]
http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
Home Page: http://linux-ha.org/

Reply via email to