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

Andrew Beekhof andrew at beekhof.net
Mon May 9 05:07:37 EDT 2011


On Fri, May 6, 2011 at 12:29 PM, Dejan Muhamedagic <dejanmm at fastmail.fm> wrote:
> 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:

Is the schema that hard to read?
No, not possible since the same concepts can be expressed without
suppressing the colocation_set elements.

>
>     <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>

Also, this example makes no sense.
How do you colocate dummy2 with dummy0 and dummy1 if 0 and 1 are on
different machines?

>      <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.

Thats for the shell to deal with.  Sorry.
If you want to omit the delimiters for a single set, or the first one,
or the last one, or the one in the middle - go for it.
But that's got nothing to do with the XML.

>
>> 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.

Score does not make sense for ordering constraints.
Since we're already removing it from the non-set version, it doesn't
make sense to add it back here.

>
>> > 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
>
> _______________________________________________
> 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