<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
Ruby,
<div class=""><br class="">
</div>
<div class="">The Custom constraint class was something Yathiraj mentioned a while back.  But yes the idea is that MemoryCapacityConstraint would be a special case of what we can express in the custom constraints.</div>
<div class=""><br class="">
</div>
<div class="">Tim</div>
<div class=""><br class="">
</div>
<div class=""><br class="">
<div>
<blockquote type="cite" class="">
<div class="">On Mar 18, 2015, at 10:05 AM, <a href="mailto:ruby.krishnaswamy@orange.com" class="">
ruby.krishnaswamy@orange.com</a> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)" class="">
<style class=""><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Arial","sans-serif";
        color:black;
        font-weight:normal;
        font-style:normal;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
<div lang="FR" link="blue" vlink="purple" class="">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;" class="">Hello<o:p class=""></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;" class=""> </span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;" class="">o)
</span><span lang="EN-US" class="">custom constraint class</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;" class=""><o:p class=""></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" class="">What did you mean by the “custom” constraint class?<o:p class=""></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" class=""> </span></p>
<p class="MsoNormal"><span lang="EN-US" class="">  Did you mean we specify a “meta model” to specify constraints?  And then each “Policy” specifying a constraint  ( ) will lead to generation of the constraint in that meta-model.<o:p class=""></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" class="">Then the solver-scheduler could pick up the constraint?<o:p class=""></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" class=""> </span></p>
<p class="MsoNormal"><span lang="EN-US" class="">This then will not require the “solver scheduler” to implement specific constraint classes such as “MemoryCapacityConstraint”.<o:p class=""></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" class=""> </span></p>
<p class="MsoNormal"><span lang="EN-US" class="">We may have rules (not in sense of Datalog
</span><span lang="EN-US" style="font-family:Wingdings" class="">J</span><span lang="EN-US" class=""> ) for name (e.g. variables or constants) generation?<o:p class=""></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" class=""> </span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;" class=""> </span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;" class="">Ruby<o:p class=""></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; font-family: Arial, sans-serif;" class=""> </span></p>
<div class="">
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm" class="">
<p class="MsoNormal"><b class=""><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"" class="">De :</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"" class=""> Tim Hinrichs [<a href="mailto:thinrichs@vmware.com" class="">mailto:thinrichs@vmware.com</a>]
<br class="">
<b class="">Envoyé :</b> mercredi 18 mars 2015 16:34<br class="">
<b class="">À :</b> OpenStack Development Mailing List (not for usage questions)<br class="">
<b class="">Objet :</b> Re: [openstack-dev] [Congress] [Delegation] Meeting scheduling<o:p class=""></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p class=""> </o:p></p>
<p class="MsoNormal">I responded in the gdoc.  Here’s a copy. <o:p class=""></o:p></p>
<div class="">
<p class="MsoNormal"><o:p class=""> </o:p></p>
</div>
<div class="">
<div class="">
<p class="MsoNormal">One of my goals for delegation is to avoid asking people to write policy statements specific to any particular domain-specific solver.  People ought to encode policy however they like, and the system ought to figure out how best to enforce
 that policy  (delegation being one option).<o:p class=""></o:p></p>
</div>
<div class="">
<p class="MsoNormal"><o:p class=""> </o:p></p>
</div>
<div class="">
<p class="MsoNormal">Assuming that's a reasonable goal, I see two options for delegation to  solverScheduler<o:p class=""></o:p></p>
</div>
<div class="">
<p class="MsoNormal"><o:p class=""> </o:p></p>
</div>
<div class="">
<p class="MsoNormal">(1) SolverScheduler exposes a custom constraint class.  Congress generates the LP program from the Datalog, similar to what is described in this doc, and gives that LP program as custom constraints to the  SolverScheduler.  SolverScheduler
 is then responsible for enforcing that policy both during provisioning of new servers and for monitoring/migrating servers once provisioning is finished.<o:p class=""></o:p></p>
