[Engine-devel] which data structure is better
--_000_B63C858E777679458338A30A991BB524015B0A84G1W3780americas_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi All, I am Jason Liao from HP who are in charge of NUMA and Virtual NUMA feature. Now I have some concept about the host NUMA topology data structure on engi= ne core We have VDS, VDSDynamic, VDSStatic, VdsStatistics object on engine core. And we have NUMA topology information: List<NumaNode> numaNodeList NumaNode String ID = # update from GetCapabilitiesVDSCommand List<String> cpuList # update = from GetCapabilitiesVDSCommand Int totalMem # update from GetCapabi= litiesVDSCommand Int freeMem # u= pdate from GetStatsVDSCommand A. Add this data structure into VDSDynamic We should change the GetStatsVDSCommand update the VDSDynamic data. B. Add this data structure into VDS, and build the data structure from= VDSDynamic, VdsStatistics I prefer B. does anybody have some comments? Best Regards, Jason Liao --_000_B63C858E777679458338A30A991BB524015B0A84G1W3780americas_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable <html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr= osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" = xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:= //www.w3.org/TR/REC-html40"> <head> <meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
</o:p></span></p> <p class=3D"MsoNormal" style=3D"margin-left:21.0pt;text-indent:21.0pt"><spa= n lang=3D"EN-US" style=3D"font-family:"HP Simplified","sans-= serif"">Int totalMem &n= bsp;  = ; &n= bsp; # update from GetCapabilitiesVDSCommand<= o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-family:"HP S= implified","sans-serif"">  = ; I= nt freeMem  = ; &n= bsp;  = ; # update from GetStatsVDSCommand<o:p></o:p>= </span></p> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-family:"HP S= implified","sans-serif"">  = ; <o:p></o:p></span></p> <p class=3D"MsoListParagraph" style=3D"margin-left:18.0pt;text-indent:-18.0=
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)"> <style><!-- /* Font Definitions */ @font-face {font-family:SimSun; panose-1:2 1 6 0 3 1 1 1 1 1;} @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4;} @font-face {font-family:"HP Simplified"; panose-1:2 11 6 4 2 2 4 2 2 4;} @font-face {font-family:"YaHei Consolas Hybrid"; panose-1:2 11 5 9 2 2 4 2 2 4;} @font-face {font-family:SimSun; panose-1:2 1 6 0 3 1 1 1 1 1;} @font-face {font-family:"\@YaHei Consolas Hybrid"; panose-1:2 11 5 9 2 2 4 2 2 4;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; font-size:10.5pt; font-family:"Calibri","sans-serif";} a:link, span.MsoHyperlink {mso-style-priority:99; color:#0563C1; text-decoration:underline;} a:visited, span.MsoHyperlinkFollowed {mso-style-priority:99; color:#954F72; text-decoration:underline;} p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph {mso-style-priority:34; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; text-indent:21.0pt; font-size:10.5pt; font-family:"Calibri","sans-serif";} span.EmailStyle17 {mso-style-type:personal-compose; font-family:"HP Simplified","sans-serif"; color:windowtext;} .MsoChpDefault {mso-style-type:export-only;} /* Page Definitions */ @page WordSection1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt;} div.WordSection1 {page:WordSection1;} /* List Definitions */ @list l0 {mso-list-id:385683296; mso-list-type:hybrid; mso-list-template-ids:774535138 567018858 67698713 67698715 67698703 67698= 713 67698715 67698703 67698713 67698715;} @list l0:level1 {mso-level-number-format:alpha-upper; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:18.0pt; text-indent:-18.0pt;} @list l0:level2 {mso-level-number-format:alpha-lower; mso-level-text:"%2\)"; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:42.0pt; text-indent:-21.0pt;} @list l0:level3 {mso-level-number-format:roman-lower; mso-level-tab-stop:none; mso-level-number-position:right; margin-left:63.0pt; text-indent:-21.0pt;} @list l0:level4 {mso-level-tab-stop:none; mso-level-number-position:left; margin-left:84.0pt; text-indent:-21.0pt;} @list l0:level5 {mso-level-number-format:alpha-lower; mso-level-text:"%5\)"; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:105.0pt; text-indent:-21.0pt;} @list l0:level6 {mso-level-number-format:roman-lower; mso-level-tab-stop:none; mso-level-number-position:right; margin-left:126.0pt; text-indent:-21.0pt;} @list l0:level7 {mso-level-tab-stop:none; mso-level-number-position:left; margin-left:147.0pt; text-indent:-21.0pt;} @list l0:level8 {mso-level-number-format:alpha-lower; mso-level-text:"%8\)"; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:168.0pt; text-indent:-21.0pt;} @list l0:level9 {mso-level-number-format:roman-lower; mso-level-tab-stop:none; mso-level-number-position:right; margin-left:189.0pt; text-indent:-21.0pt;} ol {margin-bottom:0cm;} ul {margin-bottom:0cm;} --></style><!--[if gte mso 9]><xml> <o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" /> </xml><![endif]--><!--[if gte mso 9]><xml> <o:shapelayout v:ext=3D"edit"> <o:idmap v:ext=3D"edit" data=3D"1" /> </o:shapelayout></xml><![endif]--> </head> <body lang=3D"ZH-CN" link=3D"#0563C1" vlink=3D"#954F72" style=3D"text-justi= fy-trim:punctuation"> <div class=3D"WordSection1"> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-family:"HP S= implified","sans-serif"">Hi All,<o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-family:"HP S= implified","sans-serif""><o:p> </o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-family:"HP S= implified","sans-serif"">I am Jason Liao from HP who are in = charge of NUMA and Virtual NUMA feature.<o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-family:"HP S= implified","sans-serif""><o:p> </o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-family:"HP S= implified","sans-serif"">Now I have some concept about the h= ost NUMA topology data structure on engine core<o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-family:"HP S= implified","sans-serif""><o:p> </o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-family:"HP S= implified","sans-serif"">We have VDS, VDSDynamic, VDSStatic,= VdsStatistics object on engine core.<o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-family:"HP S= implified","sans-serif""><o:p> </o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-family:"HP S= implified","sans-serif"">And we have NUMA topology informati= on:<o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-family:"HP S= implified","sans-serif"">List<NumaNode> numaNodeList<o= :p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-family:"HP S= implified","sans-serif"">  = ; NumaNode<o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-family:"HP S= implified","sans-serif"">  = ; String ID&nb= sp; = &nb= sp; = # update from = GetCapabilitiesVDSCommand<o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-family:"HP S= implified","sans-serif"">  = ; L= ist<String> cpuList &n= bsp;  = ; # update from GetCapabilitiesVDSCommand<o:p= pt;mso-list:l0 level1 lfo1"> <![if !supportLists]><span lang=3D"EN-US" style=3D"font-family:"HP Sim= plified","sans-serif""><span style=3D"mso-list:Ignore">A.<sp= an style=3D"font:7.0pt "Times New Roman"">  = ; </span></span></span><![endif]><span lang=3D"EN-US" style=3D"font-family:&q= uot;HP Simplified","sans-serif"">Add this data structure int= o VDSDynamic<o:p></o:p></span></p> <p class=3D"MsoNormal" style=3D"margin-left:39.0pt;text-indent:3.0pt"><span= lang=3D"EN-US" style=3D"font-family:"HP Simplified","sans-s= erif"">We should change the GetStatsVDSCommand update the VDSDynamic d= ata.<o:p></o:p></span></p> <p class=3D"MsoListParagraph" style=3D"margin-left:18.0pt;text-indent:-18.0= pt;mso-list:l0 level1 lfo1"> <![if !supportLists]><span lang=3D"EN-US" style=3D"font-family:"HP Sim= plified","sans-serif""><span style=3D"mso-list:Ignore">B.<sp= an style=3D"font:7.0pt "Times New Roman"">  = ; </span></span></span><![endif]><span lang=3D"EN-US" style=3D"font-family:&q= uot;HP Simplified","sans-serif"">Add this data structure int= o VDS, and build the data structure from VDSDynamic, VdsStatistics<o:p></o:= p></span></p> <p class=3D"MsoListParagraph" style=3D"text-indent:0cm"><span lang=3D"EN-US= " style=3D"font-family:"HP Simplified","sans-serif""><o= :p> </o:p></span></p> <p class=3D"MsoListParagraph" style=3D"text-indent:0cm"><span lang=3D"EN-US= " style=3D"font-family:"HP Simplified","sans-serif"">I = prefer B. does anybody have some comments?<o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-family:"HP S= implified","sans-serif""><o:p> </o:p></span></p> <p class=3D"MsoNormal"><b><span lang=3D"EN-US" style=3D"font-size:9.0pt;fon= t-family:"HP Simplified","sans-serif";color:black">Best= Regards,<br> </span></b><span lang=3D"EN-US" style=3D"font-size:9.0pt;font-family:"= HP Simplified","sans-serif";color:#717172">Jason Liao</span>= <span lang=3D"EN-US"><o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p> </o:p></span></p> </div> </body> </html> --_000_B63C858E777679458338A30A991BB524015B0A84G1W3780americas_--
Hi Please don't add rapidly changing data to VDSDynamic - it has major performance implications. So, choose option B. Actually, try to expose relevant data in VDSDynamic and VDSStatistics, and VDS should call VDSDynamic and VDSStatistics and merge the data from both entities. On Thu, Feb 20, 2014 at 11:31 AM, Liao, Chuan (Jason Liao, HPservers-Core-OE-PSC) <chuan.liao@hp.com> wrote:
Hi All,
I am Jason Liao from HP who are in charge of NUMA and Virtual NUMA feature.
Now I have some concept about the host NUMA topology data structure on engine core
We have VDS, VDSDynamic, VDSStatic, VdsStatistics object on engine core.
And we have NUMA topology information:
List<NumaNode> numaNodeList
NumaNode
String ID # update from GetCapabilitiesVDSCommand
List<String> cpuList # update from GetCapabilitiesVDSCommand
Int totalMem # update from GetCapabilitiesVDSCommand
Int freeMem # update from GetStatsVDSCommand
A. Add this data structure into VDSDynamic
We should change the GetStatsVDSCommand update the VDSDynamic data.
B. Add this data structure into VDS, and build the data structure from VDSDynamic, VdsStatistics
I prefer B. does anybody have some comments?
*Best Regards, *Jason Liao
_______________________________________________ Engine-devel mailing list Engine-devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-devel
----- Original Message -----
From: "Liran Zelkha" <liran.zelkha@gmail.com> To: "Chuan Liao (Jason Liao, HPservers-Core-OE-PSC)" <chuan.liao@hp.com> Cc: engine-devel@ovirt.org, "Chegu Vinod" <chegu_vinod@hp.com>, "Shang-Chun Liang (David Liang, HPservers-Core-OE-PSC)" <shangchun.liang@hp.com> Sent: Thursday, February 20, 2014 11:40:57 AM Subject: Re: [Engine-devel] which data structure is better
Hi
Please don't add rapidly changing data to VDSDynamic - it has major performance implications. So, choose option B. Actually, try to expose relevant data in VDSDynamic and VDSStatistics, and VDS should call VDSDynamic and VDSStatistics and merge the data from both entities.
Agree.We had lately several bottle-necks around the VDS/VM updates and Liran had improved the relevant queries and added batch-update stuff, so we want to keep the performance gain
On Thu, Feb 20, 2014 at 11:31 AM, Liao, Chuan (Jason Liao, HPservers-Core-OE-PSC) < chuan.liao@hp.com > wrote:
Hi All,
I am Jason Liao from HP who are in charge of NUMA and Virtual NUMA feature.
Now I have some concept about the host NUMA topology data structure on engine core
We have VDS, VDSDynamic, VDSStatic, VdsStatistics object on engine core.
And we have NUMA topology information:
List<NumaNode> numaNodeList
NumaNode
String ID # update from GetCapabilitiesVDSCommand
List<String> cpuList # update from GetCapabilitiesVDSCommand
Int totalMem # update from GetCapabilitiesVDSCommand
Int freeMem # update from GetStatsVDSCommand
A. Add this data structure into VDSDynamic
We should change the GetStatsVDSCommand update the VDSDynamic data.
B. Add this data structure into VDS, and build the data structure from VDSDynamic, VdsStatistics
I prefer B. does anybody have some comments?
Best Regards, Jason Liao
_______________________________________________ Engine-devel mailing list Engine-devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-devel
_______________________________________________ Engine-devel mailing list Engine-devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-devel
----- Original Message -----
From: "Eli Mesika" <emesika@redhat.com> To: "Liran Zelkha" <liran.zelkha@gmail.com> Cc: engine-devel@ovirt.org, "Chegu Vinod" <chegu_vinod@hp.com>, "Shang-Chun Liang (David Liang, HPservers-Core-OE-PSC)" <shangchun.liang@hp.com> Sent: Thursday, February 20, 2014 2:42:36 PM Subject: Re: [Engine-devel] which data structure is better
----- Original Message -----
From: "Liran Zelkha" <liran.zelkha@gmail.com> To: "Chuan Liao (Jason Liao, HPservers-Core-OE-PSC)" <chuan.liao@hp.com> Cc: engine-devel@ovirt.org, "Chegu Vinod" <chegu_vinod@hp.com>, "Shang-Chun Liang (David Liang, HPservers-Core-OE-PSC)" <shangchun.liang@hp.com> Sent: Thursday, February 20, 2014 11:40:57 AM Subject: Re: [Engine-devel] which data structure is better
Hi
Please don't add rapidly changing data to VDSDynamic - it has major performance implications. So, choose option B. Actually, try to expose relevant data in VDSDynamic and VDSStatistics, and VDS should call VDSDynamic and VDSStatistics and merge the data from both entities.
Agree.We had lately several bottle-necks around the VDS/VM updates and Liran had improved the relevant queries and added batch-update stuff, so we want to keep the performance gain
Jason, in order for us to know which node can accommodate which VM we need to get the memory statistics of each NUMA node as well (usage and free). Also, if possible CPU usage in every node.
On Thu, Feb 20, 2014 at 11:31 AM, Liao, Chuan (Jason Liao, HPservers-Core-OE-PSC) < chuan.liao@hp.com > wrote:
Hi All,
I am Jason Liao from HP who are in charge of NUMA and Virtual NUMA feature.
Now I have some concept about the host NUMA topology data structure on engine core
We have VDS, VDSDynamic, VDSStatic, VdsStatistics object on engine core.
And we have NUMA topology information:
List<NumaNode> numaNodeList
NumaNode
String ID # update from GetCapabilitiesVDSCommand
List<String> cpuList # update from GetCapabilitiesVDSCommand
Int totalMem # update from GetCapabilitiesVDSCommand
Int freeMem # update from GetStatsVDSCommand
A. Add this data structure into VDSDynamic
We should change the GetStatsVDSCommand update the VDSDynamic data.
B. Add this data structure into VDS, and build the data structure from VDSDynamic, VdsStatistics
I prefer B. does anybody have some comments?
Best Regards, Jason Liao
participants (4)
-
Doron Fediuck -
Eli Mesika -
Liao, Chuan (Jason Liao, HPservers-Core-OE-PSC) -
Liran Zelkha