Hi Filip,
thanks for taking it seriously!
1. If we don't primary/secondary will not be available until TC.6
> 3. Many people are opting out of clustering today because of lack of
> primary/sec. all-to-all is too inefficient for the general public
I understand your primary motivation. It#s true, primary/secondary would
be a major improvement. There is one feature that exists now and was not
available in 2004, that relaxes some of the all-to-all problems. We
donated enhancements to mod_jk which were taken up by Mladen Turk: the
domain attribute for a worker. So what is already possible today, is a
static grouping of cluster nodes into domains. From the tomcat
perspective that means, you configure multiple disjoint clusters. From
the mod_jk perspective this means, that you sessions will always be
routed to a node inside the same tomcat cluster (domain in mod_jk
notation), and only if all nodes in the domain are in error state, the
requests are routed to some node who does not have the session. In some
way it is a very basic static promary/secondary feature and it only
works in conjunction with mod_jk.
This is very bare bone, but I know several people who build their 4 to 9
cluster nodes on top of that construction. In fact, susually they had
their nodes segmented in network terms in smaller groups anyhow, so
breaking up the cluster into domains fitted their needs well.
Of course, having a dynamic and more transparent primary/secondary
construction is much more useful. I just want to indicate, why I know
serveral users, who could work successfully with "all-to-all",
restricted to domains.
2. TC 6 doesn't have a skeleton nor a date yet.
5. The instability caused in 5.5.10-5.5.14 could have easily been
detected and should have not lasted for four releases. I doubt we should
see that again.
> 6. I'm ready and have the time and commitment to support any changes I
> make. I am happy to have a 5.5.15-cluster branch for bug fixes
> This way when 5.5.16 comes out, the users can choose which one to use.
>
> To delay this out of plain "fear of breaking" doesn't seem reasonable to
> me, if the code base is so messed up that we are too afraid to "touch"
> it, then it needs to be fixed sooner than later.
>
I'm very happy about your commitment - really! We really need to push
the clustering forward and it's fantastic to have you back!
I like your idea of a 5.5.15 maintenance branch. But I'm not sure, if we
share the same idea, how that will be maintained.
For me it would be OK to freeze the actual cluster code in the 5.5.15
maintenance branch. The only changes to this branch would be
- bug fixes for important bugs without work-arounds which will only need
changes in small parts of the code (low complexity)
- security fixes
- bug fixes needed for compatibility with TC core 5.5, e.g. adoption of
changes to Manager or Session.
So I would like to keep that branch stable, but compatible with 5.5.
Would that be OK for you?
4. Many of the needed features needed for a more complete clustering
solution are not possible today due to the tight coupling between
components.
But I would be stretching myself thin trying to maintain two code bases.
This maintenance branch is easy to create, just branch the entire
cluster module plus ClusterRuleSet.java, and it is complete.
I agree, so do we have the same idea of the amount of maintenance for
the maintenance branch? I'm pretty sure, Peter will be happy keeping
that branch in shape (I think he leaves for holidays now, but he will be
back next week).
I have no problem putting this up for a vote, but so far, the only
justifications are concerns, when I believe I can offer more features
and an easier codebase to maintain.
Voting is good, exchange of arguments as well. I think some of our
concerns are not just theoretically. Major changes are needed and major
changes usually break things for some time. So we are just trying to
find out how to combine the grown user base and the needed improvements.
I think your idea of a maintenance branch is just right.
Rainer
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]