I was thinking along the lines of your second suggestion. It involves teaching my "external source" about relationships between resources which I don't like but is possible. A phrase from the '08 election cycle involving lipstick comes to mind ... ;) Thanks for following up Tim! Alan
On Mon, Nov 29, 2010 at 7:16 PM, Tim Serong <tser...@novell.com> wrote: > On 11/30/2010 at 10:11 AM, Alan Jones <falanclus...@gmail.com> wrote: >> On Thu, Nov 25, 2010 at 6:32 AM, Tim Serong <tser...@novell.com> wrote: >> > Can you elaborate on why you want this particular behaviour? Maybe >> > there's some other way to approach the problem? >> >> I have explained the issue as clearly as I know how. The problem is >> fundamental >> to the design of the policy engine in Pacemaker. It performs only two >> passes to >> resolve constraints, when what is required for general purpose >> constraint resolution >> is an iterative model. These problems have been addressed in the literature >> for >> decades. > > What I meant by "maybe there's some other way to approach the problem" is > "maybe there's some other way we can figure out how to get something *like* > the behaviour you desire, given the fact that Pacemaker's colocation > constraints behave the way they do". > > If you have: > > primitive resX ocf:pacemaker:Dummy > primitive resY ocf:pacemaker:Dummy > location resX-loc resX 1: nodeA.acme.com > location resY-loc resY 1: nodeB.acme.com > colocation resX-resY -2: resX resY > > And you have "-inf constraints coming from an external source", as you > said before, can you change the external source so that it generates > different constraints? > > e.g., instead of generating either of: > > location resX-nodeA resX -inf: nodeA.acme.com > location resY-nodeB resY -inf: nodeB.acme.com > > (where only the second one works, because of the dependency inherent > in the colocation contraint) can your external source specify these > constraints only in terms of resY, which is the one that's capable of > "dragging" resX around the place? e.g.: > > location resX-nodeA resY inf: nodeA.acme.com > location resY-nodeB resY -inf: nodeB.acme.com > > Or, if that sounds completely deranged, how about this: > > On the assumption your "external source" will only ever inject one > -inf rule, for one resource, why not make it change the colocation > constraint as well? e.g.: generate either of: > > location resX-nodeA resX -inf: nodeA.acme.com > colocation resY-resX -2: resY resX > (and delete resX-resY if present) > > -- or -- > > location resY-nodeB resY -inf: nodeB.acme.com > colocation resX-resY -2: resX resY > (and delete resY-resX if present) > > Are there any more details about your application you can share? > > Regards, > > Tim > > > -- > Tim Serong <tser...@novell.com> > Senior Clustering Engineer, OPS Engineering, Novell Inc. > > > > > _______________________________________________ > Pacemaker mailing list: Pacemaker@oss.clusterlabs.org > http://oss.clusterlabs.org/mailman/listinfo/pacemaker > > Project Home: http://www.clusterlabs.org > Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf > Bugs: > http://developerbugs.linux-foundation.org/enter_bug.cgi?product=Pacemaker > _______________________________________________ Pacemaker mailing list: Pacemaker@oss.clusterlabs.org http://oss.clusterlabs.org/mailman/listinfo/pacemaker Project Home: http://www.clusterlabs.org Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf Bugs: http://developerbugs.linux-foundation.org/enter_bug.cgi?product=Pacemaker