[Pacemaker] [pacemaker][patch 3/4] Simple changes for "Pacemaker Explained", Chapter 6 CH_Constraints.xml

Dejan Muhamedagic dejanmm at fastmail.fm
Fri May 6 10:29:43 UTC 2011


On Fri, May 06, 2011 at 09:47:29AM +0200, Andrew Beekhof wrote:
> On Thu, May 5, 2011 at 5:20 PM, Dejan Muhamedagic <dejanmm at fastmail.fm> wrote:
> > On Thu, May 05, 2011 at 12:02:01PM +0200, Andrew Beekhof wrote:
> >> On Thu, May 5, 2011 at 11:37 AM, Dejan Muhamedagic <dejanmm at fastmail.fm> wrote:
> >> > On Thu, May 05, 2011 at 09:07:05AM +0200, Andrew Beekhof wrote:
> >> >> On Wed, May 4, 2011 at 7:15 PM, Dejan Muhamedagic <dejanmm at fastmail.fm> wrote:
> >> >> > Hi,
> >> >> >
> >> >> > On Wed, May 04, 2011 at 12:49:03PM +0200, Andrew Beekhof wrote:
> >> >> >> Tick tock.  I'm going to push this soon unless someone raises an objection RSN.
> >> >> >>
> >> >> >> On Fri, Apr 15, 2011 at 4:55 PM, Andrew Beekhof <andrew at beekhof.net> wrote:
> >> >> >> > On Fri, Apr 15, 2011 at 3:00 PM, Lars Marowsky-Bree <lmb at novell.com> wrote:
> >> >> >> >> On 2011-04-13T08:37:12, Andrew Beekhof <andrew at beekhof.net> wrote:
> >> >> >> >>
> >> >> >> >>> >> Before:
> >> >> >> >>> >>
> >> >> >> >>> >>       <rsc_colocation id="coloc-set" score="INFINITY">
> >> >> >> >>> >>         <resource_set id="coloc-set-0">
> >> >> >> >>> >>           <resource_ref id="dummy2"/>
> >> >> >> >>> >>           <resource_ref id="dummy3"/>
> >> >> >> >>> >>         </resource_set>
> >> >> >> >>> >>         <resource_set id="coloc-set-1" sequential="false" role="Master">
> >> >> >> >>> >>           <resource_ref id="dummy0"/>
> >> >> >> >>> >>           <resource_ref id="dummy1"/>
> >> >> >> >>> >>         </resource_set>
> >> >> >> >>> >>       </rsc_colocation>
> >> >> >> >>> >>       <rsc_order id="order-set" score="INFINITY">
> >> >> >> >>> >>         <resource_set id="order-set-0" role="Master">
> >> >> >> >>> >>           <resource_ref id="dummy0"/>
> >> >> >> >>> >>           <resource_ref id="dummy1"/>
> >> >> >> >>> >>         </resource_set>
> >> >> >> >>> >>         <resource_set id="order-set-1" sequential="false">
> >> >> >> >>> >>           <resource_ref id="dummy2"/>
> >> >> >> >>> >>           <resource_ref id="dummy3"/>
> >> >> >> >>> >>         </resource_set>
> >> >> >> >>> >>       </rsc_order>
> >> >> >> >>> >>
> >> >> >> >>> >>
> >> >> >> >>> >>
> >> >> >> >>> >> After:
> >> >> >> >>
> >> >> >> >> So I am understanding this properly - we're getting rid of the
> >> >> >> >> "sequential" attribute, yes?
> >> >> >> >
> >> >> >> > Absolutely.
> >> >> >
> >> >> > So, the internal-collocation replaces the sequential attribute?
> >> >>
> >> >> Yes.
> >> >>
> >> >> > What are the possible and/or meaningfull values for
> >> >> > internal-collocation? It looks like that would be 0 or INFINITY
> >> >> > only, which would translate to old sequential false and true,
> >> >> > right?
> >> >>
> >> >> No.
> >> >>
> >> >>               <choice>
> >> >>                 <data type="integer"/>
> >> >>                 <value>INFINITY</value>
> >> >>                 <value>+INFINITY</value>
> >> >>                 <value>-INFINITY</value>
> >> >>               </choice>
> >> >
> >> > I saw that, but wonder what makes sense in this context. What's
> >> > the difference between values 0, INF, 50, -50, 100? Are all those
> >> > necessary?
> >>
> >> Just as necessary as for colocation constraints not involving sets.
> >> You're setting up the colocation score between elements of the set.
> >
> > OK.
> >
> >> >> > Looking at the schema, the ordering constraint lost score
> >> >>
> >> >> Score was being mapped to "kind" inside the PE anyway.
> >> >>
> >> >> > and is
> >> >> > using only the kind attribute which can have one of:
> >> >> >
> >> >> >      <value>None</value>
> >> >> >      <value>Optional</value>
> >> >> >      <value>Mandatory</value>
> >> >> >      <value>Serialize</value>
> >> >> >
> >> >> > But then, the "kind" attribute is optional. If missing, how's
> >> >> > that different from value None?
> >> >>
> >> >> If its missing you get the default.  Which IIRC is Mandatory not None.
> >> >>
> >> >> > What does Serialize mean? (in orders)
> >> >>
> >> >> Same as it did before, this is not new.
> >> >>
> >> >> > What does score-attribute-mangle mean? (in collocations)
> >> >>
> >> >> As above.  Not new.
> >> >
> >> > Where are these two documented? Couldn't find anything in the
> >> > docs.
> >>
> >> Looks to be just an alias for XML_RULE_ATTR_SCORE_ATTRIBUTE dating back to 2005.
> >> So there is probably a reason I didn't document it.
> >
> > So, it's obsolete then? The crm shell actually never supported
> > it :-|  And I can't recall that I've ever seen it in a
> > configuration.
> >
> >> Serialize is newer.  Its like optional but for a set - no member will
> >> start or stop at the same time as another.
> >
> > OK.
> >
> >> >> > I think that it'd be good to clarify the shell syntax before
> >> >> > applying these changes.
> 
> Actually I'm going to flip-flop here... there's really no need for this.
> Until the shell understands the new syntax, it will just show xml right?