</div>
<div class="">
<p class="MsoNormal"><o:p class=""> </o:p></p>
</div>
<div class="">
<p class="MsoNormal">(2) The Congress adapter for SolverScheduler understands the semantics of MemoryCapacityConstraint, identifies when the user has asked for that constraint, and replaces that part of the LP program with the MemoryCapacityConstraint.<o:p class=""></o:p></p>
</div>
<div class="">
<p class="MsoNormal"><o:p class=""> </o:p></p>
</div>
<div class="">
<p class="MsoNormal">We probably want a combination of (1) and (2) so that we handle any gaps in the pre-defined constraints that SolverScheduler has, while at the same time leveraging the pre-defined constraints when possible.<o:p class=""></o:p></p>
</div>
<div class="">
<p class="MsoNormal"><o:p class=""> </o:p></p>
</div>
<div class="">
<p class="MsoNormal">Tim<o:p class=""></o:p></p>
</div>
<div class="">
<p class="MsoNormal"><o:p class=""> </o:p></p>
</div>
<div class="">
<p class="MsoNormal"><o:p class=""> </o:p></p>
</div>
<div class="">
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class="">
<div class="">
<p class="MsoNormal">On Mar 17, 2015, at 6:09 PM, Yathiraj Udupi (yudupi) <<a href="mailto:yudupi@cisco.com" class="">yudupi@cisco.com</a>> wrote:<o:p class=""></o:p></p>
</div>
<p class="MsoNormal"><o:p class=""> </o:p></p>
<div class="">
<div class="">
<div class="">
<p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Calibri","sans-serif"" class="">Hi Tim, <o:p class=""></o:p></span></p>
</div>
<div class="">
<p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Calibri","sans-serif"" class=""> </span></p>
</div>
<div class="">
<p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Calibri","sans-serif"" class="">I posted this comment on the doc.  I am still pondering over a possibility of have a policy-driven scheduler workflow via the Solver Scheduler placement engine,
 which is also LP based like you describe in your doc.   <o:p class=""></o:p></span></p>
</div>
<div class="">
<p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Calibri","sans-serif"" class="">I know in your initial meeting, you plan to go over your proposal of building a VM placement engine that subscribes to the Congress DSE,  I probably will understand
 the Congress workflows better and see how I could incorporate this proposal to talk to the Solver Scheduler to make the placement decisions. <o:p class=""></o:p></span></p>
</div>
<div class="">
<p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Calibri","sans-serif"" class=""> </span></p>
</div>
<div class="">
<p class="MsoNormal" style="margin-bottom:12.0pt"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:#333333;background:white" class="">The example you provide in the doc, is a very good scenario, where a VM placement engine should continuously
 monitor and trigger VM migrations. </span><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:#333333" class=""><br class="">
<br class="">
<span style="background:white" class="">I am also interested in the case of a policy-driven scheduling for the initial creation of VMs. This is where say people will call Nova APIs and create a new set of VMs. Here the scheduler workflow should address the
 constraints as imposed from the user's policies. </span><br class="">
<br class="">
<span style="background:white" class="">Say the simple policy is " Host's free RAM >= 0.25 * Memory_Capacity"</span><br class="">
<span style="background:white" class="">I would like the scheduler to use this policy as defined from Congress, and apply it during the scheduling as part of the Nova boot call. </span><br class="">
<br class="">
<span style="background:white" class="">I am really interested in and need help in coming up with a solution integrating Solver Scheduler, so say if I have an implementation of a "MemoryCapacityConstraint", which takes a hint value "free_memory_limit" (0.25
 in this example), </span><br class="">
<span style="background:white" class="">could we have a policy in Datalog </span><br class="">
<br class="">
<span style="background:white" class="">placement_requirement(id) :-</span><br class="">
<span style="background:white" class="">nova:host(id), </span><br class="">
<span style="background:white" class="">solver_scheduler:applicable_constraints(id, ["MemoryCapacityConstraint", ]), </span><br class="">
<span style="background:white" class="">applicable_metadata(id, {"free_memory_limit": 0.25, })</span><br class="">
<br class="">
<span style="background:white" class="">This policy could be set and delegated by Congress to solver scheduler via the "set_policy" API. or the Solver Scheduler can query Congress via a "get_policy" API to get this policy, and incorporate it as part of the
 solver scheduler workflow ?</span></span><span style="font-size:10.5pt;font-family:"Calibri","sans-serif"" class=""><o:p class=""></o:p></span></p>
