| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml"> |
| <head> |
| <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> |
| <meta http-equiv="X-UA-Compatible" content="IE=9"/> |
| <meta name="generator" content="Doxygen 1.8.6"/> |
| <title>Impala: impala::QueryResourceMgr Class Reference</title> |
| <link href="tabs.css" rel="stylesheet" type="text/css"/> |
| <script type="text/javascript" src="jquery.js"></script> |
| <script type="text/javascript" src="dynsections.js"></script> |
| <link href="navtree.css" rel="stylesheet" type="text/css"/> |
| <script type="text/javascript" src="resize.js"></script> |
| <script type="text/javascript" src="navtree.js"></script> |
| <script type="text/javascript"> |
| $(document).ready(initResizable); |
| $(window).load(resizeHeight); |
| </script> |
| <link href="search/search.css" rel="stylesheet" type="text/css"/> |
| <script type="text/javascript" src="search/search.js"></script> |
| <script type="text/javascript"> |
| $(document).ready(function() { searchBox.OnSelectItem(0); }); |
| </script> |
| <link href="doxygen.css" rel="stylesheet" type="text/css" /> |
| </head> |
| <body> |
| <div id="top"><!-- do not remove this div, it is closed by doxygen! --> |
| <div id="titlearea"> |
| <table cellspacing="0" cellpadding="0"> |
| <tbody> |
| <tr style="height: 56px;"> |
| <td style="padding-left: 0.5em;"> |
| <div id="projectname">Impala |
| </div> |
| <div id="projectbrief">Impalaistheopensource,nativeanalyticdatabaseforApacheHadoop.</div> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| <!-- end header part --> |
| <!-- Generated by Doxygen 1.8.6 --> |
| <script type="text/javascript"> |
| var searchBox = new SearchBox("searchBox", "search",false,'Search'); |
| </script> |
| <div id="navrow1" class="tabs"> |
| <ul class="tablist"> |
| <li><a href="index.html"><span>Main Page</span></a></li> |
| <li><a href="namespaces.html"><span>Namespaces</span></a></li> |
| <li class="current"><a href="annotated.html"><span>Classes</span></a></li> |
| <li><a href="files.html"><span>Files</span></a></li> |
| <li> |
| <div id="MSearchBox" class="MSearchBoxInactive"> |
| <span class="left"> |
| <img id="MSearchSelect" src="search/mag_sel.png" |
| onmouseover="return searchBox.OnSearchSelectShow()" |
| onmouseout="return searchBox.OnSearchSelectHide()" |
| alt=""/> |
| <input type="text" id="MSearchField" value="Search" accesskey="S" |
| onfocus="searchBox.OnSearchFieldFocus(true)" |
| onblur="searchBox.OnSearchFieldFocus(false)" |
| onkeyup="searchBox.OnSearchFieldChange(event)"/> |
| </span><span class="right"> |
| <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> |
| </span> |
| </div> |
| </li> |
| </ul> |
| </div> |
| <div id="navrow2" class="tabs2"> |
| <ul class="tablist"> |
| <li><a href="annotated.html"><span>Class List</span></a></li> |
| <li><a href="classes.html"><span>Class Index</span></a></li> |
| <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> |
| <li><a href="functions.html"><span>Class Members</span></a></li> |
| </ul> |
| </div> |
| </div><!-- top --> |
| <div id="side-nav" class="ui-resizable side-nav-resizable"> |
| <div id="nav-tree"> |
| <div id="nav-tree-contents"> |
| <div id="nav-sync" class="sync"></div> |
| </div> |
| </div> |
| <div id="splitbar" style="-moz-user-select:none;" |
| class="ui-resizable-handle"> |
| </div> |
| </div> |
| <script type="text/javascript"> |
| $(document).ready(function(){initNavTree('classimpala_1_1QueryResourceMgr.html','');}); |
| </script> |
| <div id="doc-content"> |
| <!-- window showing the filter options --> |
| <div id="MSearchSelectWindow" |
| onmouseover="return searchBox.OnSearchSelectShow()" |
| onmouseout="return searchBox.OnSearchSelectHide()" |
| onkeydown="return searchBox.OnSearchSelectKey(event)"> |
| <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a></div> |
| |
| <!-- iframe showing the search results (closed by default) --> |
| <div id="MSearchResultsWindow"> |
| <iframe src="javascript:void(0)" frameborder="0" |
| name="MSearchResults" id="MSearchResults"> |
| </iframe> |
| </div> |
| |
| <div class="header"> |
| <div class="summary"> |
| <a href="#pub-types">Public Types</a> | |
| <a href="#pub-methods">Public Member Functions</a> | |
| <a href="#pri-types">Private Types</a> | |
| <a href="#pri-methods">Private Member Functions</a> | |
| <a href="#pri-attribs">Private Attributes</a> | |
| <a href="classimpala_1_1QueryResourceMgr-members.html">List of all members</a> </div> |
| <div class="headertitle"> |
| <div class="title">impala::QueryResourceMgr Class Reference</div> </div> |
| </div><!--header--> |
| <div class="contents"> |
| |
| <p>Only CPU-heavy threads need be managed using this class. |
| <a href="classimpala_1_1QueryResourceMgr.html#details">More...</a></p> |
| |
| <p><code>#include <<a class="el" href="query-resource-mgr_8h_source.html">query-resource-mgr.h</a>></code></p> |
| <div class="dynheader"> |
| Collaboration diagram for impala::QueryResourceMgr:</div> |
| <div class="dyncontent"> |
| <div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="classimpala_1_1QueryResourceMgr__coll__graph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div> |
| </div> |
| <table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a> |
| Public Types</h2></td></tr> |
| <tr class="memitem:a70fd20e3113f5d57944f17dae0054511"><td class="memItemLeft" align="right" valign="top">typedef boost::function< void()> </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1QueryResourceMgr.html#a70fd20e3113f5d57944f17dae0054511">VcoreAvailableCb</a></td></tr> |
| <tr class="separator:a70fd20e3113f5d57944f17dae0054511"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> |
| Public Member Functions</h2></td></tr> |
| <tr class="memitem:a8b83e88776213d3bc9c1a8ae1de6812a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1QueryResourceMgr.html#a8b83e88776213d3bc9c1a8ae1de6812a">QueryResourceMgr</a> (const TUniqueId &reservation_id, const TNetworkAddress &local_resource_location, const TUniqueId &<a class="el" href="namespaceimpala.html#af9bbe2e7657f31e00eb4adbf126c2ce1">query_id</a>)</td></tr> |
| <tr class="separator:a8b83e88776213d3bc9c1a8ae1de6812a"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a6b75c55f1e81093a971665211c5d99ff"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1QueryResourceMgr.html#a6b75c55f1e81093a971665211c5d99ff">InitVcoreAcquisition</a> (int32_t init_vcores)</td></tr> |
| <tr class="separator:a6b75c55f1e81093a971665211c5d99ff"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a47ef4439f5e58096de5403ffe66f7ae7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classbool.html">bool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1QueryResourceMgr.html#a47ef4439f5e58096de5403ffe66f7ae7">IsVcoreOverSubscribed</a> ()</td></tr> |
| <tr class="separator:a47ef4439f5e58096de5403ffe66f7ae7"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a6fbd0b722ff0c7ac21a965fabcadebf0"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1QueryResourceMgr.html#a6fbd0b722ff0c7ac21a965fabcadebf0">NotifyThreadUsageChange</a> (int delta)</td></tr> |
| <tr class="separator:a6fbd0b722ff0c7ac21a965fabcadebf0"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a88c3279b6bbe8d782bf272ec4756df07"><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1QueryResourceMgr.html#a88c3279b6bbe8d782bf272ec4756df07">AddVcoreAvailableCb</a> (const <a class="el" href="classimpala_1_1QueryResourceMgr.html#a70fd20e3113f5d57944f17dae0054511">VcoreAvailableCb</a> &callback)</td></tr> |
| <tr class="separator:a88c3279b6bbe8d782bf272ec4756df07"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a03784ec11fcb18de5edfb28a481949ef"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1QueryResourceMgr.html#a03784ec11fcb18de5edfb28a481949ef">RemoveVcoreAvailableCb</a> (int32_t callback_id)</td></tr> |
| <tr class="memdesc:a03784ec11fcb18de5edfb28a481949ef"><td class="mdescLeft"> </td><td class="mdescRight">Removes the callback with the given ID. <a href="#a03784ec11fcb18de5edfb28a481949ef">More...</a><br/></td></tr> |
| <tr class="separator:a03784ec11fcb18de5edfb28a481949ef"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a174aae4b50f2577d6608a2d709658da1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classimpala_1_1Status.html">Status</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1QueryResourceMgr.html#a174aae4b50f2577d6608a2d709658da1">CreateExpansionRequest</a> (int64_t memory_mb, int64_t vcores, TResourceBrokerExpansionRequest *request)</td></tr> |
| <tr class="separator:a174aae4b50f2577d6608a2d709658da1"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a8e522ace9edb5b4d956cdec70e4be121"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1QueryResourceMgr.html#a8e522ace9edb5b4d956cdec70e4be121">Shutdown</a> ()</td></tr> |
| <tr class="separator:a8e522ace9edb5b4d956cdec70e4be121"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a120ac55fc791fbea24db9e76444a8f77"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1QueryResourceMgr.html#a120ac55fc791fbea24db9e76444a8f77">~QueryResourceMgr</a> ()</td></tr> |
| <tr class="memdesc:a120ac55fc791fbea24db9e76444a8f77"><td class="mdescLeft"> </td><td class="mdescRight">Waits for the VCore acquisition thread to stop. <a href="#a120ac55fc791fbea24db9e76444a8f77">More...</a><br/></td></tr> |
| <tr class="separator:a120ac55fc791fbea24db9e76444a8f77"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-types"></a> |
| Private Types</h2></td></tr> |
| <tr class="memitem:a89c2dc9fe4a18b8d559eae15730fa486"><td class="memItemLeft" align="right" valign="top">typedef boost::unordered_map<br class="typebreak"/> |
| < int32_t, <a class="el" href="classimpala_1_1QueryResourceMgr.html#a70fd20e3113f5d57944f17dae0054511">VcoreAvailableCb</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1QueryResourceMgr.html#a89c2dc9fe4a18b8d559eae15730fa486">CallbackMap</a></td></tr> |
| <tr class="memdesc:a89c2dc9fe4a18b8d559eae15730fa486"><td class="mdescLeft"> </td><td class="mdescRight">List of callbacks to notify when a new VCore resource is available. <a href="#a89c2dc9fe4a18b8d559eae15730fa486">More...</a><br/></td></tr> |
| <tr class="separator:a89c2dc9fe4a18b8d559eae15730fa486"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a> |
| Private Member Functions</h2></td></tr> |
| <tr class="memitem:ad570e3ce975997e94bc5bc68fca7a76a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1QueryResourceMgr.html#ad570e3ce975997e94bc5bc68fca7a76a">AcquireVcoreResources</a> (boost::shared_ptr< <a class="el" href="classimpala_1_1AtomicInt.html">AtomicInt</a>< int16_t > > thread_in_expand, boost::shared_ptr< <a class="el" href="classimpala_1_1AtomicInt.html">AtomicInt</a>< int16_t > > early_exit)</td></tr> |
| <tr class="separator:ad570e3ce975997e94bc5bc68fca7a76a"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a787bfa8a6ea43e0a0b1185932cd18127"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classbool.html">bool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1QueryResourceMgr.html#a787bfa8a6ea43e0a0b1185932cd18127">AboveVcoreSubscriptionThreshold</a> ()</td></tr> |
| <tr class="separator:a787bfa8a6ea43e0a0b1185932cd18127"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a5962e3717bf3f357e5c7073a3f2c3220"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classbool.html">bool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1QueryResourceMgr.html#a5962e3717bf3f357e5c7073a3f2c3220">ShouldExit</a> ()</td></tr> |
| <tr class="memdesc:a5962e3717bf3f357e5c7073a3f2c3220"><td class="mdescLeft"> </td><td class="mdescRight">Notifies acquire_cpu_thread_ that it should terminate. Does not block. <a href="#a5962e3717bf3f357e5c7073a3f2c3220">More...</a><br/></td></tr> |
| <tr class="separator:a5962e3717bf3f357e5c7073a3f2c3220"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a> |
| Private Attributes</h2></td></tr> |
| <tr class="memitem:a52a3c04f04788be93866deaf6309b44a"><td class="memItemLeft" align="right" valign="top">TUniqueId </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1QueryResourceMgr.html#a52a3c04f04788be93866deaf6309b44a">reservation_id_</a></td></tr> |
| <tr class="memdesc:a52a3c04f04788be93866deaf6309b44a"><td class="mdescLeft"> </td><td class="mdescRight">ID of the single reservation corresponding to this query. <a href="#a52a3c04f04788be93866deaf6309b44a">More...</a><br/></td></tr> |
| <tr class="separator:a52a3c04f04788be93866deaf6309b44a"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ab52333a16e143bce561d056f36f8a609"><td class="memItemLeft" align="right" valign="top">TUniqueId </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1QueryResourceMgr.html#ab52333a16e143bce561d056f36f8a609">query_id_</a></td></tr> |
| <tr class="memdesc:ab52333a16e143bce561d056f36f8a609"><td class="mdescLeft"> </td><td class="mdescRight">Query ID of the query this class manages resources for. <a href="#ab52333a16e143bce561d056f36f8a609">More...</a><br/></td></tr> |
| <tr class="separator:ab52333a16e143bce561d056f36f8a609"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a2b32dc607712d540a47085e9395efe38"><td class="memItemLeft" align="right" valign="top">TNetworkAddress </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1QueryResourceMgr.html#a2b32dc607712d540a47085e9395efe38">local_resource_location_</a></td></tr> |
| <tr class="separator:a2b32dc607712d540a47085e9395efe38"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:aa268ca963b06b52a72f8f8e2f257f463"><td class="memItemLeft" align="right" valign="top">boost::mutex </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1QueryResourceMgr.html#aa268ca963b06b52a72f8f8e2f257f463">exit_lock_</a></td></tr> |
| <tr class="memdesc:aa268ca963b06b52a72f8f8e2f257f463"><td class="mdescLeft"> </td><td class="mdescRight">Used to control shutdown of AcquireCpuResources(). <a href="#aa268ca963b06b52a72f8f8e2f257f463">More...</a><br/></td></tr> |
| <tr class="separator:aa268ca963b06b52a72f8f8e2f257f463"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a5f57f77ffadbe9de80222dbee4e71602"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classbool.html">bool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1QueryResourceMgr.html#a5f57f77ffadbe9de80222dbee4e71602">exit_</a></td></tr> |
| <tr class="separator:a5f57f77ffadbe9de80222dbee4e71602"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a88a5c03e7cf068424d7db0786384758e"><td class="memItemLeft" align="right" valign="top">boost::mutex </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1QueryResourceMgr.html#a88a5c03e7cf068424d7db0786384758e">callbacks_lock_</a></td></tr> |
| <tr class="memdesc:a88a5c03e7cf068424d7db0786384758e"><td class="mdescLeft"> </td><td class="mdescRight">Protects callbacks_ and callbacks_it_. <a href="#a88a5c03e7cf068424d7db0786384758e">More...</a><br/></td></tr> |
| <tr class="separator:a88a5c03e7cf068424d7db0786384758e"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a519c6f01d964a8e3b2d46900bd665528"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classimpala_1_1QueryResourceMgr.html#a89c2dc9fe4a18b8d559eae15730fa486">CallbackMap</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1QueryResourceMgr.html#a519c6f01d964a8e3b2d46900bd665528">callbacks_</a></td></tr> |
| <tr class="separator:a519c6f01d964a8e3b2d46900bd665528"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:afb0baff7dd5ffc9df898c24d2c0b472e"><td class="memItemLeft" align="right" valign="top">CallbackMap::iterator </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1QueryResourceMgr.html#afb0baff7dd5ffc9df898c24d2c0b472e">callbacks_it_</a></td></tr> |
| <tr class="memdesc:afb0baff7dd5ffc9df898c24d2c0b472e"><td class="mdescLeft"> </td><td class="mdescRight">Round-robin iterator to notify callbacks about new VCores one at a time. <a href="#afb0baff7dd5ffc9df898c24d2c0b472e">More...</a><br/></td></tr> |
| <tr class="separator:afb0baff7dd5ffc9df898c24d2c0b472e"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a1235cb65b3b55db534301daaeb138ebc"><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1QueryResourceMgr.html#a1235cb65b3b55db534301daaeb138ebc">callback_count_</a></td></tr> |
| <tr class="separator:a1235cb65b3b55db534301daaeb138ebc"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ad53f4d4d0e96e60fb81b5e67647ee6ea"><td class="memItemLeft" align="right" valign="top">boost::mutex </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1QueryResourceMgr.html#ad53f4d4d0e96e60fb81b5e67647ee6ea">threads_running_lock_</a></td></tr> |
| <tr class="memdesc:ad53f4d4d0e96e60fb81b5e67647ee6ea"><td class="mdescLeft"> </td><td class="mdescRight">Protects threads_running_, threads_changed_cv_ and vcores_. <a href="#ad53f4d4d0e96e60fb81b5e67647ee6ea">More...</a><br/></td></tr> |
| <tr class="separator:ad53f4d4d0e96e60fb81b5e67647ee6ea"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a1b3954e2ba70da252f96b734ba61a0fe"><td class="memItemLeft" align="right" valign="top">boost::condition_variable </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1QueryResourceMgr.html#a1b3954e2ba70da252f96b734ba61a0fe">threads_changed_cv_</a></td></tr> |
| <tr class="memdesc:a1b3954e2ba70da252f96b734ba61a0fe"><td class="mdescLeft"> </td><td class="mdescRight">Waited on by AcquireCpuResources(), and notified by <a class="el" href="classimpala_1_1QueryResourceMgr.html#a6fbd0b722ff0c7ac21a965fabcadebf0">NotifyThreadUsageChange()</a>. <a href="#a1b3954e2ba70da252f96b734ba61a0fe">More...</a><br/></td></tr> |
| <tr class="separator:a1b3954e2ba70da252f96b734ba61a0fe"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:affd052e7e921b2685fc5e74f3278aa87"><td class="memItemLeft" align="right" valign="top">int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1QueryResourceMgr.html#affd052e7e921b2685fc5e74f3278aa87">threads_running_</a></td></tr> |
| <tr class="memdesc:affd052e7e921b2685fc5e74f3278aa87"><td class="mdescLeft"> </td><td class="mdescRight">The number of threads we know to be running on behalf of this query. <a href="#affd052e7e921b2685fc5e74f3278aa87">More...</a><br/></td></tr> |
| <tr class="separator:affd052e7e921b2685fc5e74f3278aa87"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:aa5447f64f910edc628fb5e258a507289"><td class="memItemLeft" align="right" valign="top">int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1QueryResourceMgr.html#aa5447f64f910edc628fb5e258a507289">vcores_</a></td></tr> |
| <tr class="memdesc:aa5447f64f910edc628fb5e258a507289"><td class="mdescLeft"> </td><td class="mdescRight">The number of VCores acquired for this node for this query. <a href="#aa5447f64f910edc628fb5e258a507289">More...</a><br/></td></tr> |
| <tr class="separator:aa5447f64f910edc628fb5e258a507289"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a2826351b009db29e80a4452cca727c55"><td class="memItemLeft" align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1QueryResourceMgr.html#a2826351b009db29e80a4452cca727c55">max_vcore_oversubscription_ratio_</a></td></tr> |
| <tr class="separator:a2826351b009db29e80a4452cca727c55"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a1554ae6f6f3faee9bc82a82d59c7c305"><td class="memItemLeft" align="right" valign="top">boost::scoped_ptr< <a class="el" href="classimpala_1_1Thread.html">Thread</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1QueryResourceMgr.html#a1554ae6f6f3faee9bc82a82d59c7c305">acquire_vcore_thread_</a></td></tr> |
| <tr class="memdesc:a1554ae6f6f3faee9bc82a82d59c7c305"><td class="mdescLeft"> </td><td class="mdescRight">Runs <a class="el" href="classimpala_1_1QueryResourceMgr.html#ad570e3ce975997e94bc5bc68fca7a76a">AcquireVcoreResources()</a> after <a class="el" href="classimpala_1_1QueryResourceMgr.html#a6b75c55f1e81093a971665211c5d99ff">InitVcoreAcquisition()</a> is called. <a href="#a1554ae6f6f3faee9bc82a82d59c7c305">More...</a><br/></td></tr> |
| <tr class="separator:a1554ae6f6f3faee9bc82a82d59c7c305"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a951a2b1bbb52218964c7209343b09e57"><td class="memItemLeft" align="right" valign="top">boost::shared_ptr< <a class="el" href="classimpala_1_1AtomicInt.html">AtomicInt</a><br class="typebreak"/> |
| < int16_t > > </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1QueryResourceMgr.html#a951a2b1bbb52218964c7209343b09e57">early_exit_</a></td></tr> |
| <tr class="separator:a951a2b1bbb52218964c7209343b09e57"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:aa0ab13828f77267b6c5138e3f4d7acba"><td class="memItemLeft" align="right" valign="top">boost::shared_ptr< <a class="el" href="classimpala_1_1AtomicInt.html">AtomicInt</a><br class="typebreak"/> |
| < int16_t > > </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1QueryResourceMgr.html#aa0ab13828f77267b6c5138e3f4d7acba">thread_in_expand_</a></td></tr> |
| <tr class="separator:aa0ab13828f77267b6c5138e3f4d7acba"><td class="memSeparator" colspan="2"> </td></tr> |
| </table> |
| <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> |
| <div class="textblock"><p>Only CPU-heavy threads need be managed using this class. </p> |
| <p>Tracks all the state necessary to create expansion requests for all fragments of a single query on a single node. Code that might need to expand the memory reservation for this query (i.e. <a class="el" href="classimpala_1_1MemTracker.html" title="This class is thread-safe. ">MemTracker</a>) can use this class to construct expansion requests that may then be submitted to the <a class="el" href="classimpala_1_1ResourceBroker.html">ResourceBroker</a>. If InitCpuAcquisition() is called, this class will monitor the thread token to VCore ratio (thread consumers must use <a class="el" href="classimpala_1_1QueryResourceMgr.html#a6fbd0b722ff0c7ac21a965fabcadebf0">NotifyThreadUsageChange()</a> to update the thread consumption count). If the ratio gets too high (see <a class="el" href="classimpala_1_1QueryResourceMgr.html#a787bfa8a6ea43e0a0b1185932cd18127">AboveVcoreSubscriptionThreshold()</a> for details), we will try to acquire more VCore resources from Llama asynchronously. If the ratio passes a higher threshold (see <a class="el" href="classimpala_1_1QueryResourceMgr.html#a47ef4439f5e58096de5403ffe66f7ae7">IsVcoreOverSubscribed()</a>), we say that the query fragments are currently oversubscribing their VCore resources. Threads are typically handed to a fragment by the thread resource manager, which deals in tokens. When a fragment wants to use a token to start a thread, it should only do so if the ratio of threads to VCores (which map directly onto cgroup shares) is not too large. If it is too large - i.e. the VCores are oversubscribed - the fragment should wait to spin up a new threads until more VCore resources are acquired as above. To help with this, each fragment may register one or more callbacks with their <a class="el" href="classimpala_1_1QueryResourceMgr.html" title="Only CPU-heavy threads need be managed using this class. ">QueryResourceMgr</a>; when more VCore resources are acquired the callbacks are invoked in round-robin fashion. The callback should try and re-acquire the previously untaken thread token, and then a new thread may be started.TODO: Handle reducing the number of VCores when threads finish. TODO: Consider combining more closely with <a class="el" href="classimpala_1_1ThreadResourceMgr.html">ThreadResourceMgr</a>. TODO: Add counters to <a class="el" href="classimpala_1_1RuntimeProfile.html">RuntimeProfile</a> to track VCores allocated etc. </p> |
| |
| <p>Definition at line <a class="el" href="query-resource-mgr_8h_source.html#l00094">94</a> of file <a class="el" href="query-resource-mgr_8h_source.html">query-resource-mgr.h</a>.</p> |
| </div><h2 class="groupheader">Member Typedef Documentation</h2> |
| <a class="anchor" id="a89c2dc9fe4a18b8d559eae15730fa486"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">typedef boost::unordered_map<int32_t, <a class="el" href="classimpala_1_1QueryResourceMgr.html#a70fd20e3113f5d57944f17dae0054511">VcoreAvailableCb</a>> <a class="el" href="classimpala_1_1QueryResourceMgr.html#a89c2dc9fe4a18b8d559eae15730fa486">impala::QueryResourceMgr::CallbackMap</a></td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">private</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>List of callbacks to notify when a new VCore resource is available. </p> |
| |
| <p>Definition at line <a class="el" href="query-resource-mgr_8h_source.html#l00161">161</a> of file <a class="el" href="query-resource-mgr_8h_source.html">query-resource-mgr.h</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a70fd20e3113f5d57944f17dae0054511"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">typedef boost::function<void ()> <a class="el" href="classimpala_1_1QueryResourceMgr.html#a70fd20e3113f5d57944f17dae0054511">impala::QueryResourceMgr::VcoreAvailableCb</a></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>All callbacks registered here are called in round-robin fashion when more VCores are acquired. Returns a unique ID that can be used as an argument to <a class="el" href="classimpala_1_1QueryResourceMgr.html#a03784ec11fcb18de5edfb28a481949ef" title="Removes the callback with the given ID. ">RemoveVcoreAvailableCb()</a>. </p> |
| |
| <p>Definition at line <a class="el" href="query-resource-mgr_8h_source.html#l00122">122</a> of file <a class="el" href="query-resource-mgr_8h_source.html">query-resource-mgr.h</a>.</p> |
| |
| </div> |
| </div> |
| <h2 class="groupheader">Constructor & Destructor Documentation</h2> |
| <a class="anchor" id="a8b83e88776213d3bc9c1a8ae1de6812a"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">QueryResourceMgr::QueryResourceMgr </td> |
| <td>(</td> |
| <td class="paramtype">const TUniqueId & </td> |
| <td class="paramname"><em>reservation_id</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const TNetworkAddress & </td> |
| <td class="paramname"><em>local_resource_location</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const TUniqueId & </td> |
| <td class="paramname"><em>query_id</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="query-resource-mgr_8cc_source.html#l00076">76</a> of file <a class="el" href="query-resource-mgr_8cc_source.html">query-resource-mgr.cc</a>.</p> |
| |
| <p>References <a class="el" href="query-resource-mgr_8h_source.html#l00186">max_vcore_oversubscription_ratio_</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a120ac55fc791fbea24db9e76444a8f77"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">QueryResourceMgr::~QueryResourceMgr </td> |
| <td>(</td> |
| <td class="paramname"></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Waits for the VCore acquisition thread to stop. </p> |
| |
| <p>Definition at line <a class="el" href="query-resource-mgr_8cc_source.html#l00252">252</a> of file <a class="el" href="query-resource-mgr_8cc_source.html">query-resource-mgr.cc</a>.</p> |
| |
| <p>References <a class="el" href="query-resource-mgr_8h_source.html#l00189">acquire_vcore_thread_</a>, <a class="el" href="query-resource-mgr_8h_source.html#l00196">early_exit_</a>, <a class="el" href="query-resource-mgr_8cc_source.html#l00229">ShouldExit()</a>, <a class="el" href="query-resource-mgr_8cc_source.html#l00234">Shutdown()</a>, and <a class="el" href="query-resource-mgr_8h_source.html#l00201">thread_in_expand_</a>.</p> |
| |
| </div> |
| </div> |
| <h2 class="groupheader">Member Function Documentation</h2> |
| <a class="anchor" id="a787bfa8a6ea43e0a0b1185932cd18127"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classbool.html">bool</a> QueryResourceMgr::AboveVcoreSubscriptionThreshold </td> |
| <td>(</td> |
| <td class="paramname"></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">private</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>True if thread:VCore subscription is too high, meaning more VCores are required. Must be called holding threads_running_ lock. </p> |
| |
| <p>Definition at line <a class="el" href="query-resource-mgr_8cc_source.html#l00136">136</a> of file <a class="el" href="query-resource-mgr_8cc_source.html">query-resource-mgr.cc</a>.</p> |
| |
| <p>References <a class="el" href="query-resource-mgr_8h_source.html#l00186">max_vcore_oversubscription_ratio_</a>, <a class="el" href="query-resource-mgr_8h_source.html#l00178">threads_running_</a>, and <a class="el" href="query-resource-mgr_8h_source.html#l00181">vcores_</a>.</p> |
| |
| <p>Referenced by <a class="el" href="query-resource-mgr_8cc_source.html#l00162">AcquireVcoreResources()</a>, and <a class="el" href="query-resource-mgr_8cc_source.html#l00140">NotifyThreadUsageChange()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="ad570e3ce975997e94bc5bc68fca7a76a"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void QueryResourceMgr::AcquireVcoreResources </td> |
| <td>(</td> |
| <td class="paramtype">boost::shared_ptr< <a class="el" href="classimpala_1_1AtomicInt.html">AtomicInt</a>< int16_t > > </td> |
| <td class="paramname"><em>thread_in_expand</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">boost::shared_ptr< <a class="el" href="classimpala_1_1AtomicInt.html">AtomicInt</a>< int16_t > > </td> |
| <td class="paramname"><em>early_exit</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">private</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Run as a thread owned by acquire_cpu_thread_. Waits for notification from <a class="el" href="classimpala_1_1QueryResourceMgr.html#a6fbd0b722ff0c7ac21a965fabcadebf0">NotifyThreadUsageChange()</a>, then checks the subscription level to decide if more VCores are needed, and starts a new expansion request if so. </p> |
| |
| <p>Definition at line <a class="el" href="query-resource-mgr_8cc_source.html#l00162">162</a> of file <a class="el" href="query-resource-mgr_8cc_source.html">query-resource-mgr.cc</a>.</p> |
| |
| <p>References <a class="el" href="query-resource-mgr_8cc_source.html#l00136">AboveVcoreSubscriptionThreshold()</a>, <a class="el" href="query-resource-mgr_8h_source.html#l00162">callbacks_</a>, <a class="el" href="query-resource-mgr_8h_source.html#l00165">callbacks_it_</a>, <a class="el" href="query-resource-mgr_8h_source.html#l00158">callbacks_lock_</a>, <a class="el" href="exec-env_8h_source.html#l00088">impala::ExecEnv::cgroups_mgr()</a>, <a class="el" href="query-resource-mgr_8cc_source.html#l00107">CreateExpansionRequest()</a>, <a class="el" href="resource-broker_8cc_source.html#l00503">impala::ResourceBroker::Expand()</a>, <a class="el" href="status_8cc_source.html#l00184">impala::Status::GetDetail()</a>, <a class="el" href="exec-env_8h_source.html#l00063">impala::ExecEnv::GetInstance()</a>, <a class="el" href="status_8h_source.html#l00172">impala::Status::ok()</a>, <a class="el" href="debug-util_8cc_source.html#l00097">impala::PrintId()</a>, <a class="el" href="query-resource-mgr_8h_source.html#l00146">query_id_</a>, <a class="el" href="query-resource-mgr_8h_source.html#l00143">reservation_id_</a>, <a class="el" href="exec-env_8h_source.html#l00095">impala::ExecEnv::resource_broker()</a>, <a class="el" href="cgroups-mgr_8cc_source.html#l00101">impala::CgroupsMgr::SetCpuShares()</a>, <a class="el" href="query-resource-mgr_8cc_source.html#l00229">ShouldExit()</a>, <a class="el" href="time_8cc_source.html#l00021">impala::SleepForMs()</a>, <a class="el" href="query-resource-mgr_8h_source.html#l00175">threads_changed_cv_</a>, <a class="el" href="query-resource-mgr_8h_source.html#l00172">threads_running_lock_</a>, <a class="el" href="cgroups-mgr_8cc_source.html#l00054">impala::CgroupsMgr::UniqueIdToCgroup()</a>, <a class="el" href="query-resource-mgr_8h_source.html#l00181">vcores_</a>, <a class="el" href="cgroups-mgr_8cc_source.html#l00059">impala::CgroupsMgr::VirtualCoresToCpuShares()</a>, and <a class="el" href="logging_8h_source.html#l00057">VLOG_QUERY</a>.</p> |
| |
| <p>Referenced by <a class="el" href="query-resource-mgr_8cc_source.html#l00084">InitVcoreAcquisition()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a88c3279b6bbe8d782bf272ec4756df07"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int32_t QueryResourceMgr::AddVcoreAvailableCb </td> |
| <td>(</td> |
| <td class="paramtype">const <a class="el" href="classimpala_1_1QueryResourceMgr.html#a70fd20e3113f5d57944f17dae0054511">VcoreAvailableCb</a> & </td> |
| <td class="paramname"><em>callback</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="query-resource-mgr_8cc_source.html#l00147">147</a> of file <a class="el" href="query-resource-mgr_8cc_source.html">query-resource-mgr.cc</a>.</p> |
| |
| <p>References <a class="el" href="query-resource-mgr_8h_source.html#l00169">callback_count_</a>, <a class="el" href="query-resource-mgr_8h_source.html#l00162">callbacks_</a>, <a class="el" href="query-resource-mgr_8h_source.html#l00165">callbacks_it_</a>, and <a class="el" href="query-resource-mgr_8h_source.html#l00158">callbacks_lock_</a>.</p> |
| |
| <p>Referenced by <a class="el" href="hdfs-scan-node_8cc_source.html#l00511">impala::HdfsScanNode::Open()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a174aae4b50f2577d6608a2d709658da1"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classimpala_1_1Status.html">Status</a> QueryResourceMgr::CreateExpansionRequest </td> |
| <td>(</td> |
| <td class="paramtype">int64_t </td> |
| <td class="paramname"><em>memory_mb</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int64_t </td> |
| <td class="paramname"><em>vcores</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">TResourceBrokerExpansionRequest * </td> |
| <td class="paramname"><em>request</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Creates an expansion request for the reservation corresponding to this resource context. </p> |
| |
| <p>Definition at line <a class="el" href="query-resource-mgr_8cc_source.html#l00107">107</a> of file <a class="el" href="query-resource-mgr_8cc_source.html">query-resource-mgr.cc</a>.</p> |
| |
| <p>References <a class="el" href="query-resource-mgr_8cc_source.html#l00037">DEFAULT_EXPANSION_REQUEST_TIMEOUT_MS</a>, <a class="el" href="query-resource-mgr_8cc_source.html#l00049">impala::ResourceResolver::GetResourceHostport()</a>, <a class="el" href="query-resource-mgr_8h_source.html#l00151">local_resource_location_</a>, <a class="el" href="status_8h_source.html#l00087">impala::Status::OK</a>, <a class="el" href="query-resource-mgr_8h_source.html#l00143">reservation_id_</a>, and <a class="el" href="network-util_8cc_source.html#l00126">impala::TNetworkAddressToString()</a>.</p> |
| |
| <p>Referenced by <a class="el" href="query-resource-mgr_8cc_source.html#l00162">AcquireVcoreResources()</a>, and <a class="el" href="mem-tracker_8cc_source.html#l00294">impala::MemTracker::ExpandRmReservation()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a6b75c55f1e81093a971665211c5d99ff"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void QueryResourceMgr::InitVcoreAcquisition </td> |
| <td>(</td> |
| <td class="paramtype">int32_t </td> |
| <td class="paramname"><em>init_vcores</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Must be called only once. Starts a separate thread to monitor thread consumption, which asks for more VCores from Llama periodically. </p> |
| |
| <p>Definition at line <a class="el" href="query-resource-mgr_8cc_source.html#l00084">84</a> of file <a class="el" href="query-resource-mgr_8cc_source.html">query-resource-mgr.cc</a>.</p> |
| |
| <p>References <a class="el" href="query-resource-mgr_8h_source.html#l00189">acquire_vcore_thread_</a>, <a class="el" href="query-resource-mgr_8cc_source.html#l00162">AcquireVcoreResources()</a>, <a class="el" href="query-resource-mgr_8h_source.html#l00196">early_exit_</a>, <a class="el" href="debug-util_8cc_source.html#l00097">impala::PrintId()</a>, <a class="el" href="query-resource-mgr_8h_source.html#l00146">query_id_</a>, <a class="el" href="query-resource-mgr_8h_source.html#l00201">thread_in_expand_</a>, and <a class="el" href="query-resource-mgr_8h_source.html#l00181">vcores_</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a47ef4439f5e58096de5403ffe66f7ae7"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classbool.html">bool</a> impala::QueryResourceMgr::IsVcoreOverSubscribed </td> |
| <td>(</td> |
| <td class="paramname"></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">inline</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Should be used to check if another thread token may be acquired by this query. Fragments may ignore this when acquiring a new CPU token, but the result will be a larger thread:VCore ratio. Note that this threshold is larger than the one in <a class="el" href="classimpala_1_1QueryResourceMgr.html#a787bfa8a6ea43e0a0b1185932cd18127">AboveVcoreSubscriptionThreshold()</a>. We want to start acquiring more VCore allocations before we get so oversubscribed that adding new threads is considered a bad idea. </p> |
| |
| <p>Definition at line <a class="el" href="query-resource-mgr_8h_source.html#l00110">110</a> of file <a class="el" href="query-resource-mgr_8h_source.html">query-resource-mgr.h</a>.</p> |
| |
| <p>References <a class="el" href="query-resource-mgr_8h_source.html#l00186">max_vcore_oversubscription_ratio_</a>, <a class="el" href="query-resource-mgr_8h_source.html#l00178">threads_running_</a>, <a class="el" href="query-resource-mgr_8h_source.html#l00172">threads_running_lock_</a>, and <a class="el" href="query-resource-mgr_8h_source.html#l00181">vcores_</a>.</p> |
| |
| <p>Referenced by <a class="el" href="hdfs-scan-node_8cc_source.html#l00729">impala::HdfsScanNode::ThreadTokenAvailableCb()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a6fbd0b722ff0c7ac21a965fabcadebf0"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void QueryResourceMgr::NotifyThreadUsageChange </td> |
| <td>(</td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>delta</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Called when thread consumption goes up or down. If the total consumption goes above a subscription threshold, the acquisition thread will be woken to ask for more VCores. </p> |
| |
| <p>Definition at line <a class="el" href="query-resource-mgr_8cc_source.html#l00140">140</a> of file <a class="el" href="query-resource-mgr_8cc_source.html">query-resource-mgr.cc</a>.</p> |
| |
| <p>References <a class="el" href="query-resource-mgr_8cc_source.html#l00136">AboveVcoreSubscriptionThreshold()</a>, <a class="el" href="query-resource-mgr_8h_source.html#l00175">threads_changed_cv_</a>, <a class="el" href="query-resource-mgr_8h_source.html#l00178">threads_running_</a>, and <a class="el" href="query-resource-mgr_8h_source.html#l00172">threads_running_lock_</a>.</p> |
| |
| <p>Referenced by <a class="el" href="hdfs-scan-node_8cc_source.html#l00797">impala::HdfsScanNode::ScannerThread()</a>, and <a class="el" href="hdfs-scan-node_8cc_source.html#l00729">impala::HdfsScanNode::ThreadTokenAvailableCb()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a03784ec11fcb18de5edfb28a481949ef"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void QueryResourceMgr::RemoveVcoreAvailableCb </td> |
| <td>(</td> |
| <td class="paramtype">int32_t </td> |
| <td class="paramname"><em>callback_id</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Removes the callback with the given ID. </p> |
| |
| <p>Definition at line <a class="el" href="query-resource-mgr_8cc_source.html#l00154">154</a> of file <a class="el" href="query-resource-mgr_8cc_source.html">query-resource-mgr.cc</a>.</p> |
| |
| <p>References <a class="el" href="query-resource-mgr_8h_source.html#l00162">callbacks_</a>, <a class="el" href="query-resource-mgr_8h_source.html#l00165">callbacks_it_</a>, and <a class="el" href="query-resource-mgr_8h_source.html#l00158">callbacks_lock_</a>.</p> |
| |
| <p>Referenced by <a class="el" href="hdfs-scan-node_8cc_source.html#l00622">impala::HdfsScanNode::Close()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a5962e3717bf3f357e5c7073a3f2c3220"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classbool.html">bool</a> QueryResourceMgr::ShouldExit </td> |
| <td>(</td> |
| <td class="paramname"></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">private</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Notifies acquire_cpu_thread_ that it should terminate. Does not block. </p> |
| |
| <p>Definition at line <a class="el" href="query-resource-mgr_8cc_source.html#l00229">229</a> of file <a class="el" href="query-resource-mgr_8cc_source.html">query-resource-mgr.cc</a>.</p> |
| |
| <p>References <a class="el" href="query-resource-mgr_8h_source.html#l00155">exit_</a>, and <a class="el" href="query-resource-mgr_8h_source.html#l00154">exit_lock_</a>.</p> |
| |
| <p>Referenced by <a class="el" href="query-resource-mgr_8cc_source.html#l00162">AcquireVcoreResources()</a>, and <a class="el" href="query-resource-mgr_8cc_source.html#l00252">~QueryResourceMgr()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a8e522ace9edb5b4d956cdec70e4be121"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void QueryResourceMgr::Shutdown </td> |
| <td>(</td> |
| <td class="paramname"></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Sets the exit flag for the VCore acquisiton thread, but does not block. Also clears the set of callbacks, so that after <a class="el" href="classimpala_1_1QueryResourceMgr.html#a8e522ace9edb5b4d956cdec70e4be121">Shutdown()</a> has returned, no callback will be invoked. </p> |
| |
| <p>Definition at line <a class="el" href="query-resource-mgr_8cc_source.html#l00234">234</a> of file <a class="el" href="query-resource-mgr_8cc_source.html">query-resource-mgr.cc</a>.</p> |
| |
| <p>References <a class="el" href="query-resource-mgr_8h_source.html#l00162">callbacks_</a>, <a class="el" href="query-resource-mgr_8h_source.html#l00158">callbacks_lock_</a>, <a class="el" href="resource-broker_8cc_source.html#l00636">impala::ResourceBroker::ClearRequests()</a>, <a class="el" href="query-resource-mgr_8h_source.html#l00155">exit_</a>, <a class="el" href="query-resource-mgr_8h_source.html#l00154">exit_lock_</a>, <a class="el" href="exec-env_8h_source.html#l00063">impala::ExecEnv::GetInstance()</a>, <a class="el" href="query-resource-mgr_8h_source.html#l00143">reservation_id_</a>, <a class="el" href="exec-env_8h_source.html#l00095">impala::ExecEnv::resource_broker()</a>, and <a class="el" href="query-resource-mgr_8h_source.html#l00175">threads_changed_cv_</a>.</p> |
| |
| <p>Referenced by <a class="el" href="query-resource-mgr_8cc_source.html#l00252">~QueryResourceMgr()</a>.</p> |
| |
| </div> |
| </div> |
| <h2 class="groupheader">Member Data Documentation</h2> |
| <a class="anchor" id="a1554ae6f6f3faee9bc82a82d59c7c305"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">boost::scoped_ptr<<a class="el" href="classimpala_1_1Thread.html">Thread</a>> impala::QueryResourceMgr::acquire_vcore_thread_</td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">private</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Runs <a class="el" href="classimpala_1_1QueryResourceMgr.html#ad570e3ce975997e94bc5bc68fca7a76a">AcquireVcoreResources()</a> after <a class="el" href="classimpala_1_1QueryResourceMgr.html#a6b75c55f1e81093a971665211c5d99ff">InitVcoreAcquisition()</a> is called. </p> |
| |
| <p>Definition at line <a class="el" href="query-resource-mgr_8h_source.html#l00189">189</a> of file <a class="el" href="query-resource-mgr_8h_source.html">query-resource-mgr.h</a>.</p> |
| |
| <p>Referenced by <a class="el" href="query-resource-mgr_8cc_source.html#l00084">InitVcoreAcquisition()</a>, and <a class="el" href="query-resource-mgr_8cc_source.html#l00252">~QueryResourceMgr()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a1235cb65b3b55db534301daaeb138ebc"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int32_t impala::QueryResourceMgr::callback_count_</td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">private</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Total number of callbacks that were ever registered. Used to give each callback a unique ID so that they can be removed. </p> |
| |
| <p>Definition at line <a class="el" href="query-resource-mgr_8h_source.html#l00169">169</a> of file <a class="el" href="query-resource-mgr_8h_source.html">query-resource-mgr.h</a>.</p> |
| |
| <p>Referenced by <a class="el" href="query-resource-mgr_8cc_source.html#l00147">AddVcoreAvailableCb()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a519c6f01d964a8e3b2d46900bd665528"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classimpala_1_1QueryResourceMgr.html#a89c2dc9fe4a18b8d559eae15730fa486">CallbackMap</a> impala::QueryResourceMgr::callbacks_</td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">private</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="query-resource-mgr_8h_source.html#l00162">162</a> of file <a class="el" href="query-resource-mgr_8h_source.html">query-resource-mgr.h</a>.</p> |
| |
| <p>Referenced by <a class="el" href="query-resource-mgr_8cc_source.html#l00162">AcquireVcoreResources()</a>, <a class="el" href="query-resource-mgr_8cc_source.html#l00147">AddVcoreAvailableCb()</a>, <a class="el" href="query-resource-mgr_8cc_source.html#l00154">RemoveVcoreAvailableCb()</a>, and <a class="el" href="query-resource-mgr_8cc_source.html#l00234">Shutdown()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="afb0baff7dd5ffc9df898c24d2c0b472e"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">CallbackMap::iterator impala::QueryResourceMgr::callbacks_it_</td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">private</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Round-robin iterator to notify callbacks about new VCores one at a time. </p> |
| |
| <p>Definition at line <a class="el" href="query-resource-mgr_8h_source.html#l00165">165</a> of file <a class="el" href="query-resource-mgr_8h_source.html">query-resource-mgr.h</a>.</p> |
| |
| <p>Referenced by <a class="el" href="query-resource-mgr_8cc_source.html#l00162">AcquireVcoreResources()</a>, <a class="el" href="query-resource-mgr_8cc_source.html#l00147">AddVcoreAvailableCb()</a>, and <a class="el" href="query-resource-mgr_8cc_source.html#l00154">RemoveVcoreAvailableCb()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a88a5c03e7cf068424d7db0786384758e"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">boost::mutex impala::QueryResourceMgr::callbacks_lock_</td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">private</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Protects callbacks_ and callbacks_it_. </p> |
| |
| <p>Definition at line <a class="el" href="query-resource-mgr_8h_source.html#l00158">158</a> of file <a class="el" href="query-resource-mgr_8h_source.html">query-resource-mgr.h</a>.</p> |
| |
| <p>Referenced by <a class="el" href="query-resource-mgr_8cc_source.html#l00162">AcquireVcoreResources()</a>, <a class="el" href="query-resource-mgr_8cc_source.html#l00147">AddVcoreAvailableCb()</a>, <a class="el" href="query-resource-mgr_8cc_source.html#l00154">RemoveVcoreAvailableCb()</a>, and <a class="el" href="query-resource-mgr_8cc_source.html#l00234">Shutdown()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a951a2b1bbb52218964c7209343b09e57"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">boost::shared_ptr<<a class="el" href="classimpala_1_1AtomicInt.html">AtomicInt</a><int16_t> > impala::QueryResourceMgr::early_exit_</td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">private</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Signals to the vcore acquisition thread that it should exit after it exits from any pending Expand() call. Is a shared_ptr so that it will remain valid even after the parent <a class="el" href="classimpala_1_1QueryResourceMgr.html" title="Only CPU-heavy threads need be managed using this class. ">QueryResourceMgr</a> has been destroyed. TODO: Combine with <a class="el" href="classimpala_1_1QueryResourceMgr.html#a5962e3717bf3f357e5c7073a3f2c3220" title="Notifies acquire_cpu_thread_ that it should terminate. Does not block. ">ShouldExit()</a>, and replace with AtomicBool when we have such a thing. </p> |
| |
| <p>Definition at line <a class="el" href="query-resource-mgr_8h_source.html#l00196">196</a> of file <a class="el" href="query-resource-mgr_8h_source.html">query-resource-mgr.h</a>.</p> |
| |
| <p>Referenced by <a class="el" href="query-resource-mgr_8cc_source.html#l00084">InitVcoreAcquisition()</a>, and <a class="el" href="query-resource-mgr_8cc_source.html#l00252">~QueryResourceMgr()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a5f57f77ffadbe9de80222dbee4e71602"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classbool.html">bool</a> impala::QueryResourceMgr::exit_</td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">private</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="query-resource-mgr_8h_source.html#l00155">155</a> of file <a class="el" href="query-resource-mgr_8h_source.html">query-resource-mgr.h</a>.</p> |
| |
| <p>Referenced by <a class="el" href="query-resource-mgr_8cc_source.html#l00229">ShouldExit()</a>, and <a class="el" href="query-resource-mgr_8cc_source.html#l00234">Shutdown()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="aa268ca963b06b52a72f8f8e2f257f463"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">boost::mutex impala::QueryResourceMgr::exit_lock_</td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">private</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Used to control shutdown of AcquireCpuResources(). </p> |
| |
| <p>Definition at line <a class="el" href="query-resource-mgr_8h_source.html#l00154">154</a> of file <a class="el" href="query-resource-mgr_8h_source.html">query-resource-mgr.h</a>.</p> |
| |
| <p>Referenced by <a class="el" href="query-resource-mgr_8cc_source.html#l00229">ShouldExit()</a>, and <a class="el" href="query-resource-mgr_8cc_source.html#l00234">Shutdown()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a2b32dc607712d540a47085e9395efe38"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">TNetworkAddress impala::QueryResourceMgr::local_resource_location_</td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">private</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Network address of the local service registered with Llama. Usually corresponds to <local-address>:0, unless a pseudo-dstributed Llama is being used (see <a class="el" href="classimpala_1_1ResourceResolver.html#a8f6643c91e9f67880d082693744db578">ResourceResolver::CreateLocalLlamaNodeMapping()</a>). </p> |
| |
| <p>Definition at line <a class="el" href="query-resource-mgr_8h_source.html#l00151">151</a> of file <a class="el" href="query-resource-mgr_8h_source.html">query-resource-mgr.h</a>.</p> |
| |
| <p>Referenced by <a class="el" href="query-resource-mgr_8cc_source.html#l00107">CreateExpansionRequest()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a2826351b009db29e80a4452cca727c55"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">float impala::QueryResourceMgr::max_vcore_oversubscription_ratio_</td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">private</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Set to FLAGS_max_vcore_oversubscription_ratio in the constructor. If the ratio of threads to VCores exceeds this number, no more threads may be executed by this query until more VCore resources are acquired. </p> |
| |
| <p>Definition at line <a class="el" href="query-resource-mgr_8h_source.html#l00186">186</a> of file <a class="el" href="query-resource-mgr_8h_source.html">query-resource-mgr.h</a>.</p> |
| |
| <p>Referenced by <a class="el" href="query-resource-mgr_8cc_source.html#l00136">AboveVcoreSubscriptionThreshold()</a>, <a class="el" href="query-resource-mgr_8h_source.html#l00110">IsVcoreOverSubscribed()</a>, and <a class="el" href="query-resource-mgr_8cc_source.html#l00076">QueryResourceMgr()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="ab52333a16e143bce561d056f36f8a609"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">TUniqueId impala::QueryResourceMgr::query_id_</td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">private</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Query ID of the query this class manages resources for. </p> |
| |
| <p>Definition at line <a class="el" href="query-resource-mgr_8h_source.html#l00146">146</a> of file <a class="el" href="query-resource-mgr_8h_source.html">query-resource-mgr.h</a>.</p> |
| |
| <p>Referenced by <a class="el" href="query-resource-mgr_8cc_source.html#l00162">AcquireVcoreResources()</a>, and <a class="el" href="query-resource-mgr_8cc_source.html#l00084">InitVcoreAcquisition()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a52a3c04f04788be93866deaf6309b44a"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">TUniqueId impala::QueryResourceMgr::reservation_id_</td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">private</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>ID of the single reservation corresponding to this query. </p> |
| |
| <p>Definition at line <a class="el" href="query-resource-mgr_8h_source.html#l00143">143</a> of file <a class="el" href="query-resource-mgr_8h_source.html">query-resource-mgr.h</a>.</p> |
| |
| <p>Referenced by <a class="el" href="query-resource-mgr_8cc_source.html#l00162">AcquireVcoreResources()</a>, <a class="el" href="query-resource-mgr_8cc_source.html#l00107">CreateExpansionRequest()</a>, and <a class="el" href="query-resource-mgr_8cc_source.html#l00234">Shutdown()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="aa0ab13828f77267b6c5138e3f4d7acba"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">boost::shared_ptr<<a class="el" href="classimpala_1_1AtomicInt.html">AtomicInt</a><int16_t> > impala::QueryResourceMgr::thread_in_expand_</td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">private</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Signals to the destructor that the vcore acquisition thread is currently in an Expand() RPC. If so, the destructor does not need to wait for the acquisition thread to exit. </p> |
| |
| <p>Definition at line <a class="el" href="query-resource-mgr_8h_source.html#l00201">201</a> of file <a class="el" href="query-resource-mgr_8h_source.html">query-resource-mgr.h</a>.</p> |
| |
| <p>Referenced by <a class="el" href="query-resource-mgr_8cc_source.html#l00084">InitVcoreAcquisition()</a>, and <a class="el" href="query-resource-mgr_8cc_source.html#l00252">~QueryResourceMgr()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a1b3954e2ba70da252f96b734ba61a0fe"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">boost::condition_variable impala::QueryResourceMgr::threads_changed_cv_</td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">private</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Waited on by AcquireCpuResources(), and notified by <a class="el" href="classimpala_1_1QueryResourceMgr.html#a6fbd0b722ff0c7ac21a965fabcadebf0">NotifyThreadUsageChange()</a>. </p> |
| |
| <p>Definition at line <a class="el" href="query-resource-mgr_8h_source.html#l00175">175</a> of file <a class="el" href="query-resource-mgr_8h_source.html">query-resource-mgr.h</a>.</p> |
| |
| <p>Referenced by <a class="el" href="query-resource-mgr_8cc_source.html#l00162">AcquireVcoreResources()</a>, <a class="el" href="query-resource-mgr_8cc_source.html#l00140">NotifyThreadUsageChange()</a>, and <a class="el" href="query-resource-mgr_8cc_source.html#l00234">Shutdown()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="affd052e7e921b2685fc5e74f3278aa87"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int64_t impala::QueryResourceMgr::threads_running_</td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">private</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>The number of threads we know to be running on behalf of this query. </p> |
| |
| <p>Definition at line <a class="el" href="query-resource-mgr_8h_source.html#l00178">178</a> of file <a class="el" href="query-resource-mgr_8h_source.html">query-resource-mgr.h</a>.</p> |
| |
| <p>Referenced by <a class="el" href="query-resource-mgr_8cc_source.html#l00136">AboveVcoreSubscriptionThreshold()</a>, <a class="el" href="query-resource-mgr_8h_source.html#l00110">IsVcoreOverSubscribed()</a>, and <a class="el" href="query-resource-mgr_8cc_source.html#l00140">NotifyThreadUsageChange()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="ad53f4d4d0e96e60fb81b5e67647ee6ea"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">boost::mutex impala::QueryResourceMgr::threads_running_lock_</td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">private</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Protects threads_running_, threads_changed_cv_ and vcores_. </p> |
| |
| <p>Definition at line <a class="el" href="query-resource-mgr_8h_source.html#l00172">172</a> of file <a class="el" href="query-resource-mgr_8h_source.html">query-resource-mgr.h</a>.</p> |
| |
| <p>Referenced by <a class="el" href="query-resource-mgr_8cc_source.html#l00162">AcquireVcoreResources()</a>, <a class="el" href="query-resource-mgr_8h_source.html#l00110">IsVcoreOverSubscribed()</a>, and <a class="el" href="query-resource-mgr_8cc_source.html#l00140">NotifyThreadUsageChange()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="aa5447f64f910edc628fb5e258a507289"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int64_t impala::QueryResourceMgr::vcores_</td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">private</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>The number of VCores acquired for this node for this query. </p> |
| |
| <p>Definition at line <a class="el" href="query-resource-mgr_8h_source.html#l00181">181</a> of file <a class="el" href="query-resource-mgr_8h_source.html">query-resource-mgr.h</a>.</p> |
| |
| <p>Referenced by <a class="el" href="query-resource-mgr_8cc_source.html#l00136">AboveVcoreSubscriptionThreshold()</a>, <a class="el" href="query-resource-mgr_8cc_source.html#l00162">AcquireVcoreResources()</a>, <a class="el" href="query-resource-mgr_8cc_source.html#l00084">InitVcoreAcquisition()</a>, and <a class="el" href="query-resource-mgr_8h_source.html#l00110">IsVcoreOverSubscribed()</a>.</p> |
| |
| </div> |
| </div> |
| <hr/>The documentation for this class was generated from the following files:<ul> |
| <li>be/src/statestore/<a class="el" href="query-resource-mgr_8h_source.html">query-resource-mgr.h</a></li> |
| <li>be/src/statestore/<a class="el" href="query-resource-mgr_8cc_source.html">query-resource-mgr.cc</a></li> |
| </ul> |
| </div><!-- contents --> |
| </div><!-- doc-content --> |
| <!-- start footer part --> |
| <div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> |
| <ul> |
| <li class="navelem"><a class="el" href="namespaceimpala.html">impala</a></li><li class="navelem"><a class="el" href="classimpala_1_1QueryResourceMgr.html">QueryResourceMgr</a></li> |
| <li class="footer">Generated on Thu May 7 2015 16:10:50 for Impala by |
| <a href="http://www.doxygen.org/index.html"> |
| <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li> |
| </ul> |
| </div> |
| </body> |
| </html> |