Right. But in my experience trying things out in shell syntax
sometimes reveals design shortcomings. That was so with the
resource sets.

Going back to the example you've shown earlier in this thread ...

Before:

collocation c inf: ( dummy0:Master dummy1:Master ) dummy2 dummy3
order o Mandatory: dummy0:promote dummy1:promote ( dummy2 dummy3 )

After(1):

collocation_set c inf: 0:[dummy0:Master dummy1:Master] inf:[dummy2 dummy3]
order_set o Mandatory: Mandatory:[dummy0:promote dummy1:promote] Optional:[dummy2 dummy3]

After(2):

collocation_set c inf: 0:[dummy0:Master dummy1:Master] dummy2 dummy3
order_set o Mandatory: dummy0:promote dummy1:promote Optional:[dummy2 dummy3]

The second version removes redundant specification, i.e. for the
sets which have the same kind/score as the constraint.

Would this kind of XML be possible:

     <rsc_colocation id="coloc-set" score="INFINITY">
        <colocation_set id="coloc-set-1" internal-colocation="0">
          <resource_ref id="dummy0" role="Master"/>
          <resource_ref id="dummy1" role="Master"/>
        </colocation_set>
        <resource_ref id="dummy2"/>
        <resource_ref id="dummy3"/>
      </rsc_colocation>
      <rsc_order id="order-set" kind="Mandatory">
        <resource_ref id="dummy0" action="promote"/>
        <resource_ref id="dummy1" action="promote"/>
        <ordering_set id="order-set-1" internal-ordering="Optional">
          <resource_ref id="dummy2"/>
          <resource_ref id="dummy3"/>
        </ordering_set>
      </rsc_order>

For instance, that way we won't have single resource sets which
look silly.

> Also, the changes wont be in a release until 1.1.7 and it will take a
> while to enter common usage.
> So I think you have time.

OK.

> > I'm going to try to do something today and tomorrow, but next
> > week I'll be away. So, if you're in a hurry, go ahead with the
> > changes.
> >
> > Just two more notes regarding the language:
> >
> > There's "colocation_set/internal-colocation" and
> > "ordering_set/internal-ordering". They sound different. Should
> > the order stuff be "order_set/internal-order"? I'm not partial
> > to any and furthermore not a native speaker, so I'll leave that
> > to you and others who are more intimate with english.
> 
> As an engineer my grasp on english can be tenuous at times, but
> "internal-order" feels wrong.

How about internal-score for both? I mean, we already know what
kind of constraint it is.

> > Are we going to name the new stuff differently in shell? Such as
> > collocation_set and order(ing)_set? Though I don't like these in
> > particular, because they are going to be the only ones with '_'
> > in its names,
> 
> I was using '-', but then I noticed all the other tag names used '_'.
> Then I remembered deciding at one point to use '_' for tag names
> (partly because changing them is hard) and '-' for attributes.
> 
> Having said that, the tokens used by the shell are not required to
> match those in the xml.
> Though it may require more work when translating between xml and shell syntax.

Yes, I know that, and I was actually asking about the names in
the shell because I cannot think of anything better than
order_set or collocation_set.

> Remember to check the validate-with field though - to see which
> version of the syntax the cluster is currently using.

Right.

Thanks,

Dejan

> > but there seems to be no way around it. Any better
> > suggestions?
> >
> > Thanks,
> >
> > Dejan
> >
> > _______________________________________________
> > Pacemaker mailing list: Pacemaker at 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 at 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




More information about the Pacemaker mailing list