</div>
<div class="">
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif"" class="">Does this sound doable ?</span><o:p class=""></o:p></p>
</div>
<div class="">
<p class="MsoNormal"><o:p class=""> </o:p></p>
</div>
<div class="">
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif"" class="">Thanks,</span><o:p class=""></o:p></p>
</div>
<div class="">
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif"" class="">Yathi. </span><o:p class=""></o:p></p>
</div>
<div class="">
<p class="MsoNormal"><o:p class=""> </o:p></p>
</div>
<div class="">
<p class="MsoNormal"><o:p class=""> </o:p></p>
</div>
<div class="">
<p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Calibri","sans-serif"" class=""> </span></p>
</div>
<div class="">
<div class="">
<p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Calibri","sans-serif"" class="">On 3/16/15, 11:05 AM, "Tim Hinrichs" <<a href="mailto:thinrichs@vmware.com" class="">thinrichs@vmware.com</a>> wrote:<o:p class=""></o:p></span></p>
</div>
</div>
<div class="">
<p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Calibri","sans-serif"" class=""> </span></p>
</div>
<blockquote style="border:none;border-left:solid #B5C4DF 4.5pt;padding:0cm 0cm 0cm 4.0pt;margin-left:3.75pt;margin-right:0cm" id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" class="">
<div class="">
<div class="">
<p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Calibri","sans-serif"" class="">Hi all,
<o:p class=""></o:p></span></p>
<div class="">
<p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Calibri","sans-serif"" class=""> </span></p>
</div>
<div class="">
<p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Calibri","sans-serif"" class="">The feedback on the POC delegation proposal has been mostly positive.  Several people have asked for a meeting to discuss further.  Given time zone constraints,
 it will likely be 8a or 9a Pacific.  Let me know in the next 2 days if you want to participate, and we will try to find a day that everyone can attend.<o:p class=""></o:p></span></p>
</div>
<div class="">
<p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Calibri","sans-serif"" class=""> </span></p>
</div>
<div class="">
<p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Calibri","sans-serif"" class=""><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__docs.google.com_document_d_1ksDilJYXV-2D5AXWON8PLMedDKr9NpS8VbT0jIy-5FMIEtI_edit&d=AwMFAg&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=B6BWd4kFfgOzAREgThxkmTZKy7dDXE2-eBAmL0PBK7s&m=uiVXAFxgoK-F8a3oNLDykcTSmPGUMW2_kFB_BnUEBFg&s=GWRQesGone_FbZRHXZmIcQd5MB20CHkriADqVNVnxiA&e=" class="">https://docs.google.com/document/d/1ksDilJYXV-5AXWON8PLMedDKr9NpS8VbT0jIy_MIEtI/edit</a><o:p class=""></o:p></span></p>
</div>
<div class="">
<p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Calibri","sans-serif"" class=""> </span></p>
</div>
<div class="">
<p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Calibri","sans-serif"" class="">Thanks!<o:p class=""></o:p></span></p>
</div>
<div class="">
<p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Calibri","sans-serif"" class="">Tim<o:p class=""></o:p></span></p>
</div>
</div>
</div>
</blockquote>
</div>
<p class="MsoNormal">__________________________________________________________________________<br class="">
OpenStack Development Mailing List (not for usage questions)<br class="">
Unsubscribe: <a href="mailto:OpenStack-dev-request@lists.openstack.org" class="">
OpenStack-dev-request@lists.openstack.org</a>?subject:unsubscribe<br class="">
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" class="">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><o:p class=""></o:p></p>
</div>
</blockquote>
</div>
<p class="MsoNormal"><o:p class=""> </o:p></p>
</div>
</div>
<pre class="">_________________________________________________________________________________________________________________________

Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc
pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler
a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration,
Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci.

This message and its attachments may contain confidential or privileged information that may be protected by law;
they should not be distributed, used or copied without authorisation.
If you have received this email in error, please notify the sender and delete this message and its attachments.
As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified.
Thank you.
</pre>
</div>
__________________________________________________________________________<br class="">
OpenStack Development Mailing List (not for usage questions)<br class="">
Unsubscribe: <a href="mailto:OpenStack-dev-request@lists.openstack.org" class="">
OpenStack-dev-request@lists.openstack.org</a>?subject:unsubscribe<br class="">
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" class="">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br class="">
</div>
</blockquote>
</div>
<br class="">
</div>
</body>
</html>